10

私の WebGL では、JavaScript コンソールに警告が表示されます

PERFORMANCE WARNING: Some textures are unrenderable.

どういう意味ですか?

4

2 に答える 2

9

WebGL は OpenGL ES 2.0 の動作を強制し、WebGL アプリがアクセス権のないデータにアクセスできないようにする必要があります。これを行うには、WebGL 実装は、拡張なしで OpenGL ES 2.0 仕様に従って読み取られるすべてのテクスチャが読み取り可能であることを含め、多くのことを検証する必要があります。

そのため、描画ごとに、すべてのテクスチャが必要なすべての基準を満たしているかどうかを確認する必要があります。これには、各テクスチャが「テクスチャ完了」であることの確認、キューブマップの場合は「キューブ完了」および「ミップマップ キューブ完了」の確認が含まれます。テクスチャ フィルタリングが正しく設定されているのが 2 のべき乗でない次元である場合などです。これらの条件のいずれかが満たされない場合、WebGL 実装は透明な黒のテクスチャに置き換えて、動作が仕様に準拠し、デバイス間で一貫したものになるようにします。

これらのチェックはコストがかかるため、WebGL 実装で実行できる近道は、レンダリングできないテクスチャがあるかどうかを追跡することです。レンダリングできないテクスチャがない場合は、描画時にチェックする必要はありません。上記の警告は、一部のテクスチャはレンダリングできないということです。これは基本的に、WebGL がこのコストのかかるすべてのチェックを行う必要があることを示しています。すべてのテクスチャがレンダリング可能であることを確認すると、WebGL はこのチェックをスキップできるため、アプリの実行速度が向上する可能性があります。

「テクスチャ完全」、「キューブ完全」などの定義については、OpenGL ES 2.0 仕様のセクション 3.7.10を参照してください。

于 2013-05-19T17:40:15.537 に答える