glGenTextures()的问题

wiselqf 2006-06-07 01:21:37
void glGenTextures(GLsizei n,GLuint *textures);
此函数中,textures必须指向GLuint吗?
现编一程序,纹理数据均是float型的,是不是不能用上述函数产生纹理哪?
望高手多多指教!谢谢
...全文
266 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
corinna 2006-06-08
  • 打赏
  • 举报
回复
楼上的解释挺有创意:)
wiselqf 2006-06-07
  • 打赏
  • 举报
回复
天使:
您好! 你的意思是说
GLuint textureObjects[211];
glEnable(GL_TEXTURE_2D);
glGenTextures(NUM_TEXTURES,textureObjects);
glTexImage2D(GL_TEXTURE_2D, 0, 4, nWidth, nHeight,0, GL_RGBA, GL_FLOAT,pixels);
其中textureObjects为GLuint型,pixels中的数据为float型。这样对马???

谢谢指教!!!!
corinna 2006-06-07
  • 打赏
  • 举报
回复
纹理数据可以是float型的,具体参考glTexImage*D(........)函数
corinna 2006-06-07
  • 打赏
  • 举报
回复
textures
A pointer to the first element of an array in which the generated texture names are stored.
这里的textures并不是纹理内容,而是纹理单元,纹理内容是用glTexImage*D来设置的,几维的纹理就是几D,目前有glTexImage1D,glTexImage2D,glTexImage3D

使用纹理的步骤:
glEnable(GL_TEXTURE_3D);
glGenTextures(1,&this->m_idTex3d);
glBindTexture(GL_TEXTURE_3D,this->m_idTex3d);

设置纹理参数,比如:
glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glTexParameterf(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameterf(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_CLAMP);
glTexParameterf(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_CLAMP);
glTexParameterf(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);

load纹理数据,比如: glTexImage3D(GL_TEXTURE_3D,0,GL_RGBA,width,height,depth,0,GL_RGBA,GL_UNSIGNED_BYTE,data);


19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧