在利用非固定管线进行纹理渲染的时候,经常要用到纹理和顶点坐标的映射关系,这里从三维角度介绍下二维的纹理坐标映射:
顶点坐标:
首先得明确:
- 顶点坐标是在世界坐标系上(可参考:从渲染过程来理解opengl坐标系和坐标变换投影),这里的世界坐标系投影的屏幕坐标系(可参考:从渲染过程来理解opengl坐标系和坐标变换投影)上,
- x、y如上图所示,z正方向是从屏幕向外,人眼的位置则是在原点(0,0,0),因此只要固定z为-1或者0, 然后绘制一个如上图坐标的四边形,后续就是将纹理贴在这个四边形上。
sampler2D纹理坐标
纹理的生成是由图片像素来生成的,而图像的存储是从左上角开始的,对应于上图,就是图像左上角像素生成的纹理部分就在纹理左下角处,即 上下颠倒。