私がやろうとしているのは、ロードして使用するのが簡単なカスタム モデルとテクスチャ ファイルを作成することです。基本的に、ファイルは XYZ 値と RGB 値を表す float のリストです。のように: 0.5 0.234 0.1 ... ...
問題は、フロートの配列をテクスチャで機能させることができないことです。配列を定義する方法は次のとおりです。
float* textureMap;
これを初期化する方法は次のとおりです。
const int SIZE = (128*128*3);
textureMap = (float*)malloc(sizeof(textureMap)*SIZE);
for (int i =0; i<SIZE; i++) {
textureMap[i] = 0.0f;
}
Glutを使用して、配列をデータでペイントして埋めることができるウィンドウを作成しました。ご覧のとおり、すべてのRGB値が0.0fに初期化されているため、少なくともオブジェクトが黒として表示されることを期待していますが、そのままですデフォルトの灰色であり、テクスチャ配列と同じ色になることはありません。
テクスチャを作成するための私の呼び出しは次のとおりです。
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 130, 130, 0, GL_RGB, GL_FLOAT, textureMap);
OpenGl 公式 Web ページのガイドラインに従って、幅と高さを 2^n + 2 にしましたが、フロートの配列を構築しようとしている方法を考えると、これが正しいかどうかはわかりません。
また、glGetError() の呼び出しを試みましたが成功しませんでした (つまり、エラーはスローされず、幅と高さを -1 に設定することでエラーをスローできることを確認しました)。
glBegin() を呼び出す前にテクスチャをバインドしていることを確認し、これらの呼び出しでエラーが発生していないことを確認しましたが、役に立ちませんでした。
提案/指針はありますか?他の誰かが以前に独自のテクスチャ フォーマットを定義しようとしたことがありますか?
ところで、現時点では三角形の代わりに四角形を使用していますが、それで問題ありませんか?