問題タブ [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.
opengl - 深度バッファ画像を描画するopengl
openGL で読んでいるときに、理解できないことがわかりました。このリンク 方法の説明についてです。私は彼らが言っていることを実行しようとしてきましたが、いくつかの要素を理解できません。3 つの画像 i=0..2 画像[i][幅*高さ*4] (rgba8 画像を考慮) と、各画像の対応する深さ float の深さ[i][幅*高さ] があるとします。リンクで説明されている手法を実装するにはどうすればよいですか? 圧縮されたテクスチャがある場合、画像の代わりにそこに記載されている手法を引き続き使用できるかどうかにも興味がありますか? 編集:説明をコードに入れようとしましたが、手順を理解できなかったため、これまでのところこれしか思いつきませんでした
c++ - 深度バッファの前の値を取得するには?
次のアルゴリズムを実行するにはどうすればよいですか? :
これは で作成できますが
glDepthMask(false);
、すべてのピクセルが であるポリゴンで動作していますalpha < 1
。ポリゴンにピクセルがalpha = 1
あり、alpha < 1
レンダリングされた画像が正しくない場合。これは、アルファ値を含むテキスト マスクをレンダリングするために必要です。
深度バッファをリアルタイムで操作する必要があるため、深度テクスチャを使用できません!
ios - iOS: オフスクリーン処理のための深度バッファへのレンダリングと深度バッファからの読み取り
問題
私の主な目標は、デバイス上のタッチのモデル座標を取得して、何をタッチしたかを確認することです。私は大規模なモデルを扱っており、多くのものを描画する必要があり、それらにも触れることができなければなりません。
これを実現するには、2 つの方法が考えられます。1 つは、レイ キャスティングを実行し、カメラのポインティング ベクトルをモデルと交差させる方法です。これをメモリのどこかに保存する必要があります。一方、それが私がやろうとしていることですが、古い方法でそれを行うことができます:
画面座標をモデル座標に変換します。私はここまで正しいですか?opengl アプリでのタッチ処理の他の方法を知っていますか? 関数がパラメーターとして winz を取ることがわかるように、これは画面座標でのフラグメントの高さであり、この情報は通常深度バッファーから取得されます。「通常の」openglで可能なように、opengl-es 2.0が内部的に使用される深度バッファへのアクセスを提供しないことはすでに認識しています。では、どうすればこの情報を入手できますか?
Appleは 2 つの可能性を提供します。深度がアタッチされたオフスクリーン フレーム バッファーを作成するか、深度情報をテクスチャにレンダリングします。悲しいことに、このマニュアルには、情報を iOS に読み戻す方法が示されていません。glReadPixels を使用して読み返す必要があると思います。見つけたものはすべて実装しましたが、どのように設定しても、オフスクリーン フレーム バッファまたはテクスチャからの高さに対して正しい結果が得られません。z値でGL_FLOATを取得することを期待しています。
z:28550323
r:72 g:235 b:191 [3]:1 <-- 常にこれ
コード
gluUnProject
glu ライブラリは iOS では利用できないので、コードを調べて、このソースに基づいて次のメソッドを実装しました: link . GLKVector2 画面入力変数は画面上の X、Y 座標であり、UITabGestureRecognizer によって読み取られます
}
描画中に生成される深度バッファまたは深度テクスチャからデータを読み取ろうとします。このコードが非常に非効率的であることはわかっていますが、最初に実行してからクリーンアップする必要があります。
追加のフレーム バッファ (ここでコメント アウト) のみ、タイルのみに描画しようとしましたが、成功しませんでした。
描く
}
z の値は、異なるタイプのものである可能性があります。float データ型に戻す必要があるのは単なる float ですか?
ご協力ありがとうございました!パテ
1.編集
レンダリングしたテクスチャからも RGBA を取得します。これを実現するために、描画中に個別のフレーム バッファーをアクティブにしますが、深度拡張はアクティブにせず、それにテクスチャを接続します。上記のコードを編集しました。今、私は次の値を取得しています:
ご覧のとおり、rgba 値が読み取られます。良いニュースは、モデルがもういない空に触れているとき、値は常に同じであり、モデルに触れている間は変化することです. だから、テクスチャは正しいはずだと思います。しかし、どうすればこの 4 バイトから実際の値を再構築し、それを gluUnProject に渡すことができるでしょうか? フロートにキャストすることはできません。
c# - iOS5でMonoTouchを使用してOpenGLES1.1デプスバッファが機能しない
iOS 5でMonoTouchを使用して深度バッファーを機能させることができません。標準のMonoTouch「OpenGLアプリケーション」テンプレートを使用しており、深度バッファー(OpenGL ES 1.1)をテストするためにこのコードを追加しました。
形状Bと形状Cの両方が形状Aの前に描画されます。「GL.DepthFunc(All.Never)」でも同じことが起こります。デプスバッファは完全に無視されます。また、次のコードを使用して、深度バッファーを手動で作成しようとしました(MonoTouch / OpenTK "iPhoneOSGameView"に依存して作成するのではなく)。
それはまだ機能していません。デプスバッファを機能させる方法を知っていますか?私は何かが足りないのですか?
opengl-es-2.0 - glreadpixel gl_depth_component が 0 を返す?
立方体と線の交点の解を探しています。だから私は使った
zz を表示しましたが、結果は0でした。キューブに触れたときに(実際には2D画面で)キューブの深度バッファ値を取得するにはどうすればよいですか。私はGLES20とAndroid APIレベル15を使用しています。私のコードは以下です。
ところで、色の選択はうまくいきます。
ありがとう!
opengl - テクスチャへのOpenGLデプスバッファ(さまざまな画像サイズ用)
デプスバッファに問題があります。テクスチャーに入れたいです。しかし、それは機能していないようです。
したがって、オブジェクトをレンダリングした後に実行するコードは次のとおりです。
問題は(私はOpenGL 3.2以降を使用しています)、レンダリング用の画像のサイズが異なります。ほとんどの場合、サイズは2 ^ i x 2^jにはなりません。それで、それは問題ですか?
また、問題の他の部分は、次の後にフラグメントシェーダーにある可能性があります。
その後、2回目にいくつかのシェイプをレンダリングするときに、前の深度(テクスチャ深度バッファ)を使用して、いくつかの効果を実行したいと思います。
しかし、真剣に...デプスバッファをテクスチャに取り込むことができるコードを誰かに見せてもらえますか?テクスチャにレンダリングするのか、レンダリング後にテクスチャを抽出するのかは関係ありません。2回目のパスを実行するための深さの値を持つテクスチャがある限り...それが重要です!
xna - XNA 4.0 と解決不可能な (私による) 深さの好奇心旺盛なレンダリング
深さの問題に関する XNA 4.0 の大きな頭痛の種:
私はすでに同様の問題に対する多くの答えを見つけましたが、誰も私のために働きません...
デバイスは次のように設定されています。
残忍な問題解決者として、私はほとんどの DepthStencilFormat と DepthStencilState の可能性を試しました...誰も私が望むようには機能しません。
射影行列に関して、私は多くのnearclipとfarclipの値も試しました。(立方体の幅: 10f) ですが、正しい結果が得られません。
これをさまざまなテクスチャでテストしましたが、すべて不透明です。
BasicEffect ではなく、テクスチャ + 法線マップを使用したエフェクトを使用していますが、それが原因でしょうか?
CubeEffect.fx
編集: BasicEffect で試しましたが、問題は同じです...
だから...助けてくれてありがとう;)
c# - Kinectの特定の深度値を取得する
私は現在、XNAでkinectを使用して手/指のトラッキングを作成しようとしています。このためには、プログラムでレンダリングする深度範囲を指定できる必要があります。私は見回しましたが、これがどのように行われるのかわかりません。私の知る限り、kinectの深度値は、depthStreamにある事前設定された範囲でのみ機能します。
私がやりたいのは、kinectがレンダリングする深度範囲を変更できるように、モジュール化することです。私はこれが以前にダウンしていることを知っていますが、これを行う方法を私に示すことができるものをオンラインで見つけることができません。
誰かが私を助けてくれませんか?
Kinectを使用して標準の深度ビューをレンダリングできるようにしました。深度フレームを変換する方法は次のとおりです(ここで設定する必要があると感じています)
intplayerとintrealDepthの値を変更する必要があるという強い予感がありますが、確信が持てません。
opengl - OpenGL を使用した深度マップの読み取り
2 つの画像の深度マップを抽出し、.tif ファイルとして保存しました
今、openGLを使用して、深さに応じてこれら2つの画像を結合したいと思います
そのため、.tif ファイルから各画像の深度を読み取り、その深度を使用して深度の高いピクセルを描画したいと考えています。
深度マップをより明確にするために、この リンクのような2つの画像があります
つまり、前の画像があり、この画像と結合したいとします
私の質問は、.tif ファイルからこの深さを読み取る方法です