1

请查看源代码,它看起来像甜菜根沙拉,但也许你们中的一个人会发现为什么它会呈现故障纹理四边形。我花了很多时间寻找错误而没有结果。我尝试渲染四边形(两个三角形),对其进行纹理化并与顶点颜色混合。据我了解,纹理坐标会发生错误。

更新:

纹理原图

截图_gl_FragColor = vec4( 1.0, 0.0, 0.0, 0.5 );

截图_gl_FragColor = texColor;

截图_gl_FragColor = vec4( v_texCoord.x, v_texCoord.y, 0.0, 0.5 );

4

1 回答 1

1

手动调试 OpenGL 着色器时,有一种策略可以定位问题所在。我们将gl_FragColor用来转储着色器中各种计算的结果。

例如,我们将您更改gl_FragColor = texColor * v_color;gl_FragColor = vec4( 1.0, 0.0, 0.0, 0.5 );以查看几何图形是否正确渲染。如果你看到一个全屏的红色四边形,这意味着你的顶点变换是好的。

继续,检查你的纹理坐标:gl_FragColor = vec4( v_texCoord.x, v_texCoord.y, 0.0, 0.5 );结果应该是一个渐变的红色/绿色渐变。

错误的颜色渐变意味着您的 UV 纹理坐标错误。的确。您没有在void Render(Context* context).

于 2013-11-14T11:33:35.120 回答