1

私はシェーダーを試していますが、答えが見つからない質問があります。

交差する (完全ではない) 2 つのクワッドがある場合、交差するフラグメントをフラグメント シェーダーで異なる方法でレンダリングできますか? たとえば、1 つのクワッドは赤で、もう 1 つのクワッドは緑 (緑のクワッドは赤のクワッドの上にあります) で、ピクセルの半分が交差します。フラグメント シェーダーを使用して (ブレンディングではなく) 交差するピクセルを黒に、その他のピクセルを赤/緑にレンダリングできますか? 私はopen gl es 2.0を使用しています。ありがとう!

4

1 に答える 1

3

EXT_shader_framebuffer_fetchGPU が拡張機能をサポートしている場合、GL ES 2.0 でのカスタム ブレンディングを実現できます。ここでそれについて読むことができます: http://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_framebuffer_fetch.txtgl_LastFragDataこのようにして、変数を 使用してフラグメント シェーダーのフラグメント カラーにアクセスし、色の変更方法を決定できます。

NV_shader_framebuffer_fetchnVidia ( ) および Apple ( APPLE_shader_framebuffer_fetch) GPU用の同様の独自の GL 拡張機能もあります。

ただし、この機能は、ARM の Mali GPU (および Qualcomm の Adreno AFAIK) などの一部のチップには存在しないことに注意してください。そのようなデバイスでは、他の (非常に複雑だと思います) ソリューションにフォールバックする必要があります。

于 2013-09-24T13:23:23.470 に答える