begin process at 2012 02 10 08:19:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Maths & Algorithmes

 > 

normales d'une map 3d.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

normales d'une map 3d.

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ée 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 Maillage 3D + quadtree + calcul de normales [ par buno ] Hello, J'ai un maillage 3D (terrain) avec 3 niveaux de détails que j'affiche à l'aide d'un quadtree. Le calcul et l'affichage des données se fait uniq coder module map [ par ja92 ] Bonjour Je dois coder un module maps sur visual studio ou Qt , que me conseillez-vous ? Je dois le developper en C++ mais je ne sais pas comment co Interpolation trilinéaire dans une Matrice 3D [ par narutokun66 ] Bonjour, voila je dispose des coupes 2D (bitmap) et maintenant après d'avoir chargé ces images dans une matrice 3D en utilisant l'outil [i]Devil [/i] Interpolation dans une Matrice 3D [ par narutokun66 ] Bonjour, voila je dispose des coupes 2D (bitmap) et maintenant après d'avoir chargé ces images dans une matrice 3D en utilisant l'outil Devil sous V Interpolation matrice 3d [ par narutokun66 ] Bonjour, voila je dispose des coupes 2D (bitmap) et maintenant après d'avoir chargé ces images dans une matrice 3D en utilisant l'outil Devil sous Vi Probleme Erreur Segmentation [ par kyubi6363 ] Voila sa compile bien mais erreur de segmentation quand je lance. Pouvais vous me dire ce qu'il ne va pas :) #include #include #define TAILLE_LARG


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales