0

我对 OpenGL 环境的了解非常松散,所以这是我想要理解的。有人可以用通俗的话解释这两种渲染风格之间的区别吗?首先,我想了解渲染到纹理意味着什么,什么时候选择这样做合适?

4

1 回答 1

3

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

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

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

于 2011-12-18T19:49:24.637 回答