問題タブ [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.
webgl - webgl 描画順序、ステンシル バッファ
私は learningwebgl.com を読んでいますが、最後の要素としてバインドした最初のバッファーを描画することで混乱しますか?
他のすべてがオーバードローされるため、青い四角だけが表示されると思っていましたが、出力が逆の順序になっているようです。
ステンシル バッファーについても読んだので、マスク (赤) を作成すると、青い四角の上に緑の三角形が表示されます。
マスクは機能します(http://jsfiddle.net/D3QNg/3/)が、それが正しいのか、それとも運が良かったのかはわかりません。
助けていただければ幸いです。
android - OpenGL ES Stencil Buffer が特定のデバイスで機能しない
私は OpenGL ES 2.0 を使用しており、Stencil Buffer を使用しています。以下は、私が作成した単純な Stencil Buffer Demo のコードです。ステンシルは 1 つのデバイスでのみ正常に動作します。
デバイスは次のとおりです。
Android 4.2.2、PowerVR SGX 544MP (GPU)、Allwinner A10 タブレット。(ステンシル バッファはこのデバイスで完全に動作します)
Android 4.1.2、Adreno 225 (GPU)、Galaxy S III 電話。(ステンシル バッファは機能しません。まれにステンシルのゴースト イメージがちらつくことがあります。
Android 4.2.2、Mali-400MP (GPU)、Rockchip rk30sdk タブレット。(最初のテストでは、ステンシル バッファーは機能していませんでした。多くの変更を行った後、現在は機能しているように見えます。ステータスは疑問です。この時点で動作中のステンシル バッファーを修正した特定の変更は不明です)
同じ最新の .APK で上記の結果が得られました。
「Play Store」のアプリケーション「OpenGL 3D Showcase」は 3 つのデバイスすべてで実行され、「showcase」 #18 「Stencil Buffer Shadows」[OGL 1.1] はエラー メッセージなしで完全に動作します。ソース コードはアプリと共に提供されますが、役に立たないことが確認されています。
以下は私のステンシルコードです:
初期化:
初期化 2:
コメントされたすべての「setEGLConfigChooser」呼び出しが試行されました。
問題を追跡するためのアイデアはありますか? 他に助けが得られる可能性のある場所はありますか?(必要な場合は、MFG/Android/Google に連絡してどこにでも行くことができますか?)
directx - 深度テストでチェックされたポリゴンの識別 (DX11)
私はグラフィックス プログラミングの世界ではかなり初心者なので、この質問に明らかな答えがある場合はご容赦ください。
DirectX 11 で深度テストが実行されている場合、特定の時点でどの三角形がテストされているかをどのように識別しますか? 特定のポリゴンが特定のポリゴンを通して表示されていない限り、深度テストが失敗するように手動で指示しようとしています (つまり、ジオメトリの 1 つのセットは 1 つのサーフェスのみを介して表示され、別のセットは別のサーフェスを介してのみ表示されます)。
本当の問題は、ピクセルがテストされているときに、システムがそのピクセルのデータ (位置、色など) をどのように参照するのかということだと思います。私が完全に見落としているものはありますか?
当分の間、私はより大きな問題に対する別の解決策には興味がありません。この特定の質問に対する答えにすぎません。助けてくれてありがとう!
c++ - Depth + Stencil フレームバッファの問題
OpenGL アプリには、ステンシルと深度バッファーの両方が必要です。デファード シェーディングやその他の後処理効果を実行できるように、デプス バッファーは少なくともフレーム バッファー オブジェクトを介してテクスチャにレンダリングする必要があります。私はすでにこのフレームバッファをセットアップしています (GL_DEPTH24_STENCIL8 を使用) が、いくつかの懸念と質問があります。
まず、32 ビットの浮動小数点深度バッファーを使用したいと思います。GL_DEPTH32F_STENCIL8 オプションが最も明白なようです。私が知りたいのは、この形式の実際のメモリ フットプリントはどれくらいかということです。論理的には 40 ビットになりますが、アラインメントについて私が何をしているかを知っていれば、64 にパディングされても驚かないでしょう。ぜひ知りたいです。
おそらく、深度バッファとステンシル バッファを別々にしておく方がよいでしょうか? これがサポートされていないことを心配する必要がありますか? ステンシル テストとデプス テストは一緒に実行されることが多いため、キャッシュの効率はどうですか?
PS。マルチサンプリングは使用していません。
c++ - Linux C++ 上の Gtkmm の OpenGL ステンシル バッファ
学校のプロジェクトでステンシル バッファーを使用して反射を生成しようとしています。私はこのチュートリアルに従っていました: http://www.opengl.org/archives/resources/code/samples/mjktips/Reflect.htmlシーンを平面に反射させて反射を作成し、再度描画して反射してから、反射をクリッピングして、突き出ている部分を取り除きます。
チュートリアルに従いましたが、何もクリッピングされておらず、反射が完全に表示されています。私は次のことを試しました:
出力は「Stencil bits is 0」です。そのため、ステンシル バッファーはまったくありません。Gtkmm でステンシル バッファーを作成するにはどうすればよいですか (ステンシル バッファーの作成はライブラリ固有であると読みました)。
opengl - レンダリングを未知の曲面にステンシルする
複数の不規則なテクスチャを曲面 (xyz 頂点とそれぞれに指定された uv を持つメッシュ) にデカールしたい。モデル ファイルからメッシュを読み込んでいますが、サーフェスについてアプリオリな知識はありません...わかっているのは、「妥当な」UV マッピングがあることだけです。いくつかの UV 領域を選択して、それらにテクスチャを適用したいと考えています。各領域は、UV 座標のバウンディング ポリゴンによって指定されます。この場合、同等の xyz ポリゴンがわからないか、答えは簡単だと思います。
これは、平らな表面と単純な円筒形の表面 (平均として法線を選択することで平滑化された一連の平らなストライプとして近似します) に対して機能します。どちらの場合も、uv から xyz への一意のマッピングがわかっているため、テクスチャをバインドして実際のサーフェスを描画する前に、同等の xyz ポリゴンをステンシル バッファーに描画することにより、ステンシル バッファーを設定して、描画を目的の uv 領域に制限します。
また、テクスチャをサーフェスにデカールするときに、テクスチャ内で rgba 透明度を使用しています。通常、各テクスチャ領域は小さな回転した長方形であるため、4 つの頂点をステンシル バッファーに描画し、テクスチャ マトリックスを使用してそれを回転させ、テクスチャ内の rgba 透明度を使用して、テクスチャの適切な部分のみが適用されるようにします。これはすべてうまく機能します。
作業コードを再利用したいのですが、これらのテクスチャを任意の曲面/メッシュに適用します。これらのモデルを読み込んで描画しており、すでに面全体にテクスチャを適用できます [つまり、uv は (0,0) から (1,1) になります]。これを拡張して、「配置された」テクスチャを各サーフェスの領域に適用します。
同等の xyz ポリゴンを知らなくても、UV ポリゴンをステンシル バッファに直接描画できる可能性があると考えた場合、既存のコードはすべて機能します。おそらく、フレーム バッファ オブジェクトのようなトリックを使用して、ステンシル ポリゴンの最初の描画を行い、それを曲面メッシュの「実際の」描画中にステンシルとして使用することができます。それは良いアプローチでしょうか?それとももっと良い方法がありますか?
関連するサンプルへのアドバイスやURLリンクは大歓迎です... PSこれらのスレッドを見てきました...一種の関連性がありますが、まったく同じ問題ではないと思います...
opengl でステンシル レンダー バッファーをフレーム バッファーにバインドする
私は現在、オフスクリーン シャドウ マッピング用の FBO セットアップ/使用コードをいくつか見て、この一見単純な状況で機能するようにしようとしています。私がはっきりしていないのは、必要なセットアップ gl 呼び出しです...これをセットアップする方法についてかなり混乱しています。これは、ハードウェア シャドーイング FBO セットアップの抜粋で、ビットが切り捨てられ、?? 追加...ここで正しいシーケンスに関するヘルプをいただければ幸いです。
注: tex,m_Frambufferはints, textureid と framebuffer が正しく割り当てられています。ビットは問題ないと考えてください。私の混乱の主なポイントは
- コードは glBindTexture、glTexImage2D、glBindTexture を 0 にリリースするようです: これを早期にリリースするのは正しいですか?
- glDrawBuffer + glReadBuffer 呼び出しが必要ですか?
javascript - webGL - フレーム バッファーと一緒にステンシル バッファーをセットアップして使用するにはどうすればよいですか?
誰かが私を助けてくれるかどうかさまよっています。現在、プロジェクトの他の部分のテクスチャとして使用できるように、webGL を使用してコンテンツをフレーム バッファーにレンダリングしています。これはチャンピオンのように機能します。ただし、マスクに使用しているため、フレーム バッファーへのレンダリング中にステンシル バッファーを使用する必要があります。フレーム バッファを操作するためにステンシル バッファを作成/アタッチする方法がわかりません。これまでの私のコードは次のとおりです。
私の質問は、ステンシル バッファを作成して、上で作成した frameBuffer と一緒に使用するにはどうすればよいですか?
皆さんありがとう!