raV Posted November 29, 2010 Report Share Posted November 29, 2010 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 More sharing options...
Adam27 Posted November 30, 2010 Report Share Posted November 30, 2010 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 More sharing options...
raV Posted December 2, 2010 Author Report Share Posted December 2, 2010 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 More sharing options...
Adam27 Posted December 2, 2010 Report Share Posted December 2, 2010 Najlepiej, żeby światło ustawiać bezpośrednio przed każdorazowym rysowaniem sceny, wtedy masz pewność, że będzie cały czas na swoim miejscu. Etharnion - 2D RPG Szukam grafika chętnego do współpracy przy projekcie. Link to comment Share on other sites More sharing options...
raV Posted December 2, 2010 Author Report Share Posted December 2, 2010 No ale w tym tez problem - nie wiem GDZIE, skoro nie wiem jaki jest układ odniesienia Link to comment Share on other sites More sharing options...
Adam27 Posted December 2, 2010 Report Share Posted December 2, 2010 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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.