渲染到纹理与渲染到CAEAGLLayer支持的视图?

时间:2011-12-18 19:35:05

标签: ios opengl-es render-to-texture

我对OpenGL环境的掌握非常松散,所以这是我想要了解的。有人可以用非专业的术语解释这两种渲染方式之间的区别是什么?主要是我想了解渲染纹理意味着什么,何时选择这样做是适当的?

1 个答案:

答案 0 :(得分:3)

如果渲染到纹理,那么您渲染的图像将以使其立即用作纹理的方式进行处理,实际上通常意味着CPU的工作量可以忽略不计或为零。您通常将纹理渲染为更复杂的渲染管道的一部分。

阴影缓冲区是最明显的例子 - 它们是渲染阴影的一种方式。将摄像机定位在光源所在的位置,然后从那里渲染场景,以便最终的深度信息以纹理结束。您不会向用户显示该信息。对于您打算向用户显示的每个像素,您可以计算出它与光线的距离以及它在深度图中出现的位置,然后检查它是否比光线更接近或远离深度图中剩余的光线。因此,在精确度问题上花费了一些精力,您可以检查每个像素是否从灯光中“可见”,从而检查它是否亮起。

渲染到CAEAGLLayer支持的视图是一种生成UIKit知道如何合成到屏幕的OpenGL输出的方法。因此,iOS允许您在普通Cocoa Touch显示器的层次结构中向用户呈现最终的OpenGL输出。