有没有办法在Metal中同时启用混合和深度

时间:2017-01-26 15:50:39

标签: ios textures alphablending metal depth-buffer

我有一个金属视图,显示一些纹理四边形。纹理从PNG加载,因此预乘。一些纹理具有透明像素。

当我按照正确的顺序启用混合和绘制时,透明度有效,您可以通过纹理的透明部分看到其他四边形下面的四边形。但是,我不得不通过排序来计算正确的绘制顺序,这是非常昂贵的并且会大大减慢渲染速度。

当我尝试使用深度模板并以任何顺序绘制时,我可以使用z位置使订单正常工作,但随后混合停止工作。纹理的透明部分显示金属场景的背景颜色,而不是下面的四边形。

我做错了什么?有没有办法让这个工作,有人可以提供一些示例代码?

我看到的另一个选项是尝试在GPU上进行排序,因为GPU帧时间明显小于CPU帧时间,所以这很好。但是,我也不知道该怎么做。

非常感谢任何帮助。 :)

0 个答案:

没有答案