我想知道用于渲染复杂表面的技术,而复杂表面无法用OpenGL
中的数学方程式(例如汽车)表示。我们是否通过将如此多的基本元素(球体,锥,...)结合来创建它?还是还有其他方法?我将开始创建一个将渲染3D汽车并想知道从哪里开始的应用程序。
您可以使用第三方工具,例如Blender来创建可以导出然后在OpenGL中渲染的模型。这些模型通常由三角形组成,但用类似于2d的笔和纸的3D工具绘制。
这是有关该主题的教程:OpenGL模型教程
是的,OpenGL通过绘制许多基本元素(称为"原始词")来产生图像。
最常用的原始原则是三角形和四边形(或通常用作两个三角形)的"四边形"。(也有用于绘图线和点原始素的规定,但通常不是用于绘制逼真的表面。)
复合表面用三角形或四角形的网近似。隐藏的表面去除通常是通过使用深度图进行的:靠近摄像机靠近摄像机的原语会以每个像素为基础。
。为了降低产生良好图像所需的镶嵌水平,OpenGL支持三角形(和四方)角之间(虚拟)切线平面的插值。这种廉价的近似值,称为"遮荫正常",实际上消除了偶数的外观,否则它将变成近似于较少数量的原始物的连续表面。
很难从头开始设计对象。OpenGL是多边形渲染机。通常的对象由Verteces表示其3D位置以及如何控制OBJ文件的索引。您可以找到一些代表汽车的OBJ文件,例如其他任何东西并渲染它。另外,还有一种使用补丁设计复杂模型的替代方法。补丁用于CAD程序中,以更好地控制模型补丁。为了制作更复杂的模型,您将许多补丁调节。