一.隧道案例效果
二.纹理坐标
纹理坐标主要是把图形映射到OpenGL中去,图形中每个顶点关联到对应的纹理坐标下,值得注意的是纹理坐标有以下特征:
1)纹理坐标的范围是0到1
2) 在OpenGl中,坐标用(x,y,z)表示,对应的纹理左边为(s,r,t)
3)左下角为(0,0),在映射纹理坐标是注意不要让图形卷起来-----映射坐标的时候不要交叉(比如上图,A点映射不变,BC交换位置,则会让图形卷起来,我们一般显示纹理都是平铺,发挥一下你的想象力)
三.隧道案例流程分析
在设置场景中(void SetupRC()):
在绘制场景中(void RenderScene(void)):
总结说明:
1)纹理坐标用MultiTexCoord2f(0, 0.0f, 1.0f);参数一:图层,一般为0,二三对应s,r坐标
2)在载入纹理后记得释放free(pBytes);以免影响下次载入的纹理
3)(仅限个人理解)modelViewMatrix.PushMatrix()&&modelViewMatrix.PopMatrix()成对出现,在观察者看到的世界中,使用OpenGL绘制图形,它是一个绘制完成后再绘制另外一个,压栈和出栈可以理解成告诉OpenGL在对应的这个区间,使用其设置的参数绘制图形,最外层的压栈出栈就是告诉OpenGL,绘制其他所有的图形都必须在这个压栈出栈区间(你可以理解成当我们没有睁开眼睛时,看不见任何物体,当我们睁开眼的时候,说看到的物体在这个区间绘制)
最后附上隧道案例:链接: https://pan.baidu.com/s/13SFTj5mTQ59-2XkSSg4HIw 提取码: 3crd