Каковы плюсы и минусы использования карты высот против модели в 3D-играх - PullRequest
0 голосов
/ 25 ноября 2018

Я учусь программировать игровой движок OpenGL на Java.Я уже сделал загрузку моделей из файлов, но дальше - карты высот, и мне интересно, каковы преимущества использования карты высот для создания трехмерного рельефа по сравнению со списком значений по оси Z или трехмерной моделью?Зависит ли это от деталей местности или просто более эффективно использовать карту высот?

Некоторые из них, о которых я могу думать:

Плюсы карты высот:

  • Меньший файл, поскольку игра генерирует его в память во время выполнения.
  • Более оптимизированные алгоритмы для манипулирования изображением n ^ 2?
  • Упрощенная процедурная генерация.

Карта высот минусов:

  • Проблемы с крутыми углами и вылетами невозможны.
  • Не похоже, чтобы они были такими же точными, как модели.
  • Они так полезны?для создания ландшафта, если вы не производите его процедурно?

1 Ответ

0 голосов
/ 26 ноября 2018

Если вы ссылаетесь на изображение в оттенках серого / rgb / rgba со значениями высоты в качестве карты высот, то вы в основном правы.

список значений по оси Z

Вы можете хранить свои значения по своему усмотрению, вы даже можете сериализовать / десериализовать их, с той лишь разницей, что формат изображения универсален и используется во всем программном обеспечении 3d.Таким образом, вы, вероятно, захотите сделать свой конвейер на основе формата карты высот изображения, так как вы, вероятно, не будете сами генерировать карты высот и импортировать их из какого-либо 3d-программного обеспечения.

3D-модель

Карты высот можно использовать только тогда, когда f (x, z) имеет одно значение.В этом случае я считаю, что нет причин использовать 3d-сетки вместо карт высот.

Зависит ли это от деталей местности или просто эффективнее использовать карту высот?

Нет, LOD и другие вещи зависят только от вашей реализации.Просто в картах высот вы используете 8 bits (оттенки серого) / 24 bits (RGB) / 32 bits (RGBA) для каждой вершины, а с 3D-моделью вы используете 3x32 bits для каждой вершины.

Итак, в основном, карты высот используются только для того, чтобы сэкономить память / импортировать просторы.И их, вероятно, легче генерировать, но я не 3D-модельер, поэтому не могу сказать наверняка.

...