我要发帖 回复

新手上路

1

主题

14

积分

0

专家分

:

私信
发表时间 : 2009-11-26 19:50:31 | 浏览 : 1463    评论 : 0
这个问题纠结了一个下午了,我有一个3维的浮点数组,数值有正负的,传进GPU后读取纹理数,负数全部变成了0,正数大于1的全变1.0,只有0.0~1.0之间的数正常.为什么呢?
OPENGL的代码如下:
glGenTextures(1,&(texsetting->texID));
glBindTexture(texsetting->target,texsetting->texID);
glTexImage3DEXT(GL_TEXTURE_3D, 0, GL_RGB, 256,
256, 256, 0,GL_RGB ,GL_FLOAT, data); //data就是我写入纹理的数组,大小是3*256^3.
if(glGetError()!=GL_NO_ERROR)
{
printf("glTexImage3DEXT()\t\t\t[FAIL]\n");
exit(ERROR_TEXTURE);
}
else
{
printf("glTexImage3DEXT()\t\t\t[PASS]\n");
}
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glTexParameteri(texsetting->target, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(texsetting->target, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(texsetting->target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(texsetting->target, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
glTexParameteri(texsetting->target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
以上代码执行时OPENGL没有报错,但是我在片段程序里读到的纹理就出现了上面的那种情况.纠结.不知道哪里出问题...

最近VR访客

手机版|VR开发网 ( 津ICP备18009691号 ) 统计 网安备12019202000257

GMT+8, 2020-9-20 07:55 PM

返回顶部