我想知道在OpenGL
中用于渲染复杂曲面的技术,这些复杂曲面不能用数学公式(如汽车)表示。我们是通过结合如此多的基本元素(球体,锥体......)来创造它吗?或者还有其他一些方法? 我即将开始创建一个应用程序,该应用程序将呈现3D汽车并想知道从哪里开始。在OpenGL中绘制复杂曲面
5
A
回答
4
您可以使用第三方工具(如Blender)创建可以导出并在OpenGL中渲染的模型。这些模型通常由三角形组成,但是用3D工具绘制,类似于2D的笔和纸。
这里是关于主题的教程:OpenGL Model Tutorial
2
是,OpenGL的通过拉伸许多基本元件产生的图像(称为“原语”)。
最常用的基元是三角形和四边形(或“四边形”,通常实现为两个三角形)。 (也有关于绘制线条和点基元的规定,但这些通常不用于绘制逼真的表面。)
复杂曲面近似为三角形或四边形网格。通常通过使用深度图来完成隐藏表面移除:靠近相机绘制的基元以每个像素为基础禁止并覆盖更远的基元。
为了减少生成良好图像所需的曲面细分级别,OpenGL支持在三角形(和四边形)角之间插入一个(虚构的)切平面。这种便宜的近似称为“阴影法线”,实际上消除了多面的外观,否则该多面的外观会损坏与适量的基元近似的连续表面。
1
相关问题
- 1. 使用Mathematica绘制复杂曲线
- 2. 在matlab中绘制曲面
- 3. 当功能非常复杂时,如何更快绘制曲面?
- 4. 在复杂平面上绘制图形
- 5. 如何在OpenGL中绘制有界b样条曲面?
- 6. 如何在OpenGL中绘制曲面法线?
- 7. 在OpenGL中绘制Steiner的罗马曲面
- 8. 用重复的数据绘制曲面
- 9. 在D3中绘制复杂的图形
- 10. 在OpenGL ES而不是Quartz 2D中绘制简单的曲线,直线和圆形要复杂多少?
- 11. OpenGL共面曲面
- 12. 绘制法线到曲面
- 13. 如何在OpenGL中绘制2D不规则曲线形状
- 14. 在opengl中绘制曲线的函数是什么?
- 15. 在OpenGL ES中绘制半透明曲线
- 16. 在OpenGL/GLSL中绘制贝塞尔曲线的内部阴影
- 17. 在OpenGL中绘制线条
- 18. 在opengl中绘制网格
- 19. 在opengl中绘制点
- 20. 在立方体上绘制曲面
- 21. 在iPhone中绘制曲线?
- 22. 在AndEngine中绘制曲线
- 23. 绘制曲线
- 24. 如何用matplotlib将曲面正确绘制为曲面?
- 25. 覆盖matplotlib.artist.Artist绘制复杂形状
- 26. 绘制复杂的I/Q数据
- 27. 如何绘制复杂的多边形?
- 28. KineticJS - 绘制复杂的形状
- 29. 如何使用JFreeChart绘制曲面?
- 30. 绘制曲面上的网格?
您可以使用粗略近似表面的多边形网格。然而,就创造/建模而言,可以通过使用诸如球体,锥体,盒子等基本元素来执行集合操作来完成。这将是被称为[构造实体几何](http:// en。 wikipedia.org/wiki/Constructive_solid_geometry),结果通常会转换为三角形网格,以便进行高效的实时渲染。 –
我建议你看看[实体建模](http://en.wikipedia.org/wiki/Solid_modeling),以获取所有可用方法的更详细概述。请注意,传统上,GPU的设计目标是快速绘制三角形,因此通常无论最初如何创建模型,模型都会变得模样。 –