人们总是说,当涉及到实时模拟,如电脑游戏时,单个modell的多边形数量必须尽可能少。(或者至少比渲染电影时要低)我完全意识到,为了节省性能,必须这样做。但除了这些信息,我找不到为什么必须避免巨大的多边形数量。
(简而言之:我知道多边形吃表演。我想知道为什么他们吃表演)
所以我的问题是:当一个帧被呈现时会发生什么?多边形一定是以某种方式在图形库中处理的。那里发生了什么?如果可能的话,我想有一些链接到包含这些信息的网站。
发布于 2014-08-27 12:10:42
每当呈现一个框架时,您的图形卡必须将每个多边形角(也称为顶点)的三维空间中的坐标转换为监视器上的二维空间。这是通过将每个顶点乘以一个投影矩阵来实现的,它表示相机的当前位置、角度和视场。
只有在这完成之后,图形卡才知道哪些多边形实际上在屏幕上,而不是在摄像机后面或隐藏在其他多边形后面。然后对每个屏幕上的多边形进行各种其他计算,比如它显示的纹理以及它是如何发光的。
这意味着您的图形卡必须对每个多边形执行多个计算。你拥有的多边形越多,它要计算的就越多。您的图形卡只能执行有限数量的计算每秒,所以更多的多边形意味着一个较低的框架。
发布于 2014-08-27 14:03:21
就像菲利普说的,一个人应该总是为一个特定的目标优化你的模型。这就是说,我想添加一些关于创建3D模型的额外信息。目前,多边形不是瓶颈,而是纹理空间。由于我们烘焙了很多纹理的细节(如:漫射,正常,遮挡,光线等)和顶级显卡只能存储1GB的纹理。
当一个3D物体靠近视图时,它可以占据屏幕的大部分,这可能是1920x1280
像素。如果单个对象具有1024x1024
纹理,则该纹理只会部分显示,因为您只看到该对象的一部分。因此,也许512x512
的纹理是实际看到的,这会被翻译成你的屏幕分辨率,从而模糊。4单个对象的1024x1024
纹理(不同的映射类型)可以很容易地占用10MB
。如果有人为这个对象使用一个2048x2048
纹理空间或更大的纹理空间,但这将占用大约40MB
,这将从一个拥有1GB内存的显卡的GDDR
内存中提取4%。这仅仅是为了一个数千人的场景中的小物体。此外,这张地图和CG设计师有大量的技巧,在那里袖子重用对象和纹理。
不过,更少的多边形意味着更好的性能。而且,由于我们可以对纹理空间做这么多工作,三维艺术家专注于轮廓(模型的轮廓)。如果不添加更多的多边形,就不可能使模型的轮廓更加详细,在模型中,我们可以使用纹理来使两个多边形看起来像数千个多边形一样详细。
发布于 2014-08-30 03:28:01
在少数几个关键领域,增加多边形计数会对性能产生影响:
https://gamedev.stackexchange.com/questions/82538
复制相似问题