Updated ShaderGen shaders

This commit is contained in:
Robert Osfield
2018-03-16 11:33:03 +00:00
parent e5b67a6795
commit b7147ff532
2 changed files with 22 additions and 30 deletions

View File

@@ -4,16 +4,7 @@ char shadergen_frag[] = "// ShaderGen shader\n"
" precision highp float;\n"
"#endif\n"
"\n"
"#pragma import_defines(GL_LIGHTING, GL_TEXTURE_2D, GL_FOG)\n"
"\n"
"#if defined(GL_LIGHTING)\n"
"varying vec3 normalDir;\n"
"varying vec3 lightDir;\n"
"#endif\n"
"\n"
"#if defined(GL_LIGHTING) || defined(GL_FOG)\n"
"varying vec3 viewDir;\n"
"#endif\n"
"#pragma import_defines(GL_TEXTURE_2D)\n"
"\n"
"varying vec4 vertexColor;\n"
"\n"
@@ -29,7 +20,6 @@ char shadergen_frag[] = "// ShaderGen shader\n"
" color = color * texture2D(diffuseMap, gl_TexCoord[0].st);\n"
"#endif\n"
"\n"
"\n"
" gl_FragColor = color;\n"
"}\n"
"\n";

View File

@@ -4,20 +4,31 @@ char shadergen_vert[] = "// ShaderGen shader\n"
" precision highp float;\n"
"#endif\n"
"\n"
"#pragma import_defines(GL_LIGHTING, GL_TEXTURE_2D, GL_FOG)\n"
"#pragma import_defines(GL_LIGHTING, GL_TEXTURE_2D)\n"
"\n"
"#if defined(GL_LIGHTING)\n"
"varying vec3 normalDir;\n"
"varying vec3 lightDir;\n"
"#endif\n"
"\n"
"#if defined(GL_LIGHTING) || defined(GL_FOG)\n"
"varying vec3 viewDir;\n"
"#ifdef GL_LIGHTING\n"
"void directionalLight( int lightNum, vec3 normal, inout vec4 color )\n"
"{\n"
" vec3 n = normalize(gl_NormalMatrix * normal);\n"
"\n"
" float NdotL = dot( n, normalize(gl_LightSource[lightNum].position.xyz) );\n"
" NdotL = max( 0.0, NdotL );\n"
"\n"
" float NdotHV = dot( n, gl_LightSource[lightNum].halfVector.xyz );\n"
" NdotHV = max( 0.0, NdotHV );\n"
"\n"
" color *= gl_FrontLightModelProduct.sceneColor +\n"
" gl_FrontLightProduct[lightNum].ambient +\n"
" gl_FrontLightProduct[lightNum].diffuse * NdotL;\n"
"\n"
" if ( NdotL * NdotHV > 0.0 )\n"
" color += gl_FrontLightProduct[lightNum].specular * pow( NdotHV, gl_FrontMaterial.shininess );\n"
"}\n"
"#endif\n"
"\n"
"varying vec4 vertexColor;\n"
"\n"
"\n"
"void main()\n"
"{\n"
" gl_Position = ftransform();\n"
@@ -26,19 +37,10 @@ char shadergen_vert[] = "// ShaderGen shader\n"
" gl_TexCoord[0] = gl_MultiTexCoord0;\n"
"#endif\n"
"\n"
"#if defined(GL_LIGHTING) || defined(GL_FOG)\n"
" viewDir = -vec3(gl_ModelViewMatrix * gl_Vertex);\n"
"#endif\n"
" vertexColor = gl_Color;\n"
"\n"
"#if defined(GL_LIGHTING)\n"
" normalDir = gl_NormalMatrix * gl_Normal;\n"
" vec4 lpos = gl_LightSource[0].position;\n"
" if (lpos.w == 0.0)\n"
" lightDir = lpos.xyz;\n"
" else\n"
" lightDir = lpos.xyz + viewDir;\n"
" directionalLight(0, gl_Normal, vertexColor);\n"
"#endif\n"
"\n"
" vertexColor = gl_Color;\n"
"}\n"
"\n";