![]() |
1
7
那本书的意思是三角形。否则,如果我想要1000个边的多边形呢?我还能实现每帧2000-4000个这样的形状吗? |
![]() |
2
4
在实践中,你唯一想要的是一个三角形,因为如果一个多边形不是三角形,它通常会被镶嵌成三角形。(例如,一个四边形由两个三角形组成,以此类推)。一个基本的三角剖分(镶嵌)算法非常简单;你只需遍历顶点,并将每三个顶点变成一个三角形。 |
![]() |
3
3
在这里,“多边形”是指三角形。全部。然而,正如您所指出的,决定性能的变量远不止三角形的数量。 重要的关键问题是:
这些变量加在一起,可以产生远远大于2倍的性能变化。 同样,在现实世界中,运行应用程序的硬件的性能可能会相差10倍或更多:2005年低端的GPU(或集成图形处理器)在任何有意义的指标上都会比当前顶级GPU慢10-100倍。 总而言之,任何建议你使用2-4000个三角形的建议都是如此荒谬地过时,以至于今天应该完全忽略它。即使是今天的低端硬件,在合理的条件下,也可以轻松地在一个帧中推送100000个三角形。此外,当今大多数视觉上有趣的应用程序都是由像素着色性能主导的,而不是三角形计数。 今天实现良好三角形吞吐量的一般经验法则:
做所有这些事情,今天的任何机器都应该能够轻松渲染数万或数十万个三角形。 |
![]() |
4
2
据此 page ,在Direct3d中,多边形是n边的。 在C#中:
|
![]() |
5
0
正如其他人已经说过的,这里的多边形是指三角形。 三角形的主要优点是,由于3个点定义了一个平面,因此三角形根据定义是共面的。这意味着三角形内的每个点都被精确地定义为多边形点的线性组合。更多的顶点不一定共面,它们也不能定义一个唯一的曲面。 机械建模比图形建模的一个优点是三角形也是不可变形的。 |