【OpenGL】nehe教程第四、五课学习笔记
2017-03-23 21:35
274 查看
nehe的第四课主要讲了旋转glrotatef函数,
glrotatef函数是用来旋转坐标系的,一共有四个参数,第一个是旋转角度,第2-4个分别是x、y、z轴。
角度是按照360一周来计算的,正值的话如果是从各个轴正方向看去(方向与负方向一致)是逆时针旋转。
各个轴参数只能是两个值,0或者1,其他非0的数也会按照1来处理,比如glrotatef(45,0.0f,0.0f,1.0f)会使坐标轴z旋转45.
所以glrotatef函数有局限性,如果想让三个轴旋转不同角度,需要写三次函数。
同时经过测试,如果要产生动态旋转,需要将角度用变量表示,每次加上0.1便有不慢的旋转速度,猜测opengl应该是每帧会调用一次DrawGLScene,类似unity的update函数。
如果将glrotatef放在gltranslate前面,则会发生物体绕一个位置旋转的情况,将不再是自身旋转。
这是测试角度不为0和1的测试图,结果一致。
这是glrotatef在gltranslate前面的情况,类似于行星绕太阳旋转
第四课的主要内容是搭建一个三维的金字塔,跟以前的课比,主要是我们要在z轴上动动手脚啦。
笔者遇到的一个问题是一个GL_POLYGON内无法封底。nehe在教程中作为彩蛋留下的,好吧,我是用另一个GL_POLYGON封的底。
在这个过程,我发现一个诡异的过程,POLYGON第一个点至关重要,它会跟所有其他的点连在一起,也就是说GL_POLYGON构成的面,是由第一个点,和两个临近的点完成的。而nehe的代码中,每一个面点都重复是没有用的,笔者讲其他的顶部红点去掉后,展示的效果是一样的。
正方体就不说了,QUADS能封面
如果有哪位大神做出了不一样的结论,恳请能在底部留言,教我一下怎么做的。
glrotatef函数是用来旋转坐标系的,一共有四个参数,第一个是旋转角度,第2-4个分别是x、y、z轴。
角度是按照360一周来计算的,正值的话如果是从各个轴正方向看去(方向与负方向一致)是逆时针旋转。
各个轴参数只能是两个值,0或者1,其他非0的数也会按照1来处理,比如glrotatef(45,0.0f,0.0f,1.0f)会使坐标轴z旋转45.
所以glrotatef函数有局限性,如果想让三个轴旋转不同角度,需要写三次函数。
同时经过测试,如果要产生动态旋转,需要将角度用变量表示,每次加上0.1便有不慢的旋转速度,猜测opengl应该是每帧会调用一次DrawGLScene,类似unity的update函数。
如果将glrotatef放在gltranslate前面,则会发生物体绕一个位置旋转的情况,将不再是自身旋转。
这是测试角度不为0和1的测试图,结果一致。
这是glrotatef在gltranslate前面的情况,类似于行星绕太阳旋转
第四课的主要内容是搭建一个三维的金字塔,跟以前的课比,主要是我们要在z轴上动动手脚啦。
笔者遇到的一个问题是一个GL_POLYGON内无法封底。nehe在教程中作为彩蛋留下的,好吧,我是用另一个GL_POLYGON封的底。
在这个过程,我发现一个诡异的过程,POLYGON第一个点至关重要,它会跟所有其他的点连在一起,也就是说GL_POLYGON构成的面,是由第一个点,和两个临近的点完成的。而nehe的代码中,每一个面点都重复是没有用的,笔者讲其他的顶部红点去掉后,展示的效果是一样的。
正方体就不说了,QUADS能封面
如果有哪位大神做出了不一样的结论,恳请能在底部留言,教我一下怎么做的。
相关文章推荐
- 【OpenGL】nehe教程第二、三课学习笔记
- opengl学习笔记1:vs2013 nehe教程第一课 创建窗口
- 【OpenGL】nehe教程第一课学习笔记
- NeHe OpenGL教程 第四课 旋转
- 2011年冬斯坦福大学公开课 iOS应用开发教程学习笔记(第四课) Views 视图
- 2011年冬斯坦福大学公开课 iOS应用开发教程学习笔记(第四课) Views 视图
- 【OpenGL】(NeHe教程学习)纹理映射及代码实现
- 用OpenInventor实现的NeHe OpenGL教程-第四课
- WhyGL:一套学习OpenGL的框架,及翻写Nehe的OpenGL教程
- WhyGL:一套学习OpenGL的框架,及翻写Nehe的OpenGL教程
- 用OpenInventor实现的NeHe OpenGL教程-第四课
- 【OpenGL】(NeHe教程学习)纹理映射及代码实现
- 《Cocos2d-x高级开发教程》学习笔记 OpenGL部分
- NeHe的OpenGL教程 lesson6-8 学习心得
- 拓幻科技图形学工程师教学手册(第四讲)|一字一字敲出OpenGL学习教程
- 用OpenInventor实现的NeHe OpenGL教程-第四课
- 转起来:Jeff Molofee(NeHe) 的 OPENGL 教程-第四课
- 斯坦福大学公开课 iOS应用开发教程学习笔记(第四课) Views 视图
- NeHe的OpenGL教程 lesson1-5 学习心得
- 2011年冬斯坦福大学公开课 iOS应用开发教程学习笔记(第四课) Views 视图