2010-11-05 19 views
1

Pour un projet, je veux implémenter mon propre Z-buffer. Je connais l'algorithme et comment l'implémenter. Parce que je ne veux pas écrire un moteur graphique complet que je prévoyais d'utiliser OpenGL, le problème est, comment puis-je combiner mon propre algorithme avec openGL?Implémentation d'un tampon Z utilisant OpenGL

J'ai lu quelque part que je pouvais tout calculer moi-même et ensuite passer les données par pixel à GLDrawPixels() mais cela semble un peu exagéré. Le point est que je ne veux pas implémenter des algorithmes de triangulation, etc.

Mon but est d'utiliser openGL jusqu'à la structure filaire, puis d'utiliser mon propre algorithme z-buffer, puis d'utiliser à nouveau OpenGL pour dessiner l'image finale. (pour mon projet, le z-buffer est la seule chose qui compte, y compris la lumière et les ombres). Existe-t-il un moyen de le faire ou dois-je tout implémenter moi-même et laisser openGL juste tirer le résultat final?

Sincèrement

Répondre

2

Vous pouvez définir la couleur des sommets que vous dessinez à leurs valeurs z en calculant leur distance « manuellement ». Mais je pense qu'il est possible de lier le z-buffer en tant que texture, puis de dessiner un grand quad couvrant l'écran avec la texture z-buffer.

+0

Je vais y réfléchir. Au final, je dois implémenter une autre technique, basée sur z-buffering, mais pas complètement identique (je dois créer un z-buffer irrégulier). Voyons voir ce qui est possible avec votre suggestion. – KWyckmans

+0

Vous avez raison, openGL ne semble pas être le bon outil pour cela. – KWyckmans