0

コマンドを使用して、Debian で見つかったライブラリ libsoil-dev を使用して、.jpg イメージを正常にロードしました。

    uchar* img = SOIL_load_image(pfname_texture.c_str(),
      &img_width, &img_height, NULL, 0);

後の 2 つのパラメーターはint* channelsint force_channelsであり、詳細に意味するものは何でもかまいませんが、アルファ チャネルのようなものに触れているようです。

上記のコマンドを使用すると、画像の幅と高さがピクセル単位でわかります。

次に、水平方向にフロップします (つまり、左右の端が側面を切り替えます)。uchar* imgのサイズがわかっていれば、これは簡単です。ただし、 1 ピクセルを構成するucharの数がわからないため、現状ではそうではありません。さらに、ピクセルがメモリ内でどのように順序付けられているかわかりません (行ごと、列ごと、上から下、またはその逆など)。何か案は?

4

1 に答える 1

0

たとえば、次のように、テクスチャを別の方法でマッピングしてみましたか?

glBegin(GL_QUADS);
glTexCoord2f(1, 1); glVertex3f(0, 798, 0); // 0, 1
glTexCoord2f(1, 0); glVertex3f(0, 0, 0); // 0, 0
glTexCoord2f(0, 0); glVertex3f(1280, 0, 0); // 1, 0
glTexCoord2f(0, 1); glVertex3f(1280, 798, 0); // 1, 1
glEnd();

ここで、glTexCoord2f (最初の引数) の x 座標を反対に切り替えたので、glTexCoord2f(1, 1) は glTexCoord2f(0, 1) になります。

于 2016-03-03T21:47:03.120 に答える