問題タブ [depth-buffer]

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 に答える
411 参照

opengl-es - 複数の頂点配列オブジェクトを使用するレンダラーに深度バッファーを導入する

複数の頂点配列オブジェクトを使用して複雑なシーンをレンダリングするレンダリング インフラストラクチャがあります。各頂点配列オブジェクトは、バインドされたバッファー、ポインター、および属性の独自のセットを維持する責任があります (これらは設計されているため)。

レンダリングを担当する複数の配列オブジェクトが与えられた場合、各個別の配列オブジェクトがレンダリング中に同じ深度バッファを使用するような方法で深度バッファリングを導入するにはどうすればよいですか? 言い換えれば、Vertex Array Objects (およびそれらの優れたカプセル化プロパティ) の概念と、よりグローバルな概念であると思われる深度バッファリングを統合するにはどうすればよいでしょうか。

私が見つけたすべての例は、フレームバッファのコンテキストで深度バッファを使用することを説明しています。Apple は、この手法についてここで説明しています。フレームバッファ レベルで深度バッファリングを実装し、頂点配列オブジェクトをそのフレームバッファに書き込む手法はありますか? VAO と深度バッファリングを使用する従うことができる例はありますか?

頂点配列オブジェクトをカプセル化するクラスがあり、これがそのバインド メソッドです (さまざまなバッファー、ポインター、および属性の設定を担当します)。

バインド後、draw メソッドは次のように実装されます (この draw メソッドは、個々の頂点バッファー オブジェクトごとに呼び出されます)。

これはすべてスムーズに機能しますが、深度バッファリングがこれに適合する場所を見つけるのに苦労しています。

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

java - glEnable(GL_DEPTH_TEST) - 何もレンダリングしない

3D シェイプのレンダリング方法を学ぶプロジェクトに取り組んでいます。深さを正しくするために、glEnable(GL_DEPTH_TEST) を使用しようとしています。予想どおり、その追加だけでは何もレンダリングされないため、glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) を追加しましたが、レンダリングされたものは 1 つもありません。ここに私のコードの簡略版があります。

}

これは、キューブの作成とレンダリングに使用されるクラスです

これは、ものを見るために使用しているカメラです

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

opengl - 深度コンポーネントの Cuda Render Buffer Interop

私がやろうとしているのは、OpenGL を使用してレンダリングを実行し、次に CUDA を使用して、データを PBO にコピーせずに、レンダリングされた RGB および深度コンポーネントで読み取り専用の後処理 (計算) を直接実行することです。

これを行うには、FBO を作成し、それに 2 つの RBO を接続します (1 つは RGBA 用、もう 1 つは DEPTH 用)。

次に、パラメータとして GL_RENDERBUFFER を使用して、RBO ごとに cudaGraphicsGLRegisterImage を呼び出します。カラー RBO の場合、cudaGraphicsGLRegisterImage は cudaSuccess を返しますが、深度 RBO の場合は cudaErrorInvalidValue を受け取ります。

フォーラムのどこかで、深度コンポーネントの CUDA レンダー バッファーの相互運用性が現在 nVidia でサポートされていないことを読みましたが、ドキュメントには十分に記載されています。

CUDA Toolkit 5.0 を使用しており、Quadro 2000 カードを持っています。

誰かがこれを行うことに成功しましたか?どのように?

ここにいくつかのコードの抜粋があります:

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

.net - XNA での深度バッファーとアルファの問題

の多くのインスタンスを表示していますBasicEffect。各インスタンスは、部分的に透明または完全に不透明な 4 つのテクスチャのいずれかがランダムに選択された「プレート」です。

私が抱えている問題は、透明度のあるプレートがレンダリングされると、既にレンダリングされているプレートだけが透けて見えることです。

すべてがどのように表示されるかを説明するのは難しいので、ここにイメージがあります

適切な順序でレンダリングするよりも簡単な解決策はありますか?

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

opengl - テクスチャを深さのアタッチメントとして使用するにはどうすればよいですか?

複数のレンダリングターゲットを持つフレームバッファがあります。それらはすべてテクスチャであり、レンダーバッファではありません。テクスチャのAコンポーネントを深度アタッチメントとして使用するにはどうすればよいですか?デフォルトの深度テストを使用したい。RGBA

0 投票する
2 に答える
657 参照

opengl - 2Dゲームのカスタムzbuffer/フラグメントシェーダー(glsl)のフレームバッファーからピクセルを読み取る

私はOpenGLで2D(実際には2.5D)アイソメトリックゲームを書いています。非常に複雑になる可能性のあるタイルの並べ替えを回避するために、ある種の深度バッファーをシミュレートしようとしています。タイルごとに2つの画像があります。1つは色情報、もう1つは深度情報です。

画像1:http : //dl.dropbox.com/u/91457585/depth_buffer_test.png

最初のアプローチとして、私はこれらの写真を作成しました。アイデアは、それらを互いに重ねて描画し、シェーダーを使用して深度テストを実行することです。この場合、私が知っていることはあまり意味がありませんが、それが技術的に可能かどうかを確認するための最初のアプローチにすぎません。

だから今私の問題に!

以下に、シェーダーのコードを示します。フレームバッファの深度情報をオブジェクトの深度情報と比較することになっています。しかし、それはうまくいかないようで、今私はどこかでこれが私がしたように不可能であると読んだ。

リスト:

では、デプスバッファをシミュレートするためのより良い方法はありますか?たぶん、実際のデプスバッファに書き込むことによって?

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

performance - ポイントの深度が同じ場合、opengl深度バッファが遅くなります

重なり合うクワッドを画面に大量に描画する2Dゲームを作成しています。何が本当に重要ではないものの前に行くのか。

0以上のz値で各クワッドを描画し、glDepthFunc(GL_LESS)を設定すると、期待どおりに非常に優れた速度ブーストが得られます。これは、他のクワッドの背後に完全に隠されているか、部分的に隠されているクワッドを描画する必要がないようにするためです。したがって、次のようなものを使用して四角形を描画します。

ただし、実際の深さにはz値を使用しないので、次のように実行できるはずです。

または、0.0fのz値をシェーダーにコーディングするだけです。(3番目の引数はz値であり、シェーダーのgl_positionに変更されずに設定されます。)

奇妙なことに、2番目の方法(毎回z値を0.0fに設定する)では、前者のフレームレートのほぼ半分未満になってしまいます。

どうしてこれなの?どちらもglDepthFunc(GL_LESS)と

全く同じで。毎回zを0.0fに設定するともっと速くなると思います。なぜそうではないのですか?

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

c# - intel hd 3000 を使用した opentk c# での深度テクスチャと fbo の問題

現在、Intel HD グラフィックス ハードウェアでシャドウ マッピング エフェクトを実装する際に問題に直面しています。このコード スニペットは ATI Mobility Radeon 5650 および Nvidia NVS 4200M では正常に動作しますが、Intel HD 3000 および 4000 では動作しないため、コードは結果として得たいものから遠く離れていないと思います。

「ステータス」変数は FramebufferIncompletReadBuffer を示しているため、この fbo の使用は正しくありません (ライト POV からのシーンのレンダリング)。このステータスについて Web で確認しましたが、問題を解決する答えが見つかりませんでした。このスニペットで私が間違っていること、および/またはこのFBO問題の起源となる可能性があるもの. 前もって感謝します。PS: シェーダーではバージョン 1.2 を使用しており、ShadowMap テクスチャを深度マップとしてサンプリングすることになっています。

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

flash - Away3D 深度バッファリング

ユーザーがオブジェクトをインポート、配置、および変換できる Away3D でシンプルなシーン エディターを開発しています。ユーザー プロセスを簡素化するために、選択範囲の上に表示されるギズモ オブジェクトを作成しました (基本的には、クリック アンド ドラッグ用の 3 つの矢印)。カメラ - 特定のオブジェクト/グループの深度バッファリングをオフにして、シーン内の他のオブジェクトの前に常にレンダリングされるようにする方法はありますか?

前もって感謝します

0 投票する
2 に答える
1990 参照

graphics - デプスバッファとZ軸

私は2つの一見矛盾するステートメントを指摘するOpenGlの本を読んでいます:

  1. カメラは原点に配置され、負のz軸を見下ろします。
  2. デプスバッファはデフォルト値の1.0にクリアされ、Z値が低いピクセルは、可視性テストに合格して画面に表示されます。

デプスバッファの概念は理解していますが、デプスバッファテストに合格するために、他のZよりも小さいZがより高いZ値の「前」にあると判断される方法がわかりません。

より高いZ値が「前面」にあるため、深度バッファーの比較に勝つと思います。ここで何が欠けていますか?