Зачем использовать триангуляцию для равнинной местности?

Я видел много ландшафтов в проводном режиме, и все они использовали треугольники. Я понимаю, если вы используете его для разных высот, НО почему люди используют так много треугольников для плоских областей на своей местности? Если есть большая плоская область, не было бы разумно создать один большой квадрат или хотя бы один большой треугольник (настолько большой, насколько это возможно) вместо того, чтобы использовать так много маленьких?

Итак, мой вопрос, есть ли причина для этого (может быть, для текстур)? Я знаю, что тесселяция делает что-то подобное, но все же оставляет слишком много треугольников с моей точки зрения.

1 ответ

Решение

Возможные причины:

  1. У них нет процедур оптимизации местности.
  2. Они используют освещение вершин. Если ландшафт не будет плотно триангулирован, он будет выглядеть ужасно.
  3. Шейдер плохо работает с огромными треугольниками. Интерполяция огромных значений (например, light dir и т. Д.) Через треугольник может вызвать проблемы с точностью.
  4. Физический движок не работает с огромными треугольниками.
  5. Огромные треугольники вызывают артефакты (я думаю, есть аппаратно-зависимое ограничение на количество повторений текстуры).
  6. Несколько материалов (более 8) по пересеченной местности. Это будет превышать лимиты мультитекстурирования на определенных картах, поэтому необходимо разделить ландшафт.
  7. Множество разных материалов или областей по рельефу, потоковым зонам. Разным материалам могут потребоваться разные текстурные координаты и т. Д., И если есть какой-то второй набор координат поверх ландшафта (оптимизированная развернутая карта освещения), вы не сможете использовать один большой плоский треугольник.
  8. Пиксельное освещение с несколькими источниками. Если у вас есть несколько источников света, и вы хотите использовать их все одновременно, вам, возможно, придется использовать аддитивное альфа-смешивание. С триангулированным ландшафтом вы можете выделить небольшой регион, на который влияет данный конкретный ресурс, и перерисовать его, добавив зеркальное отражение из этого источника света. Если вы просто порежете большой треугольник с помощью плоскостей-клипс, вы увидите z-бой. Если вы не выберете небольшую область влияния света местности, вам придется перерисовать всю местность, что может привести к падению производительности (скорость заполнения / шейдера, потому что перерисовывается много пикселей).
Другие вопросы по тегам