--- ball.c 2004-02-23 02:09:01.000000000 +0100 +++ balla.c 2008-12-28 19:56:50.000000000 +0100 @@ -1717,149 +1717,7 @@ #endif } - /* draw extra blended ball-reflections */ - if( options_ball_reflect && options_ball_reflections_blended && !(options_cuberef && cuberef_binds==0) ){ - float texmat[16]; - glDepthMask (GL_FALSE); - glEnable(GL_BLEND); - glPolygonOffset( 0.0, -2.0 ); - glEnable( GL_POLYGON_OFFSET_FILL ); -// glBlendFunc (GL_SRC_ALPHA, GL_ONE); -// glBlendFunc (GL_ONE_MINUS_DST_COLOR, GL_ONE); -// glBlendFunc (GL_ONE, GL_ONE); - if(options_cuberef){ -#ifdef USE_BALL_FRESNEL - if(options_ball_fresnel_refl) { - glBlendFunc (GL_ONE, GL_ONE); -// glBlendFunc (GL_ONE_MINUS_DST_COLOR, GL_ONE); - glMaterialfv(GL_FRONT, GL_DIFFUSE, col_refl4); -/* glDisable(GL_LIGHTING); - glColor3f(1.0,1.0,1.0);*/ - } else -#endif - { - glBlendFunc (GL_ONE_MINUS_DST_COLOR, GL_ONE); - glMaterialfv(GL_FRONT, GL_DIFFUSE, col_refl3); - } - } else { - glBlendFunc (GL_SRC_ALPHA, GL_ONE); - glMaterialfv(GL_FRONT, GL_DIFFUSE, col_refl); - } - glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); - - if( options_cuberef && cuberef_binds!=0 ) { - glDisable(GL_TEXTURE_2D); -#ifndef TEST_FRESNEL - glEnable(GL_TEXTURE_CUBE_MAP_ARB); -#endif - } else { - glBindTexture(GL_TEXTURE_2D,spheretexbind); - } - if( options_calc_ball_reflections ){ - }else if( options_cuberef && cuberef_binds!=0 ){ - float dummy; - glEnable(GL_TEXTURE_GEN_S); - glEnable(GL_TEXTURE_GEN_T); - glEnable(GL_TEXTURE_GEN_R); - glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP_ARB); - glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP_ARB); - glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP_ARB); - glGetFloatv(GL_MODELVIEW_MATRIX, texmat); - /* maybe set this per ball to camaera direction */ - texmat[12]=0.0; - texmat[13]=0.0; - texmat[14]=0.0; -/* printf("texmat offs=%f %f %f\n", - texmat[3], - texmat[7], - texmat[11]);*/ - /* transpose */ - dummy=texmat[1]; texmat[1]=texmat[4]; texmat[4]=dummy; - dummy=texmat[2]; texmat[2]=texmat[8]; texmat[8]=dummy; - dummy=texmat[6]; texmat[6]=texmat[9]; texmat[9]=dummy; - glMatrixMode(GL_TEXTURE); - glLoadMatrixf(texmat); - glMatrixMode(GL_MODELVIEW); -#ifdef GL_VERTEX_PROGRAM_NV -#ifdef USE_BALL_FRESNEL - if( options_ball_fresnel_refl ){ - glDisable(GL_TEXTURE_GEN_S); - glDisable(GL_TEXTURE_GEN_T); - glDisable(GL_TEXTURE_GEN_R); - glEnable(GL_VERTEX_PROGRAM_NV); - /* for world coord program */ -/* glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 0, GL_PROJECTION, GL_IDENTITY_NV ); - glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 4, GL_TEXTURE, GL_IDENTITY_NV ); - glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 12, GL_MODELVIEW, GL_IDENTITY_NV );*/ - /* for object coord program */ - glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 0, GL_MODELVIEW_PROJECTION_NV, GL_IDENTITY_NV ); - glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 4, GL_TEXTURE, GL_IDENTITY_NV ); - glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 12, GL_MODELVIEW, GL_INVERSE_TRANSPOSE_NV ); -// glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 9, GL_MODELVIEW, GL_IDENTITY_NV); - glProgramParameter4fNV( GL_VERTEX_PROGRAM_NV, 8, /* c[8] */ - 0.0, /* needed by vertex prog as constant 0.0 */ - 1.0, /* dummy - not used */ - 0.00001, /* z-shift for correct zbuffering when multisampling */ - 0.6 /* Rmax(=1)-Rmin */ - ); -// # c[8].z = offset for correct z-buffering - glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - glBindProgramNV(GL_VERTEX_PROGRAM_NV, fresnel_vert_prog_bind); - } -#endif -#endif - }else{ - glEnable(GL_TEXTURE_GEN_S); - glEnable(GL_TEXTURE_GEN_T); - glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); - glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); - } - for(i=0;i