使用OpenGL一年后

  之前上学时使用了一段时间OpenGL,后来就没用了,现在在这公司有开始使用OpenGL了,使用了一年多,也真是感触良多啊,今天随笔记下来,说两句,思路也可能有点乱,别介意。

  先推荐基本书,OpenGL超级宝典第四版和第五版,OpenGL ES 3.0编程指南。

  OpenGL发展到现在有固定管线和可编程管线,一个VBO顶点的使用方式也有多种方式,各种OpenGL风格代码也都有,但好好读OpenGL超级宝典第四版和第五版就都明白了,OpenGL ES 3.0一书虽然书名是3.0版本的,但2.0和3.0的区别也很细致讲了,不错。

  固定管线和可编程管线编程有不少不同,因为负责了整个OpenGL底层从固定管线到可编程管线的代码移植,体会颇深。当然也没啥难的,主要很多接口函数搞清楚,当然还有桌面端和移动端OpenGL底层原理的一点区别,有些函数性能是不一样的。

  在这里的话,一直在负责OpenGL及Shader代码的开发,OpenGL及其Shader语言也算是滚瓜烂熟了,坑真是填了不少啊,很多时候都是在填坑啊,OpenGL基本的特性都摸熟了。

  列举几个值得注意的问题:

  1.Shader中texture函数在IOS设备高低端性能差异很明显。

  2.绘制天空盒效率,纹理填充率,绘制顺序等问题。

  3.Shader中高低精度的效率及表现等

  4.OpenGL函数调用要规范,如果很多不规范调用,虽然对最终结果影响较小,但总是不好的,多检查下每个函数调用是否合乎OpenGL的用法

 

  作为负责OpenGL底层代码的人,想起自己在2014年负责用Flash AS3语言开发页游的整个界面系统经历,真是有很多类似之处啊。

我们程序员,或者说是一名技术员在职责价值所在就是对自己所使用的工具,如OpenGL,AS3等摸清楚它们的特性,各个函数的基本用法,各个函数在各种平台上的性能,然后根据领导设定的目标,想法设法完成,当然这些性能的极限是存在的,但我们一定要摸到这个瓶颈,在当前这个性能极限的限定的情况下,做到最优,而且经过研究,我们程序员也是完全可以做到最优解。而且如果要使用一些经典的算法,并不是放之四海而皆准的,必须要深刻理解它们的本质,再结合当前的情况来进行一些适当的改进,我想这也是技术员的工作职责所在,这个和发论文的科研人员往往是不一样的,他们一般是提出新的概念理念等,涉及的实际情况较少,论文的应用场景有很大限制,所以很多这些只能作为一种参考,并不能完全照搬。这当然也是技术和科研人员的价值区别了。

posted @ 2017-02-21 15:05  LHZ593  阅读(226)  评论(0编辑  收藏  举报