OpenGL®3D模型在最一般的意义上是三维(3D)空间中连接点的集合,称为顶点,这些点组合起来形成一系列多边形,这些多边形可以被渲染来表示虚拟空间中的对象。几乎所有非形状基元(如三角形)的3D对象都可以被视为OpenGL®3D模型。...
OpenGL®3D模型在最一般的意义上是三维(3D)空间中连接点的集合,称为顶点,这些点组合起来形成一系列多边形,这些多边形可以被渲染来表示虚拟空间中的对象。几乎所有非形状基元(如三角形)的3D对象都可以被视为OpenGL®3D模型。从更实际的意义上说,对OpenGL®3D模型的引用通常是指在3D建模程序中构建的复杂3D对象。完整的模型通常包括纹理、曲面法线和凹凸贴图,对于动画对象,骨骼信息和顶点权重。完整的OpenGL 3D模型通常包括纹理、曲面法线和凹凸贴图,对于动画对象,还包括骨骼信息和顶点权重。OpenGL®被设计成一个图形函数库,用于快速显示程序,因此,它不提供任何真正的高层次的三维模型支持。相反,中间编程库通常用于从流行的文件格式加载模型,并将其放入内存中的数据结构中,以便OpenGL®使用。完全实现的OpenGL®3D模型的创建非常复杂,因此几乎总是可以完成功能齐全的建模软件。虽然库可以用来将完整的模型加载到OpenGL中,但实际实现诸如动画或运动之类的功能需要程序员编写代码,因为OpenGL®除了显示模型外,没有与生俱来的能力。并非所有的OpenGL®3D模型都需要从文件中加载。它们可以使用一系列算法或程序在程序中构造。这些程序生成的模型可以是扩展的基本体,如球体或圆环体,也可以是更复杂的形状,如螺旋体通过使用分形算法,可以根据需要制作和操作近似山峦、树木或涟漪水面的三维模型。使用OpenGL®3D模型时会出现一些复杂的问题。最常见的是读取文件的问题,因为并不是所有的3D建模者都提供了文件保存的规范。另一个问题可能是存储顶点、纹理或材质信息的专有方法。这意味着模型的某些部分可能会被反向加载,或者纹理映射可能完全没用。无论文件格式如何,OpenGL®3D模型都会遇到一个问题,即从建模器到OpenGL®的细分曲面。有时会使用一个公式将四边形等曲面分解为三角形,而OpenGL®可能会使用另一个公式。这可能会导致模型在表面出现孔洞,这是一个很难解决的问题。不好的细分也会导致模型被过度细分,导致一个简单的模型随着多边形数量的增加变得非常占用内存
-
发表于 2020-08-07 05:52
- 阅读 ( 740 )
- 分类:电脑网络