2017-05-23 5 views
0

Lorsque des cubes statiques sont utilisés, il est supposé que les objets de la texture skybox sont éloignés, il n'est donc pas gênant que la vue ne change pas lorsque la caméra se déplace. Cependant, lors de l'utilisation de cubemap dynamique, nous incluons les objets à proximité de la caméra. Ainsi, par exemple; nous avons un verre géant devant la caméra, et nous avons des objets devant le verre et nous devons calculer la réfraction. Parce que, nous donnons seulement une fonction de texture vec3 dans glsl, la coordonnée sur le verre est ignorée. Par exemple; le vecteur de réfraction au milieu du verre est vec3 (0, -0,2, -0,6) et la réfraction au coin inférieur droit du verre est également vec3 (0, -0,2, -0,6). Ainsi, les couleurs des deux coordonnées seront les mêmes, mais ce ne devrait pas être le cas. Comment pouvons-nous gérer ce problème?dynamic cubemaps - opengl

Répondre

0

Pour résoudre ce problème, vous pouvez utiliser des cubes corrigés en parallaxe, ce qui vous permet de créer des "cubes locaux" (avec une boîte de sélection de référence) au lieu de "cubes infinis".

Seb Lagarde a un très beau article expliquant tout cela en détails (voir le chapitre "Correction de parallaxe pour les cubes locaux").