1
A
回答
3
我假设你要生成几何而不是“雕刻它”。
您需要做的就是像在数学示例中一样生成几何图形,并将其存储在vertex buffer objects(VBO)中。有多种方法可以做到这一点,但通常您需要将顶点信息(位置,常规,纹理坐标,如果有的话)存储在一个缓冲区中,以及这些顶点在另一个(称为索引数组)中被分组为面部的方式。
然后,您可以绑定这些缓冲区并通过一次调用glDrawElements()
来绘制它们。
要小心,面的顶点都是在相同的顺序(逆时针或顺时针)和绕组顺序正确指定给OpenGL,否则你会得到你的壳!
在OpenGL 1.4及更高版本中支持VBOs。在极少数情况下,您的目标平台不支持(首先更新您的驱动程序!),您可以使用Vertex Arrays。他们做的事情几乎是一样的,但是他们在每一帧都通过总线发送时速度较慢。
-1
尽管在程序上建模对象(即在坐标中以数字形式生成坐标)对于学习目的可能没有问题,但它绝对不是您想要做的事情,因为如果您的任何东西比几个三角形更复杂,它变得非常不切实际或者一个cyllinder)。有些人认为程序一代是一门艺术,但是你需要大量的练习才能用这种方法取得好看的(更不用说现实的)结果。
如果你想显示一个更复杂,逼真的模型,采取的办法是:
- 创建的建模工具模型(如自由和强大的
Blender
) - 将它保存到一个文件在给定的格式,
- 在你的程序中,从文件加载对象到存储器(要么您的RAM使用顶点数组或您GPU存储器以显示直接使用顶点缓存对象)并显示它。
通用格式(虽然老不方便的一个)是.obj
(波前OBJ),搅拌机能够保存到这一点,你很可能给谷歌一个OpenGL OBJ装载机(或者你可以滚你自己 - untrivial,但仍然很容易)。
另一种方法是为Blender创建一个导出脚本(非常简单,如果你知道Python)并将该模型保存为包含顶点等的简单二进制文件;然后很容易地将它加载到应用程序代码中。
相关问题
- 1. opengl obj模型加载
- 2. 并行构建OpenGL模型?
- 3. 导入三维模型opengl
- 4. 模型lookAt矩阵 - C++,OpenGL
- 5. iPhone OpenGl:导入3D模型
- 6. 3D CAD模型用OpenGL-ES
- 7. OpenGL 3D模型纹理
- 8. opengl在模型上的选择区域
- 9. 在OpenGl中创建一个模型类
- 10. 在OpenGL程序中加载3D模型
- 11. 在OpenGL中加载3d模型
- 12. OpenGL(ES)半透明模型内的模型
- 13. OpenGL ES2.0模型视图矩阵2D
- 14. 与模型纹理COORDS问题的OpenGL
- 15. 从Maya导入模型到OpenGL与c#
- 16. OpenGL模型加载程序问题
- 17. 模型放慢了游戏速度 - opengl
- 18. 模型的全球位置OpenGL
- 19. OpenGL新手关于模型的问题
- 20. OpenGL 3D中的光滑模型移动
- 21. 出口OpenGL的模型作为.OBJ
- 22. OpenGL ES2.0 flamework(包含加载模型)
- 23. OpenGL窗口切断模型视图
- 24. OpenGL模型,视图,投影矩阵
- 25. OpenGL模型相机预览覆盖
- 26. 3轴OpenGL ES旋转模型
- 27. 将模型导入OpenGL项目
- 28. Android OpenGL ES 2随机模型变形
- 29. OpenGL加载OBJ模型,纹理失真
- 30. OpenGL ES模型加载器示例