【发布时间】:2014-02-20 00:53:51
【问题描述】:
我想裁剪和反对我的openGL ES 应用程序,应按以下方式完成:
左边是初始图像,中间是模板缓冲矩阵,右边是结果。
从我在这里读到的:Discard with stencil 可能有性能问题, 并且由于将被剪裁的模型将被旋转和平移,老实说,我不知道在这些动作之后绘制的模型是否会在错误的地方被剪掉。 会吗?
所以,我想到了深度缓冲区。 再举个例子:
(这张照片取自question.)
假设黑色方块是可移动的,并且可能不仅仅是一个简单的方块,而是一个复杂的UIBezierPath。
我想知道如何使用深度缓冲区,以便在正方形(或UIBezierPath)之外绘制的所有内容都将被剪掉,这意味着将左侧像素的所有 z 值调整为某个阈值,不会显示在屏幕上。
总结一下:
1) 如前所述,使用模板会很昂贵吗?
2) 是否可以在旋转和平移的对象上使用模板以便始终绘制它?
3) 使用深度缓冲区,是否可以找出正方形(或UIBezierPath)内部和外部的内容以及如何?以某种方式掩盖它?
4) 更好的方法是什么?
我知道要回答的问题很多,但由于它们都相互关联,我认为最好在同一个问题上提出。
【问题讨论】: