和其他许多人一样,我一直疯狂地寻找一个好的OpenGL ES 2.0教程。但我似乎尝到了任何可用但我仍然没有信心。我知道1.1有一个固定的管道,而2.0让一切都符合程序员的口味。所以我想我可能会从1.1教程中学习灯光,纹理和东西,然后在学习这些概念后,我可以使用着色器手动完成所有未提供的准备功能。你认为我是在正确的方式还是我应该停止?
答案 0 :(得分:3)
你的问题有点主观,所以我的答案必然包含个人意见,但我相信开始用1.1开始学习OpenGL ES并且人们应该从2.0开始不再有用。在iOS上,无法处理2.0的字段中活动设备的数量估计小于5%(based on sales,此数字可能最高为16%)。我无法谈论Android统计数据,因为由于可用硬件的多样性,我在那里固定数字的难度更大,但这似乎也非常有利于2.0。
说到技术方面的问题,我认为首先学习1.1会有很多好处,因为当你转向2.0时,你最终会把很多东西扔到窗外。当您必须在2.0中创建自己的着色器程序时,学习1.1中设置灯光和材质属性的特定API调用没有太大意义。你并没有真正了解这些灯等在1.1的固定功能管道中是如何工作的,因为它就像一个黑盒子。当我到2.0的时候,我发现我并不真正理解在1.1中为我计算的内容,所以我从使用旧API的经验中获得的收益并不多。
从2.0开始,两者之间的相同内容也可以学习。
1.1超过2.0的一个重要优势是示例代码和教程材料的可用性。然而,随着人们迁移到新API,这种情况越来越好,我在this answer中描述了我在这个主题(重点是iOS)上找到的一些最好的材料。正如我在那里指出的那样,我教了1.1和2.0的课程,可以免费找到on iTunes U。该课程注释了我组装的几个简单的2.0示例的链接,以演示如何复制1.1功能。我还谈到如何在this answer中将一些1.1代码转换为2.0(PowerVR参考链接到那里特别适合展示如何在2.0着色器中生成1.1效果)。
就我个人而言,OpenGL ES 2.0在家中的感觉要比我在1.1版中的要多得多,这在很大程度上是因为我觉得2.0 API要简单得多。我不必记住以正确的方式设置场景的所有命令,以及我能用API做什么和不做什么。我只是编写简单的GLSL代码来做我想做的事。