Jump to content

[OpenGL] źródło światła po przekształceniach widoku


raV

Recommended Posts

Cześć!

 

Nie mogę znaleźć odpowiedzi na (chyba) proste pytanie:

 

Załóżmy, że definiuję źródło światła w punkcie (x,y,z) świecące w kierunku ujemnych Y (pionowo w dół).

Następnie, przy każdym rysowaniu sceny, odsuwam ją np translate(a,b,c)

Czy źródło światła będzie w punkcie (x,y,z), czy (x+a,y+b,z+c) ?

 

 

Ten sam problem - inny przykład: definiuję światło równoległe, np biegnące wzdłuż osi OX.

Przy każdym rysowaniu obracam scenę np o 90 stopni wokół OY

 

Czy światło będzie padało dalej wzdłuż *bezwględnego* OX, czy *bezwględnego* OZ?

Link to comment
Share on other sites

Jeżeli robisz to w ten sposób:

glLoadIdentity();
gluLookAt(...); //opcjonalnie
//ustalenie pozycji światła
glPushMatrix();
//przekształcenia
//rysowanie sceny
glPopMatrix();

to światło będzie przesunięte/obrócone tylko względem elementów sceny, samo w sobie będzie w tym miejscu, w którym je ustawiłeś, bo przekształcenia go nie dotyczą. Ale myślę, że najpewniej jest sprawdzić to samemu.

Etharnion - 2D RPG

Szukam grafika chętnego do współpracy przy projekcie.

Link to comment
Share on other sites

Robię tak:

 

Tworzę źródło światła (GL_POSITION etc)

W pętli głównej rysuję scenę (z różnym glTranslate i glRotate)

 

Wydaje mi się, że te transformacje nie ruszają mojego światła, ale chciałbym się upewnić.

 

tranformacje są w GL_MODELVIEW

Link to comment
Share on other sites

Można przyjąć, że układem odniesienia jest początkowy układ bez żadnych przesunięć ani obrotów. Załóżmy, że ustawiasz światło w punkcie (0, 5, 0), później dokonujesz translacji (0, 2, 0) i rysujesz punkt w miejscu (0, 0, 0). Bez tej translacji światło znajdowałoby się równo 5 jednostek nad punktem, ale będzie 3 jednostki, ponieważ przemieściliśmy tylko punkt 2 jednostki w górę, a bezwzględna pozycja światła nie zmieniła się.

Etharnion - 2D RPG

Szukam grafika chętnego do współpracy przy projekcie.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...