我正处于使用OpenGL ES 1.1和2.0进行iPhone开发的十字路口。我计划创建2D应用程序和简单的3D应用程序。为了简单起见,我应该使用1.1吗?或者这会在iOS的某个时候停止吗?我想知道2.0中的着色器是否比1.1中的着色器更有利于制作简单的程序。请告诉我每个人的优点。感谢。
答案 0 :(得分:2)
我会说使用2.0开始的确定原因是复杂的效果,2.0在这个问题上是一张外卡,着色器是在显卡内部运行的一点点软件(好吧,并不总是如此)并且具备这种能力在运行时影响单个像素。在1.1中你可以做很多事情,但是大多数时候你会影响纹理中的所有像素,影响单个像素,你必须组合纹理,过了一段时间只有你不能做的东西1.1。
现在,如果你不需要复杂的效果,你可以开始使用1.1,但让我告诉你你的旅程:
在开头1.1会更容易,glTranslatef,glRotatef,glScalef等确实可以节省你的时间并让你轻松开始操作对象。
但是你有进步并开始做更复杂的事情,你学习矩阵操作,说有一个例程有点慢因为你做了大量的转换,旋转等等所以你读了这个主题并且学习如何将所有这些操作组合成一个矩阵,这样你就可以开始使用自己的矩阵计算功能并开始更多地使用glMultMatrixf,一段时间之后总是更容易使用glMultMatrixf,因为你可以在不需要重写代码的情况下添加东西。
此时你没有理由使用1.1,从glMultMatrixf到2.0是一个很小的步骤,你可以从着色器中获得全新的世界。
所以,如果你不需要很大的效果并且很想去,那就好好用1.1。 其他任何事情都直接转向2.0。
<强>声明强> 是的,这是一个简化,但是我自己创造了一个旅程。
答案 1 :(得分:1)
2.0有一个可编程管道
这似乎不是很多信息(就像我第一次开始的时候我就像“呃好吗?”)但它确实意味着很多。
允许您控制顶点的变换
现在在我做的较小的事情(3d)中,转换可以很容易地由1.1自动管理,但在2.0中完全控制它们很酷
如果你正在学习关于这些设备的意见,我建议首先制作支持1.1和2.0的程序,这样你就可以获得更多的经验和对opengles的理解
如果您需要完全控制顶点,那么2.0就是要走的路,否则1.1应该没问题