Skocz do zawartości

[OpenGL]: normalne i wierzchołki tekstur


3dsmaxman

Rekomendowane odpowiedzi

Witam!

 

Piszę właśnie konwerter z tekstowego OBJ do binarnego, aby potem móc szybko i ładnie ładować modele za pomocą funkcji w jakimś napisanym przez siebie DLL-u.

 

Tu rodzą się moje pytania, a mianowicie:

1) Czy muszę wyliczać normalne? Wydaje mi się, że tak, ale wolę się upewnić.

2) W jaki sposób zapisuje się "współrzędne" normalnej?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 4
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

w pliku obj masz normalne vertexow zazwyczaj (vn)

jak chcesz obliczyc do face'a to:

 

w przypadku tri'sa np tak:

 

VERTEX3D Face::CountNormal(VERTEX3D a, VERTEX3D b, VERTEX3D c)

{

 

// a---P-->b

// | /

// | /

// | /

// Q /

// | /

// V /

// c

 

GLfloat Px,Py,Pz,Qx,Qy,Qz;

VERTEX3D N;

 

///

Px = b.x - a.x;

Py = b.y - a.y;

Pz = b.y - a.z;

 

 

Qx = c.x - a.x;

Qy = c.y - a.y;

Qz = c.z - a.z;

 

//

 

 

 

N.x = ( ( Qz * Py ) - ( Qy * Pz ) );

N.y = ( ( Qx * Pz ) - ( Qz * Px ) );

N.z = ( ( Qy * Px ) - ( Qx * Py ) );

return N;

 

}

 

gdzie VERTEX3D jest zdefiniowany jako:

 

class VERTEX3D

{

public:

GLfloat x;

GLfloat y;

GLfloat z;

}

 

normalna to wektor wiec nie ma wspolrzednych

 

pozdr

 

;)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeszcze jedno pytanie, choć nie związane z normalnymi (ale też z OpenGL :> )

 

Otóż: mój konwerter Max->Obj (Max2Obj) przypisuje wierzchołkom tekstury trzy współrzędne. Co oznacza ta trzecia? Bo dla mnie (intuicyjnie) taki wierzchołek powinien posiadać dwie współrzędne (ponieważ mapa do tekstury jest zazwyczaj dwuwymiarowa).

 

Z góry dziękuję za odpowiedź!

Odnośnik do komentarza
Udostępnij na innych stronach




×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności