0

我非常精通 OpenGL 和 GLSL,尽管我目前只用 C++ 编写了 OpenGL / GLUT 或 GLMan 编写 GLSL。我一直在研究移动设备上的 OpenGL,特别是 Android,并且有几个问题。

首先,我知道你必须在 ES 2.0 中“对整个管道进行编程”,但我相信这就是我一直在做的事情,在 GLSL 中,对吧?创建.vert.frag文件,等等?

其次,我一直在看这个教程,它似乎很有帮助,但首先让我感到困惑的是顶点/片段着色器代码。有没有办法将其指定为文件?我无法想象必须以那种可怕的字符串连接格式编写着色器。

接下来,首先,查找事物/学习事物的最佳参考是precision mediump float什么'更习惯,喜欢uniform float xvarying vec3 y

最后,考虑到我至少应该具备一些并行知识,任何人都可以推荐一本学习 OpenGL ES 2.0 的好书吗?

4

1 回答 1

3

回复:对整个管道进行编程;这可能是您一直在使用着色器所做的事情,但不一定是。当他们在桌面上引入着色器时,他们放置了一大堆向后兼容的东西,例如ftransform. 在 ES 2.0 中并非如此。除其他差异外,没有任何矩阵堆栈,也没有预定义的属性或制服。因此,您必须编写比在桌面 GL 2.0 下严格需要的更多的管道,尽管不一定比您要多。

回复:将着色器保存在单独的文件中;这绝对不是问题。String只需从文件中加载您的 s。任何旧的 Java 方法都可以,例如这个

回复:参考资料;绝对最好的是OpenGL ES 2.0 API 快速参考卡(PDF)。OpenGL ES 2.0 的全部内容只有四页。关于您要求的具体内容,请参阅第三页(这是 GLSL 部分的第一页)上的精度限定符。我不知道直接用于绘制平行线的资源,但只需在该文档中搜索任何意外的语法就可以了。不寻常的事情,比如精度限定符,都是微小的调整,你可以通过查看它们本身来轻松理解。

回复:一本书;我没有直接意识到任何事情。我猜默认推荐是蓝皮书

于 2012-04-04T18:24:15.837 回答