Каковы некоторые преимущества и недостатки между ними. Особенно для чего-то вроде 3D-игры.Skybox vs Skysphere
ответ
Skyboxes и skyspheres в значительной степени эквивалентны в том смысле, что вы получите такой же визуальный эффект - то есть хороший фон, который, кажется, находится на большом расстоянии.
Однако я обычно рекомендую скайбокс по следующим трем причинам:
- менее многоугольники требуется
- Предполагая, что вы настроили ваши матрицы проекции правильно, вы не можете сказать, что вы находитесь внутри коробки (если вы сделаете это неправильно, вы можете увидеть некоторые искажения)
- это проще, чтобы сделать квадратные изображения SKYBOX (по одному для каждого из направлений размера)
что касается последнего POIN t, довольно просто настроить рендерер для создания изображений с четким изображением, которые точно соответствуют на Skybox, создавая поле зрения на 90 градусов, например. в POVRay вы бы использовать что-то вроде следующего:
camera {
right -x
up y
direction -z
location 0
}
Я обычно использую 1024 * 1024 или 2048 * 2048 квадратных текстур для этого.
Одна из веских причин, по которым я могу придумать использование лыжны, заключается в том, что вы используете какой-то процедурный подход к текстуре, который требует генерации (приблизительно) точек на единичной сфере. Я думаю, что это довольно частный случай, и вряд ли он будет необходим для большинства игровых приложений.
Легче сделать текстуры для skybox. Кроме того, количество полигонов будет меньше (но с сегодняшними картами оно пренебрежимо мало).
Единственная проблема с skybox заключается в том, что края кубов могут быть видны при определенных условиях.
Другой аспект, который делает разницу:
- скайбокса никогда не конфликтует с геометрией - изображение только проектируется с другой камеры, которая вращается вместе с камерой пользователя и «застрял в окне»
- в случае skysphere, фон будет оказывать напрямую (игрок может «поднять в небо»)
хорошее описание и OpenGL образец here.
Еще одно преимущество skyboxes заключается в возможности использовать для них кубики для карт - сфера с другой стороны - аппаратное ускорение (afaik).
Вы можете просто визуализировать текстурированную сферу. Это в значительной степени аппаратное ускорение. – Arne
вам нужно предоставить uv в этом случае и преобразовать геометрию. уверен, что материал ускоряется, но его не особо. Особая вещь о карте куба состоит в том, что система координат текстуры основана на векторах направления - так что вы можете просто визуализировать квад и использовать направление представления для координат текстуры - никакой реальной геометрии не требуется. Выполнение этого же шара требует преобразования этих направлений во что-то другое - либо в автономном режиме путем создания какого-либо актива, либо в вашем пиксельном шейдере. – jheriko
ok Я никогда не тестировал, чтобы просто нарисовать один квадрат и дать угловым координатам текстуры углов. Но не всегда сохранение полигонов означает, что вы получаете производительность. Честно говоря, я думаю, что для того, чтобы раздирать только небоскреб, это не имеет никакого значения. Я все еще предпочитаю skybox, потому что он имеет меньше искажений. – Arne
skysphere также очень крут, потому что вы можете использовать любую карту проекции меркатора, чтобы текстурировать ее, и она не имеет никаких искажений.
Когда вы используете skybox, вы, скорее всего, будете использовать текстуру коробки. Эта текстура также может использоваться для отражающих материалов. Текстуры Skyphere не так просты в использовании.
- 1. THREE.js SkyBox
- 2. Процедурная генерация звезд с skybox
- 3. Странные строки в Skybox
- 4. Цвет текстуры skybox unity
- 5. Отложенный рендеринг Skybox OpenGL
- 6. OpenGL SkyBox, не показывающий
- 7. SKYBOX швы в OpenGL
- 8. Three.js skybox не загружается
- 9. OpenGL Skybox render wrong
- 10. OpenGL Skybox Issue
- 11. Three.js Unculled SkyBox
- 12. THREE.js Skybox не работает
- 13. Как правильно визуализировать SkyBox?
- 14. простой процедурный skybox
- 15. Skybox полностью черный
- 16. Blurry Skybox Texture
- 17. babylon skybox from hell
- 18. Skybox OpenGL ES2.0
- 19. Текстуры Skybox не отображаются
- 20. DX10 Skybox Shader
- 21. OpenGL SKYBOX видимые границы
- 22. Three.js - Skybox показывает черный
- 23. Как сделать одно изображение skybox?
- 24. Skybox Cubemap не отображается правильно
- 25. Получить камеру внутри моего skybox
- 26. Проблемы с одним изображением skybox
- 27. Изменить Skybox Material Programmatically (C#)
- 28. OpenGL: Skybox увеличен слишком много
- 29. SkyBox не перемещается с камерой
- 30. OpenGL - обрезание skybox и frustum
Точка о многоугольниках неверна - с шейдерами любой метод требует как минимум одного треугольника ... – jheriko
Интерретирующий ответ, но он не говорит, что если SkySphere имеет какое-то преимущество перед SkyBox? Есть ли случаи, когда это просто лучше? Может быть, когда вы разрешите любое вращение? – Klaim