Occlusion query

Description

Jour faste, je sors de vieilles choses ...

Montre un exemple d'occlusion query.
Une lampe jaune se situe au milieu de l'écran, 2 carrés passent devant. La lampe émet un halo bleuté.
Remarque : tiens tiens tiens ça serait-il pas marrant que la taille du halo dépende du pourcentage de la lampe que l'on voit ?
Question : ben comment on fééé ?
Réponse : occlusion query. On dessine le monde, la map, tout ce que vous voulez ( ici les 2 carrés ). Puis on active le query via les extensions, on dessine la lampe et openGL va nous dire combien de pixels(cf *) ont été dessinés. on en déduit la taille du halo: plus il y a de pixels, plus le halo est grand.

Nota1 : la carte graphique doit le supporter, je n'ai pas mis de code de remplacement pour gérer les cartes graphiques ne supportant pas cette extension, somme toute assez ancienne
Nota2 : L'interface visuelle est plus que rudimentaire, ce qui est intéressant c'est le code.
Nota3 : Généralisable à un monde de 1 000 000 de polygones avec 10 000 lampes en 2 temps 3 mouvements.

Source / Exemple :


Le chargement des extensions se fait pas un code de Humus, merci à lui.
Equivalent à peu de choses près à glew, mais ça évitait de devoir redistribuer le binaire.
En débutant, rien de compliqué c'est juste pour monter.

Conclusion :


Ne fonctionne pas sous Vista dû aux drivers génériques. Cela viendra, semble-t-il.
POrtable.
Fournit avec un projet Code::Blocks ( format nighty build , pas Rc1 )

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.