[C++,OpenGL]Mapa kafelkowa?
Ostatnio zmodyfikowano 2012-10-07 17:15
intothenether Temat założony przez niniejszego użytkownika |
[C++,OpenGL]Mapa kafelkowa? » 2012-10-05 22:11:30 Witam mam taki problem, otóż chciałbym zrobić grę w OpenGL. Lecz dopiero parę dni temu przerzuciłem się na tą bibliotekę z Allegro i SDL. Mój problem polega na tym że chcę zrobić taką jakby mapę kafelkową ale w 3D. Moje pytanie brzmi jak mógłbym to zrobić bo jeszcze nie jestem w pełni zapoznany z funkcjami OGL'a. Czy mógłby mi ktoś podać jakiś kod przykładowy ?? :) Z góry dziękuje za pomoc :)... |
|
DejaVu |
» 2012-10-05 23:58:14 Mapę kafelkową w 3D robi się w 100% tak samo jak w 2D. Jedyne co dochodzi to po prostu trzeci wymiar dla każdego wierzchołka 'figury'. |
|
intothenether Temat założony przez niniejszego użytkownika |
» 2012-10-06 00:10:58 Nie do końca rozumiem. Próbowałem to robić z tablicą 3D i potrójną pętlą ale nie wyszło ... Mógłbyś podać jakiś przykład? |
|
DejaVu |
» 2012-10-06 00:19:55 Algorytm w ogóle nie ulega zmianie. Jedyne co się zmienia to funkcja rysująca 'obrazek', który zamiast na płaszczyźnie rysowany jest w przestrzeni. Innymi słowy - jeżeli miałeś coś takiego: ekran.rysuj_grafike( poz_x, poz_y, grafika );
to teraz jedyne co się zmieni to metoda rysuj_grafike tj. ekran.rysuj_grafike( poz_x, poz_y, poz_z, grafika );
gdzie poz_z może być zawsze stałą wartością, czyli po prostu z góry określoną liczbą, np. 50 dla wszystkich kafelków. |
|
intothenether Temat założony przez niniejszego użytkownika |
» 2012-10-06 00:27:09 Mniej więcej wiem o co chodzi ,ale jak to przetłumaczyć na OpenGL i GLUT ?? Chcę to zrobić za pomocą glBegin(); i glEnd(); ale niewiem do końca jak ... |
|
DejaVu |
» 2012-10-06 00:32:30 Osobiście polecałbym Ci przestawić się na bibliotekę SFML - być może nie jest ona dostosowana do typowej sceny 3D, ale jest oparta o OpenGL i co ważniejsze - z miejsca masz wsparcie wczytywania tekstur, chociażby w formacie PNG. Jednak odpowiadając na Twoje pytanie - rysowanie jednego kafelka = rysowanie prostokąta pokrytego teksturą. Prostokąt rysuje się za pomocą czterech wierzchołków glVertex3f, oraz do każdego wierzchołka binduje się odpowiedni wycinek tekstury za pomocą glTexture2f. Z nazwami mogłem coś poprzekręcać, bo w sumie ostatni raz na oczy kod OpenGL-a widziałem ze 2 lata temu :) W każdym razie więcej informacji jak chcesz uzyskać to musisz poczytać po prostu pierwszy lepszy kurs OpenGL. /edit: No... jak pisałem :P złą nazwę funkcji Ci podałem :) Chodzi o glTexCoord2f. http://msdn.microsoft.com/en-us/library/windows/desktop/dd368624(v=vs.85).aspx |
|
Gabes |
» 2012-10-07 17:15:26 |
|
« 1 » |