多边形建模
编辑在3D计算机图形学中,多边形建模是一种通过使用多边形网格表示或近似对象的表面来建模对象的方法。多边形建模非常适合扫描线渲染,因此是实时计算机图形的首选方法。表示3D对象的替代方法包括NURBS曲面、细分曲面和光线追踪器中使用的基于方程的表示。
几何理论和多边形
编辑网格建模中使用的基本对象是一个顶点,即三维空间中的一个点。由一条直线连接的两个顶点成为一条边。三个顶点,由三个边缘彼此连接,限定一个三角形,这是最简单的多边形在欧几里德空间。更复杂的多边形可以由多个三角形创建,也可以创建为具有3个以上顶点的单个对象。四边多边形(通常称为四边形)和三角形是多边形建模中最常用的形状。一组通过共享顶点相互连接的多边形,一般称为一个元素.构成元素的每个多边形称为面。
在欧几里得几何中,任意三个不共线的点确定一个平面。出于这个原因,三角形总是位于一个平面上。然而,对于更复杂的多边形,这不一定是正确的。三角形的平面特性使得确定它们的表面法线变得简单,这是一个垂直于三角形表面的三维向量。表面法线对于确定光线追踪中的光线传输非常有用,并且是流行的Phong着色模型的关键组成部分。一些渲染系统使用顶点法线而不是面法线,以更多处理为代价创建更好看的照明系统。请注意,每个三角形都有两个面法线,它们指向彼此相反的方向。在许多系统中,只有这些法线中的一个被认为是有效的——多边形的另一侧被称为背面,可以根据程序员的需要使其可见或不可见。
许多建模程序并没有严格执行几何理论;例如,两个顶点可能有两条不同的边连接它们,占据完全相同的空间位置。两个顶点也可能存在于相同的空间坐标中,或者两个面存在于相同的位置。像这样的情况通常是不希望的,许多包支持自动清理功能。但是,如果不存在自动清理,则必须手动删除它们。
由共享顶点连接的一组多边形称为网格。为了使网格在渲染时看起来有吸引力,xxx是非自相交的,这意味着没有边穿过多边形。另一种看待这个问题的方式是网格不能刺穿自己。还希望网格不包含任何错误,例如双顶点、边或面。出于某些目的,网格必须是流形——也就是说,它不包含孔洞或奇异点(网格的两个不同部分由单个顶点连接的位置)。
多边形网格的构建
编辑虽然可以通过手动指定顶点和面来构建网格,但使用各种工具构建网格更为常见。多种3D图形软件包可用于构建多边形网格。
构建网格的一种更流行的方法是框建模,它使用两个简单的工具:
- 该细分工具,通过添加新的顶点分割面和边成小块。例如,将通过在中心添加一个顶点和在每条边缘添加一个顶点来细分正方形,从而创建四个较小的正方形。
- 的挤出工具被施加到面或一组面。它创建一个大小和形状相同的新面,该面通过面连接到每个现有边。因此,在方形面上执行拉伸操作将在该面的位置创建一个连接到表面的立方体。
第二种常见的建模方法有时称为膨胀建模或挤压建模。在这种方法中,用户创建一个2D形状,它从照片或绘图中追踪对象的轮廓。然后,用户从不同的角度使用对象的第二张图像,并将2D形状挤出为3D,再次遵循形状的轮廓。这种方法对于创建面部和头部特别常见。一般情况下,美术师会对头部的一半进行建模,然后复制顶点,将它们相对于某个平面的位置反转,然后将两个部分连接在一起。这确保模型将是对称的。
创建多边形网格的另一种常用方法是将各种图元连接在一起,这些图元是由建模环境创建的预定义多边形网格。常见的原语包括:
- 立方体
- 金字塔
- 气缸
- 2D图元,例如正方形、三角形和圆盘
- 特殊的或深奥的原语,如犹他茶壶或苏珊娜,Blender的猴子吉祥物。
- 球体-球体通常以两种方式之一表示:
- Icospheres是具有足够数量的三角形以类似于球体的二十面体。
- UV球体由四边形组成,类似于一些球体上看到的网格——四边形在球体的“赤道”附近较大,在“两极”附近较小,最终终止于单个顶点。
最后,存在一些构建高细节或低细节网格的专门方法。基于草图的建模是一个用户友好的界面,用于快速构建低细节模型,而3D扫描仪可用于以几乎自动的方式基于现有的现实世界对象创建高细节网格。这些设备非常昂贵,通常仅供研究人员和行业专业人士使用,但可以生成高精度的亚毫米数字表示。
多边形建模的扩展
编辑一旦构建了多边形网格,必须采取进一步的步骤才能将其用于游戏、动画等。必须对模型进行纹理映射以将颜色和纹理添加到表面,并且必须为其提供动画骨架。还可以为网格分配权重和重心以用于物理模拟。
要在建模环境之外的计算机屏幕上显示模型,必须以下列文件格式之一存储该模型,然后使用或编写能够从该格式加载的程序。显示3D多边形模型的两种主要方法是OpenGL和Direct3D。这两种方法都可以在有或没有3D加速显卡的情况下使用。
多边形建模的优点和缺点
编辑使用多边形表示对象有很多缺点。多边形无法准确表示曲面,因此必须使用大量多边形来以视觉上吸引人的方式来近似曲线。使用复杂模型会降低速度。在扫描线转换中,必须转换和显示每个多边形,无论大小,并且在任何给定时间屏幕上经常会出现大量模型。通常,程序员必须使用不同细节级别的多个模型来表示同一对象,以减少正在渲染的多边形数量。
多边形的主要优点是它们比其他表示更快。虽然现代显卡可以以每秒60帧或更高的帧速率显示高度详细的场景,但表面建模器(显示非多边形模型的主要方式)无法实现交互式帧速率(10帧/秒或更高)。更高)具有相似数量的细节。使用sprites是多边形的另一种替代方案,必须单独创建每个所需的姿势,而如果应用适当的运动数据,单个多边形模型可以执行任何运动,并且可以从任何角度查看。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/128705/