Android从Opengles 1.0迁移到Opengles 2.0,纹理?

时间:2011-09-27 21:41:56

标签: android opengl-es opengl-es-2.0

我目前有一个OpenGLES 1.0引擎,代码库非常大,我正在迁移到OpenGLES 2.0

感谢this我已经能够克服缺乏矩阵的障碍,但在我继续更改数千行代码之前,我想知道一些我没有做过的事情。能够找到谷歌。

首先,是否应用了纹理更改的过程?我知道旧的固定管道为你做了很多肮脏的工作,但我不知道纹理是否是其中的一部分。我是否还必须为此创建着色器? (想想glTexEnvf,glTexParameter,glBindTexture等)

第二次,混合模式是否有任何变化,还是需要自定义着色器?

第三次,glDrawElements有什么重大变化吗? (换句话说,我的现有呼叫是否会在没有修改的情况下工作)

第四,是否有人可以推荐一些好的书籍或教程来学习如何制作着色器及其工作原理?我从互联网上的大量iPhone教程和上面链接的教程中学到了很多东西,但后者不包含任何深入的解释,前者不包含任何Android代码,我是shaders的新手> _<

1 个答案:

答案 0 :(得分:0)

  1. 绑定纹理和glTexParameter(如过滤或包装模式)之类的工作就像以前一样。但是你现在必须自己在片段着色器中进行纹理应用。因此,您现在基本上自己实现glTexEnv

  2. 混合工作与以前一样。这些操作在片段着色器之后以与ES 1相同的方式完成。

  3. 不是glDrawElements本身。但是现在你必须使用自定义顶点属性和相应的顶点着色器来处理它们,而不是ES 1中的内置属性(如顶点,法线,颜色......)。