Что такое базовая предпосылка за такими технологиями, как, например, в Oblivion (и в других играх, я уверен, не играл достаточно, чтобы знать), где объекты издалека отображаются, когда вы просматриваете их издалека? Например, большая башня находится в миле, и вы видите туманный прямоугольник ее, торчащий из горизонта ... Очевидно, что гигантская трехмерная сцена не может быть отображена, и я знаю, что в случае карт высот есть только алгоритмы аппроксимации которые используются для уменьшения качества карты высот дальше от камеры, но для конкретных объектов, что является лучшим способом показать их?Отдаленный 3D-рендеринг объектов [игры]
Я думал, возможно, о технике предварительного рендеринга, в которой вы выбираете определенные места вокруг ландшафта, а затем создаете программу, которая рисует все карты высот и 3D вокруг этого места и делает снимок. Это займет несколько снимков, а затем, когда игрок окажется рядом с этим местом, изображения будут использоваться в качестве skybox.
Еще одна очевидная методика заключается в том, чтобы хранить действительно грубые 3D-модели, но тогда как система 3D-рендеринга конкретно выбирает грубую модель здания, а не грубые модели других менее значительных (и, вероятно, от-на-расстоянии)? Как бы вы могли хранить что-то подобное вместе с вашей картой роста? Может быть, по дизайну, есть только несколько таких значимых ориентиров, а затем просто сохраните их в небольшом файле, а на каждом кадре отобразите те, которые меньше, чем на самом деле на дальнем расстоянии?
Я знаю, что серия Halo хочет разделить игру на уровни, а затем на каждом уровне есть другой ручной Skybox. Это то, что я собирался сделать в первом предложении, но я не уверен в этом. Наверное, я просто пытаюсь собрать другие идеи или уточнения или проблемы в своих идеях, чтобы я мог выбрать, какие из них прототипны с моим ограниченным временем и знаниями.
Еще одна связанная с этим тема - показать горы на расстоянии, так как они будут частью карты высот, а не 3D-моделей поверх нее, поэтому они действительно не смогут иметь грубую версию и карту высот алгоритм аппроксимации может испортить гору с очень большого расстояния (предполагая, что вы даже попытаетесь аппроксимировать и сделать такую удаленную геометрию, которой вы, вероятно, не захотите). Бонусные баллы, если вы также включите это в свой ответ. :)
Спасибо!
P.S. Я использую OpenGL. Я просто ищу основные понятия, но если вы решите опубликовать пример кода, используйте функции и термины OpenGL! :)
EDIT: Спасибо за ответы! Для целей документации здесь есть другой ресурс, который я нашел: Глава 4.9 в Game Programming Gems 2 охватывает концепцию рендеринга отдаленных пейзажей в skybox: http://books.google.com/books?id=1-NfBElV97IC&lpg=PA416&ots=SOpnfijZly&dq=render%20distant%20to%20skybox&pg=PA416 (к сожалению, предварительный просмотр - это только первая страница главы ... нужно взять эту книгу из библиотеки моего университета, как только я вернусь в августе)
Также после прочтения этих вещей, я все еще придерживаюсь мнения, что LOD предназначен для объектов, находящихся на достаточно близком расстоянии. Если объекты не имеют даже одного пикселя большого размера, но вы все еще загружаете их на графическую карту, вы просто теряете энергию, используя LOD или нет. И это будет иметь место для всего, кроме самых больших отдаленных объектов; несколько высотных зданий и несколько гор, в большинстве случаев, но маленькие детали (кусты, даже деревья, скалы, любые другие декорации ...) не были бы видны с такого расстояния. Поэтому мне нравится рендер для технологии skybox, и когда я доберусь до этого моста, вот как я его пересечу; и я обязательно буду использовать LOD для всех моделей, я просто не сделаю такое расстояние.
Я, между прочим, больше думаю о линиях игры Oblivion, поэтому ответ может зависеть от жанра игры.
Я думаю, что ваша точка поля зрения немного неестественна. FOV обычно относится к углу «камеры», которую вы просматриваете.Точка, в которой вы отрезали большие объекты, называется «плоскостью отсечения» –
@NeilN, вы правы; Я изменю ответ. –