从今年春节后开始学习OpenGL ES,发现网上资料很有限,而且良莠不齐,所以整理了一下我学习时用到的资料和一些心得。
1. OpenGL ES1.x参考资料
把NEHE的教程移植到了Android上,当然用的是ES1
http://insanitydesign.com/wp/projects/nehe-android-ports/
2. OpenGL ES2.x参考资料
有很多Android上ES2应用的文章
http://tangzm.com/blog/?p=20
特别好的书,网上有英文版pdf,作者是libgdx的开发者,大神
《OpenGL ES 2 for Android》
《OpenGL ES 2 for Android》作者的网站,必看
http://www.learnopengles.com/
讲的太详细了,可以当工具书,网上也有pdf
《OpenGL ES 2.0 Programming Guide》
讲的都是高级特性,想开发高级功能的可以看一下
《Pro OpenGL ES for Android》
一个Android上简单的demo,可以借鉴
https://github.com/yulu/GLtext
3.其他相关资料
计算机图形学&OpenGL的资料,可以看看
http://www.cnblogs.com/liangliangh/p/3764420.html
http://www.cnblogs.com/liangliangh/p/3765221.html
骨骼动画原理讲解,写的非常不错
http://blog.csdn.net/n5/article/details/3105872
透视投影详解
http://www.cnblogs.com/graphics/archive/2012/07/25/2582119.html
大神的网站,很多不错的OpenGL教程,关键是还有直接可以跑的源码。
http://www.tomdalling.com/
4.个人心得
能用OpenGL ES2.x就别用ES1.x了,那个太老了,功能太受限制。
Android NDK里面的例子很不错,可以学习借鉴。
IOS有专门的网站讲GPU开发需要注意的事项,很赞。(https://developer.apple.com/library/ios/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/Introduction/Introduction.html)
大多数移动设备对uniform数组的大小限制很严重,也就支持128-256个vec4吧,这个在跨平台移植的时候一定要注意
其实最好还是先学OpenGL再搞ES,在电脑上调试什么的都很方便。
如果要写跨平台(Android,ios)的代码,还是需要用C++写,Android用Java封装的那套实在是挺鸡肋。