Skocz do zawartości

Zablokowane [ OpenGL, glaux ] Texturki


Rekomendowane odpowiedzi

Opublikowano

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

Opublikowano

@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? :)

Opublikowano

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ć?

Opublikowano
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);
...

Opublikowano
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.

Opublikowano
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.

Opublikowano

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?

Opublikowano

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

Opublikowano

@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<<'

Opublikowano

@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

Opublikowano

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"

Opublikowano
@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

Opublikowano

Umiem dodawać a więc zacznę sobie stereometrie. Takie mam odczucia co do tego tematu ;) Do biblioteki graficznej trzeba znać język perfect.

Opublikowano
#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"

Opublikowano

#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");

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...