Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : normales d'une map 3d. [ Archives / Maths & Algorithmes ] (BumpMANN)

samedi 13 mars 2004 à 21:23:40 | normales d'une map 3d.

BumpMANN

Membre Club
Je suis pas optimiste sur les réponses mais je la pose quand même! donc voila: j'essaie de faire une map, en 3d, avec directx. Les points et triangles sont bien positionés, ce n'est pas le probleme. le truc c'est pour les lumieres: il faut les normales. donc je m'y suis mis, mais la je sais vraiment pas pourquoi sa marche pas . Voila le passage :

GROUNDVERTEX* pVertices;
if( FAILED( m_pVB->Lock( 0, 0, (void**)&pVertices, 0 ) ) )
return E_FAIL;

for(j=0; j<=height; j++ )
for( int i=0; i<=width; i++ )
{
pVertices[j*(width+1)+i].position = D3DXVECTOR3((float)i*tsize,m_hzmat[(j+1)*(width+1)+i+1],(float)j*tsize);
pVertices[j*(width+1)+i].normal = D3DXVECTOR3(0,0,0);
}

D3DXVECTOR3 v1,v2,v3,v4,vp;
for(j=1; j<height; j++ )
for( int i=1; i<width; i++ )
{
D3DXVec3Normalize( &v1, &(pVertices[j*(width+1)+i].position - pVertices[j*(width+1)+i-1].position) );
D3DXVec3Normalize( &v2, &(pVertices[j*(width+1)+i].position - pVertices[j*(width+1)+i+1].position) );
D3DXVec3Normalize( &v3, &(pVertices[j*(width+1)+i].position - pVertices[(j+1)*(width+1)+i].position) );
D3DXVec3Normalize( &v4, &(pVertices[j*(width+1)+i].position - pVertices[(j-1)*(width+1)+i].position) );
D3DXVec3Normalize( &vp, &(v1+v2+v3+v4) );

pVertices[j*(width+1)+i].normal = (vp.y>=0)? vp : -vp;
}

m_pVB->Unlock();


Donc, voila... chaud...
-----------------------------------
Kubo!!! http://ff6sol.com

samedi 13 mars 2004 à 21:44:28 | Re : normales d'une map 3d.

BumpMANN

Membre Club
ah aussi... j'ai fait un croquis vite fait... en fait je prends les vecteurs des arrêtes de la map (pour un point y'en a quatre) et je calcule le vecteur au millieu (la somme des quatres).
les quatres vecteurs faut aussi les normaliser: sinon la normale est évidemment verticale (x=1,x=-1,z=1,z=-1, donne un x=z=0. seul y peut changer), alors que la, x et z dépendent des y adjacents : p ... et pi je normalise aussi la normale obtenue puisqu'une seule fois au début ca suffit. Bonbonbonbon.... voila le croquis:


Arf. j'ai oublié de donner ce que ca donne Ô_o;



Bah vous voyez la: ya des zones qui sont toutes noires ou éclairées ou il faut pas :P comme si les normales étaient misent au hasard! j'ai vérifié: c'est pas le systeme d'éclairage qui marche pas puiske quand je met toutes les normales verticales, vers le haut, l'éclairage est régulier, normal (faites moi confiance, j'en suis sur! lol)

------------------------------------
Kubo!!! http://ff6sol.com



Cette discussion est classé dans : 3d, map, normales, pvb, pvertices


Répondre à ce message

Sujets en rapport avec ce message

Projet OpenGl [ par barraq ] salut,Voila j'ai un projet a faire pour ma fac, je doit réaliser tout un environement 3d en opengl .Je doit pouvoir me deplacer dans une map donnée et Souris en 3D [ par nicographx ] BonjourDans un programme en 2D, il est facile de connaitre la correspondance entre la map et la souris : il suffit de connaitre la position de la sour [Vertex Array] Optimisation de l'affichage d'un maillage 3D triangulé [ par jcloupgarou ] Bonjour,Je realise un modeler 3D (primitives geometrics) / loader de differents formats 3D. J'en suis a l'optimisation de la méthode d'affichage OpenG integrer ou créer une equipe [ par Horfee ] Bonjour,J'aimerais intégrer un créer une petite équipe pour développer un jeu en 3D. J'ai suffisament de connaissance en C++ et en 3D pour me débrouil qu'est ce que c'est que ce map ??? [ par wismerhill__ ] Bonjour, j'ai touvé dans du code std::mapJe ne comprend pas ce que c'est que cette méthode map de la class standard ... (désolé si cette question est zoom avec moteur 3D [ par poiuytrez3 ] Bonjour, je suis en train de faire un moteur 3D de A à Z. J'ai donc gérer grâce aux matrices le déplacement et la rotation autour d'un axe. Mais je n forme 2et 3d [ par kohonen_reseau ] slt les jeunes, j'ai un petit probleme et si vous pouvez m'aider merci d'avance, mon probleme est le suivant :je suis entrain de faire un programme en ALLEGRO : PACKFILE ??? mode d'emploi ? [ par Darksheep ] Bonjour , je débute avec allegro et j'ai vu rescement dans une source, un rpg , l'utilisation d'un fichier data packfile , qui contiendrait la map du Modelisation facile 3D avec OpenGL [ par nico4nicolas ] Bonjour, J'ai pour projet de modeliser un visage en trois dimensions a partir de photographies, mon probleme est que je suis un veritable novice en ce Reconstruction 3D par Octree [ par mehdithe ] Bonjour a tous, Voila, dans le cadre de mon stage je dois developper une application permettant de reconstruire un objet 3D a partir de ses informati


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.