[renderpass] feature=ERPF_USER0 lang=glsl quality=100 stage=ERPS_MAIN numtextures=4 [vertexshader] code=\ uniform vec3 fvEyePosition;\ \ varying vec2 Texcoord;\ varying vec3 ViewDirection;\ varying vec3 LightDirection;\ varying vec3 nr;\ varying vec3 ViewDirectionraw;\ \ attribute vec3 tangent;\ \ void main( void )\ {\ gl_Position = ftransform();\ Texcoord = gl_MultiTexCoord0.xy;\ \ vec4 fvObjectPosition = gl_ModelViewMatrix * gl_Vertex;\ \ ViewDirectionraw = fvEyePosition - fvObjectPosition.xyz;\ vec3 fvLightDirection = gl_LightSource[0].position.xyz - fvObjectPosition.xyz;\ \ vec3 fvNormal = (gl_ModelViewMatrix * vec4(gl_Normal,0)).xyz;\ vec3 fvTangent = (gl_ModelViewMatrix * vec4(gl_Normal,0)).xyz;\ vec3 fvBinormal = cross(fvTangent.xyz , fvNormal.xyz);\ \ \ nr= fvNormal;\ gl_FrontColor=gl_Color;\ ViewDirection.x = dot( fvTangent, ViewDirectionraw );\ ViewDirection.y = dot( fvBinormal,ViewDirectionraw );\ ViewDirection.z = dot( fvNormal, ViewDirectionraw );\ \ LightDirection.x = dot( fvTangent, fvLightDirection.xyz );\ LightDirection.y = dot( fvBinormal, fvLightDirection.xyz );\ LightDirection.z = dot( fvNormal, fvLightDirection.xyz );\ \ } [/vertexshader] [pixelshader] code=\ \ uniform sampler2D tex0;\ uniform sampler2D tex1;\ uniform samplerCube tex2;\ uniform samplerCube tex3;\ varying vec2 Texcoord;\ varying vec3 ViewDirection;\ varying vec3 ViewDirectionraw;\ varying vec3 LightDirection;\ varying vec3 nr;\ void main( void )\ {\ vec3 fvLightDirection = normalize( LightDirection );\ vec3 fvNormal = normalize( ( texture2D( tex1, Texcoord ).xyz * 2.0 ) - 1.0 );\ float fNDotL = dot( fvNormal, fvLightDirection ); \ \ vec3 fvReflection = normalize( ( ( 2.0 * fvNormal ) * fNDotL ) - fvLightDirection ); \ vec3 fvViewDirection = normalize( ViewDirection );\ float fRDotV = max( 0.0, dot( fvReflection, fvViewDirection ) );\ \ vec4 fvBaseColor = texture2D( tex0, Texcoord );\ \ vec4 AmbientAo = textureCube(tex2,nr)*gl_Color;\ vec4 Refl = max(textureCube(tex3,nr)*(50/dot(nr, ViewDirectionraw)),0);\ vec4 fvTotalAmbient = AmbientAo ;\ vec4 fvTotalDiffuse = fNDotL * fvBaseColor; \ vec4 fvTotalSpecular = pow( fRDotV, fvBaseColor.a *30 );\ \ gl_FragColor = normalize(vec4(nr,1));//fvTotalAmbient + fvTotalDiffuse + fvTotalSpecular+Refl;\ \ } [/pixelshader] [builtinparam] name=fvEyePosition type=ERPPB_EYEPOS_VEC3 [/builtinparam] [/renderpass]