Crackkk-GM Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 Cze... Od dziś zacząłem naukę OpenGL'a, mam zamiar w nim tworzyć gry 2D ( bez komentarzy plax . ) Narysowałem model 2D no... a dokładniej kwadrat i nie wiem jak nałożyć na to teksturę. Szukałem w necie, ale nie mogłem znaleźć nic przyzwoitego. Proszę o pomoc :] E: używam ogl + glaux. E2: nikt nie wie? :( E3: nie czepiać się ;D
Crackkk-GM Opublikowano 12 Marca 2009 Autor Opublikowano 12 Marca 2009 Model 2D, wtf? No dobra, to model. nie czepiaj się :D pierwszy dzień...
Solmis Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 Moze by tak zacząć od kursu? :) Lap! BTW. Niemożliwe, żeby w google tego nie było, może źle szukasz?
Crackkk-GM Opublikowano 12 Marca 2009 Autor Opublikowano 12 Marca 2009 @UP: dzięki za ten kurs, ale ja z innego się uczę, tam jest wszystko lepiej opisane. A w tym kursie nic nie rozumiem z tymi teksturami. może coś innego? :)
Crackkk-GM Opublikowano 12 Marca 2009 Autor Opublikowano 12 Marca 2009 CLICK! Ta strona jakoś wolno chodzi już mi się 8 minut ładuje o_O Mógłby wprost mi to opisać, albo podać zrozumiały kurs? <_<
Konrad-GM Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 Jeśli dla ciebie "myślenie" to nowe pojęcie, nie bierz się za coś, co tego terminu wymaga :) Dimmension3 to dobra strona, jeśli u ciebie czytanie ze zrozumieniem jest na poziomie podstawowym, może się czas podszkolić?
Crackkk-GM Opublikowano 12 Marca 2009 Autor Opublikowano 12 Marca 2009 GLuint texture[1]; AUX_RGBImageRec *TextureImage[1]; AUX_RGBImageRec *LoadBMP(char* filename) { FILE* file=NULL; if (!filename) { return NULL; } file=fopen(filename,"r"); if (file) { fclose(file); return auxDIBImageLoad(filename); } return NULL; } ... ... ... TextureImage[0] = LoadBMP("Tex.bmp"); glShadeModel( GL_SMOOTH ); glBindTexture(GL_TEXTURE_2D, texture[0]); glGenTextures(1, &texture[0]); gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY,GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_NEAREST); glBegin (GL_POLYGON); ...
Konrad-GM Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 Kopiowanie czyjegoś kodu, nie jest dobrym pomysłem. A czy zlinkowałeś bibliotekę glAux do projektu, jaki kompilator używasz?
Crackkk-GM Opublikowano 12 Marca 2009 Autor Opublikowano 12 Marca 2009 Kopiowanie czyjegoś kodu, nie jest dobrym pomysłem. A czy zlinkowałeś bibliotekę glAux do projektu, jaki kompilator używasz? Dev-C++, oczywiście że zlinkowałem o_O a z tym kopiowaniem kodu, to jak sam próbowałem, to nie wychodziło i teraz też nie wychodzi.
Konrad-GM Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 A czy jakiś błąd w kompilacji, czy nie widać żądanego efektu? ( Wyłącz światło )
Crackkk-GM Opublikowano 12 Marca 2009 Autor Opublikowano 12 Marca 2009 A czy jakiś błąd w kompilacji, czy nie widać żądanego efektu? ( Wyłącz światło ) Model jest biały. a kompilator nie pokazuje nic w logu.
Konrad-GM Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 Dev ma dupny debugger, Visual by pokazał czy wczytała się tekstura, może zrób tak: #include <FStream> (...) AUX_RGBImageRec *LoadBMP(const char* filename) { std::ofstream oFile( "./Logfile.log" ); std::ifstream iFile( filename ); if ( oFile.is_open() && iFile.is_open() ) { iFile.close(); AUX_RGBImageRec* texTemp = 0; texTemp = auxDIBImageLoad(filename); oFile<< (char*)&texTemp << std::endl; return texTemp; } oFile.close(); return NULL; } Pokaż co pokaże się w "Logfile.log" Btw. Po co budujesz mipmapy dla gry 2D?
Crackkk-GM Opublikowano 12 Marca 2009 Autor Opublikowano 12 Marca 2009 @UP: to nie jest do końca gra 2D :P 19 C:\Dev-Cpp\xxx\functions.h no match for 'operator<<' in 'oFile << (char*)(&texTemp)'
Kofel Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 Konrad-GM, co z Tego że ma lepszy debuger ( bo gdb trzeba umieć używać ), jak on nie będzie wiedział jak go używać? ;d up, spróbuj usunąć wskaźnik, tzn. nie . referencje
Crackkk-GM Opublikowano 12 Marca 2009 Autor Opublikowano 12 Marca 2009 @UP: no i co jak usunę wskaźnik lol. 19 C:\Dev-Cpp\TropicAct\functions.h invalid operands of types `AUX_RGBImageRec*' and `<unknown type>' to binary `operator<<'
Kofel Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 Nie wiem co zrobiłeś, usuń & przed texTemp #edit Świetny jesteś że robisz to w HEADERACH. HAHA ;D
Konrad-GM Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 Sorki, mój błąd, spróbuj z (void*): oFile<< (void*)texTemp << std::endl;
Crackkk-GM Opublikowano 12 Marca 2009 Autor Opublikowano 12 Marca 2009 @UP: też nie :/ 19 C:\Dev-Cpp\xxx\functions.h no match for 'operator<<' in 'oFile << (void*)(&texTemp)' Nie wiem co zrobiłeś, usuń & przed texTemp #edit Świetny jesteś że robisz to w HEADERACH. HAHA ;D Lol spójrz w kod: #include <FStream> (...) AUX_RGBImageRec *LoadBMP(const char* filename) { std::ifstream oFile( "./Logfile.log" ); std::ifstream iFile( filename ); if ( oFile.is_open() && iFile.is_open() ) { iFile.close(); AUX_RGBImageRec* texTemp = 0; texTemp = auxDIBImageLoad(filename); oFile<< (char*)&texTemp << std::endl; return texTemp; } oFile.close(); return NULL; } oFile << dzięki "<<" się dopisują informacje. @Kofel: ja robię w headerach, ponieważ nie zawala mi to kodu w main.cpp, btw. biją cie headery? :o
Konrad-GM Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 Nie wiem czy wiesz, ale "(void*)texTemp" zwróci adres tekstury, więc będzie można zobaczyć czy ma inny adres po wczytaniu niż bez wczytywania ( 00000000 ). E: Co do twoich headerów, po to są pliki CPP ( Source ), przecież nie musisz wszystkiego walać w "main.cpp"
Kofel Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 @Kofel: ja robię w headerach, ponieważ nie zawala mi to kodu w main.cpp, btw. biją cie headery? :o Ty naucz się teorii programowania, bo widzę że z Tobą jest kiepsko. Mówiłem, wywal referencje a ten dalej. ;d
Will Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 Umiem dodawać a więc zacznę sobie stereometrie. Takie mam odczucia co do tego tematu ;) Do biblioteki graficznej trzeba znać język perfect.
Crackkk-GM Opublikowano 12 Marca 2009 Autor Opublikowano 12 Marca 2009 @UP: do póki nie doszły tekstury radziłem se. Mógłby podać jakieś normalne wyjaśnienie błędu? ( czemu nie ładuje się tekstura )
Konrad-GM Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 #include <FStream> (...) AUX_RGBImageRec *LoadBMP(const char* filename) { std::ofstream oFile( "./Logfile.log" ); std::ifstream iFile( filename ); if ( oFile.is_open() && iFile.is_open() ) { iFile.close(); AUX_RGBImageRec* texTemp = 0; texTemp = auxDIBImageLoad(filename); oFile<< (void*)texTemp << std::endl; return texTemp; } oFile.close(); return NULL; } Pokaż co pojawiło się w "Logfile.log"
Crackkk-GM Opublikowano 12 Marca 2009 Autor Opublikowano 12 Marca 2009 19 C:\Dev-Cpp\xxx\functions.h no match for 'operator<<' in 'oFile << (void*)texTemp'
Konrad-GM Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 Nie wiem co ty masz w tym kodzie... u mnie działa bez zarzutów...
Crackkk-GM Opublikowano 12 Marca 2009 Autor Opublikowano 12 Marca 2009 #include <FStream> ... AUX_RGBImageRec *LoadBMP(const char* filename) { std::ifstream oFile( "./Logfile.log" ); std::ifstream iFile( filename ); if ( oFile.is_open() && iFile.is_open() ) { iFile.close(); AUX_RGBImageRec* texTemp = 0; texTemp = auxDIBImageLoad(filename); oFile<< (void*)texTemp << std::endl; return texTemp; } oFile.close(); return NULL; } ... TextureImage[0] = LoadBMP("Tex.bmp");
Konrad-GM Opublikowano 12 Marca 2009 Opublikowano 12 Marca 2009 lol, zapomniałem zamienić linijkę: std::ifstream oFile( "./Logfile.log" ); w std::ofstream oFile( "./Logfile.log" ); xD
Rekomendowane odpowiedzi