Каковы различия между скайбоксом и skydome?

18

Каковы различия / плюсы / минусы между скайбоксом и skydome?

Friso
источник
5
Я отредактировал ваш вопрос, чтобы удалить часть, которая является лучшей. Что лучше, так это ситуация с гориллой и акулой , которая не подходит для сайта.
MichaelHouse

Ответы:

22

Если текстуры сделаны правильно, в идеале эти две неразличимы.

Кроме очевидной разницы в том, что полусфера (небесный купол):

введите описание изображения здесь

А другой, являющийся кубом (скайбоксом), имеет два отличия.

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

Самым простым для реализации из них является Sky Box. Это просто простая коробка, и она очень быстра для рисования с гораздо меньшим количеством вершин.

Skybox

  • Легко реализовать
  • Легко кодировать текстурные координаты вручную
  • Быстро рисовать
  • Могут быть проблемы с перспективой и углами
  • Может быть трудно создавать текстуры, которые выглядят гладкими

Skydome

  • Легче создавать текстуры (но гораздо сложнее применять)
  • Медленнее рисовать с гораздо большим количеством вершин
  • Более гибкий из-за увеличенных вершин
  • С меньшей вероятностью возникают проблемы с перспективой, и нет поводов для беспокойства
MichaelHouse
источник
1
«Могут возникнуть проблемы с перспективой и углами», это очень хороший аргумент, потому что я заметил ту же проблему в моем движке. Если вы наклоните камеру вниз, смотря на угол, вы увидите, что небо - это просто коробка.
Тара
19

Скайбокс - это куб, на котором проецируется изображение неба на шесть граней, так что оно выглядит как небо, если камера находится в точном центре. Т.е. каждая грань треугольника имеет 90 градусов обзора.

Skydome - это куполообразная часть геометрии, которая выглядит как небо.

Скайбокс более ограничен с точки зрения анимации и имеет фиксированное разрешение.

Небоскреб, построенный из реальной геометрии, может иметь больше деталей, где ему нужно (скажем, луна или городской горизонт), и меньше деталей текстуры, где он не нужен (например, простой фон неба). Небоскреб также может быть составлен и анимирован из отдельных частей для анимации таких вещей, как облака и движение небесных тел.

Использование геометрии для неба также означает, что вы можете получить эффекты параллакса. Скажем, у вас смоделирован ваш небесный прямоугольник в масштабе 1/10, просто переместите камеру на 1/10 от ее перевода при рендеринге геометрии неба. Таким образом, вы можете смешивать геометрию мира и геометрию неба в совершенно разных масштабах, не сталкиваясь с проблемами точности буфера глубины.

В общем, термин «скайбокс» используется для обозначения всего, что используется для визуализации неба отдельно от геометрии мира. Но традиционно скайбокс - это текстурированный куб, созданный в начале координат, чтобы создать иллюзию неба.

ccxvii
источник
1
+1 Я не рассматривал статический переход с увеличенным количеством полигонов вокруг объектов. Хорошая идея.
MichaelHouse
«Небоскреб также может быть составлен и анимирован из отдельных частей для анимации таких вещей, как облака и движение небесных тел». Разве вы не можете просто использовать скайбокс с сферой внутри, где вы помещаете анимированные вещи?
Тара