1

DevIL1.7.8で画像を読み取るのに問題があります。これまでのところ、次のスニペットが機能するはずです。

ilInit();
ILuint ImageName;
ilGenImages(1, &ImageName);
ilBindImage(ImageName);
wchar_t* imgFilename = L"..\\..\\resources\\textures\\red.png"; 
ilLoadImage(imgFilename);
ILubyte* texture = ilGetData();

最初のピクセルをチェックすると

for (int i=0; i<64; i++) cout << (int)texture[i] << endl;

かなりランダムな出力が得られます。写真は実際には完全に赤です。

同様に私はilutを使ってみました

ilutRenderer(ILUT_OPENGL);
GLuint t = ilutGLLoadImage(L"..\\..\\resources\\textures\\red.png");

しかし、実際には、対応するヘッダーファイルを含めることさえできません。そのヘッダーファイル内に、存在しないフォルダー(\ IL)にあるはずのil.hがリンクされているためです。このフォルダを作成して必要なヘッダーファイルをそのフォルダにコピーしても、コンパイルエラーが発生します。

誰かがDevILを手伝ってくれますか?

4

1 に答える 1

0

次のような画像とバインディング テクスチャを読み込んでいます。

ilEnable(IL_ORIGIN_SET);
ilOriginFunc(IL_ORIGIN_LOWER_LEFT); // set [0,0] of texture to bottom left corner

ilImage image;
GLuint ind;
glGenTextures(1, &ind);
glBindTexture(GL_TEXTURE_2D, ind);
image.Load(L"<path>");//  or just name.format  be sure to have image in correct folder.

レンダリングするときは、最初に正しいテクスチャをバインドする必要があります。

glBindTexture(GL_TEXTURE_2D, ind);

次に、テクスチャの UV 座標を頂点に割り当てます。

glTexCoord2f(x1, y1);               
glVertex3f(x, y, z);

GL_TEXTURE_2D または使用しているタイプを有効にすることを忘れないでください。

于 2015-05-02T23:47:43.473 に答える