在OpenGL中绘制复杂曲面

时间:2014-01-23 00:28:30

标签: opengl graphics 3d

我想知道用于渲染复杂曲面的技术,这些曲面无法用OpenGL中的数学方程式(如汽车)来表示。我们是通过组合这么多基本元素(球体,锥形......)来创建的吗?还是有一些其他的方法? 我即将开始创建一个可以渲染3D汽车并想知道从哪里开始的应用程序。

3 个答案:

答案 0 :(得分:4)

您可以使用第三方工具(例如Blender)创建可以导出然后在OpenGL中呈现的模型。这些模型通常由三角形组成,但使用类似于2D笔和纸的3D工具绘制。

以下是有关此主题的教程:OpenGL Model Tutorial

答案 1 :(得分:2)

是的,OpenGL通过绘制许多基本元素(称为“基元”)来生成图像。

最常用的基元是三角形和四边形(或“四边形”,通常实现为两个三角形)。 (还有绘制线条和点基元的规定,但这些通常不用于绘制逼真的曲面。)

复杂曲面用三角形或四边形网格近似。隐藏表面移除通常通过使用深度贴图来完成:靠近相机绘制的图元禁止并以每个像素为基础覆盖更远的图元。

为了降低生成良好图像所需的曲面细分级别,OpenGL支持在三角形(和四角形)角之间插入(虚构的)切平面。这种廉价的近似,称为“阴影法线”,实际上消除了刻面的外观,否则会破坏连续表面与适度数量的基元近似。

答案 2 :(得分:1)

从头开始设计对象非常困难。 OpenGL是多边形渲染机。 Usualy对象由椎骨代表它们的3D位置以及它们如何构成obj file的指数。您可以找到一些代表汽车的obj文件或其他任何东西并进行渲染。还有一种使用补丁设计复杂模型的替代方法。补丁用于CAD程序,以便更好地控制模型patches。要制作更复杂的模型,您可以将许多补丁连接在一起。