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

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

opengl - マルチサンプリングされた深度バッファを深度テクスチャに解決する方法は?

深度テクスチャに解決される msaa 深度バッファに問題があります。カラー テクスチャと深度テクスチャの両方に対して glTexImage2d を作成し、それらを「解決」(非 msaa ) フレームバッファにバインドします。次に、別のフレーム バッファを作成してバインドし、マルチサンプリングされたレンダ バッファ (色と深度の両方) を作成します。マルチサンプリングされたレンダーバッファーからカラー テクスチャー情報を取得することはわかっています。書き込みバッファーはカラー テクスチャー フレームバッファーであり、読み取りバッファーは msaa-framebuffer です。私の質問は、マルチサンプリングされた深度バッファを深度テクスチャにブリットする方法です。

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

opengl - 明示的なマルチサンプリングは、OpenGL の通常のマルチサンプリングとどう違うのですか?

28byteslater.com から、遅延シェーディングの MSAA に関するこのチュートリアルを読んでいました。

明示的なマルチサンプリングでは、特定のサンプルにアクセスできると言っています。

GL_TEXTURE_2D_MULTISAMPLEたとえば、バインドされた通常のテクスチャから同じことを行うことはできませんか?

これは、(明示的なマルチサンプリングを使用せずに) 個々のサンプルにアクセスするために以前に使用したシェーダー コードです。

明示的なマルチサンプリングで異なると思われる唯一のことは、それらがtexelFetchRenderbuffer()シェーダーで使用されており、テクスチャが にバインドされていることGL_TEXTURE_RENDERBUFFER_NVです。さらに、正しく覚えていれば、シェーダーで RenderBuffer を使用することはできませんが、今では使用できますか?

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

textures - glsl フラグメント シェーダーでネイティブ解像度のテクスチャをサンプリングする方法

2D テクスチャをルックアップ テーブルとして使用して、より大きなテクスチャにインデックスを付けようとしています。次に、カラー値をクワッドにテクスチャ マップします。私が抱えている問題は、サンプリングすると、大きなテクスチャがネイティブ解像度よりも小さく見えることです。たとえば、4k x 4k の大きなテクスチャがあります。ルックアップ テクスチャは、大きなテクスチャの 1k x 1k 領域をサンプリングします。次に、結果を、幅 1k x 高さ 1k のビューポートを満たすクワッドにテクスチャ マップします。テクスチャ化されたクワッドと元の 4k x 4k テクスチャの 1k x 1k 部分の間に 1:1 マップが表示されることを期待しています。ただし、テクスチャ化されたクワッドは非常にエイリアシングされています。4k x 4k テクスチャが 1k x 1k テクスチャに縮小されたように見え、ルックアップ マップはそのテクスチャの 512 x 512 部分をサンプリングします。

つまり、ネイティブの 4k x 4k テクスチャではなく、1k x 1k ビューポートに合わせてサイズ変更されたテクスチャからサンプリングしているように見えます。私がこの問題に取り組んでいる理由に問題はありますか?

ここに私の頂点シェーダーがあります:

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

c++ - OpenGL FBO でマルチサンプリングを使用する方法

FBO のマルチサンプリングと alpha-to-coverage を有効にしようとしています。glEnable(GL_MULTISAMPLE)デフォルトのフレームバッファを使用して、必要なのはandを呼び出すことだけですglEnable(GL_SAMPLE_ALPHA_TO_COVERAGE)。しかし、私自身の FBO を使用して同じ効果を達成することはできません。

私の目標:上記のプロパティでデフォルトのフレームバッファに描画されるのと同じ方法で、シーンを FBO に描画します。そこから、シェーダーを通過する将来のパスのテクスチャとしてイメージを使用できるようにしたいと考えています。

これは機能します: マルチサンプリング/アルファからカバレッジ、1 つのカラー アタッチメント、1 つの深度アタッチメントなしで FBO を作成するためのコード:

これはうまくいきません。マルチサンプリング FBO を作成しようとするコード:

これについて OpenGL wiki を調べてみましたが、不完全ですが (さまざまな未完成の見出しがあり、専門的ではないように見えます)。glGetError決して文句を言いません。私はこれをいじってみましたが、黒い画面またはゴミのピクセルでいっぱいの画面が表示されます。

主な質問:マルチサンプリングとアルファ ツー カバレッジを FBO で動作させるには、どのようなことを考慮/変更する必要がありますか?また、FBO の作成、テクスチャ、シェーダー)

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

c++ - マルチサンプリング遅延レンダリング ブレークで sampler2DShadow を使用する

タイトルが示すように、sampler2DShadow を使用すると、マルチサンプリング FBO のライティング シェーダーでエラーが発生しますが、マルチサンプリングを使用しない標準の遅延レンダリング設定を使用して非常によく似た構成を使用しているため、問題を検出できません。

openlGL の sampler2DShadow とマルチサンプリングに互換性の問題がありますか、または使用すべき代替手段はありますか?

シェーダーは正常にコンパイルされます。

この行を実行するまで、コードは正常に機能します。

結果を取得します。次に、GL_INVALID_OPERATION を取得します。

シャドウ マップはディレクショナル ライト (デプス マップは有効で表示可能) からのもので、標準テクスチャ (GL_TEXTURE_2D) に設定された GL_COMPARE_R_TO_TEXTURE を使用します。

マルチサンプリング遅延 FBO テクスチャは GL_TEXTURE_2D_MULTISAMPLE を使用します。

glsl 330 (openGL 3.3 コア プロファイル) を使用しています。

アップデート

問題は、マルチサンプリング フラグメント シェーダーの位置マップからワールド位置を取得することに関連していると思います。

標準的な方法:

マルチサンプリングの方法:

(他のサンプラーは省略しました。)

sampler2DShadow (pCoord は worldPos を使用して計算されます) にアクセスしようとすると、エラーがスローされる境界を超えていると思います。

次に、このマルチサンプリングされた worldPos を取得して、標準的な方法と同じ結果を得る方法を見つけますか???

標準的な方法 (mDepthVP = mat4 (ライトの深度ビュー プログラム):

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

qt - Qt を使用したマルチサンプリング

しばらくの間、レンダリングする立方体の端を滑らかにするために QGLWidget でマルチサンプリングを有効にしようとしましたが、成功しませんでした。作業を行うコード部分は次のとおりです。

1)マルチサンプリングを有効にしてサンプル数を設定するために、指定された形式をGLWidget(QGLWidgetを継承する)のコンストラクターに渡します

GLWidget *widget は mainwindow クラスのメンバーです。

2) initializeGL() メソッドでマルチサンプリングを有効にして、マルチサンプリングが機能するかどうかをテストします

setSamples が 4 に設定されていても、qDebug が印刷されます

直方体にはまだギザギザのエッジがあり、線も滑らかではありません

3) 立方体のレンダリング方法は次のとおりです。

GL_LINE_LOOP は直方体の周りにフレームを作成するために使用され、GL_QUADS は直方体の面に使用されます

Radeon HD 7790 を使用して、Linux Mint で作業しています。

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

c++ - Opengl ES 2 (ios) でアンチエイリアスを有効にする

IOS でマルチサンプリングを有効にする際に問題が発生しています。

このガイドを参照しています

下にスクロールすると

コード リスト 4-5 マルチサンプル バッファの作成

(もちろん) リゾルブ バッファが必要であることが明確に示されていることがわかります。ただし、最初のステップではどのような初期化も示していません。私はちょうどする必要がありますか

フレーム バッファ オブジェクトをいつ初期化する必要がありますか?

また、最後のステップは私には明確ではありません。

正確にはどこでこれを行う必要がありますか? そしてそれは何を達成しますか?fbo と vbo からの描画呼び出しの後だと思いますが、よくわかりません。

誰かが私が調べることができるある種のサンプルプロジェクトへのリンクを持っていますか? 私はグーグルで検索しましたが、何も見つかりません:(

最後に、フロート テクスチャを使用して HDR 画像をレンダリングしています。この命令で GL_RGBA8_OES を保持する必要がありますか?

この時点ですでにテクスチャにレンダリングされているかどうかは、はっきりしません。

前もって感謝します!

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

ios - アプリでマルチサンプリングを有効にするとレンダリングが速くなるのはなぜですか?

iOS アプリでマルチサンプリングを有効にすると、パフォーマンスが大幅に向上するという非常に厄介なケースです。もちろん、マルチサンプリングによってパフォーマンスが低下することはわかっていますが、今回は予想とはまったく逆の動作をします。

GLKView.drawableMultisample を GLKViewDrawableMultisample4X に設定して、マルチサンプリングを有効にします。それが提供するアンチエイリアシング効果がはっきりとわかるので、2 つの状態を誤って混同することはありません。

マルチサンプリングを有効にすると、フレーム レートが最大 2 倍になり、場合によってはそれ以上になります。最初は、XCode に表示される FPS が間違っているのではないかと考えました。次に、独自の FPS 計算コードを追加しましたが、同じ結果が得られました。また、マルチサンプリングを有効にすると、Tiler の使用率が 4 ~ 5% から 12 ~ 15% に上昇し、まったく同じ数の三角形、同じシェーダーを使用していることにも気付きました。

それはどこかにエラーがあるかもしれないと思わせます。コンソールにはまだ何も表示されません (警告やエラーはありません)。私は完全に手がかりがありません。誰もこれを見たことがありますか?

ありがとう