为什么在平坦地形中使用三角测量?

时间:2012-04-28 16:13:51

标签: directx mesh triangulation tesselation

我在线模式下看过很多地形,所有这些地形都使用了三角形。如果你将它用于不同的高度,我会得到它但是为什么人们在它们的地形中使用这么多的三角形用于平坦区域?如果有一个大的平坦区域创建一个大正方形或至少一个大三角形(尽可能大)而不是使用这么多小三角形是不明智的?

所以我的问题是,有没有理由这样做(可能是纹理)?我知道tesselation会做这样的事情但是从我的角度来看仍然留下太多的三角形。

1 个答案:

答案 0 :(得分:7)

可能的原因:

  1. 他们没有地形优化程序。
  2. 他们使用顶点照明。除非地形密集三角形,否则它看起来很可怕。
  3. Shader与巨大的三角形不兼容。在三角形上插入巨大的值(如光线等)可能会导致精度问题。
  4. 物理引擎不适用于巨大的三角形。
  5. 巨大的三角形会导致伪影(我认为纹理重复次数存在依赖于硬件的限制)。
  6. 跨地形的多种材料(超过8种)。这将超过某些卡上的多重纹理限制,因此需要分割地形。
  7. 跨地形,流式区域的多种不同材质或区域。不同的材质可能需要不同的纹理坐标等,如果在地形顶部有某种第二组坐标(优化的展开光照贴图),您将无法使用一个大的三角形。
  8. 具有多个来源的每像素照明。如果您有多个光源,并希望一次性使用它们,则可能必须使用添加剂α混合。使用三角形地形,您可以选择受此特定资源影响的小区域,并使用该光源添加的镜面反射重绘它。如果你只是用剪裁平面切割大三角形,你会看到z-fighting。如果不选择地形光影响的小区域,则必须重绘整个地形,这很可能导致性能下降(填充/着色器性能,因为重绘了许多像素)。