一本旧的Direct3D书说
“......你可以达到一个可以接受的框架 硬件加速时的速率 显示在2000到4000之间 每帧多边形......“
Direct3D中的一个多边形是什么?它们是指一个基元(索引或其他)还是一个三角形?
答案 0 :(得分:7)
那本书的意思是三角形。否则,如果我想要1000面多边形怎么办?我每帧仍可以达到2000-4000个这样的形状吗?
答案 1 :(得分:4)
在实践中,你唯一想要它的是一个三角形,因为如果一个多边形不是一个三角形,它通常被镶嵌成一个三角形。 (例如,四边形由两个三角形组成,等等)。基本的三角测量(曲面细分)算法非常简单;你只需循环顶点并将每三个顶点转换成三角形。
答案 2 :(得分:3)
这里,“多边形”是指三角形。全部。但是,正如您所指出的,除了确定性能的三角形数量之外,还有更多的变量。
重要的关键问题是:
这些变量一起可以产生远大于性能变化的2倍。
类似地,运行应用程序的硬件在现实世界中的性能可能会有10倍甚至更高:2005年低端的GPU(或集成图形处理器)在任何有意义的指标中都会执行10-100倍的速度而不是当前的顶级GPU。
总而言之,任何建议你使用2-4000个三角形是如此荒谬的过时,今天应该完全忽略它。即便是今天的低端硬件也可以在合理的条件下轻松推动帧中的100,000个三角形。此外,目前大多数视觉上有趣的应用程序都受像素着色性能的支配,而不是三角形数量。
今天实现良好三角形吞吐量的一般经验法则:
做所有这些事情,今天的任何机器都应该能够轻松渲染数十或数十万个三角形。
答案 3 :(得分:2)
根据这个page,多边形在Direct3d中是n面的。
在C#中:
public static Mesh Polygon(
Device device,
float length,
int sides
)
答案 4 :(得分:0)
正如其他人已经说过的,这里的多边形意味着三角形。 三角形的主要优点在于,由于3个点定义了一个平面,因此三角形的定义是共面的。这意味着三角形内的每个点都被精确定义为多边形点的线性组合。更多顶点不一定是共面的,并且它们没有定义唯一的曲面。
机械建模比图形更有优势的是三角形也是不可变形的。