Bonjour,
je voulais savoir s'il était possible de faire de la perspective cavalière avec des objets usuels des mathématiques comme un cube par exemple de telle façon qu'apparaissent en pointillés les arêtes cachées ?
Toute info. est la bienvenue.
Bonjour,
je voulais savoir s'il était possible de faire de la perspective cavalière avec des objets usuels des mathématiques comme un cube par exemple de telle façon qu'apparaissent en pointillés les arêtes cachées ?
Toute info. est la bienvenue.
La première chose qui m'est venu à l'idée en lisant ton problème est que tu as dessiné un cube et que tu es passé en mode fil de fer pour afficher seulement les arêtes et que ton glClearColor est noir. Si c'est le cas, tu peux texturer les faces caché avec une texture qui fait des alternance de noir et de blanc. Étant donné que tu serais en mode fil de fer la texture ne se verrait pas mais sur les arrêtes tu verrais une alternance de noir et de blanc ce qui pourrait donner l'effet visuel de tiret. Sinon avec les shader ça doit être possible. Peux-tu nous montrer un screenshot de ce que tu as?
En fait, j'en suis nulle part, je voulais savoir si cela était possible et dans ce cas comment faire. Existe-t-il un tuto. concret sur les shadres ?
En fait, je voudrais faire quelque chose comme cette page Internet : http://jmath3d.aspirine.org/galerie/cube_et_plan.html .
Salut,
Si tu utilises GL_LINE* pour dessiner, glLineStipple sera ton amie
(cf http://alien.dowling.edu/~vassil/the...chapter02.html §"Line Details" pour des exemples et détails)
Je vais reposer un peu mieux ma question.
Je cherche une méthode pour par exemple définir un objet cube dans l'espace tel que lorsque l'utilsateur fait tourner le cube tout ce qui est devant est en trait plein, et ce qui est derrière en trait pointillé.
Attention, je cherche en fait une méthode qui mette en trait plein tout ce qui est directement visible et en pointillé tout ce qui est caché pour pouvoir mettre autant d'objets géométriques que je veux.
De ce que j'en comprends, c'est pas incompatible, suffit de décomposer.
Tu rends ta scène une fois de façon tout à fait classique (filtrage GL_LEQUAL ou GL_EQUAL typiquement), ce qui aura pour effet que le cube cachera ce qui devra être en pointillé.
2ème passe, tu règles le filtrage du zbuffer pour n'accepter les points que s'ils sont plus loin que le point actuel (GL_GREATER), puis tu dessines tes objets, ou leur contours, bref, ce que tu veux, avec l'un des GL_LINE*.
GL_GREATER est à fournir à glDepthFunc au début de la 2nde passe ; il faut le restaurer soit au début de la première passe, soit à la fin de la 2nde.
C'est ça qu'il fallait clarifier ?
En fait, c'est plus sur la méthode générale que je bloque car je suis débutant en OpenGL.
Ma question est juste de savoir comment régler le zBuffer. De la doc. sur le sujet me suffirait si c'est long à expliquer.
Ben, j'ai écris la fonction nécessaire, et la valeur à lui passer
glDepthFunc(GL_GREATER)
Une petite recherche sur cette fonction te mènera droit à la doc nécessaire.
Merci de ta réponse et de ta patience, je vais étudier cela plus sérieusement.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager