Какой у вас способ рендеринга ландшафтов? - PullRequest
1 голос
/ 19 февраля 2011

Я хочу знать, как вы обрабатываете ландшафты в DirectX.
Я слышал, как люди говорили, что они используют файлы RAW, а некоторые говорили, что они используют файлы .x. Каков наш путь и почему он хорош?

Ответы [ 2 ]

1 голос
/ 20 февраля 2011

Ну МОЙ способ сделать это - сжать ОГРОМНУЮ текстуру (128Kx128K) с моей системой вейвлет-сжатия, чтобы получить сжатие ~ 150: 1. Затем я загружаю текстуру с диска. т. е. мир делится на несколько кусков 256x256 (на самом деле это своего рода отображение с расстоянием от камеры). Я использую положение камеры, чтобы переместить несколько кусков вокруг положения камеры.

Затем я вычисляю видимые куски и рисую их. Для этого я использую данные о высоте непосредственно в качестве потока, подаваемого в мой вершинный шейдер. Затем у меня есть сетка, где положения вершин соответствуют положениям высоты в потоке высоты. Затем я могу просто вытащить y из потока карты высот и поместить его в положение y моего шейдера.

Это довольно сложный способ рендеринга ландшафта, но вы спросили, как это делают "вы";)

PS бонус 128 000x128 000 в том, что я получаю 128 км местности с точностью метра: D

1 голос
/ 19 февраля 2011

Многие 3D-движки используют карты высот для рендеринга ландшафта из-за их эффективности использования пространства (требуется только одно растровое изображение).

...