問題タブ [mipmaps]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opengl - GLSL フラグメント シェーダー テクスチャで自動ミップマップ レベルにアクセスするには?
GLSL フラグメント シェーダーでテクスチャをサンプリングするときに使用されたミップマップ レベルを確認するにはどうすればよいですか?
textureLod(...)メソッドを使用して、テクスチャの特定のミップマップ レベルを手動でサンプリングできることを理解しています。
または、次のように使用してミップマップ レベルを自動的に選択できるようにすることもできtexture(...)ます
私は後者を好みます。なぜなら、適切なミップマップ レベルに関するドライバーの判断を、自分で判断するよりも信頼しているからです。
しかし、近くのピクセルを合理的にサンプリングするために、自動サンプリング プロセスで使用されたミップマップ レベルを知りたいです。自動テクスチャ サンプルに使用されたミップマップ レベルに関する情報に GLSL でアクセスする方法はありますか?
android - Android OpenGL ES 2: ARGB8888 を使用しない場合のミップマップのガベージ
ソース画像は 512x512 jpeg です。デバイスは Galaxy Tab 2 です。
以下のコード (32 ビットとしてデコード) を使用すると、ミップマップが完全に生成されます。
ただし、メモリ使用量を最小限に抑えるために、画像を 16 ビットとしてロードすることをお勧めします。アルファ情報がないため、RGB_565 が最も適切です。次の行を変更して、それを試みます。
565 を使用すると、レベル 1 以降でこの厄介なミップマップが生成されます。レベル0はまだ完璧です。

最後にもう 1 つ。フィルター モード ラインをミップマップ生成の後に移動すると、ミップマップに赤味がありませんが、正しく見えません。

また、 と を使用するConfig.ARGB_4444とGLES20.GL_UNSIGNED_SHORT_5_6_5、赤みが黄色になり、それほど悪くはありません。

お願いします!なぜこれが起こっているのか誰かが光を当てる
opengl - glGenerateMipmap が必要とするメモリバリアはどれですか?
GL_ARB_shader_image_load_store を使用して、テクスチャの最初のミップマップ レベルに書き込みました。ドキュメントには、キャッシュを適切にフラッシュするために、このイメージの内容を他の操作で使用する前に glMemoryBarrier を呼び出す必要があると記載されています。
たとえば、glTexSubImage2D 操作を行う前に GL_TEXTURE_UPDATE_BARRIER_BIT を発行する必要があり、そのテクスチャをサンプリングするシェーダーを使用して描画呼び出しを発行する前に、GL_TEXTURE_FETCH_BARRIER_BIT を発行する必要があります。
ただし、glGenerateMipmap が最後に書き込まれたデータを使用することを保証する前に、どのバリアを発行する必要がありますか?
opengl - テクスチャのマッピングにミップマップ手法を使用するとエネルギーを節約できるかどうか?
テクスチャをマッピングするときにミップマップを使用すると、レンダリング速度が向上し、アーティファクトが減少します。最近、3D グラフィックスの消費電力を特徴付けるテストベンチを作成しました。ミップマップ手法を使用すると、アプリケーションがより多くの電力を消費することがわかりました。それは合理的ですか?また、オブジェクトにマッピングされた画像のサイズとパフォーマンスは関係がありますか?
opengl-es - OpenGL のシームレスなテクスチャ
アンドリッドの OpenGL で 2 つのテクスチャを隣り合わせに配置すると、それらの背後に描画されたオブジェクトが見えるわずかな継ぎ目があります。基本的には小さなギャップのように見えます。ミップマッピングに絞り込みました
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
両方を GL_NEAREST に設定すると、継ぎ目はなくなりますが、テクスチャはがらくたのように見えます。他に選択肢はありますか?
c++ - glGenerateMipmap への未定義の参照 (GLEW を使用)
最近、OpenGL API の glGenerateMipmap() などの関数を特定の OS でロードする必要があることを知りました。GLEW は、まさにこの目的のために作業を行うことになっているラッパーです。そこで、GLEW をプロジェクトに追加しました。ただし、コードで関数をコンパイルすると、エラーが発生します。
これはリンカのエラーだと思っていましたが、これまでのところ他の gl 関数は問題なく動作しています。実際、私はこの OpenGL プロジェクトにしばらく取り組んでいますが、リンカー エラーは発生していません。これはバグでしょうか?コードブロックを使用、Windows 7 64 ビット。
javascript - three.js で mipmaping を使用しようとするとエラーが発生する
three.jsテクスチャでミップマップ生成を使用しようとしています。
テクスチャを作成するとき、サイズ 512x512 の画像を mipmaps[0] に割り当てます。
したがって、私の理解が正しければ、この画像を WebGL で使用して、より小さなミップマップ テクスチャを生成する必要があります。しかし、その後、黒いテクスチャがレンダリングされ、次のようなエラーが表示されます:
in chrome
WebGL: drawElements: テクスチャ ユニット 0 にバインドされたテクスチャはレンダリングできません。2 の累乗ではなく、テクスチャ フィルタリングに互換性がないか、「テクスチャが完全」ではありません。または、OES_float_linear または OES_half_float_linear 拡張機能が有効になっていないときに、テクスチャがリニア フィルタリングを使用する Float または Half Float タイプです。
ファイアフォックスで
エラー: WebGL: テクスチャは、OpenGL ES 2.0.24 仕様セクション 3.8.2 に従って、黒のようにレンダリングされます。これは、ミップマップを必要とする縮小フィルターを備えた 2D テクスチャであり、ミップマップではないためです。完全 (セクション 3.7.10 で定義)。
テクスチャを作成するコードは次のようになります。
画像の代わりにキャンバスを使用した同じ問題。
明確にするために:
- 画像は 2 の累乗です
- 画像はすでにロードされています
誰かがこの問題を掘り下げる場所を教えてもらえますか?