從今年春節后開始學習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封裝的那套實在是挺雞肋。