Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1083 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Open GL] Avis aux pros : comment faire de belles ombres? [Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Open GL] Avis aux pros : comment faire de belles ombres? [Résolu]

n°1288203
WarDrone
Eeny, meeny, miny, moe.
Posté le 20-01-2006 à 11:51:25  profilanswer
 

Je dessine des modèles 3D composés de facettes à l'aide d'open gl, seulement pour rendre le dessin plus explicite j'aimerais ajouter des ombres pour bien voir les differentes facettes.
 
Voici un exemple de ce que j'obtiens :
 
http://fallenzephir.free.fr/base.jpg
 
C'est un peu nul, je préfèrerais quelque chose de ce style (screen de vrmlview) :
 
http://fallenzephir.free.fr/fin.jpg
 
Après avoir lu plusieurs tutorial je suis arrivé à ceci :
 
http://fallenzephir.free.fr/tentative.jpg
 
Mais c'est plutôt laid. Avez-vous une idée? Comment dois-je m'y prendre?


Message édité par WarDrone le 21-01-2006 à 10:31:00
mood
Publicité
Posté le 20-01-2006 à 11:51:25  profilanswer
 

n°1288282
bjone
Insert booze to continue
Posté le 20-01-2006 à 13:28:25  profilanswer
 

c'est pas un problème d'ombre, c'est un problème d'éclairage, ie en 3D temps réel il y a subtilité sur la gestion des ombres (=lumière masquée par de la matière), ce n'est pas quelque chose de trivial comme dans un raytracer.
 
donc pour en revenir a ton problème d'éclairage, je dirais:
 
1) vérifies que tes normales par vertex soient OK
 
2) si ta matrice de positionnement/orientation fait un scaling (mise à l'echelle), ça peut avoir un impact sur la longueur de tes normales, et donc foirer l'éclairage, tu peux avoir a activer la normalisation automatique (remettre le longueur à 1) des normales
 
3) vérifies que ta source de lumière est OK
 
4) vérifes que tes propriétées de matériaux et de lumières soient OK, dont notemment l'exposant pour les reflets spéculaires (si l'exposant est trop bas ça peut te faire un tache saturée sur tes modèles)


Message édité par bjone le 20-01-2006 à 13:30:24
n°1288284
bjone
Insert booze to continue
Posté le 20-01-2006 à 13:33:16  profilanswer
 

là je me dirigerai vers un problème de coefficient diffus/spéculaire.

n°1288290
chrisbk
-
Posté le 20-01-2006 à 13:43:42  profilanswer
 

sinon la principale difference entre ce que tu obtiens et ce qu'obtient vrmlview est le modele d'eclairage (par vertex pour toi, par face pour vrmlview)

n°1288376
WarDrone
Eeny, meeny, miny, moe.
Posté le 20-01-2006 à 15:35:13  profilanswer
 

Je vais potasser tout ça (la gestion des lumières n'est pas si facile que ça).  
 
Merci pour vos réponses.


Message édité par WarDrone le 20-01-2006 à 15:53:28
n°1288801
WarDrone
Eeny, meeny, miny, moe.
Posté le 21-01-2006 à 10:30:26  profilanswer
 

Donc j'ai trouvé il suffisait de préciser les normales lors de la construction de la facette et voici le résultat :
 
http://fallenzephir.free.fr/final.jpg


Message édité par WarDrone le 21-01-2006 à 10:38:01
n°1289006
bjone
Insert booze to continue
Posté le 21-01-2006 à 17:12:07  profilanswer
 

c'est pas dément, il doit y avoir un blem.
tu les fais comment tes normales ?


Message édité par bjone le 21-01-2006 à 17:12:13
n°1289025
WarDrone
Eeny, meeny, miny, moe.
Posté le 21-01-2006 à 17:56:34  profilanswer
 

En fait ça ressemble plus à ca :
 
http://fallenzephir.free.fr/final2.JPG
 
Edit :
Effectivement mes normales sont identiques sur la face entiere.


Message édité par WarDrone le 22-01-2006 à 12:32:43
n°1289143
bjone
Insert booze to continue
Posté le 21-01-2006 à 20:37:29  profilanswer
 

a oui effectivement tout s'explique :/
 

n°1289235
WarDrone
Eeny, meeny, miny, moe.
Posté le 22-01-2006 à 00:52:21  profilanswer
 

Pourquoi faut faire comment pour avoir un ombrage plat de meilleur qualité?

mood
Publicité
Posté le 22-01-2006 à 00:52:21  profilanswer
 

n°1289239
Zavie
Test, du travail de pro !
Posté le 22-01-2006 à 00:58:28  profilanswer
 

Pour "lisser" un peu il faut calculer des normales par sommet plutôt que par face, en moyennant les normales des faces communes à chaque sommet (et s'assurer que tout est bien normé).


---------------
Viendez vous battre à Prologin \o/
n°1289242
WarDrone
Eeny, meeny, miny, moe.
Posté le 22-01-2006 à 01:04:55  profilanswer
 

Je les calcule deja par sommet.

n°1289244
chrisbk
-
Posté le 22-01-2006 à 01:07:56  profilanswer
 

bah la ton eclairage est par face

n°1289245
Zavie
Test, du travail de pro !
Posté le 22-01-2006 à 01:11:20  profilanswer
 

Ton image dit le contraire. Tu calcules peut-être une normale pour chaque sommet, mais manifestement les sommets d'une même face ont la même normale. Si ce n'était pas le cas, elles auraient une couleur en dégradé.


---------------
Viendez vous battre à Prologin \o/
n°1289246
Zavie
Test, du travail de pro !
Posté le 22-01-2006 à 01:11:56  profilanswer
 

Ah oui tiens j'avais oublié cette possibilité.


---------------
Viendez vous battre à Prologin \o/
n°1289247
chrisbk
-
Posté le 22-01-2006 à 01:17:07  profilanswer
 

non mais je pense pas qu'il fasse le "moyennage" des normales. Il emet ptet une normale par vtx, mais c'est la meme normale pour tous les vtx d'une meme face. Enfin c'est comme ca que je le comprends. J'imagine aussi qu'il utilise les odieuses fonctions glVertex3f & cie...

n°1289353
WarDrone
Eeny, meeny, miny, moe.
Posté le 22-01-2006 à 11:24:37  profilanswer
 

chrisbk a écrit :

non mais je pense pas qu'il fasse le "moyennage" des normales. Il emet ptet une normale par vtx, mais c'est la meme normale pour tous les vtx d'une meme face. Enfin c'est comme ca que je le comprends. J'imagine aussi qu'il utilise les odieuses fonctions glVertex3f & cie...


 
Bin donne moi une solution plus propre :)

n°1289355
WarDrone
Eeny, meeny, miny, moe.
Posté le 22-01-2006 à 11:26:32  profilanswer
 

Zavie a écrit :

Ton image dit le contraire. Tu calcules peut-être une normale pour chaque sommet, mais manifestement les sommets d'une même face ont la même normale. Si ce n'était pas le cas, elles auraient une couleur en dégradé.


 
C'est du flatshading que je fais.

n°1289356
chrisbk
-
Posté le 22-01-2006 à 11:28:45  profilanswer
 

WarDrone a écrit :

Bin donne moi une solution plus propre :)


 
Bah a terme regarde les glmachinarray, et apres les machins pour mettre les vtx en carte video
 
(quel bordel ogl)

n°1289359
WarDrone
Eeny, meeny, miny, moe.
Posté le 22-01-2006 à 11:34:13  profilanswer
 

chrisbk a écrit :

Bah a terme regarde les glmachinarray, et apres les machins pour mettre les vtx en carte video
 
(quel bordel ogl)


 
Je découvre et vu le nombre de primitives c'est pas gagné :)
Je vais regarder ce que tu me dis, et en ce qui concerne le stockage dans la carte video j'utilise une display list, c'est peut être ça dont tu me parles.

n°1289456
Zavie
Test, du travail de pro !
Posté le 22-01-2006 à 15:17:20  profilanswer
 

Petite minute nécessaire d'OpenGL...
 
Il existe en OpenGL trois méthodes pour envoyer les données à la carte graphique :
- le mode immédiat à coups de glVertex et compagnie, qui est le plus lent ;
- les listes d'affichages, qui consistent à compiler des appels OpenGL et à les stocker sur le serveur graphique, ce qui est sensiblement plus rapide pour les commandes répétitives, et en particulier si le client et le serveur sont deux machines différentes ;
- les tableaux de données, qui consistent à ranger les données dans un tableau pour permettre à OpenGL de les traiter en un parcours de tableau (et il existe plusieurs types de rangements avec des perfomances différentes).
 
Le mode immédiat c'est bien pratique pour bricoler et tester, mais pour les perfomances il faut passer par les tableaux de données.
 
(Edit : oublié un 's')


Message édité par Zavie le 22-01-2006 à 23:35:31

---------------
Viendez vous battre à Prologin \o/
n°1289472
WarDrone
Eeny, meeny, miny, moe.
Posté le 22-01-2006 à 15:40:33  profilanswer
 

Merci, j'étudierai ça avec soin :)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Open GL] Avis aux pros : comment faire de belles ombres? [Résolu]

 

Sujets relatifs
[resolu]pb requete sql sur des champs date et time[résolu] Sécurité base de données avec PHP
[resolu]methode post vers une autre frame[résolu][CSS] Probléme avec... FF !
images aliasées avec la librairie GD2 [résolu][RESOLU]erreur a l'affichage de mes pages?????
[Résolu][JSP/STRUTS]pré-selection liste déroulante[Resolu][VBA EXCEL ] ouvrir un pdf à l'aide d'EXCEL
[Résolu]Fonction Pos : mon code ne marche pas[Résolu][C# & XML] Valider un fichier xml selon un schéma
Plus de sujets relatifs à : [Open GL] Avis aux pros : comment faire de belles ombres? [Résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR