rendu sans context graphique
Dernière réponse : dans Programmation
Bonjour,
Je travaille sur un projet qui consiste à:
"En indiquant à l’outil le point de vue désiré, le champ de vue, ainsi que la taille n*m en pixels, l’utilisateur pourra obtenir une image de rendu qui comprendra le numéro de face à laquelle appartient chaque pixel.
Ce résultat sera stocké dans un fichier texte".
En fait cet outil doit s'executer en mode batch, on lui rentre les renseignements et il me renvoit un fichier texte avec pour chaque pixel le numero de face de l'objet auquel il appartient. On m'a parlé d'une fonction de MESAGL, pbuffer qui ferait exactement ca (un rendu sans context graphique) mais j'avoue ne pas connaitre grand chose a MESA.
Si quelqu'un peut me renseigner ou bien me proposer une autre solution.
N.B: ne peut on pas tout simplement utiliser un buffer d'openGL??
merci d'avance
Je travaille sur un projet qui consiste à:
"En indiquant à l’outil le point de vue désiré, le champ de vue, ainsi que la taille n*m en pixels, l’utilisateur pourra obtenir une image de rendu qui comprendra le numéro de face à laquelle appartient chaque pixel.
Ce résultat sera stocké dans un fichier texte".
En fait cet outil doit s'executer en mode batch, on lui rentre les renseignements et il me renvoit un fichier texte avec pour chaque pixel le numero de face de l'objet auquel il appartient. On m'a parlé d'une fonction de MESAGL, pbuffer qui ferait exactement ca (un rendu sans context graphique) mais j'avoue ne pas connaitre grand chose a MESA.
Si quelqu'un peut me renseigner ou bien me proposer une autre solution.
N.B: ne peut on pas tout simplement utiliser un buffer d'openGL??
merci d'avance
Autres pages sur : rendu context graphique
Lassé par la pub ? Créez un compte
le lancer de rayon n'est pas trop lent.
Tu as juste à balayer les rayons du point d'origine vers le pixel courant de l'écran, apres un petit calcul mathématique te donne le point d'intersection P avec un plan.
Et pour savoir si le point est dans le polygone, tu peux calculer le produit vectoriel (PA,PB), puis (PB,PC) ... (P [N], P[N+1]) puis (P[N+1], PA).
Et tu vérifie que tous ces points sont dans le meme sens (produits scalaires > 0).
Sinon en openGL, c'est sûr on peut le faire. Je m'en suis servi pour le clic de souris.
Je te revois encore sur le redBook
Plus précisément l'exemple pickdepth qui utilise une fonction GLU: gluPickMatrix ()
qui avec un glRenderMode(GL_RENDER); permet de calculer le rendu (la sélection en fait)
Tu as juste à balayer les rayons du point d'origine vers le pixel courant de l'écran, apres un petit calcul mathématique te donne le point d'intersection P avec un plan.
Et pour savoir si le point est dans le polygone, tu peux calculer le produit vectoriel (PA,PB), puis (PB,PC) ... (P [N], P[N+1]) puis (P[N+1], PA).
Et tu vérifie que tous ces points sont dans le meme sens (produits scalaires > 0).
Sinon en openGL, c'est sûr on peut le faire. Je m'en suis servi pour le clic de souris.
Je te revois encore sur le redBook
Plus précisément l'exemple pickdepth qui utilise une fonction GLU: gluPickMatrix ()
qui avec un glRenderMode(GL_RENDER); permet de calculer le rendu (la sélection en fait)
Je pense que tu ne pourra pas aller plus vite que cette fonctionnalité opengl, car le calcul est effectué en faisant un rendu.
http://www.opengl.org/resources/tutorials/sig99/advanced99/notes/node35.html
Quand tu lances un rendu pour la sélection, opengl passe des vecteurs aux fragments vers les primitives, mais ne génère pas les fragments. Bref, tout ça est optimisé.
Il faut savoir que si les jeux n'utilisent pas le ray tracing, c'est parce que les calculs sont long à effectuer. Alors je ne sais pas ce que tu fais de ce lancer de rayon (ou combien tu en fais), mais si c'est complexe, ne t'attend pas à avoir tu temps réel...
http://www.opengl.org/resources/tutorials/sig99/advanced99/notes/node35.html
Quand tu lances un rendu pour la sélection, opengl passe des vecteurs aux fragments vers les primitives, mais ne génère pas les fragments. Bref, tout ça est optimisé.
Il faut savoir que si les jeux n'utilisent pas le ray tracing, c'est parce que les calculs sont long à effectuer. Alors je ne sais pas ce que tu fais de ce lancer de rayon (ou combien tu en fais), mais si c'est complexe, ne t'attend pas à avoir tu temps réel...
Lassé par la pub ? Créez un compte