Как нарисовать карту высот на экране? - PullRequest
0 голосов
/ 31 августа 2011

Я использую DirectX10 для имитации поверхности воды, и теперь у меня есть карта высот, которая представляет собой двумерный массив высот (y) в точках (x, z).Но чтобы нарисовать его на экране, я должен превратить его в сетку или иметь индекс для рисования топологии треугольника.

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

Ответы [ 2 ]

2 голосов
/ 01 сентября 2011

Создайте сетку, которая форматирует сетку из квадратов (каждый из которых состоит из двух треугольников) и задает все вершины y = 0 . В вершинном шейдере выберите карту высот и добавьте значение, сохраненное в карте высот, к y вершины .

Это может помочь вам.

P.S .: Если область, которую вы хотите покрыть, слишком велика, вы должны взглянуть на технику LOD на местности (должна работать так же для воды).

1 голос
/ 31 августа 2011

Я уверен, что вы можете сделать из него меш.Я сомневаюсь, что вы можете сгенерировать карту высот для поверхности воды, которая слишком велика, чтобы «мешать».

Почему вы смотрите на Алмазный квадрат.Для карты высот 512x512 все, что вам нужно сделать, это определить набор точек и затем сгенерировать для них треугольники.Это действительно очень просто.

...