Java Android OpenGL ES 2.0片段着色器texture2D不工作
我有一个问题,如果我试图渲染纹理四边形,屏幕上不会显示任何内容。 一个简单的彩色四边形效果很好。 似乎只有当我使用“texture2D”函数时,一切都不起作用。 但是,如果我编译着色器或链接程序,我不会收到任何错误消息
此工作(屏幕上显示红色四元):
uniform sampler2D un_TextureUnit;
varying vec2 fr_UV;
void main()
{
gl_FragColor = vec4(1, 0, 0, 1);
}
这不起作用(屏幕上没有显示任何内容):
uniform sampler2D un_TextureUnit;
varying vec2 fr_UV;
void main()
{
gl_FragColor = texture2D(un_TextureUnit, fr_UV);
}
这不起作用(屏幕上也没有显示):
uniform sampler2D un_TextureUnit;
varying vec2 fr_UV;
void main()
{
vec4 c = texture2D(un_TextureUnit, vec2(0.5, 0.5));
gl_FragColor = vec4(1, 0, 0, 1);
}
请注意,我只更改为着色器,代码中没有任何内容。 仅当我使用“texture2D”函数时,着色器似乎无法编译,但我不会收到任何错误消息
# 1 楼答案
我的片段着色器可以很好地在三角形上绘制纹理:
所以,我相信问题不在于片段着色器(与我的类似),而在于准备着色器的代码。我建议你检查一下:
无论如何,here有一个很好的教程,教你如何用纹理绘制三角形