OpenGLut开发入门教程05:3D化图像
系列教程索引:OpenGLut入门索引
上一篇介绍了如何让二维图片旋转,本篇介绍立体的二维图像(三角形立体后就是金字塔,矩形立体后是箱形立方体)。
对于OpenGL来说,二维图像是忽略了z轴的三维图形,立体图形就是将z轴赋给它。
首先函数基本的架构是:
在main函数中glut*Func()的参数为回调函数,需要在main函数外独立实现。
重要的是四个回调函数:
- initGL,初始化函数
- reshapeGL,尺寸调整函数,当窗口的尺寸发生变化时调用此函数重新绘图
- keyboard,捕获键盘输入并处理
- displayGL,将想要显示的图像绘制出来的函数
其他函数说明见OpenGL函数功能说明系列。
金字塔
以金字塔为例(比矩形立方体难一点),有四个顶点、四个面,每个面由三个点组成。
下图为示意图,每个点在坐标轴上面的垂直投影为1:
1 |
|
四个表面,每个表面有四个顶点,每个顶点设置不同颜色。
测试效果为:
宇宙魔方
四边形立体化为立方体,有六个面,每个面有四个顶点,每个面设置不同颜色。
1 |
|
测试效果为:
共存
将金字塔和立方体显示在同一个窗口中。
操作和将三角形四边形放于同一窗口类似。
效果为:
完整源码在OpenGL_Freshman下的GLUT的05.cube中。
OpenGLut开发入门教程05:3D化图像
https://feater.top/openglut/opengl-3d-object