Какой смысл карты высот? - PullRequest
4 голосов
/ 11 июня 2010

Я уже давно обдумываю этот вопрос ... многие 3D-движки поддерживают расширенный рендеринг ландшафта с использованием квадродеревьев, LOD ... все функции, которые вы ожидаете. Но каждый движок, который я видел, загружает данные о высоте из карт высот ... растровых изображений в градациях серого. Я просто не могу понять, как это полезно - каждая точка в карте высот может иметь одно из 256 значений. Но что, если вы хотите смоделировать Mt. Эверест? с детализацией 1 метр или даже больше? Это далеко за пределами диапазона 256. Конечно, я понимаю, что вы можете реализовать свой собственный формат местности для достижения этой цели, но я просто не могу понять, почему карты высот так широко используются, несмотря на их большие ограничения.

Ответы [ 6 ]

6 голосов
/ 11 июня 2010

Карты высот очень легкие, очень быстро загружаются и могут быть сгенерированы довольно легко процедурно. Они также используют довольно маленький след памяти.

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

5 голосов
/ 11 июня 2010

С точки зрения отображения графики наибольшая точность, которая обычно имеет значение, - это (в простом выражении) один пиксель на конечном дисплее 1 . Учитывая разрешение типичного текущего монитора, было бы неплохо иметь еще пару или три бита для карты высот, но для большинства геометрий это на самом деле не нужно. В частности, даже несмотря на то, что один пиксель в значительной степени определяет наибольшую точность, для которой вы много используете, рисование Mt. Эверест, так что его высота на самом деле неверна на два или три пикселя, на самом деле не является большой проблемой для большинства людей.

Это сводится к следующему: идея, что вы хотите использовать точность в один метр для карты высот Mt. Эверест - просто ошибка - необходимость (или даже использование) для этого уровня точности находится прямо на границе между редким и несуществующим. В то же время использование относительно плотного формата, такого как один байт на пиксель, обычно означает совсем немного места для хранения и меньшую полосу пропускания, что приводит к более быстрому отображению.

  1. Технически с сглаживанием субпиксельное разрешение может и действительно что-то значить, но хотя оно имеет большое значение для таких вещей, как сглаживание линий, которые в противном случае выглядели бы довольно неровно, для чего-то вроде получения правильной высоты горы, оно не так много значит. На самом деле, насколько это волнует большинство людей, это совершенно бессмысленно.
3 голосов
/ 11 июня 2010

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

  1. Выглядит как реальная местность на расстоянии.
  2. Очень легко вычислить высоту при любом x, y при условии z. Это полезно для перемещения игроков, обнаружения столкновений и физики.
  3. Легко редактировать в программе рисования.

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

  1. Неэффективно используйте память при наличии больших плоских областей (постоянной высоты).
  2. Использование оборудования рендеринга неэффективно при наличии больших плоских областей.
  3. Не может представлять крутые или нависающие ландшафты.
  4. Может представлять только квадратные области.
0 голосов
/ 11 июня 2010

Карты высот имеют то преимущество, что имеют прямую аппаратную поддержку (текстурирование), и их можно рисовать с использованием существующих инструментов рисования (даже специализированных).

Конечно, в зависимости от формата информации, хранящейся в карте высотНекоторый рендеринг выглядит не так, как должен, но поскольку карты высот фактически используются в неправильной ситуации.

В качестве улучшения пиксели карты высот могут быть сохранены в 16-битном плавающем числе (наполовину плавающем) или 32битовое плавание, позволяющее иметь более высокие диапазоны и разрешенную точность с 8-битным пикселем с фиксированной точностью.

0 голосов
/ 11 июня 2010

Еще один плюс карт высот состоит в том, что в целом он позволяет избежать проблемы с навесом, которая усложняет аспекты физики и движения.Но даже при наличии карты высот у вас может быть другая геометрия, которая может создавать выступы.

Кроме того, текстурирование может быть проще, если высота не слишком сильно меняется, вызывая растяжение.

0 голосов
/ 11 июня 2010

Но что, если вы хотите смоделировать Mt. Everest

Вы бы использовали что-то еще. Ясно, что если каждый движок, с которым вы столкнулись, использует карты высот, он прекрасно работает для них. Не нужно слишком усложнять вещи, если вам подходит простое решение.

...