問題タブ [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.

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

textures - Direct3Dでのステンシルバッファの使用

ID3D11Texture2Dステンシルバッファを使用して、あるテクスチャの一部を別のテクスチャにオーバーレイしようとしています。これを行うには、ステンシルバッファに目的の形状を描画してから、テクスチャをコピーします。ステンシルバッファの使用法を学ぶための2Dテクスチャのサンプルコードを含むいくつかの良いチュートリアルを提案してください。(またはこれを行う別の方法)

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

c++ - openglを使用したシャドウボリュームの問題

シャドウボリュームとステンシルバッファを使用して、シャドウ投影の解決策を見つけることができません。問題は次の場所で確認できます: www.dt.fee.unicamp.br/~ricfow/shadowProblem.avi

この他のビデオ: www.dt.fee.unicamp.br/~ricfow/shadowProblemAux.avi シルエットに関連付けられた面のみが描画されています。ここで、青は前面、赤は背面を意味します。

何が問題なのですか?

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

opengl - ステンシル バッファを使用してダイナミック シャドウをマージする

LWJGL を使用して、分割画面のコープ 2D フロム ザ トップ ゲームを作成しています。私は現在、2 つの視野をステンシル バッファーとマージするスマートな方法を見つけようとしています。全体のポイントは、他のプレイヤーが見ることができるものを見ることができるということです.

写真は言葉よりも優れています。

ステンシル バッファ

白い四角と黒い影しか描けないことに注意してください。

黒い領域内には何も描画したくないため、ステンシル バッファーを使用します。

ステンシルバッファを「1」で埋めながら世界を描くのは簡単です。プレイヤーの視野を描くのは簡単です。プレイヤーの 1 人だけが見える場所を特定するのは簡単ではありません。

私には、最後の 2 つの写真の間の OR 操作のように思えます。ただし、ステンシル バッファは 1 つしかありません。ステンシル バッファーに関するドキュメントが相対的に不足しているため、それが実際にどのように機能するかについてもわかりません。

また、FBO のような複雑なものは避けたいと思います。ステンシル バッファを使用して簡単に実行できる方法があると確信しています。

誰もこれについて考えを持っていますか?

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

c++ - openglステンシルバッファがゼロで初期化されていませんか?

私は MS WindowsXP で作業しています。私のビデオ カードは itel GMA4500 です。私のコードは次のとおりです。

しかし、データ バッファーを確認すると、バイトがすべてゼロではないことがわかります。何が問題なのですか?


はい、確かにステンシル バッファがあり、glReadPixels を呼び出した後、glGetError をチェックしましたが、エラーはありませんでした。また、memset を使用してデータ バッファーをゼロで埋めようとしましたが、結果は変わりませんでした。

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

c++ - シャドウボリューム-非多様体オブジェクト

特にオブジェクトにぶら下がっている面がある場合、非多様体オブジェクトのシャドウボリュームの作成について疑問があります。

例えば:

例
(出典:www.dt.fee.unicamp.brのricfow

ここでは、ボックス(茶色)と2つの接続された面(白)が上部にあります。標準のz-passおよびz-failアルゴリズムは、正しいシャドウを生成できません。より複雑なケース(上記のような)に対処するために標準アルゴリズムを改善するための理論的な資料はどこにありますか?

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

c++ - 深度に影響しますか、それともフラグメントシェーダーの内側からステンシルバッファーに影響しますか?

gl_FragDepthに書き込むことで、GLSLの深度バッファーに書き込む内容を制御できることは知っていますが、ステンシルバッファーに書き込むことはできますか?

また、ピクセルがステンシルまたは深度テストに失敗したかのように、フラグメントシェーダー内からピクセル書き込みを完全にキャンセルできますか?

ありがとう

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

android - OpenGL ES ステンシル操作

記事OpenGL のクリッピングで説明されている問題に関して、新たな疑問が生じます。

ノードベースの 2D シーン グラフのクリッピングを実装しています。クリッピング ボックスの軸が揃っているときは常に、 OpenGL クリッピングで提案されているように glScissor を使用してい ます。軸が揃ったボックスのノード クリッピングを正常に実装しました。

各ノードは、クリッピングを使用する祖先のクリッピング四角形と交差する必要があることがわかります。(これは、先祖のクリッピング ボックスと重なる兄弟の場合に必要です)。

軸が揃っていない長方形を交差させるメカニズムは、ステンシル バッファーを使用して実装する必要があります。OpenGL クリッピングで提案されたソリューションの実装を開始しましたが、先祖のものと重なっているクリップ四角形を持つ子供に問題があります。

現在、ステンシル クリッピングは 1 つのクリッピング ボックスで完全に機能します。しかし、祖先と交差する子または孫の場合、アルゴリズムは失敗します。これは、子の完全な四角形ではなく、マスクとして (軸に沿ったバージョンのように) 2 つの関連する四角形の交差がここで必要になるためです。

私は次のアルゴリズムを考えました:

The topmost node writes start with a counter value of 1 and draws it's clippingrectangle with 1s to the stencil buffers and renders it's children stencil-testing against 1. クリッピングがオンになっている各兄弟は、境界の四角形に1 を追加して描画します。ステンシル バッファーを使用してから、2 に対してテストを行います。兄弟のクリッピング四角形が祖先の四角形とオーバーラップすると、それらがオーバーラップする領域が 2 で埋められ、2 に対するテスト時に完全なクリッピングが得られます。このアルゴリズムは、最大 255 のネストされたクリッピング ノードに拡張できます。

ここに私の質問があります:

レンダリングが実行されるたびに、1 が書き込まれる代わりに、現在のステンシル バッファー値に 1 が追加されるように、ステンシル バッファーへのレンダリングを実行するにはどうすればよいですか。

これは、ステンシル バッファーへのレンダリングの準備に使用するコードです。

ref をバッファーに書き込むのではなく、ステンシル バッファーの現在の値を ref の値だけ増やすセットアップを探しています。

誰かが私を助けることができますか?

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

textures - OpenGL-ES 2.0でテクスチャ(画像)を使用してステンシルバッファを作成する方法

OpenGL 2.0でテクスチャ(画像)を使用してステンシルを準備して、画像の一部が透明になり、その結果、そのままステンシルバッファに転送され、
このステンシルバッファを使用してさらに描画できるようにすることはできますか?


回答でOPの質問の更新を説明するために、datenwolfで編集します。

@InfiniteLoopによる:

@datenwolf返信ありがとうございますが、成功しません:(これが私のコードです

私が切実に必要としている光を当ててください:(もう一度ありがとう。

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

opengl - glStencilFunc が何らかの理由で機能しない :(

何を試しても、パーティクルは地球の内側に触れることなく地球の外側にレンダリングされます。逆にしたいのです! どのパラメータを変更しても (2 時間試行)、粒子は外側は細かくレンダリングされますが内側はレンダリングされないか、外側と内側の両方の粒子がレンダリングされます。私はこれから大きな頭痛の種になっています。誰かがこのバグを解決するのを手伝ってくれませんか。ステンシルバッファに 1 ビットを使用しています。GDEbugger は、ステンシル バッファが正常に動作していることを示しています。

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

ios - iOS5はGL_STENCIL_INDEXとGL_STENCIL_INDEX8の両方をサポートしていますか?

次のコードで:

を使用GL_STENCIL_INDEXすると、GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENTエラーが発生します。を使用GL_STENCIL_INDEX8すると、GL_FRAMEBUFFER_UNSUPPORTEDエラーが発生します。どちらも最後のglFramebufferRenderbuffer()関数が原因で、ステンシルバッファーをFBOにバインドする必要があります。

さらに、GL_RENDERBUFFER_STENCIL_SIZE値を確認すると、で正しい値(8)が得られますが、。GL_STENCIL_INDEX8で0が得られGL_STENCIL_INDEXます。

これでは、ステンシルバッファを備えた機能的で完全なFBOを取得できません。それはGL_STENCIL_INDEX?ここではどちらを使用する必要がありますか?