2015-01-06 10 views
0

два вопроса:OPENGL местности и тесселяции шейдеры

  1. Как современные игры настраивают свои вершины местности? Они прикрепляют изображение карты высоты к текстуре, а затем используют его для установки каждой позиции вершин или просто используют 3D-программное обеспечение (например, Blender) для создания файла, который содержит эти вершины, а затем читают его в VBO? Пожалуйста, исправьте меня, если мое понимание неверно.

  2. Насколько важны тесселяционные шейдеры для этого процесса? Они просто экономят производительность или они также меняют сцену зрителя?

+0

Большинство игр открытого мира используют карту высот для базовой местности. (Для e xample Battlefield) – dari

+0

Таким образом, они экспортируют изображение карты высот с помощью программного обеспечения 3D, затем читают его в приложении и привязывают к 2D-текстуре, а затем используют texture() в вершинном шейдере для определения каждой позиции вершин. Я прав? – Pilpel

+0

Я не знаю, как они отображают карты высот, но доступ к ним в вершинном шейдере - это простой способ реализовать его. – dari

ответ

0

два наиболее распространенными Я видел являются картами высот, в котором значение RGB используются для нормали к поверхности и альфа-значения используется для высот, и процедурная генерация местности с использованием способа, такими как Perlin шум, что использует случайную функцию и образец окружающих их вершин, чтобы выровнять высоту.

Tesselation shaders используются в основном для уменьшения рабочей нагрузки за счет упрощения далеких сеток, в которых вы не заметите дополнительных деталей. Они меняют сцену зрителей, но так, что пытаются не заметить.

0

В целом высота создается процедурно в шейдерах для вершин. По процедурной компьютерной графике это означает некоторый алгоритм математики. Перлинский шум является одним из методов для этой процедурной генерации. Существует несколько стратегий, позволяющих сохранить карту высот небольшого размера и создавать разные высоты с использованием процедурного метода, который выполняется, поскольку карта высоты является текстурой и использует полосу пропускания.

Тесселяционные шейдеры используются для адаптивной тесселяции. Вы можете думать об этом как о каком-то уровне механизма детализации. Гладкость рельефа зависит от того, сколько треугольников используется для представления патча на местности. В зависимости от расстояния пикселя от камеры разработчики могут решить, что должно быть уровнем тесселяции «на лету» и генерировать больше треугольников для патчей рядом с пользователем. Это способ улучшить детали местности. Все здесь происходит на графическом процессоре, поэтому он чрезвычайно эффективен.

В качестве предшественников к тесселяционным шейдерам были доступны такие алгоритмы, как ROAR, которые использовали адаптивную тесселяцию на процессоре.

Следуйте за нами http://vterrain.org/. Вы увидите все состояние методов ландшафта, реализованных здесь.

 Смежные вопросы

  • Нет связанных вопросов^_^