問題タブ [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 に答える
1297 参照

directx-11 - ステンシル DirectX 11 のアウトラインを設定する方法

私は、DirectX とグラフィックス コーディングにかなり慣れていません。実装にはSlimDXを使用しています。特定の地域のデータを視覚的に表現した地図を描いています。私がやりたいのは、状態の形状を取得することだけです。ピクセルがその領域内にある場合は描画し、そうでない場合は描画しません。それが基本的にステンシルですよね?しかし、そのポリゴンをステンシル バッファーに設定する方法がわかりません。それとも、ステンシル バッファーの用途ではないのでしょうか。

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

java - Java OpenGL Stencil を使用してアウトラインを作成する

オブジェクトの上にオブジェクトのアウトラインをレンダリングしようとしていますが、いくつか問題があります。私は OpenGL があまり得意ではないので、そのほとんどは次のチュートリアルからのものでした。望ましい効果は、次のようなものであると想定されています。

しかし、これは現時点での結果です:

これを行うために使用しているコードは次のとおりです。

そしてdoRender、プレーヤーをレンダリングするためのメソッドはすでに存在します。これに関するものは何でも役に立ちます。

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

android - アンドロイドopengl 2.0ステンシルバッファが機能しない

ステンシル バッファ機能を使用しようとすると、Android デバイスで非常に奇妙な動作が発生します。(GLES20.glEnable(GLES20.GL_STENCIL_TEST);)

ここに私のコードがあります:

次の結果が得られました。 私のコードの結果

最初は自分のコードを疑っていたので、 Google stencil testからステンシルの例を試してみ たところ、次の結果が得られました。

私のデバイスでの Google のステンシル テストの結果

opengl とステンシル バッファ機能に問題があるようです... Android 4.4.4 で Motorola Moto G を使用しています。これはある種の既知のバグですか?回避策はありますか?

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

opengl - OpenGL Stencil - 透明ピクセルを除外する

Stencil buffer を使用してマスクとして使用したいこのテクスチャがあります:

次に、上の画像が見える場所 (色がある場所) にのみ表示される画像 IMG を画面に描画し、上端とグラデーションの下の透明なピクセルを除外します。

問題は、画面にイメージ IMG を描画するたびに、ピクセルが透明かどうかに関係なく、イメージが描画されたすべての場所に表示されることです。

だから私は使用することを考えALPHA_TESTましたが、最新のOpenGLバージョンではなくなったので、フラグメントシェーダーで、v_color.a == 0またはv_color.r == 0フラグメントシェーダーでフラグメントを破棄しようとしましたが、何もしません...

フラグメント シェーダ :

頂点シェーダー :

コード :

結果 :

赤い矢印は、境界線からはみ出し、消したい部分を示しています。黄色の四角はクリッピング エリアです。

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

c# - OpenTK、単純な 2D クワッドでステンシル バッファを動作させることができない

私は OpenTK 2D ゲームでステンシル テストを機能させることに成功していません。ステンシル バッファーで、たとえば 1 の値を下回るテクスチャの部分のみを描画したいと考えています。ステンシルとその仕組みについて何年もかけて読んできましたが、C# で 1 つの例を見つけることができません。以下のコードは、以下のリンクからコードを移植しようとした私の試みです。

opengl ステンシル バッファ - うまく動作していません

つまり: http://pastebin.com/vJFumvQz

しかし、マスキングはまったく得られず、青の中に緑の長方形が表示されるだけです。何らかの方法でバッファを初期化する必要があると思いますか? どんな助けでも大歓迎です。

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

opengl - ステンシル ビットをチェックし、別のビットに書き込む

3D エンジンで反射面をレンダリングしています。2 つのステンシル操作を実行する必要があります。まず、深度テストを使用して反射面を描画し、表面の可視領域を見つけます。次に、モデルを G-Buffer に描画する必要があります。G-Buffer も、スカイボックスを描画する領域を見つけるためにステンシルされます。

  • Draw Surface: 常に描画し、ビット #1 を書き込みます

  • モデルの描画: ビット #1 が設定されている場合のみ描画し、ビット #2 を書き込みます

OpenGLを使用してこれを行うにはどうすればよいですか? glStencilFunc ref と mask の値と glDepthMask の値の関係がよくわかりません。