为了账号安全,请及时绑定邮箱和手机立即绑定

opengl纹理坐标如何工作?

opengl纹理坐标如何工作?

达令说 2019-10-08 15:09:45
我知道在每次调用glVertex之前,必须先执行以下任一操作:glTexCoord(0,0); glTexCoord(0,1); glTexCoord(1,1); glTexCoord(1,0); 但是我不知道它们是什么意思。但是,我知道,如果我将右侧(或除以?)乘以2(或除以?),则我的纹理会扩展;如果相反,我的纹理会重复两次。我设法通过应用操作来编码纹理集,直到它起作用为止。但是我对发生的事情有正确的认识。为什么将它们分开会影响图像,为什么将它们反转会镜像呢?纹理坐标如何工作?
查看完整描述

3 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

OpenGL使用逆纹理。它需要从世界空间(X,Y,Z)到纹理空间(X,Y)到离散空间(U,V)的坐标,其中离散空间位于[0,1]域中。


采取一个多边形,将其视为一张纸。有了这个:


glTexCoord(0,0); 

glTexCoord(0,1); 

glTexCoord(1,1); 

glTexCoord(1,0); 

您告诉OpenGL在整张纸上绘图。应用修改时,纹理空间将相应地修改为给定坐标。例如,这就是为什么当您将相同的纹理划分两次时,您告诉OpenGL映射一半的图纸,而不是整个图纸。


查看完整回答
反对 回复 2019-10-08
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

对于2D图像纹理,纹理坐标中的0,0对应于图像的左下角,而纹理坐标中的1,1对应于图像的右上角。请注意,“图像的左下角”不在左下像素的中心,而是在像素的边缘。


上传图片时也很有趣:


8.5.3纹理图像结构


纹理图像本身(由数据引用)是一组值的序列。第一组是纹理图像的左下角。随后的组从左到右填写宽度width的行;高度行从底部到顶部堆叠,形成一个二维图像切片;和深度切片从后到前堆叠。


请注意,大多数图像格式的数据都从顶部开始,而不是从底部开始。


查看完整回答
反对 回复 2019-10-08
  • 3 回答
  • 0 关注
  • 1165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信