2010-10-12 1 views
7

Каковы некоторые преимущества и недостатки между ними. Особенно для чего-то вроде 3D-игры.Skybox vs Skysphere

ответ

8

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

Однако я обычно рекомендую скайбокс по следующим трем причинам:

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

что касается последнего POIN t, довольно просто настроить рендерер для создания изображений с четким изображением, которые точно соответствуют на Skybox, создавая поле зрения на 90 градусов, например. в POVRay вы бы использовать что-то вроде следующего:

camera { 
    right -x 
    up y 
    direction -z 
    location 0 
} 

Я обычно использую 1024 * 1024 или 2048 * 2048 квадратных текстур для этого.

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

+0

Точка о многоугольниках неверна - с шейдерами любой метод требует как минимум одного треугольника ... – jheriko

+0

Интерретирующий ответ, но он не говорит, что если SkySphere имеет какое-то преимущество перед SkyBox? Есть ли случаи, когда это просто лучше? Может быть, когда вы разрешите любое вращение? – Klaim

2

Легче сделать текстуры для skybox. Кроме того, количество полигонов будет меньше (но с сегодняшними картами оно пренебрежимо мало).

Единственная проблема с skybox заключается в том, что края кубов могут быть видны при определенных условиях.

Другой аспект, который делает разницу:

  • скайбокса никогда не конфликтует с геометрией - изображение только проектируется с другой камеры, которая вращается вместе с камерой пользователя и «застрял в окне»
  • в случае skysphere, фон будет оказывать напрямую (игрок может «поднять в небо»)

хорошее описание и OpenGL образец here.

+4

Игрок не должен ударяться в небо. Он должен оставаться неподвижным относительно игрока! – Martin

+0

и skybox, и skysphere могут быть визуализированы на бесконечном расстоянии. Это решает конфликт с любыми объектами сцены. – Arne

0

Еще одно преимущество skyboxes заключается в возможности использовать для них кубики для карт - сфера с другой стороны - аппаратное ускорение (afaik).

+0

Вы можете просто визуализировать текстурированную сферу. Это в значительной степени аппаратное ускорение. – Arne

+0

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

+0

ok Я никогда не тестировал, чтобы просто нарисовать один квадрат и дать угловым координатам текстуры углов. Но не всегда сохранение полигонов означает, что вы получаете производительность. Честно говоря, я думаю, что для того, чтобы раздирать только небоскреб, это не имеет никакого значения. Я все еще предпочитаю skybox, потому что он имеет меньше искажений. – Arne

1

skysphere также очень крут, потому что вы можете использовать любую карту проекции меркатора, чтобы текстурировать ее, и она не имеет никаких искажений.

0

Когда вы используете skybox, вы, скорее всего, будете использовать текстуру коробки. Эта текстура также может использоваться для отражающих материалов. Текстуры Skyphere не так просты в использовании.