2010-09-16 3 views
4

Par exemple, si je dessine un cube et que je tourne mon personnage pour l'éloigner du cube, utilise-t-il le traitement CPU/gpu pour le dessiner même s'il n'est pas à l'écran? Ai-je besoin en tant que programmeur d'être assez intelligent pour ne pas faire des appels opengl si un objet n'est pas à l'écran ou très loin?Est-ce que opengl rend des objets qui ne sont pas visibles?

Répondre

1

Vous pouvez activer 'scissor test' pour tracer un dessin contre le rectangle des ciseaux. Cela dit, cela n'empêche pas l'exécution de tout le reste de votre code de dessin - donc, à moins que votre scène ne soit assez simple, vous voudrez généralement vous pencher sur des méthodes plus complexes.

Octrees et BSP trees sont un bon point de départ.

1

Oui, GL n'écarte les pixels qui sont hors de la vue, mais qui consomme encore des ressources , puisque c'est par pixel. Ignorer les appels de dessin de primitives non visibles est une bien meilleure approche.

2

Oui. Toutes les données de vertex envoyées à OpenGL consommeront des ressources, que la géométrie correspondante soit visible ou non. Comme suggéré ci-dessus, l'optimisation truffée est une optimisation qui identifie les objets qui ne seront pas dans le volume de vue et ignore/élimine ses données de sommet. Ainsi, si les données de sommet ne sont jamais soumises au GPU, elles ne seront jamais traitées par le GPU.

Questions connexes