問題タブ [depth-testing]

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.

0 投票する
1 に答える
11225 参照

optimization - DirectX 11 での初期の Z テスト / 深度テスト

DirectX初心者として、私は深度バッファ、特に不明瞭なピクセルに対してピクセルシェーダーがどのように呼び出されるかについて頭を抱えようとしています。

私が理解していることから、ラスタライザーは、描画されているプリミティブをカバーしている各ピクセルのピクセルシェーダーを呼び出し、その後、出力マージャーステージの後半で、出力マージャーは深度バッファーをチェックし、バックバッファー内のピクセルを破棄、書き込み、またはブレンドします.

非常に複雑なオブジェクトの前に単純な不透明オブジェクトをレンダリングしている場合、これは無駄に思えるので、複雑なオブジェクトのピクセル シェーダーを呼び出す前に、ラスタライザーに深度マップをチェックさせると便利なようです。

調査を行うと、初期の Z テストや保守的な Z テストなどへの参照が見つかりましたが、それに関するドキュメントもほとんどないようです。ラスタライザー状態記述子オブジェクトでそれを構成する方法を探しましたが、OM 状態記述子でそのようなものしか見つかりませんでした。

これは、DX9 の SetRenderState で設定することも可能だったようです (私は DX9 の経験もありません)。

私の調査によると、これは、オブジェクトを前後にレンダリングする場合に一部のハードウェアが行うことのように思えますが、それは正しいですか? どうすればわかりますか?すべての Control DirectX が提供するので、これを制御できないのは奇妙に思えます。これは、適切な最適化のように思われるためです:)

これに関する情報または参照は感謝されます

0 投票する
1 に答える
262 参照

opengl-es-2.0 - OpenGL ES 2.0 GPU アクセラレーションによるジオメトリの並べ替え

私は現在 OpenGL ES 1.1 を使用している 3D アプリを持っています。ほとんどのメッシュはアプリに組み込まれており、静的 (動かない) であるため、深度テストでは、ハードワイヤードの並べ替えを使用して透明なジオメトリを効率的に描画できます。

ここで、3D エディターからワールドをロードし、いくつかの透明な動的オブジェクト (ジオメトリは任意の順序にすることができます) を追加したいと考えています。これにより、デプス テストにより、レンダリングされている背面からジオメトリに「穴」が描画されます。 OpenGL ES 1.1深度テストを使用した前面のジオメトリの後。

近いうちに OpenGL ES 2.0 に移行する予定なので、ブレンドが正しい方法で行われるように、バック ファーストにジオメトリを描画するための GPU アクセラレーションによる並べ替えがあるかどうか疑問に思います。

0 投票する
0 に答える
128 参照

rotation - Direct3D9 で切り取った立方体の回転

Direct3D9 で回転する立方体を表示しようとしています。正常に描画できますが、回転中に一部のピクセルが描画されません。回転中に立方体のすべての部分を表示したいと思います。各面のサイズは 0.5f で、ポイント 0、0、0 から Pitch Yaw Roll で回転しています。Z バッファを無効にするか、ビューポートの Z 値を高く設定しようとしましたが、成功しませんでした。何かアドバイス?あ、ワイヤーフレームモードでレンダリングしてます。 切り絵

編集: 問題が Z Buffer にあることを確認しました。Z 軸の間で立方体を変換しようとしましたが、ビューが 0.0 と 1.0 の間であることは明らかですが、SetViewport はそれを変更せず、理由がわかりません...

編集:ZBUFFERを無効にしても、頂点はまだカットされています。パラメータ(m、90、800 / 480、-0.1、100)を使用 して、この実装( http://pastebin.com/EVCRG6f7 )で新しい射影行列を設定しようとしましたが、問題は解決しません。カット画像2

編集: Direct3D9 で使用したのと同じ頂点とビュー マトリックスを OpenGL で試したところ、キューブが正しく描画されました。これらの値で初期化しています: