bonjour,
je sais préalculer les occlusions dans une scène 3d avec la technique à l'ancienne (en utilisant une structure avec des portails et des calculs chiants) et j'ai entendu qu'il y'a une méthode plus moderne qui est plus précise et qui ne nécessite pas d'avoir des portails
j'aimerais donc essayer l'approche en rendu caméra (éventuellement accéléré avec une occlusion query dx10 mais on verra ça après)
je voudrais expérimenter cette méthode mais j'aimerais savoir si j'ai pas par hasard oublié un cas de figure qui risque de causer des trous
donc voilà comment je pensais m'y prendre:
- je m'assure qu'il n'y a aucune fissure entre deux objets cote à cote
- je veux savoir si un objet A est visible depuis une zone Z (qui peut être n'importe quoi, une cellule d'octree par exemple)
- si A touche la zone Z alors il est automatiquement visible et je stoppe le test là
- je désactive le rendu de tous les objets qui touchent la zone Z
- je calcule la bounding sphère de A et Z, j'en déduis un cône ou un cylindre qui va me donner la position et la focale de la caméra (je peux trouver une méthode plus précise et moins conservative mais pour le moment je commence avec des sphères)
- selon le sens du cône, l'un des deux objets va se trouver proche de la camera, on l'appelle B, et l'autre est éloigné, on l'appelle C
- je désactive le rendu de tous les objets qui se trouvent entre la caméra et B, ainsi que le rendu de B.
- j'agrandis légèrement l'objet C, je rends le reste de la scène et je regarde si C a au moins un pixel rendu ou si il est complètement recouvert
Est-ce que c'est la bonne méthode ou est-ce que c'est foireux ?
Partager