[英]OpenGL ES 2.0 Android Clipping Color
我正在使用片段着色器來裁剪OpenGL ES 2.0中的對象。 一切工作正常,但是修剪的表面的顏色全是黑色...我不知道如何更改顏色(理想情況下,我想使對象的其余部分具有相似的紋理。我下面的片段着色器的代碼。
precision mediump float;
varying vec2 texCoord;
varying vec3 v_Normal;
varying vec3 v_Position;
varying vec4 originalPosition;
uniform sampler2D texSampler2D;
uniform vec3 lightPosition;
uniform vec4 lightColor;
void main()
{
vec3 L = normalize(lightPosition - v_Position);
vec3 N = normalize(v_Normal);
float NdotL = max(dot(N,L),0.0);
if(originalPosition.y >= 2.0){
discard;
}else{
gl_FragColor = NdotL * lightColor * texture2D(texSampler2D, texCoord);
}
}
使用丟棄在片段着色器不會呈現任何的像素,它只是離開它,正是因為它是以前的,所以黑色可能是你清晰的彩色或任何你以前渲染。 如果要為當前要丟棄的像素渲染特定的顏色,請向着色器添加另一種uniform
的剪輯顏色,如下所示:
uniform vec4 clipColor;
以與設置lightColor
相同的方式進行設置,然后可以在裁剪時將像素設置為:
if(originalPosition.y >= 2.0) {
gl_FragColor = clipColor;
} else {
gl_FragColor = NdotL * lightColor * texture2D(texSampler2D, texCoord);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.