我精通OpenGL和GLSL,尽管我目前只为OpenGL / GLUT编写过C++,或者为GLSL编写过GLMan。我一直在研究移动设备上的OpenGL,特别是安卓,对此我只有几个问题。
首先,我知道你必须在ES2.0中“编写整个管道”,但我相信这就是我一直在做的,在GLSL中,对吧?创建.vert和.frag文件,等等?
其次,我一直在看this教程,它似乎很有帮助,但第一件让我困惑的事情是顶点/片段着色器代码。有没有办法把它指定为一个文件呢?我无法想象必须以这种可怕的字符串连接格式编写着色器。
接下来,第一,查找precision mediump float之类的东西/学习东西的最佳参考资料是什么,因为我以前从未见过这种东西;第二,有没有资源可以在前面提到的声明和我更习惯的东西之间进行比较,比如uniform float x和varying vec3 y
最后,考虑到我至少应该有一些并行知识,有人能推荐一本学习OpenGL ES 2.0的好书吗?
发布于 2012-04-05 02:24:16
Re:对整个管道进行编程;这可能是你一直在使用着色器做的事情,但不一定是这样。当他们在桌面上引入着色器时,他们将一大堆向后兼容的东西放在了适当的位置,例如ftransform。在ES2.0中,情况并非如此。在其他区别中,没有任何矩阵堆栈,也没有预定义的属性或统一。因此,您必须编写比桌面GL 2.0下严格意义上的更多的管道,尽管不一定比您以前更多。
Re:将着色器保存在一个单独的文件中;这绝对不是问题。只需从文件加载String%s即可。任何旧的Java方法都可以,例如this one。
Re:引用;绝对最好的东西是OpenGL ES 2.0 API Quick Reference Card (一种PDF)。在短短四页中,就囊括了OpenGL ES 2.0的全部内容。关于您要求的特定内容,请参阅第三页上的精度限定符(这是GLSL部分的第一页)。我不知道有没有直接用于绘制parallels的资源,但只要搜索文档中任何意想不到的语法就可以了。不寻常的东西,如精度限定符,都是细微的调整,您可以通过查看它们本身来轻松地理解它们。
Re:一本书;我没有直接意识到任何事情。我猜默认的建议应该是the blue book。
https://stackoverflow.com/questions/10014862
复制相似问题