問題タブ [multisampling]
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.
c++ - マルチサンプルテクスチャで色と深さをレンダリングする方法は?
「深度ピーリング」を実装するために、それぞれ rgba カラー テクスチャと深度テクスチャを備えた一連のフレームバッファに OpenGL シーンをレンダリングします。アンチエイリアシングを気にしない場合、これはうまく機能します。もしそうなら、正しいことはを有効にして、の代わりにGL_MULTISAMPLING
使用することです。しかし、他のどの呼び出しを置き換える必要があるかについて混乱しています。GL_TEXTURE_2D_MULTISAMPLE
GL_TEXTURE_2D
特に、フレームバッファの構造をどのように適応させて、glTexImage2DMultisample
代わりに使用する必要がありglTexImage2D
ますか?
の代わりにglFramebufferTexture2D
使用を超えて呼び出しを変更する必要がありますか?GL_TEXTURE_2D_MULTISAMPLE
GL_TEXTURE_2D
色と深度の両方をテクスチャにレンダリングする場合、 を呼び出す必要がありglRenderbufferStorageMultisample
ますか?
最後に、glBlit*
レンダリングするフレーム バッファのテクスチャを設定する以外に、何かする必要があることはありますか?
このトピックには多くの関連する質問がありますが、私が見つけた解決策のどれも、標準的なチュートリアルやこれらすべてをまとめた明確な例を示しているようには見えません。
r - ノイズのある高次元球体からのサンプリング
ノイズのある高次元球からベクトルのサンプルを生成したいと考えています。
IE 任意のベクトル X が R^N にあり、||X+epsilon||^2 = 1 を保持するようなサンプルを作成しようとしています。ここで、epsilon は R^N の iid ベクトルであり、そのコンポーネント epsilon_j は N( 0,シグマ^2)。
誰かがそれを実装する方法を知っていますか? R を使用することをお勧めします。
ありがとうございました!
opengl - マルチサンプリングされた空白の画像が描画されたフレーム バッファ オブジェクト (FBO)
フレーム バッファ オブジェクトを使用してオフスクリーン レンダリングを作成しようとしました。非マルチサンプリングの場合、すべて問題ありません。しかし、マルチサンプリングにすると、空白の画像が表示されました。私のコードは次のとおりです。
次に、シーンを描画してピクセルを読み取ります。
どこで私は間違えましたか?
更新: ピクセルを読み取るために次のコードを試しましたが、問題が残ります。なぜですか?
opengl - 複数のレンダー ターゲット FBO の OpenGL マルチサンプリング
Deferred Shading を試していますが、複数のレンダー ターゲットを MultiSample しようとすると問題が発生します。3 つ (拡散、位置、法線) ではなく、1 つのアンチエイリアス テクスチャのみをコピーしているように見えます。拡散のみがコピーされます。
これは、私の Geometry Pass 用の Anti Alias FBO の作成です。
これは、私のターゲット FBO の作成です。
ジオメトリ パス中に AA FBO をバインドし、バインドを解除して、AA FBO からターゲット FBO へのブリットを実行し、フルスクリーン クワッドをレンダリングすると、望ましくない結果になります。
編集: マルチサンプリング呼び出しを使用せずに、通常の MRT fbo から別の通常の MRT FBO にブリッティングしようとしましたが、1 つのテクスチャだけをコピーしているようです。私の問題の根本は、MRT を別の MRT に誤ってブリットすることです。
opengl - マルチサンプル バッファをアンチエイリアシング以外に使用できますか?
少し調べてみましたが、アンチエイリアシングとその背後にある仕組みに関する結果しか見つかりませんでした。
アンチエイリアシング以外にマルチサンプル バッファを使用したい。具体的には、順序に依存しない透明度の形式で、各サンプル (理想的にはカメラに最も近い N 個のフラグメント) に異なる色と深さの値を格納することを念頭に置いています。
これはそもそも可能ですか?以前に行われたことがありますか。可能だったとしても、別の N フレームバッファを割り当てるよりもメモリ効率が良いでしょうか?
このようなことがコンピューティング シェーダーまたは OpenCL を必要とする場合は、それで問題ありません。そもそもそれが可能かどうかを知りたいだけです。
ハードウェアはどちらの場合も同じであるため、この質問は OpenGL または DirectX に固有のものではありません。
PS。順序に依存しない透過性の他の方法に向けて私を指摘しないでください。この質問は、特にマルチサンプルバッファを非定型の手段に使用できるかどうかに関するものです。
opengl - glBlitFramebuffer によるマルチサンプリング
これは、opengl でマルチサンプリング (アンチエイリアシング用) を行う最初の試みです。基本的に、画面に背景を描画し (アンチエイリアスを適用しないでください)、続いてアンチエイリアスを適用する頂点を描画します。私がこれまでに行ったこと:
問題は、 glBlitFramebuffer(...) を呼び出すと、背景全体が黒くなり、アンチエイリアスされた頂点だけが表示されることです。
助言がありますか?
opengl-es - glResolveMultisampleFramebufferAPPLE() は iOS で GL_INVALID_OPERATION を生成します (OpenGL ES 2.0)
glReadPixels()
関数を使用して、シーンのスクリーンショットを作成したいと考えています。マルチサンプリングを使用しない場合は、うまく機能します。しかし、もしそうなら、私はGL_INVALID_OPERATION
入りglResolveMultisampleFramebufferAPPLE()
ます。この問題を解決する方法はありますか?
私の保存機能:
で初期化されたデフォルトのフレームバッファを使用しGLKit
ますglkView.drawableMultisample = GLKViewDrawableMultisample.Multisample4X
opengl - GLSL、interpolateAtSample/Offset はどのように機能するはずですか?
長い間この質問がありました.単純なマルチサンプルの例を実行できません..
これは元のコードです。これは vs で、これは fs です。便宜上、ここで報告します。
実行すると、次のエラーが表示されます。
シェーダー ステータスが無効です: 0(20): エラー C5229: interpolateAtSample の引数 1 には、コンポーネントを選択する必要はありません
何?私は仕様が言うことを理解しています:
しかし、私はまだ理由がわかりません。内挿にはコンポーネント選択がなく、vs のバインドされた頂点属性からの入力変数です。または、コンポーネント選択演算子.Texcoord
を解釈しますか?Vert.Texcoord
ただし、別のサンプルでも同じエラーが発生しますinterpolateAtOffset
。
なにが問題ですか?つまり、指定されたオフセットでを補間したいのですが、gl_SampleID
その関数が他にどのように使用されるかわかりません..
opengl - 純粋な SSAA とサンプルごとのマルチサンプリング
純粋なスーパー サンプリング アンチ エイリアシング (SSAA) とサンプルごとのシェーディングによるマルチサンプリングの違いは何ですか?
を使用してGL_ARB_sample_shading
いますか?
SSAA と比較して、より大きなテクスチャを必要とせず、多くの柔軟性を提供するため、私は後者のほうがはるかに好きです..つまり、ランタイム中に SS と純粋なマルチサンプルの間で切り替えることさえできます..
私が気付いていない欠点はありますか?