11 votes

Skybox vs Skysphere

Quels sont les avantages et les inconvénients de ces deux solutions ? En particulier pour un jeu en 3D.

9voto

mikera Points 63056

Les skyboxes et les skyspheres sont à peu près équivalentes en ce sens que vous obtiendrez le même type d'effet visuel, c'est-à-dire un joli arrière-plan qui semble se trouver à une grande distance.

Cependant, je recommanderais normalement une boîte à ciel pour les trois raisons suivantes :

  • Moins de polygones nécessaires
  • Si vous configurez correctement vos matrices de projection, vous ne pouvez pas dire que vous êtes à l'intérieur d'une boîte (si vous vous trompez, vous pouvez voir des distorsions).
  • Il est plus facile d'obtenir des images de boîtes à ciel carrées (une pour chaque direction de taille).

En ce qui concerne le dernier point, il est assez facile de configurer un moteur de rendu pour produire des images carrées tracées par rayons qui s'adaptent exactement à une boîte à ciel en créant un champ de vision de 90 degrés, par exemple dans POVRay, vous utiliseriez quelque chose comme ce qui suit :

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

J'utilise généralement des textures carrées de 1024*1024 ou 2048*2048.

La seule bonne raison à laquelle je peux penser pour utiliser une sphère céleste est que vous utilisez une sorte d'approche de texture procédurale qui nécessite une génération aux points (approximativement) d'une sphère unitaire. Je pense qu'il s'agit là d'un cas assez particulier et qu'il est peu probable qu'il soit nécessaire pour la plupart des applications de jeu.

3voto

Marek Points 5077

Il est plus facile de créer des textures pour la boîte à ciel. Le nombre de polygones sera également plus faible (mais c'est négligeable avec les cartes actuelles).

Le seul problème de la boîte à ciel est que les bords du cube peuvent être visibles dans certaines conditions.

Un autre aspect qui fait la différence :

  • la skybox n'entre jamais en collision avec la géométrie - l'image est seulement projetée à partir d'une autre caméra qui tourne en même temps que la caméra de l'utilisateur et qui est "coincée dans la boîte"
  • dans le cas d'une sphère céleste, l'arrière-plan sera rendu directement (le joueur peut "se cogner dans le ciel")

Une bonne description et un exemple OpenGL sont aquí .

3voto

user2618714 Points 61

Une sphère céleste est aussi très cool car on peut utiliser n'importe quelle carte de projection mercator pour la texturer, et elle n'a pas de distorsion du tout.

1voto

jheriko Points 2326

Un autre avantage des skyboxes est de pouvoir utiliser un cubemaps pour elles - le mapping de sphères n'est pas accéléré matériellement (afaik).

1voto

Arne Points 866

Lorsque vous utilisez une boîte à ciel, vous utiliserez très probablement une texture de boîte. Cette texture peut également être utilisée pour les matériaux réfléchissants. Les textures Skyphere ne sont pas si faciles à utiliser ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X