diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2011-05-10 15:40:02 +0200 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2011-05-10 15:40:02 +0200 |
commit | 7d93cab1eb1629b068858a68ac5e5840fe84a83a (patch) | |
tree | fc90eaecc54a03943e4114443ad3d6ad111b9b9a /scene.cpp | |
parent | 0073f833c88f4a25dadc777495639069ba9d7bed (diff) |
Added fog and implemented a simple skybox.
Diffstat (limited to 'scene.cpp')
-rw-r--r-- | scene.cpp | 31 |
1 files changed, 27 insertions, 4 deletions
@@ -316,15 +316,18 @@ void Scene::render() { //glLightfv(GL_LIGHT0, GL_POSITION, light_pos); if(render_terrain) { + const float fog_color[4] = {1, 1, 1, 0}; + glFogfv(GL_FOG_COLOR, fog_color); terrain_program.use(); GLint show_sel = glGetUniformLocation(terrain_program.get_program(), "show_sel"); glUniform1i(show_sel, show_selection ? 1 : 0); - GLint chunk_pos; if(show_selection) { GLint selpos = glGetUniformLocation(terrain_program.get_program(), "selpos"); glUniform3f(selpos, selected.x, selected.y, selected.z); - chunk_pos = glGetUniformLocation(terrain_program.get_program(), "chunk_pos"); } + GLint chunk_pos = glGetUniformLocation(terrain_program.get_program(), "chunk_pos"); + GLint player_pos = glGetUniformLocation(terrain_program.get_program(), "player_pos"); + glUniform3f(player_pos, pos.x, pos.y, pos.z); glEnable(GL_TEXTURE_2D); @@ -355,8 +358,7 @@ void Scene::render() { continue;*/ glPushMatrix(); glTranslatef(-pos.x + chunk->x, -pos.y, -pos.z + chunk->y); - if(show_selection) - glUniform2f(chunk_pos, chunk->x, chunk->y); + glUniform2f(chunk_pos, chunk->x, chunk->y); glBindBuffer(GL_ARRAY_BUFFER, chunk->vbo_object); glVertexPointer(3, GL_FLOAT, 0, NULL); @@ -423,6 +425,27 @@ void Scene::render() { show_selection = true; } + glDisable(GL_TEXTURE_2D); + + glPushMatrix(); + glTranslatef(700*cosf(yaw), 0, 700*sinf(yaw)); + glRotatef(-yaw*180/M_PI+180, 0, 1, 0); + glBegin(GL_QUADS); + glColor3f(1, 1, 1); + glVertex3f(0, 0, -700); + glVertex3f(0, 0, 700); + glColor3f(.5, .5, 1); + glVertex3f(0, 550, 700); + glVertex3f(0, 550, -700); + + glVertex3f(0, 550, -700); + glVertex3f(0, 550, 700); + glColor3f(0, 0, .3); + glVertex3f(1000, 550, 700); + glVertex3f(1000, 550, -700); + glEnd(); + glPopMatrix(); + video::ortho(); float height = font->LineHeight(); glColor3f(1, 1, 1); |