2

現在、iOS アプリを構築するために Open GL ES を学習しています。モデルにテクスチャを追加しようとしていますが、うまくいきません。からサンプルプロジェクトをダウンロードしました

リンク

し、調べてきました。私が持っている質問は次のとおりです。プロジェクトを変更せずに実行すると、次のようになります。

作業用テクスチャの画像

ご覧のとおり、テクスチャ付きの基本的な立方体です。.png ファイルを別の画像に変更することにしました。しかし、私が会ったとき:

画像がテクスチャをレンダリングしない

.png ファイルがキューブにレンダリングされない理由がわかりません。

ここに私のテクスチャがあります: 私のテクスチャ

そしてオリジナル: オリジナル

エラーが発生していないことを確認するためだけに、コードに変更を加えていません。

4

3 に答える 3

3

2 の累乗でないテクスチャを使用している場合は、ミップマップを使用できず、フィルタリングを正しく設定する必要があります。

フィルタリング:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

クランプ:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

しかし、これには欠点が伴います。3D オブジェクトでは、距離が遠すぎるとテクスチャの品質が低下します。したがって、この場合は 2 の累乗のテクスチャにとどまり、ミップマップを使用してください。

于 2013-01-15T12:05:50.927 に答える
1

この特定のチュートリアルでは、正方形の2の累乗のテクスチャで問題を修正できます。投稿したのは、なので、または135x134に変換する必要があります。128X128256x256

関連する議論については、この投稿を参照してください:iphone opengl es 2.0 non power of two

于 2013-01-15T11:20:07.020 に答える
0

画像ファイルをどのように変更しましたか?フォルダ内のファイルを置き換えただけですか、それともプロジェクトに含めましたか?念のため、XCodeにドラッグしてファイルをプロジェクトに含め、名前をに変更するかtile_floor.png、メソッドの(テクスチャ)画像ファイル名をテクスチャファイルの名前に変更する必要initWithFrameがあります。

これが機能しない場合は、2つの画像ファイルのカラーフォーマットまたはピクセルあたりのビット数の情報が異なる可能性があります。

于 2013-01-15T10:49:35.280 に答える