website logo
Auteur
avatar
thellier

Forum » » Création-Développement » » dernière version de Microbe3D


Posté : 28-11-2013 10:29 icone du post

Hello
>bon du coup je me demande si c'est pas la taille de la fenetre qui déforme les objet 3D tu as essayer de changer les dimensions pour voir?

??? Tu veut dire que la fenêtre est trop grand et tiens pas dans ton écran ?
Essaye de m'avoir un grab (fais une photographie de tout l'écran) car je vois vraiment pas le problème

___________________________________________________________
Sinon là je viens de finir de faire marcher l'éclairage avec les bones

Je suis trop content , j'y bosse dessus depuis l'alchimie et je pense à l'algorithme depuis bien plus longtemps encore
Mais il a fallu que j'écrive plus de code pour vérifier les skins/bones que pour créer les skins sur les vertex-normales
J'ai aussi enlevé une bug qui ralentissait l'affichage

Bref ça marche super bien, je suis trop content
Il faut que je fasse une démo qui utilise des lampes qui bougent pour bien démontrer le truc


Comment ça marche:
L'éclairage 3D dépend des normales des faces : cad la direction de la perpendiculaire à une face, c'est donc la direction vers où regarde une face,
on concoit donc que si une face "regarde" vers une lampe elle est éclairée
Si on utilise juste une seule normale-de-face pour éclairer une facette alors elle sera juste plate (flat) comme ici = une couleur éclairée par face
http://www.supersonique.net/coding/datas/Tutorials/Macromedia%20Di rector%208.5%20MX/Per-Pixel%20Lightning%20en%20Shockwave%203D/shading.jpg

Si on interpole l'éclairage entre les ( 3 ou 4) sommets de la facette alors ce sera du gouraud (cad un dégradé entre les couleurs des (3 ou 4) sommets)
mais alors il faut avoir les normales des (3 ou 4) sommets de la face
On appelle cela des vertex-normals (normales de sommet)
En fait il s'agit juste de la moyenne des normales des faces autour de ce point comme ici la vertex-normal N est juste la moyenne de celles des faces a b c d
http://www.mactech.com/articles/mactech/Vol.14/14.11/PoorMansBryce PartII/fig03.gif

Bref on se retrouve donc à avoir besoin d'autant de sommets (coordonnées x y z) que de vertex-normals (vecteur nx ny nz) pour tracer un objet 3D éclairé en gouraud

Là où ça devient vraiment dur c'est que Microbe3D est plus (trop?) futé que ça : Microbe3D élimine les doublons aussi bien des sommets que des vertex-normals

Que sont ces doublons ?
Prenons un cube: c'est 8 sommets (8 points) qui font 6 faces rectangulaires donc en fait 2 triangles
Pour animer un cube si on trace de manière triviale (comme fait OpenGL) on se retrouve alors à devoir transformer (tourner, redimensionner,etc..) 6*2*3 sommets
Cad 36 points à transformer : harggg
Microbe3D lui ne transforme que les 8 points

Oui mais que sont les doublons de normales ?
Les normales et les vertex-normals ne sont que des directions : il arrive souvent que plusieurs faces d'un objet regardent dans la même direction.
Par exemple sur PartyGirl toutes les faces du plat du devant de la cuisse mais aussi du mollet regardent dans la meme direction
En plus Microbe3D est capable d'éliminer les normales et les vertex-normals pas seulement identiques mais "à peu près" identiques

Oui mais quel est le problème avec les skins ?
Une skin est une liste de point à transformer: par exemple les points de la cuisse de PartyGirl à tourner selon la direction de l'Instance (axe) "cuisse"
On peut imaginer ça comme des fils de marionnette accroché en divers point de l'objet
A partir de ce skin il faut donc créer un skin identique mais à appliquer aussi aux vertex-normales

Problèmes
Il n'y a pas une vertex-normales par sommet :-/ (pas de relation un pour un)
Si la même vertex-normale est utilisé dans le mollet et la cuisse :-/
Par contre si on réutilise les mêmes vertex-normales dans la seule cuisse c'est ok mais il faut le détecter :-/
Et si la vertex-normale est dans le "genou" cad utilisé dans (et déformé par) le mollet et la cuisse :-/

Bref plein de problèmes enfin résolus

Alain Thellier
Message édité par : thellier / 28-11-2013 10:31
Message édité par : thellier / 28-11-2013 10:32
Message édité par : thellier / 28-11-2013 10:32

Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=1705&forum=14