在计算机屏幕上显示由多边形表示的对象,该过程涉及计算机内部对象的表示,即对象的数据结构,由对象组成的场景的组织结构,以及一系列变换。
从场景到屏幕空间的对象。
并且要执行一系列光栅化处理以生成最终的屏幕图像。
这些方面都涉及特定的处理算法,并且相应的算法具有许多不同的变体。
以下是对3D芯片和相关算法中涉及的图形处理的简要分析。
这些是理解3D图形处理和图形硬件的基础。
具有复杂形状的物体的表面可以通过多边形贴片来近似。
以图1的圆柱体为例,圆柱体表面可以用2N个三角形近似,两个端部可以近似为两个N边形状。
多边形模型在其轮廓上的分段线性特征是该表示的主要视觉缺陷。
改进的唯一方法是增加多边形的分辨率。
对于复杂的形状,为了完全表示其细节,通常使用超过100,000个多边形。
这将消耗大量的数据库访问时间和绘图时间。
放大多边形模型时,会出现连接问题。
这就是所谓的“几何混叠”。
对象的多边形表示可以通过交互式设计或激光扫描设备手动提取。
总之,由多边形表示的对象不是特别适合于交互操作或用于自由形状改变。
在更改对象的形状时,很难确保保留多边形表示的完整性。
将多边形着色所需的信息存储在分层数据结构中。
每个对象表面由指向多边形表的指针定义,该多边形表包含一组近似于表面的多边形,每个多边形由顶点表指向。
指针定义,顶点表包含每个多边形的所有顶点。
在上述一系列变换之后,多边形已被转换为屏幕坐标系。
在屏幕上绘制屏幕多边形是多边形的像素处理,包括光栅化,隐藏表面移除和阴影。
光栅化,隐藏表面消除和阴影是整个3D图形生成过程的最内部处理。
它们是三个二维插值过程。
通过内插屏幕空间的三角形的顶点坐标来执行光栅化,以获得由三角形的边缘截取的三角形内的扫描线段的端点坐标,并进一步确定扫描线的片段上的像素坐标。
通过对屏幕空间三角形的顶点的深度值(Z坐标)进行插值来获得隐藏表面消除,以获得三角形内扫描线段上的每个像素的深度值。
着色处理使用相同的方法从顶点强度确定三角形内的扫描段上的每个像素的强度。
这三个过程的算法具有相同的数学表示,只有坐标,深度或光强度可以代入方程,以获得相应的结果。
综上所述,场景的渲染过程可以概括为:场景中每个对象的每个多边形的几何变换被转换为屏幕空间;确定多边形的每个末端段的端点和其上的每个像素坐标;扫描段上每个像素的隐藏表面消除处理和阴影处理。
对3D图形应用程序中的计算和存储资源的巨大需求以及3D图形生成算法与传统计算机体系结构的不兼容性导致了3D图形硬件。
PC上3D图形硬件的出现只是近几年的问题,而且是技术进步和市场推动的结果。
目前,3D图形硬件同时具有高端专用图形工作站和入门级图形加速器。
任何更好,更快的图形效果都需要巨大的硬件成本。