Please look at source code it looks like salad of beetroot but maybe one of you will find why it renders glitch textured quad. I spent a lot of time to find mistake without results. I try to render quad (two triangles), texture it and blend with vertex colors. As I understand mistake happens with texture coordinates.

Update:

original picture of texture;

screenshot for gl_FragColor = vec4( 1.0, 0.0, 0.0, 0.5 );

screenshot for gl_FragColor = texColor;

screenshot for gl_FragColor = vec4( v_texCoord.x, v_texCoord.y, 0.0, 0.5 );

有帮助吗?

解决方案

When debugging OpenGL shaders by hand, there is a strategy to localize where the problem is. We will use gl_FragColor to dump the results of various calculations within your shaders.

For example, we change your gl_FragColor = texColor * v_color; to gl_FragColor = vec4( 1.0, 0.0, 0.0, 0.5 ); to see if the geometry is rendered correctly. If you see a fullscreen red quad, this means your vertex transformations are ok.

Move on, check your texture coordinates: gl_FragColor = vec4( v_texCoord.x, v_texCoord.y, 0.0, 0.5 ); The result should be a gradual red/green color ramp.

The wrong color ramp means your UV texture coordinates are wrong. Indeed. You don't setup texture coordinates in void Render(Context* context).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top