Я использую DirectX10 для моделирования водной поверхности, и теперь у меня есть карта высот, которая представляет собой двумерный массив высот (y) в точках (x, z). Но чтобы нарисовать его на экране, я должен превратить его в сетку или иметь индекс для рисования топологии треугольника.
Но данных слишком много, чтобы делать это вручную. Есть ли у меня какие-нибудь способы нарисовать это на экране. Надеюсь, это легко реализовать. Если в DirectX10 есть функция, которая может это сделать, то она для меня лучшая.
2 ответа
Создайте сетку, которая форматирует сетку квадратов (каждый из которых состоит из двух треугольников), и установите для всех вершин y = 0 . В вершинном шейдере выберите карту высот и добавьте значение, хранящееся в карте высот, к y вершины .
P.S: Если область, которую вы хотите покрыть, слишком велика, вам следует взглянуть на методы LOD ландшафта (они должны работать так же для воды).
Я уверен, что вы сможете сделать из него сетку. Я сомневаюсь, что вы сможете сгенерировать карту высот для водной поверхности, которая слишком велика для "сетки".
Почему вы смотрите на Даймонд-сквер. Для карты высот 512x512 все, что вам нужно сделать, это определить набор точек, а затем сгенерировать для нее треугольники. Это действительно очень просто.
Похожие вопросы
Новые вопросы
graphics
Графика - это визуальные презентации. Вопросы, использующие этот тег, также должны быть помечены соответствующей используемой языковой и графической подсистемой. Для более общих графических вопросов, рассмотрите компьютерную графику Stack Exchange (computergraphics.stackexchange.com).