计算机如何将对象呈现到屏幕上?

计算机如何将对象呈现到屏幕上?

所有计算机图形都是用多边形渲染的吗?我的意思是,一些计算机几何图形以方程的形式在数学上表示(例如,CAD 软件)。

计算机是否必须先对这些几何图形进行镶嵌,然后才能正确地将可视化内容渲染到屏幕上,或者是否存在其他方法可以将图片渲染到屏幕上而无需对对象进行镶嵌?

编辑:我猜更具体来说重点是 GPU。GPU 是如何做到的?它需要什么样的输入,即 GPU 可以使用哪些模型格式?它是否可以直接使用完美的数学表示,或者在实际渲染到屏幕之前对模型本身进行细分,或者 GPU 是否需要从一开始就使用细分模型。

另外,我所说的镶嵌是指计算机将物体的数学表示分解为多边形(几乎总是三角形)的表面近似值的方式。使用的多边形越多,表面就越接近实际物体。

答案1

这是您对@nik 的回答的评论的后续内容:

绝大多数 CAD 系统使用多边形(也就是三角形)来渲染其模型。

他们将根据以下情况以各种方式存储模型CSG(构造立体几何)或者B-rep(边界表示)模型为例,但在显示时,这些模型将被分成多面体,并将三角形发送到 GPU 进行绘制。

每个系统都有自己的将模型分解成三角形的解决方案。

答案2

我不确定你是出于何种程度的好奇心问这个问题,
但总的来说,我建议你去看看维基百科电脑图像页。

还有计算机图形学和动画的批判史链接在那里。
您可以从其内容页面跳转到您感兴趣的部分。


更新:我想知道你的问题是否基于与此相关的概念无限详情地点。

当今大多数 3D 图形都是基于所谓的多边形系统;该系统用称为多边形的小平面形状构建事物。

...

目前 3D 图形中使用的三种系统是光线追踪、多边形和点云/体素,它们各有优缺点。多边形运行速度快但几何形状较差,光线追踪和体素几何形状完美但运行速度很慢。

ETC...

答案3

如果你真的希望深入了解 GPU 机制和渲染技术,现在可以在线找到以下书籍:

GPU Gems 3,Addison-Wesley Professional(2007 年 8 月 12 日)

《GPU Gems 3》由 NVIDIA 开发者教育经理 Hubert Nguyen 编辑。Hubert 是一名图形工程师,在调到现职之前曾在 NVIDIA 演示团队工作。他的作品曾出现在《GPU Gems》(Addison-Wesley,2004 年)和《GPU Gems 2》的封面上。

GPU Gems 3 是一系列最先进的 GPU 编程示例。它旨在让数据并行处理发挥作用。前四节重点介绍 GPU 在几何、照明和阴影、渲染和图像效果等领域的图形特定应用。第五节和第六节的主题通过提供非图形应用的具体示例来扩大范围,这些应用现在可以通过数据并行 GPU 技术来解决。这些应用多种多样,从刚体模拟到流体流动模拟,从病毒签名匹配到加密和解密,从随机数生成到高斯计算。

以前的版本也在线并且仍然非常值得阅读:

GPU Gems:实时图形编程技术、技巧和窍门,由 Randima Fernando 编辑,2004 年 3 月

GPU Gems 2:图形和计算密集型编程技术,由 Matt Pharr 编辑,2005 年 3 月

《编程顶点、几何和像素着色器》,第二版,作者:Wolfgang Engel、Jack Hoxley、Ralf Kornmann、Niko Suni 和 Jason Zink,2008 年 12 月

最后一本书的草稿并不完美,但在某些地方却非常有价值。Jack Hoxley 撰写的照明章节详细解释了各种照明模型以及可用的着色器代码。

答案4

在计算历史中,不同的 GPU 以不同的方式实现事物,考虑到分辨率、准确性、刷新率和显示器的功能,并随着时间的推移实现新的、更有趣的 API。

例如,一些GPU提供完整的3D世界观表示接口,而其他GPU的功能则较差。

如今,ASIC(及其他)是 GPU 发挥魔力的核心。将诸如在子程序中完全运行虚拟机之类的复杂功能嵌入硅片的能力是实现所有魔力的关键。除了曲面细分之外,还有表面映射、阴影等,所有这些都在 GPU 逻辑中处理。

希望这有帮助!
-pbr

相关内容