新视角+变换矩阵的每一个更新?

我在Xcode中查看OpenGL ES 2.0的模板,我注意到Apple在每帧之前创建了一个新的透视矩阵和一个新的变换矩阵。我也在教程中看到这个。当我在其他平台上使用OpenGL时,我只需创建一次矩阵。苹果为什么要让你每一帧都制作一个新的?新视角+变换矩阵的每一个更新?

回答:

在复杂的应用程序中,有几个方法来处理OpenGL的状态:

1)有一个政策,每一个改变OpenGL的状态函数或方法必须将其设置回它是什么,他们做了什么之前

2)每个函数或方法设置状态,他们希望它被假定一无所知的存在状态是什么

3)你跟踪的状态和函数和方法可以在本地检查并设定只什么他们需要

在情况1中,如果有人忘记遵循该政策,则会发生错误并难以追查。而且,获取当前状态对于某些状态位可能是昂贵的。

在情况2中,您花时间设置状态可能不需要。不过,这通常不会太糟糕。

在情况3中,您花费了大量精力和内存跟踪OpenGL已经保存的状态。这是昂贵的和容易出错的。

所以通常我会去#2。这对我来说是最少的工作量,并且在大多数情况下具有相当不错的表现。你的旅费可能会改变。

以上是 新视角+变换矩阵的每一个更新? 的全部内容, 来源链接: utcz.com/qa/262967.html

回到顶部