website logo
Auteur
avatar
thellier

Forum » » Création-Développement » » Dungeon Crawler (Odyssey) Os4


Posté : 11-12-2012 11:00 icone du post

Attention je dis pas que le W3D_COMBINE_ADD donne un meilleur résultat mais que ayant testé modulate,add,interpolate et un 4éme (je ne sais plus lequel)
alors add donne aussi un résultat (à explorer) contrairement à interpolate qui fait du grand n'importe quoi
faudrait aussi explorer W3D_COMBINE_SUB

Par ailleurs on a toujours un désaccord à propos du "tangent space"
Après avoir lu différents trucs comme
http://www.paulsprojects.net/tutorials/simplebump/simplebump.html
et en faisant tourner mon propre Microbe3D ==> je le dis radicalement "on a pas besoin de calculer le tangent space avec Warp3D"

Mais au fait pourquoi on en a besoin dans OpenGL ?

Car on y travaille toujours dans l'Espace Objet et qu'au moment ou on envoie ces coordonnées on ne sait pas comment elle seront transformées dans l'Espace de Vision (bref comment sera orienté au final l'objet) et donc quelle position relative à la lumière elle aura (quelle position prendra la face de l'objet vis à vis de la lumière)
En gros il se cassent le cul pour trouver : position de la face de l'objet vis à vis de la lumière dans l'espace Objet (le seul ou GL bosse)


Or ici dans Warp3D, avec nos calculs de transformations faits mains, on a à tout moment les coordonnées de l'objet mais aussi celles dans l'Espace de Vision
Ainsi nous on peut bosser dans l'espace de Vision et chercher la position de la face de l'objet vis à vis de la lumière dans l'espace Vision

Mon plan de face = plan* decrit par les 3 vertex-normales du triangles (transformées dans l'espace de vision) il suffit donc de le tourner dans la direction de la lampe pour être OK.
C'est à dire pour une lampe non-locale appliquer une matrice de rotation (vers la lampe) aux vertex-normales du triangles (déjà transformées dans l'espace de vision) et les mettre dans la composante couleur et faire le dot
Voir le code de glulookat() pour fabriquer ce genre de matrice

>"car ta modulation est à 1 (via la composante B), en revanche, tu as quand même un effet bump, parceque tu conserves les zones assombries par les composantes R et G. De plus, perso, au même titre que B, je module AUSSI R et G selon la distance vertex->light, pour éviter d'avoir un "contour bump" visibles dans les zones où B est fortement assombri. Et ça donne quelque chose de super réaliste. "
Et là je rejoins le clan de ceux qui comprennent vaiment rien de ce que tu raconte

Alain

* c'est pas mathématiquement un plan puisque la normale sera interpolée entre les 3 sommets (donc pas plate) c'est plutot une sorte de "surface"



Message édité par : thellier / 11-12-2012 11:08
Message édité par : thellier / 11-12-2012 11:14

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