Ну, это может обеспечить более компактную структуру для рендеринга моделей с высоким поли. Карта смещения может содержать всего 1 байт на пиксель. Если вы тесселяете это для отображения смещения, то вы экономите ОГРОМНОЕ количество пропускной способности памяти на GPU.
Изображение на секунду простой вершинной структуры.
struct Vert
{
float x, y, z;
float nx, ny, nz;
float u, v;
};
Эта структура имеет размер 32 байта. Так что, если вы представите, что можете разделить число вершин на четверти (и вы должны иметь возможность сделать АД гораздо большего) и заменить все остальные вершины картой высот в 1 байт, то у вас израсходуется объем используемой памяти. следующим образом:
100,000 poly object = 3,200,000 bytes using vertex struct alone.
25,000 polys + 100,000 entry height map = 900,000 bytes.
т.е. отображение смещения предоставляет вам те же данные в 28% памяти. ВЫИГРАТЬ! : D
Если вы сохраняете карту нормалей и используете компонент w / a для высоты, то вы используете 400 000 байт для текстуры, и теперь у вас есть 1 200 000 байтов в размере, что составляет ЕЩЕ 37,5% от размера. ПЛЮС, теперь вы можете удалить 12 байт для обычного хранения, и вы действительно получите тот же показатель в 900 000 байт.
Вы должны быть в состоянии получить значительно более высокие уровни сжатия геометрии, чем это. Таким образом, в итоге вы получите более привлекательную модель для части данных хранилища.
В качестве дополнительного бонуса, используя систему карт нормалей / карт высот, вы также можете легко масштабировать, чтобы менее мощные машины просто использовали данные нормалей, и вы по-прежнему получали достаточно хорошие результаты.