Смещение вершин (Vertex displacement)
Сдвиг вершин меша в вершинном шейдере во время отрисовки — волны, флаги, гнущаяся трава — без изменения хранимой геометрии.
Вершинный шейдер выполняется для каждой вершины на пути к экрану, и именно там можно сместить её до проецирования. Смещение берут из функции времени и положения либо из текстуры и применяют вдоль нормали вершины или заданной оси. Базовый меш не меняется, всё происходит на GPU, поэтому процедурное движение — морская зыбь, развевающиеся флаги, трава на ветру — обходится почти даром.
Не путайте с displacement mapping, который добавляет настоящие геометрические детали по карте высот, часто через тесселяцию. Смещение вершин новых вершин не создаёт, а лишь двигает имеющиеся. Классическая ошибка: сдвинули вершины, но не пересчитали нормали, — и освещение ломается, поверхность выглядит плоской или вывернутой, даже когда колышется.