Rework ifdefing and fix windows shader compiler warnings from materialF
parent
c5410a5d22
commit
7c0bea5bb4
|
|
@ -35,7 +35,7 @@ out vec4 frag_color;
|
|||
#define frag_color gl_FragColor
|
||||
#endif
|
||||
|
||||
#if (INDEX_MODE != INDEXED)
|
||||
#if USE_DIFFUSE_TEX
|
||||
uniform sampler2D diffuseMap;
|
||||
#endif
|
||||
|
||||
|
|
@ -52,7 +52,7 @@ VARYING vec3 vary_pointlight_col;
|
|||
VARYING vec2 vary_texcoord0;
|
||||
VARYING vec3 vary_norm;
|
||||
|
||||
#if (INDEX_MODE != NON_INDEXED_NO_COLOR)
|
||||
#if USE_VERTEX_COLOR
|
||||
VARYING vec4 vertex_color;
|
||||
#endif
|
||||
|
||||
|
|
@ -104,16 +104,18 @@ void main()
|
|||
|
||||
vec4 pos = vec4(vary_position, 1.0);
|
||||
|
||||
#if (INDEX_MODE == INDEXED)
|
||||
#if USE_INDEXED_TEX
|
||||
vec4 diff = diffuseLookup(vary_texcoord0.xy);
|
||||
#else
|
||||
vec4 diff = texture2D(diffuseMap,vary_texcoord0.xy);
|
||||
#endif
|
||||
|
||||
diff.rgb = pow(diff.rgb, vec3(2.2));
|
||||
#if (INDEX_MODE == NON_INDEXED_NO_COLOR)
|
||||
float vertex_color_alpha = 1.0;
|
||||
|
||||
#if USE_VERTEX_COLOR
|
||||
float vertex_color_alpha = vertex_color.a;
|
||||
#else
|
||||
float vertex_color_alpha = vertex_color.a;
|
||||
float vertex_color_alpha = 1.0;
|
||||
#endif
|
||||
|
||||
vec3 normal = vary_norm;
|
||||
|
|
|
|||
|
|
@ -34,13 +34,17 @@ uniform mat4 modelview_matrix;
|
|||
uniform mat4 modelview_projection_matrix;
|
||||
|
||||
ATTRIBUTE vec3 position;
|
||||
#if (INDEX_MODE == INDEXED)
|
||||
|
||||
#if USE_INDEXED_TEX
|
||||
void passTextureIndex();
|
||||
#endif
|
||||
|
||||
ATTRIBUTE vec3 normal;
|
||||
#if (INDEX_MODE != NON_INDEXED_NO_COLOR)
|
||||
|
||||
#if USE_VERTEX_COLOR
|
||||
ATTRIBUTE vec4 diffuse_color;
|
||||
#endif
|
||||
|
||||
ATTRIBUTE vec2 texcoord0;
|
||||
|
||||
#if HAS_SKIN
|
||||
|
|
@ -65,7 +69,7 @@ VARYING vec3 vary_fragcoord;
|
|||
VARYING vec3 vary_position;
|
||||
VARYING vec3 vary_pointlight_col;
|
||||
|
||||
#if INDEX_MODE != NON_INDEXED_NO_COLOR
|
||||
#if USE_VERTEX_COLOR
|
||||
VARYING vec4 vertex_color;
|
||||
#endif
|
||||
|
||||
|
|
@ -158,7 +162,7 @@ void main()
|
|||
|
||||
#endif
|
||||
|
||||
#if (INDEX_MODE == INDEXED)
|
||||
#if USE_INDEXED_TEX
|
||||
passTextureIndex();
|
||||
vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
|
||||
#else
|
||||
|
|
@ -170,9 +174,10 @@ void main()
|
|||
|
||||
calcAtmospherics(pos.xyz);
|
||||
|
||||
#if (INDEX_MODE == NON_INDEXED_NO_COLOR)
|
||||
#if !USE_VERTEX_COLOR
|
||||
vec4 diffuse_color = vec4(1,1,1,1);
|
||||
#endif
|
||||
|
||||
//vec4 color = calcLighting(pos.xyz, norm, diffuse_color, vec4(0.));
|
||||
vec4 col = vec4(0.0, 0.0, 0.0, diffuse_color.a);
|
||||
|
||||
|
|
@ -188,7 +193,8 @@ void main()
|
|||
vary_directional.rgb = atmosAffectDirectionalLight(1.0f);
|
||||
|
||||
col.rgb = col.rgb*diffuse_color.rgb;
|
||||
#if (INDEX_MODE != NON_INDEXED_NO_COLOR)
|
||||
|
||||
#if USE_VERTEX_COLOR
|
||||
vertex_color = col;
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -607,7 +607,7 @@ void main()
|
|||
vec3 npos = normalize(-pos.xyz);
|
||||
|
||||
#define LIGHT_LOOP(i) \
|
||||
frag_color.rgb = frag_color.rgb + calcPointLightOrSpotLight(light_diffuse[i].rgb, npos, diffuse.rgb, final_specular, pos.xyz, norm.xyz, light_position[i], light_direction[i].xyz, light_attenuation[i].x, light_attenuation[i].y, light_attenuation[i].z);
|
||||
col.rgb = col.rgb + calcPointLightOrSpotLight(light_diffuse[i].rgb, npos, diffuse.rgb, final_specular, pos.xyz, norm.xyz, light_position[i], light_direction[i].xyz, light_attenuation[i].x, light_attenuation[i].y, light_attenuation[i].z);
|
||||
|
||||
LIGHT_LOOP(1)
|
||||
LIGHT_LOOP(2)
|
||||
|
|
@ -617,6 +617,7 @@ void main()
|
|||
LIGHT_LOOP(6)
|
||||
LIGHT_LOOP(7)
|
||||
|
||||
frag_color.rgb = col.rgb;
|
||||
frag_color.a = diffcol.a*vertex_color.a;
|
||||
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ uniform sampler2DShadow shadowMap1;
|
|||
uniform sampler2DShadow shadowMap2;
|
||||
uniform sampler2DShadow shadowMap3;
|
||||
|
||||
#if (INDEX_MODE != INDEXED)
|
||||
#if USE_DIFFUSE_TEX
|
||||
uniform sampler2D diffuseMap;
|
||||
#endif
|
||||
|
||||
|
|
@ -58,7 +58,7 @@ VARYING vec3 vary_pointlight_col;
|
|||
VARYING vec2 vary_texcoord0;
|
||||
VARYING vec3 vary_norm;
|
||||
|
||||
#if (INDEX_MODE != NON_INDEXED_NO_COLOR)
|
||||
#if USE_VERTEX_COLOR
|
||||
VARYING vec4 vertex_color;
|
||||
#endif
|
||||
|
||||
|
|
@ -198,16 +198,21 @@ void main()
|
|||
}
|
||||
|
||||
vec4 diff;
|
||||
#if (INDEX_MODE == INDEXED)
|
||||
|
||||
#if USE_INDEXED_TEX
|
||||
diff = diffuseLookup(vary_texcoord0.xy);
|
||||
#else
|
||||
#endif
|
||||
|
||||
#if USE_DIFFUSE_TEX
|
||||
diff = texture2D(diffuseMap,vary_texcoord0.xy);
|
||||
#endif
|
||||
|
||||
diff.rgb = pow(diff.rgb, vec3(2.2));
|
||||
#if (INDEX_MODE == NON_INDEXED_NO_COLOR)
|
||||
|
||||
float vertex_color_alpha = 1.0;
|
||||
#else
|
||||
float vertex_color_alpha = vertex_color.a;
|
||||
|
||||
#if USE_VERTEX_COLOR
|
||||
vertex_color_alpha = vertex_color.a;
|
||||
#endif
|
||||
|
||||
vec3 normal = vary_norm;
|
||||
|
|
@ -239,4 +244,3 @@ void main()
|
|||
|
||||
frag_color = color;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,13 +34,17 @@ uniform mat4 modelview_matrix;
|
|||
uniform mat4 modelview_projection_matrix;
|
||||
|
||||
ATTRIBUTE vec3 position;
|
||||
#if (INDEX_MODE == INDEXED)
|
||||
|
||||
#if USE_INDEXED_TEX
|
||||
void passTextureIndex();
|
||||
#endif
|
||||
|
||||
ATTRIBUTE vec3 normal;
|
||||
#if (INDEX_MODE != NON_INDEXED_NO_COLOR)
|
||||
|
||||
#if USE_VERTEX_COLOR
|
||||
ATTRIBUTE vec4 diffuse_color;
|
||||
#endif
|
||||
|
||||
ATTRIBUTE vec2 texcoord0;
|
||||
|
||||
#if HAS_SKIN
|
||||
|
|
@ -69,7 +73,7 @@ VARYING vec3 vary_fragcoord;
|
|||
VARYING vec3 vary_position;
|
||||
VARYING vec3 vary_pointlight_col;
|
||||
|
||||
#if (INDEX_MODE != NON_INDEXED_NO_COLOR)
|
||||
#if USE_VERTEX_COLOR
|
||||
VARYING vec4 vertex_color;
|
||||
#endif
|
||||
|
||||
|
|
@ -164,7 +168,7 @@ void main()
|
|||
|
||||
#endif
|
||||
|
||||
#if (INDEX_MODE == INDEXED)
|
||||
#if USE_INDEXED_TEX
|
||||
passTextureIndex();
|
||||
vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
|
||||
#else
|
||||
|
|
@ -177,7 +181,7 @@ void main()
|
|||
|
||||
calcAtmospherics(pos.xyz);
|
||||
|
||||
#if (INDEX_MODE == NON_INDEXED_NO_COLOR)
|
||||
#if !USE_VERTEX_COLOR
|
||||
vec4 diffuse_color = vec4(1,1,1,1);
|
||||
#endif
|
||||
|
||||
|
|
@ -198,7 +202,7 @@ void main()
|
|||
|
||||
col.rgb = col.rgb*dff;
|
||||
|
||||
#if (INDEX_MODE != NON_INDEXED_NO_COLOR)
|
||||
#if USE_VERTEX_COLOR
|
||||
vertex_color = col;
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -1213,7 +1213,9 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
|
|||
gDeferredSkinnedAlphaProgram.mShaderFiles.push_back(make_pair("deferred/alphaV.glsl", GL_VERTEX_SHADER_ARB));
|
||||
gDeferredSkinnedAlphaProgram.mShaderFiles.push_back(make_pair("deferred/alphaF.glsl", GL_FRAGMENT_SHADER_ARB));
|
||||
gDeferredSkinnedAlphaProgram.mShaderLevel = mVertexShaderLevel[SHADER_DEFERRED];
|
||||
gDeferredSkinnedAlphaProgram.addPermutation("INDEX_MODE", "2");
|
||||
gDeferredSkinnedAlphaProgram.addPermutation("USE_DIFFUSE_TEX", "1");
|
||||
gDeferredSkinnedAlphaProgram.addPermutation("USE_INDEXED_TEX", "0");
|
||||
gDeferredSkinnedAlphaProgram.addPermutation("USE_VERTEX_COLOR", "1");
|
||||
gDeferredSkinnedAlphaProgram.addPermutation("HAS_SKIN", "1");
|
||||
gDeferredSkinnedAlphaProgram.addPermutation("IS_AVATAR_SKIN", "0");
|
||||
success = gDeferredSkinnedAlphaProgram.createShader(NULL, NULL);
|
||||
|
|
@ -1409,7 +1411,11 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
|
|||
gDeferredAlphaProgram.mShaderFiles.clear();
|
||||
gDeferredAlphaProgram.mShaderFiles.push_back(make_pair("deferred/alphaV.glsl", GL_VERTEX_SHADER_ARB));
|
||||
gDeferredAlphaProgram.mShaderFiles.push_back(make_pair("deferred/alphaF.glsl", GL_FRAGMENT_SHADER_ARB));
|
||||
gDeferredSkinnedAlphaProgram.addPermutation("INDEX_MODE","0");
|
||||
|
||||
gDeferredSkinnedAlphaProgram.addPermutation("USE_DIFFUSE_TEX", "0");
|
||||
gDeferredSkinnedAlphaProgram.addPermutation("USE_INDEXED_TEX", "1");
|
||||
gDeferredSkinnedAlphaProgram.addPermutation("USE_VERTEX_COLOR", "1");
|
||||
|
||||
gDeferredSkinnedAlphaProgram.addPermutation("HAS_SKIN","1");
|
||||
gDeferredSkinnedAlphaProgram.addPermutation("IS_AVATAR_SKIN","0");
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue