首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL texture1D

OpenGL texture1D
EN

Stack Overflow用户
提问于 2014-03-07 08:37:36
回答 1查看 1.3K关注 0票数 0

我正在尝试从片段着色器中读取一个texture1d:

代码语言:javascript
复制
uniform sampler1D world;

..。

代码语言:javascript
复制
texelFetch(world, 0, 0);

我上传w,其中w=123.0f w1=123.0f...:

代码语言:javascript
复制
glActiveTexture(GL_TEXTURE0);
glGenTextures(1, &pt->world);
glBindTexture(GL_TEXTURE_1D, pt->world);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA32F, 2, 0, GL_RGBA, GL_FLOAT, &w);

绑定:

代码语言:javascript
复制
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_1D, pt->world);
glUniform1i(glbPTworld, 0);

但是,当我在glTexImage1D中使用不同于1的宽度时,片段着色器读取vec4(0,0,0,1)而不是vec4(123,123,123)。另外,如果我使用:

代码语言:javascript
复制
glGetTexImage(GL_TEXTURE_1D, 0, GL_RGBA, GL_FLOAT, x);

为了取回纹理,我看到了期望值。

EN

回答 1

Stack Overflow用户

发布于 2014-03-07 11:28:57

我在您的代码中看到了几个危险信号,尽管我不确定它们是否与问题相关。首先,你告诉OpenGL你的纹理只有2个像素宽。对吗?

其次,将GL_TEXTURE_2D传递给glTexParameteri(),但使用的是GL_TEXTURE_1D纹理目标。这似乎是错的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22239196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档