Reputation: 2015
Do stencil buffer can only be filled in by some hard-coded rules during geometry drawing (like depth buffer), or is it possible to fill it in completely programmatically with the help of full-screen fragment shader, which can for example draw black-and-white shape based on some 2D SDF?
Also is it possible to use stencil buffer separate of depth buffer in this case and don't use depth buffer at all?
Upvotes: 0
Views: 162
Reputation: 4369
You can output [[stencil]]
decorated value from the fragment function, which is gonna be the stencil reference value according to Metal Shading Language specification table 5.7, and then set up MTLDepthStencilState
in a way that stencil always succeeds. And set up the operation to be MTLStencilOperationReplace
, which means
Replace the stencil value with the stencil reference value, [...]
which should make the stencil being effectively output by fragment function.
Upvotes: 1