J'ai deux idées en tête:
1) La scène est rendue dans un tampon invisible, en utilisant des modèles à faible résolution et à faible nombre de polygones (ou même en utilisant uniquement des volumes englobants comme des cubes ou des sphères). Le tampon est ensuite vérifié pour savoir ce qui est visible ou non. Avant de rendre la scène basse résolution, une élimination du tronc pourrait être appliquée, pour supprimer déjà autant d'objets que possible.
2) Un outil est exécuté sur la carte statique et effectuera un tracé de rayons complexe (et donc lent) pour savoir pour certaines positions 3D sur la carte ce qui est visible et ce qui ne l'est pas. Toutes ces informations sont ensuite stockées d'une manière efficace qui peut être utilisée ultérieurement lors de l'exécution (par exemple: un octree). Cette solution ne fonctionnerait que pour les maillages statiques (par exemple: la construction) ne déplaçant pas d'objets.
Réponses:
La réponse de Jovan est excellente, mais je voulais juste ajouter qu'il y a parfois un support matériel pour poser la question "Cette géométrie a-t-elle réellement rendu des pixels?" (votre idée # 1) Ce sont des requêtes d'occlusion - c'est un bon article sur les gemmes GPU à leur sujet ici
Ceci est assez similaire à votre idée n ° 1, sauf que vous n'avez pas besoin d'un tampon invisible et peut être plus efficace ou plus simple que de vérifier le tampon. L'article lié fait un excellent travail en approfondissant le fonctionnement des requêtes d'occlusion matérielle.
Le moteur Unreal exploite les requêtes d'occlusion matérielle sur les plates-formes qui le prennent en charge, en plus d'autres techniques telles que la suppression des troncs de vues et le pré-calcul de la géométrie statique qui est occlus.
la source
Cette technique est utilisée par Killzone, et est détaillée dans leur présentation Practical Occlusion Culling sur PS3 . Ils utilisent également des portails pour les espaces intérieurs.
Une chose à garder à l'esprit sur les grandes cartes d'extérieur est que la simplification du maillage est aussi importante que l'élimination des occlusions, de sorte qu'une certaine variation des champs de hauteur avec un clipmapping géométrique est souvent utilisée. Voici un bon papier qui couvre également l'abattage. GPU Gems 2 en a une implémentation .
la source
Au moins les deux premiers jeux Quake ont utilisé la stratégie 2; Je ne sais pas si les moteurs idTech l'utilisent encore. Le monde accessible est divisé en espaces convexes organisés en une structure de données arborescente ("partition d'espace binaire"), et pour chaque nœud de l'arbre il y a un vecteur de bits représentant les autres nœuds visibles depuis ce nœud ("ensemble potentiellement visible").
la source