|
发表于 2010-12-16 17:59:16
|
显示全部楼层
Decal的效果就是覆盖点之前的texture吧?
我用3dLab shaderGen得到的实现等同OPENGL两个纹理贴图, T0 GL_MODULATE T1 GL_DECAL, 的效果的fragment shader是:
- uniform sampler2D texUnit0;
- uniform sampler2D texUnit1;
- void main (void)
- {
- vec4 color;
- color = gl_Color;
- color *= texture2D(texUnit0, gl_TexCoord[0].xy);
- vec4 texture1 = texture2D(texUnit1, gl_TexCoord[1].xy);
- vec3 tempColor1 = mix(color.rgb, texture1.rgb, texture1.a);
- color = vec4 (tempColor1, color.a);
- gl_FragColor = color;
- }
复制代码 可以看出,如果texture1的alpha是1.0的话,最后的颜色的rgb将会是texture1的rgb,与光照及t0都没有关系了。 |
|