diff options
author | Wilrik de Loose <wilrik@wilrik.nl> | 2008-01-09 16:27:09 (GMT) |
---|---|---|
committer | Wilrik de Loose <wilrik@wilrik.nl> | 2008-01-09 16:27:09 (GMT) |
commit | 30a4b86ec59e27d1b033f4505447d32792a06500 (patch) | |
tree | 1d63a6936ed1b9fde4c0304bf57695964fdac158 /Smoke/renderer_gl.c | |
parent | 4b45e834c8a243d299f7b09960dc43db58cb7910 (diff) | |
download | 2iv35-30a4b86ec59e27d1b033f4505447d32792a06500.zip 2iv35-30a4b86ec59e27d1b033f4505447d32792a06500.tar.gz 2iv35-30a4b86ec59e27d1b033f4505447d32792a06500.tar.bz2 |
lalal ilili
Diffstat (limited to 'Smoke/renderer_gl.c')
-rw-r--r-- | Smoke/renderer_gl.c | 90 |
1 files changed, 50 insertions, 40 deletions
diff --git a/Smoke/renderer_gl.c b/Smoke/renderer_gl.c index 96b9faa..fb27516 100644 --- a/Smoke/renderer_gl.c +++ b/Smoke/renderer_gl.c @@ -316,6 +316,8 @@ void render_smoke(void) DIM = fluids_get_dim(); + glDisable(GL_BLEND); + wn = (fftw_real)winWidth / (fftw_real)(DIM + 1); // Grid cell width hn = (fftw_real)winHeight / (fftw_real)(DIM + 1); // Grid cell height @@ -370,6 +372,8 @@ void render_smoke(void) glVertex3f(px, py, pz); glEnd(); } + + glEnable(GL_BLEND); } @@ -796,32 +800,34 @@ static void render_flowvis(void) void renderer_init_gl(void) { - float LightAmbient[] = { 0.10f, 0.10f, 0.10f, 1.0f }; // Ambient light values - float LightDiffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f }; // Diffuse light values - float LightPosition[] = { -250.0f, -250.0f, -300.0f, 1.00f }; // Position of the light source + float LightAmbient[] = { 0.10f, 0.10f, 0.10f, 1.0f }; // Ambient light values + float LightDiffuse[] = { 0.80f, 0.80f, 0.80f, 1.0f }; // Diffuse light values + float LightPosition[] = { x_pos, y_pos, -500, 1.0f }; // Position of the light source - //glEnable(GL_TEXTURE_2D); - glShadeModel(GL_SMOOTH); glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); + // blending glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE); + // depth testing glEnable(GL_DEPTH_TEST); glClearDepth(1.0f); glDepthFunc(GL_LESS); + // lighting + glShadeModel(GL_SMOOTH); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_COLOR_MATERIAL); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 9.8f); + glLightfv(GL_LIGHT0, GL_AMBIENT, LightAmbient); glLightfv(GL_LIGHT0, GL_DIFFUSE, LightDiffuse); glLightfv(GL_LIGHT0, GL_POSITION, LightPosition); - - texture = load_textures(BITMAP_SOURCE); } @@ -891,49 +897,53 @@ void visualize(struct vis_data_arrays *vis_data) { // Rotate field - glLoadIdentity(); - glTranslatef(x_pos, y_pos, z_pos); - glRotatef(x_rot, 1.0f, 0.0f, 0.0f); - glRotatef(y_rot, 0.0f, 1.0f, 0.0f); - glRotatef(z_rot, 0.0f, 0.0f, 1.0f); + glPushMatrix(); + + glLoadIdentity(); + glTranslatef(x_pos, y_pos, z_pos); + glRotatef(x_rot, 1.0f, 0.0f, 0.0f); + glRotatef(y_rot, 0.0f, 1.0f, 0.0f); + glRotatef(z_rot, 0.0f, 0.0f, 1.0f); - glTranslatef(-winWidth/2, -winHeight/2, 0.0f); + glTranslatef(-winWidth/2, -winHeight/2, 0.0f); - if (renderer_render_grid) { - render_grid(); - } + if (renderer_render_grid) { + render_grid(); + } - if (isolines_get_render()) { - render_isolines(); - } + if (isolines_get_render()) { + render_isolines(); + } - if (smoke_get_render()) { - render_smoke(); - } + if (smoke_get_render()) { + render_smoke(); + } - if (glyphs_get_render()) { - render_glyphs(); - } + if (glyphs_get_render()) { + render_glyphs(); + } - render_seedpoints(); + render_seedpoints(); - if (streamlines_get_render()) { - render_streamlines(); - } + if (streamlines_get_render()) { + render_streamlines(); + } - if (flowvis_get_render()) { - render_flowvis(); - } + if (flowvis_get_render()) { + render_flowvis(); + } - if (normals_get_render()) { - render_normal(); - } + if (normals_get_render()) { + render_normal(); + } - if (normals_get_render2()) { - render_normals(); - } + if (normals_get_render2()) { + render_normals(); + } + + render_streamlines(); - render_streamlines(); + render_legend(); - render_legend(); + glPopMatrix(); } |