OpenGLを使用して単純な3Dモデルローダーに取り組んでおり、テクスチャサポートを追加したいと思いました。しかし、不必要に画像ライブラリを書き直したくないので、テクスチャマッピングに関するNeHeチュートリアルで学んだSOIL(Simple OpenGL Image Library)をダウンロードしました。何度も画像を読み込んでOpenGLに渡すのに役立ついくつかの非常に便利な関数があります。
問題はこれです:NeHeチュートリアルコードでは、SOIL関数
SOIL_load_OGL_texture(char *, param,param,param)
約束どおりであり、ポリゴンは正しい画像でマッピングされます。ただし、OBJファイルとMTLファイル(3Dモデルファイル)をロードするクラスを作成しました。SOIL関数を使用してこのクラス内にテクスチャをロードしようとすると、プログラムがクラッシュします。
- 私はGNUC++をCode::Blocksで使用しています(このコードもDev-C ++で試しました)
- -g -Wallを使用しても、コンパイラからエラーや警告は表示されません。
- プロジェクトにすべてを適切にリンクして含めました(NeHeコードをコピーして貼り付けると、正しく実行されます)。
- SOILコマンドはどのクラス内でも機能しません(SOIL関数のみを実行する別のクラスを作成しようとしましたが、同じ問題が発生しました)。
- 関数に渡されるファイルパスはすべて正しいです。スラッシュとバックスラッシュのすべての形式で、相対および絶対を試しました。NeHeコードで機能した絶対パスをコピーしてコードに貼り付けましたが、機能しません。
- コードの残りの部分は正常に機能します-アンビエント/ディフューズなどでシェイプをレンダリングできます。色やその他の設定が適切に適用されました。