2

gl_FragDepthに書き込むことで、GLSLの深度バッファーに書き込む内容を制御できることは知っていますが、ステンシルバッファーに書き込むことはできますか?

また、ピクセルがステンシルまたは深度テストに失敗したかのように、フラグメントシェーダー内からピクセル書き込みを完全にキャンセルできますか?

ありがとう

4

1 に答える 1

4

適切なハードウェアを使用している場合は、ステンシルバッファに書き込むことができます。すべてのRadeonHDハードウェアはAMD_stencil_shader_exportを使用できます。ARB_stencil_shader_exportがありますが、それが特に普及しているかどうかは確認できません。

フラグメントによる書き込みを停止する場合は、を使用できますdiscard。これは、概念的に例外をスローするようなものです(ただし、動作的にはスローしません)。

于 2011-08-26T20:53:43.567 に答える