我即将开发的 DirectX 应用程序可以通过两种方式实现——一种是我们有大量具有相关颜色的三角形,另一种是我们有少量三角形但通过生成纹理的纹理映射添加细节。
我对 GPU 硬件还很陌生,所以我对这两种方法的代价没有直觉 - 我的猜测是处理大量顶点比处理少量顶点更昂贵,但从像素中添加了一些细节着色器,但在硬件方面并不能真正证明这一点。
谁能解释一下如何思考这个问题,或者这是否是正确的心态?
任何帮助表示赞赏
阿农德夫
使用大多边形并使用纹理对其进行详细说明会更有效。这就是纹理映射存在的原因。这是一种使平面看起来更细致的尝试。凹凸贴图技术通过使照明表现得好像多边形不平坦,进一步增强了效果。
然而,这永远不会像使用多边形那样逼真,因为诸如剪影是平坦的等问题。
如果你想象三角形如此之小以至于它们最终占据屏幕上的一个像素。每个像素都必须使用矩阵数学计算其位置,每个多边形将被交给光栅化器并转换为单个像素,每个像素将被发送到像素着色器。这是很多工作,并且像素着色器仍然需要运行才能计算出这个像素的光照。
相反,如果我们有一个大三角形填充屏幕,则使用矩阵数学仅转换三个顶点,光栅化器将一个三角形转换为像素。像素着色器的执行次数与前面的示例相同。唯一的区别是像素着色器需要进行纹理贴图查找,这相对便宜。