Occlusion query

Soyez le premier à donner votre avis sur cette source.

Vue 5 957 fois - Téléchargée 392 fois

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

Ajouter un commentaire Commentaires
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
Effectivement.
Il s'agit de l'extension glGetQueryiv qui est manquante sur cette carte.
En fait c'est totalement crétin, glGetQueryiv ( et toutes les autres ! ) n'y sont pas, mais glGetQueryivARB y sont !
Le problème vient de l'init des extentions, je n'avais pas eu ce problème avec glew.
Je MAJ dans les secondes qui suivent.

Petite remarque suivant mon test sur un autre PC ( ayant la 9200, justement ) j'ai peut-etre fait un sleep() un peu trop fort 0:-) Mais c'est pas sur de changer ça vous allez y arriver ^^
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
10
L'exe marche pas sous Win XP SP 1 avec une carte graphique ATI Radeon 9200... Ca vient des extensions non supportées ou d'un bug inconnu ?

En fait, je lance le programme, il se bloque, et 2 minutes plus tard il me dit "OcclusionQuery a rencontré un problème et doit se fermer"...

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.