問題タブ [stencil-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、FBO のステンシル バッファが機能しない?
OpenGL で FBO のステンシル バッファを使用しようとしましたが、機能しません。深度ターゲットとステンシル ターゲットの両方について、depth24_stencil8 テクスチャを FBO にバインドしました。簡単なテストとして、私は試しました:
GL_NEVER を使用しているため、何もレンダリングされませんが、三角形が表示されます。これはステンシルがまったくないようなものですが、その理由はわかりません。FBO なしでこのコードを試すとうまくいくので、ステンシル関数を正しく使用していると思います。この問題を解決する方法がわかりません。FBO でステンシルを使用した人はいますか?
ios - iOS での Open GL 1.0 ステンシル バッファを使用したマスキングの問題
iOs の OPEN GL 1.0 で Stencil Buffer を使用して単純なマスキングの解決策を見つけるのに苦労しています。
背景を描画し、その上に glPushMatrix を使用して、drawFrame を使用して描画されるフレームを描画します。
私のフレームは、ステンシル バッファーを使用して maskTexture を使用してマスクしようとする VideoFrameTexture で構成されています。私の目的は、videoFrameTexture の一部 (マスクの白い領域で定義され、円形に対応する) のみを背景に描画することです。
次のコードを使用しますが、マスク イメージは考慮されません。黒と白のpngです。
次のコードを使用してビューを描画します。
opengl - opengl ステンシル バッファ - うまく動作していません
現在、背景を描画し、次に透明な三角形をステンシル バッファーに描画し、次に三角形が描画されていない青い正方形を描画しています。背景が露出する三角形の穴がある青い正方形の効果になることを期待していました。しかし、私が得ているのは、他のすべての上に描かれた黒い三角形だけです. 正方形に望ましい効果が得られていると思いますが、ステンシルも背景に適用されています。
私の質問は、次のコードを調整して、正方形の三角形の穴から背景を表示できるようにするにはどうすればよいですか?
android - Android OpenGL ES 1.1: ステンシル バッファからの読み取り
Android OpenGL ES 1.1 (HTC Desire) を使用しています...
私が一般的に抱えている問題はこれです:
複雑なシーンでさまざまな 3D オブジェクトをレンダリングしています。ユーザーが特定のオブジェクトをクリックしたかどうかを確認したい。このオブジェクトは部分的に隠されている可能性があるため、シーン内のほぼすべての形状として表示される可能性があります。ユーザーがシーンに表示されているオブジェクトの一部をクリックした場合にのみ、オブジェクトを「選択」できるようにします。これは、オブジェクトの交差にベクトルベースの計算を使用できないことを意味します。これは、オブジェクトの隠れた領域を簡単に考慮に入れることができないためです。
そこで、あるアイデアを思いつきました...
オブジェクトが表示されている場所はどこでもステンシル バッファーが 1 で満たされ、ステンシル バッファー内のそれ以外の場所はすべて 0 になるように、ステンシル バッファーを設定しました。ユーザーがシーン内の特定のピクセルをクリックすると、ステンシル バッファーをチェックして、オブジェクトがクリックされたかどうかを示す 1 または 0 が含まれているかどうかを確認します。
これは PC では完全に機能しますが、Android OpenGL ES 1.1 では、GL_STENCIL_INDEX がサポートされていないため、glReadPixels() を使用してステンシル バッファーから読み取ることができないようです。
ステンシル バッファからこの 0/1 を読み取る方法があるかどうかは誰にもわかりませんか? または、オブジェクトがクリックされたかどうかを判断するためのより良いアルゴリズムを考えられる人はいますか?
どうもありがとう
opengl - GLで複数のステンシルを組み合わせる
OpenGLで複数のステンシルを設定してから、それらの複数の組み合わせを描画したいと思います。
例:次のような2つの長方形のステンシルがあります。
それから私は引き込みたいです:
- どこでも
- 左の長方形(青+紫)
- 右の長方形(紫+赤)
- 真ん中の長方形(紫)
- 全体の色の領域(青+紫+赤)
ステンシルバッファの異なるビットで複数のステンシルを宣言することが可能であることがわかりましたが、その方法がわかりません。セットアップ方法glStencilOp
とglStencilFunc
これを機能させるにはどうすればよいですか?
それとも私glScissor
はそのために使うことができますか?
text - ステンシルバッファでテキストを描画する
画面の一部のみが描画呼び出しの影響を受けるように、ステンシルバッファを設定しました。具体的には、狭いエリアに描きたいです。UIになるので、描画されるものはすべて、ある種の2Dスプライトになります。スプライトオブジェクトの使用は非常にうまく機能します。エリアの外側にあるスプライトは切り取られます。ただし、テキストを追加すると、後で描画されるすべてのものとテキスト自体が切り取られません。PIXは、描画テキストが呼び出されるとすぐに、新しいDepthStencilStateがステンシルバッファをオフにして設定されていることを示しています。テキストは、他のスプライトの描画を担当する同じスプライトオブジェクトによって描画されます。
描画は、SlimDX.Direct3D10.Font.Drawメソッドを介して実行されます。
DirectXに状態オブジェクトを変更しないように強制する方法はありますか?SlimDXを使用していますが、そのコードによると、状態の変化の原因ではないようです。
ニコ
opengl - 深度/ステンシル バッファをフレーム バッファにアタッチする際のエラー
この一連のコマンドを OpenGL に発行して、深度/ステンシル バッファーを作成します。
次に、それをフレームバッファにアタッチしようとします
しかし、への呼び出しはglCheckFramebufferStatusEXT
戻りますGL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
。深度ステンシル バッファをアタッチしない場合、このテストは問題なく実行されます (ただし、明らかにディスプレイが壊れています)。
手がかりはありますか?
編集: 変更: テクスチャの作成を基本的なテクスチャの形式に簡略化しました。
opengl - ステンシルバッファを使用したOpenGLのポータル-ポータルの前に物を描画しないようにするにはどうすればよいですか?
ステンシルバッファを介してOpenGLを使用してポータルを実現しようとしています。テクニックは私には十分に単純に思えます。ポータルをステンシルバッファにレンダリングし、ターゲットポータルの背後にある仮想カメラから見たシーンをレンダリングし(ステンシルバッファに制限されます)、ポータルを深度バッファにレンダリングし、通常のビューをレンダリングします。
ただし、そのようにすると、仮想カメラとターゲットポータルの間のオブジェクトがポータルの前に描画され、間違った画像になります(ポータルを通して見ることができるオブジェクトのみを描画したいので、ポータルの「背後」にあるもの)。ポータルをまっすぐに見ると、ニアクリッピングプレーンを使用できますが、機能していないように見える任意のビューに使用できます。
より良い説明のために、ここに私の問題の図があります:
(出典:42prozent.de)
opengl - 深度バッファ画像を描画するopengl
openGL で読んでいるときに、理解できないことがわかりました。このリンク 方法の説明についてです。私は彼らが言っていることを実行しようとしてきましたが、いくつかの要素を理解できません。3 つの画像 i=0..2 画像[i][幅*高さ*4] (rgba8 画像を考慮) と、各画像の対応する深さ float の深さ[i][幅*高さ] があるとします。リンクで説明されている手法を実装するにはどうすればよいですか? 圧縮されたテクスチャがある場合、画像の代わりにそこに記載されている手法を引き続き使用できるかどうかにも興味がありますか? 編集:説明をコードに入れようとしましたが、手順を理解できなかったため、これまでのところこれしか思いつきませんでした