Activer l'anti-aliasing pour appli 3D en mode fenêtre

Signaler
Messages postés
57
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 septembre 2011
-
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
-
Bonjour !
Après avoir cherché toute une nuit sans succès, je viens vers vous pour vous faire part de mon soucis. J'ai commencé une petite application du style viewer d'objets. La fenêtre 3D est donc une PictureBox dans une Form. J'arrive à initialiser ma scène, ajouter un triangle, et aussi dessiner une "grille du monde". Le problème est qu'il n'y a pas d'anti-aliasing. J'ai beau fouiller partout, je ne trouve pas de solution.
Et par hazard, existerait-il déjà une solution toute prête pour afficher une grille du monde sans avoir besoin de dessiner chaque ligne avec "PrimitiveType.LineList" ?

Pour infos, je travaille sur VB.net 2008.

Pour mon anti-aliasing, j'ai testé ceci:

device.SetRenderState(RenderStates.AntialiasedLineEnable, True)

et aussi:

device.RenderState.AntiAliasedLineEnable = True

Mais rien n'y fait .
Pendant que j'y suis, encore un petit soucis avec directX et la capture de webcam. Impossible de trouver comment afficher le panneau des réglages (constraste,saturation.....) ...

Merci d'avance pour votre aide

3 réponses

Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
37
Bonjour,

Je ne sais pas exactement le but de ton programme, ce que je sais c'est que pour le dessins de formes dans un contrôle ou une un image, le framework intègre des fonction GDI+, et l'anti-aliasing fonctionne !

Si tu veux des infos la dessus, dis le moi.

Mayzz.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
Messages postés
57
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
4 septembre 2011

Bonjour Mayzz, et merci de prendre le temps de regarder mes petits soucis.

Mon programme a pour but, à terme, de scanner des objets 3D avec une webcam et un petit laser rouge (en ligne). Evidemment, vu mon niveau, je ne pense pas y arriver, mais c'est toujours intéressant d'essayer.
En attendant, j'essaye au moins d'afficher quelques polygones ou de charger un objet 3D ... faire un petit viewer simple quoi.

Le graphique étant redessiné très souvent (loop), je ne pense pas que ce soit viable de traiter à chaque fois toute l'image avec les fonctions classiques du Framework. Ca risque d'être super lourd.
C'est pour cette raison que je cherchais uniquement avec les possibilités de Direct3D.

Je pense avoir trouvé la solution sur un site italien (merci la traduction de google) .. http://www.notjustcode.it/dblog/articolo.asp?articolo=152
mais je n'ai pas encore essayé, car il est dit qu'il faut avoir une carte graphique et un pc relativement récents et puissants.
Après avoir essayé, je repasserais vous faire part du résultat

Par contre, la possibilité d'appliquer un anti-aliasing sur un PictureBox sur lequel j'aurais dessiné (avec fonctions basiques) m'intéresse aussi beaucoup !
Donc si tu as quelques infos ou un lien explicatif, je suis bien entendu preneur
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
37
heu... ben en fait l'anti-aliasing est celui des fonctions GDI du framework... Donc effectivement si tu ne passe pas par celles-ci pour le dessin, cela ne sert pas a grand chose...

Pourtant pour le projet que tu as, je pense tout à fais possible le fait de passer par le gdi, si c'est bien sur pour dessiner des formes simples, sans remplissage complexe.

Tu pourrais scanner l'image et partir sur des points précis (de l'arrière au premier plan) puis déssiner facilement une forme grace au GraphicPath, en suite tu peux transformer cette forme, la peindre en couleur unie, ou en dégradés multiples et complexes.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <