opengl的 GL_FRONT和GL_BACK分析
来源:互联网 发布:可视化数据调度平台 编辑:程序博客网 时间:2024/06/06 00:54
很多学习opengl的同学可能不是很清楚gl_front和gl_back的区别,下面来分析一下,
OpenGL中用表面来表示物体,一个物体就是一组平面。光线照射在平面上会产生反射,入射线与反射线的角平分线就是法线,它垂直于平面。面法线有两种可能的方向,我们称面有两侧。当描述封闭物体的外表面时,法线应该从内部指向外部;而表示在物体内部时,法线应该从外部指向内部。
用glNormal*(N_Vector);指定当前法向矢量。此后的顶点都会使用该法向,直到再次改变。
面的法向矢量是怎么确定的呢?右手手指沿顶点顺序握拳,拇指竖立所指方向即为一个面的法向,如果面对该平面,以逆时针序指定顶点,则法向指向你。当你用这样的顺序指定平面的顶点时,OpenGL能够正确的计算出法向矢量。法矢与顶点坐标一样要经过模型视矩阵变换,这样物体坐标系内的法向矢量就可以正确的变成世界坐标系内的法向矢量,保证最终生成的图像是正确的。
当一个顶点属于多个平面时,该顶点的法向应该取所在所有平面法向的平均值,以使表面棱角部份平滑自然的,否则会有一道黑线。
我们把平面的法向所指一侧称为前面,另一侧称为后面,可以为两侧分别指定不同的属性,所以glMaterial*命令的第一个参数必须是GL_FRONT/GL_BACK/GL_FRONT_AND_BACK之一。
- opengl的 GL_FRONT和GL_BACK分析
- 关于颜色缓存 GL_FRONT、GL_BACK、GL_BAK_LEFT、GL_FRONT_LEFT......
- OpenGL 和 OpenGL ES的一点区别
- 通过cocos2d-x的CCGLProgram和CCShaderCache的实现来分析OpenGL ES中的Shader编程
- 通过cocos2d-x的CCGLProgram和CCShaderCache的实现来分析OpenGL
- opengl 分析
- 分析一个别人的qt+opengl例子
- OpenGL ES的API简单分析
- Opengl和D3D的区别
- Opengl和D3D的区别
- OpenGL的位图和图像
- OpenGL和DirectX的介绍
- opengl的变换和矩阵
- OPENGL 和 shader的流程
- OpenGL和Mesa的关系
- OPENGL的位图和图象
- OpenGl 的BeginMode 和 shader
- OpenGL的工作步骤和OpenGL命令的语法规则
- 配置管理建设的一点体会
- 使用Ext的Grid,Form,Dialog来实现分页列表,创建,修改,删除功能
- 第二次课后习题作业
- 图的存储结构-邻接表-边集数组-前向星
- int main(int argc,char* argv[])详解
- opengl的 GL_FRONT和GL_BACK分析
- Unity调用外接摄像头的实例代码(C#)
- android 传感器使用 Compass指南针的实现功能
- 堆排序
- OpenAL快速入门教程
- bitset<>用法
- js 中 typeof 和 instantof 的使用
- [HDU 4666]Hyperspace[最远曼哈顿距离][STL]
- 常见SMTP发送失败原因列表