В целом высота создается процедурно в шейдерах для вершин. По процедурной компьютерной графике это означает некоторый алгоритм математики. Перлинский шум является одним из методов для этой процедурной генерации. Существует несколько стратегий, позволяющих сохранить карту высот небольшого размера и создавать разные высоты с использованием процедурного метода, который выполняется, поскольку карта высоты является текстурой и использует полосу пропускания.
Тесселяционные шейдеры используются для адаптивной тесселяции. Вы можете думать об этом как о каком-то уровне механизма детализации. Гладкость рельефа зависит от того, сколько треугольников используется для представления патча на местности. В зависимости от расстояния пикселя от камеры разработчики могут решить, что должно быть уровнем тесселяции «на лету» и генерировать больше треугольников для патчей рядом с пользователем. Это способ улучшить детали местности. Все здесь происходит на графическом процессоре, поэтому он чрезвычайно эффективен.
В качестве предшественников к тесселяционным шейдерам были доступны такие алгоритмы, как ROAR, которые использовали адаптивную тесселяцию на процессоре.
Следуйте за нами http://vterrain.org/. Вы увидите все состояние методов ландшафта, реализованных здесь.
Большинство игр открытого мира используют карту высот для базовой местности. (Для e xample Battlefield) – dari
Таким образом, они экспортируют изображение карты высот с помощью программного обеспечения 3D, затем читают его в приложении и привязывают к 2D-текстуре, а затем используют texture() в вершинном шейдере для определения каждой позиции вершин. Я прав? – Pilpel
Я не знаю, как они отображают карты высот, но доступ к ним в вершинном шейдере - это простой способ реализовать его. – dari