尝试在OpenGL桌面中渲染一个矩形,但是使用的内部格式glTexBuffer(...)和相应的代码texelFetch(...)对我来说不起作用.我有正确的原始渲染,只需要纠正纹理缓冲部分.以下是相关的代码段
unsigned char texData [16] =
{
255, 0, 0, 0, //Red
0,255,0,255, //Green
0,0,255,255, //Blue
255,0,255,255, //PINK
};
glGenBuffers( 2,texBuffObj);
glBindBuffer( GL_TEXTURE_BUFFER,texBuffObj[0]);
glBufferData( GL_TEXTURE_BUFFER,sizeof(texData),texData,GL_DYNAMIC_DRAW);
glGenTextures(1, &textureID);
glBindTexture(GL_TEXTURE_BUFFER, textureID);
glTexBuffer(GL_TEXTURE_BUFFER,GL_RGBA8UI,texBuffObj[0]);
Fragement Shader Snippet:
#version 330 core
uniform usamplerBuffer samplerTexBuffer;
out vec4 color;
in vec2 vs_texCoord;
in vec3 vert_Color;
void main()
{
int offset = 8; // 0:RED 4:GREEN 8:BLUE 12:PINK
vec4 colBuff;
colBuff = texelFetch(samplerTexBuffer,offset) ;
color = colBuff;
}
Run Code Online (Sandbox Code Playgroud)
偏移值0的原始颜色:255,0,0,0,//红色
偏移值4原始颜色:0,255,0,255,//绿色
偏移值8原始颜色:0,0,255,255,//蓝色
偏移值12原始颜色:255,0,255,255,// PINK
需要哪些必要的更正?
| 归档时间: |
|
| 查看次数: |
2765 次 |
| 最近记录: |