alphaTest { mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == InvSrcAlpha: mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == One: GT0; default: passthrough; } blendFunc { default: Add, InvDestAlpha, One; } separateAlphaBlendFunc { mtlBlendOp == Add && mtlSrcBlend == One && mtlDestBlend == One: Add, Zero, One; mtlBlendOp == Add && mtlSrcBlend == InvDestColor && mtlDestBlend == One: Add, Zero, One; default: Disable, One, Zero; } cullFace { default: passthrough; } depthTest { default: passthrough; } depthWrite { default: Disable; } colorWrite { default: Enable, Enable; } polygonOffset { default: passthrough; } stencil { default: passthrough; } wireframe { default: Disable; }