ďťż

Ładny brzuch

Piszę program który wykorzystuje opengl mam tam takie coś:
glClear(GL_COLOR_BUFFER_BIT);   // opróżnia ekran  glLoadIdentity(); gluLookAt(0.0f, 0.0f, 3.0f,  // eye   0.0f, 0.0f, 0.0f,  // center   0.0f, 3.0f, 0.0f);      // up glColor3f(1.0f,0.0f,0.0f); glBegin(GL_TRIANGLES);  glVertex3f(0.5f, 0.0f, 0.0f);  glVertex3f(0.0f, 0.5f, 0.0f);  glVertex3f( -0.5f, 0.0f, 0.0f); glColor3f(0.0f,1.0f,0.0f);  glVertex3f(0.7f, 0.0f, 0.9f);  glVertex3f(0.2f, 0.5f, 0.9f);  glVertex3f( -0.3f, 0.0f, 0.9f); glEnd(); glFlush();
problem polega na tym że nic nie widać,
ale kiedy usunę funkcję gluLookAt() widzę to co trzeba.
Dlaczego tak się dzieje?



gluLookAt() to funkcja do ustawiania kamery. Pewnie wartości które wprowadziłeś wskazują na punkt w obrębie którego niema żadnych wierzchołków trójkąta. Możliwe też że źle ustawiłeś perspektywe.

parametry w gluLookAt myślę że są ustawione dobrze ale nie wiem jak ustawić tą perspektywe. W którym miejscu w programie to się powinno robić?


parametry w gluLookAt myślę że są ustawione dobrze ale nie wiem jak ustawić tą perspektywe. W którym miejscu w programie to się powinno robić? Zazwyczaj na starcie programu -> np. gluPerspective().
Użytkownik Cyrkiel edytował ten post 20 maj 2006, 20:47


Zauważyłem że widzę tylko to co jest w odległości max 1.0 od obserwatora a wszystko co jest dalej znika.

void RENDER() {    glClear(GL_COLOR_BUFFER_BIT);   // opróżnia ekran  glLoadIdentity(); gluLookAt(0.0, 0.0,-3.1, // eye   0.0, 0.0, 0.0,  // center   0.0, 1.0, 0.0);      // up glBegin(GL_TRIANGLES); glColor3f(1.0f,0.0f,0.0f);  glVertex3f(0.5 , 0.0 ,-3.0 );  glVertex3f(0.0 , 0.5 ,-3.0 );  glVertex3f( -0.5 , 0.0 ,-3.0 ); glColor3f(0.0 ,1.0 ,0.0 );  glVertex3f(0.5 ,-0.5 ,-2.0 );  glVertex3f(0.0 , 0.0 ,-2.0 );  glVertex3f( -0.5 ,-0.5 ,-2.0 ); glEnd(); glFlush(); }
do zdarzenia WM_SIZE mam przypisaną tą funkcje i tam konfiguruję perspektywe
GLvoid ResizeScene(GLsizei width, GLsizei height) {  // aktualizuje rozmiary okna widoku  glViewport(0, 0, width, height);  g_width = width;  g_height = height;  // wybiera macierz rzutowania i ładuje do niej macierz jednostkową  glMatrixMode(GL_PROJECTION);  glLoadIdentity();  // konfiguruje perspektywę  gluPerspective(60.0f, width/height, 0.0f, 10.0f);  // wybiera macierz modelowania i ładuje do niej macierz jednostkową  glMatrixMode(GL_MODELVIEW);  glLoadIdentity(); }
co tam jest źle bo ja już nie wiem.
Użytkownik kondi edytował ten post 21 maj 2006, 07:58
Spróbuj tak: gluPerspective(60.0f, width/height, 0.01f, 1000.0f);
Fajnie byłoby zobaczyć cały kod ;)
Użytkownik Cyrkiel edytował ten post 21 maj 2006, 11:41
Taka uwaga dla wszystkich:

NIGDY nie ustawiajcie zNear na 0, bo to w obliczeniach OpenGL'a robi bajzel, bo w wielu zNear jest dzielnikiem (i wychodzi wtedy dzielenie przez 0 :P ).

Zalecane jest by zNear było w miare możliwości jak największe.

No to kod jest tutaj:
KLIK

Cyrkiel zrobiłem tak jak pisałeś ale dalej nie działa tak jak trzeba.


ludzie pomóżcie, może ktoś wie co tam jest źle.
Proszę o pomoc
Najpierw sam spróbuj coś z tego serwera ściągnąć: 403 Forbidden :>


Taka uwaga dla wszystkich:

NIGDY nie ustawiajcie zNear na 0, bo to w obliczeniach OpenGL'a robi bajzel, bo w wielu zNear jest dzielnikiem (i wychodzi wtedy dzielenie przez 0 :P ).

Zalecane jest by zNear było w miare możliwości jak największe.

przepraszam za ten link :mellow: teraz powinno już być dobrze
Klik

Tak to jest, jak się bezmyślnie przepisuje/wkleja kod... Naucz się po prostu jak działają te funkcje (i troszkę matematyki przy okazji).

Dzięki za pomoc kolegom ekspertom dałem sobie rade sam...
marcepanowy_kapturek co do przepisywania/wklejania kodu to chyba mi nie powiesz że nigdy tak nie robiłeś żeby zobaczyć sobie jak coś działa.
Zresztą to i tak nie ważne, problem rozwiązany, temat do zamknięcia

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •