关于 OpenGL 中平移矩阵变换与实体对象坐标平移的关系分析结论

关于 OpenGL 中平移矩阵变换与实体对象坐标平移的关系分析结论

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino否则,出自本博客的文章拒绝转载或再转载,谢谢合作。


除题目中所提及的平移矩阵变换和对象坐标平移,还有旋转的中心点设定(弄不好,旋转后,看不到几何体)以及摄像机视角两个未明确问题,仍需进一步研究明确,才不至于被隐形的几何体搞得无所适从。


言归正传,本人近期研究的结果是:

1、平移这种矩阵变换,只是对场景中所有几何体进行了平移,好像和观察视角是一个道理,但确实还不太知道,是否就是摄像机视角;

2、对象坐标平移,是真实的去移动几何体在场景中的位置,这个需要从几何体的顶点坐标着手,进行整体坐标量的加减,对于一个大的或细节较多的几何体来说,计算量稍显庞大,尚不知性能如何,猜测本人目前遇到的问题,可能就是需要通过这一技巧才能解决;最主要的是,几何体的坐标一改变,顶点缓存就要重建,这样就无形增加了与GPU通讯所带来的性能问题,理论上是这样的,也还需要进一步细化分析,修改完善代码进行测试才能知晓。


通过看别人的展示效果,感觉实际操作中,

一是要能从各个角度去看这个场景及场景中的物体,这个就是矩阵变换中平移、旋转、缩放所要做的事情了,只需更新变换参数到GPU中即可,相对附加工作量要小很多;

二是实际场景中,将几何体从一个位置移到另一个位置,这个并不涉及观察视角的问题,而是视角保持不变,而几何体要进行移动,涉及到几何体顶点坐标的修改与GPU中顶点缓存的更新,相对更新量要大一些;尚不知这种作法是否是正确的和常用的,有待进一步搜集资料后,再做研究、调测;


说来,以上两种改变几何体在屏幕中位置的作法,真的是根本不同的两种东西,不过一直以来,我是在拿第一种作法当作第二种问题的解决方式,故而达不到预期效果,从分析来看,应该是符合情理的。


以上仅为一种问题的分析思路,并不一定符合实际情况,仅供参考。

后续针对以上分析研究结论,再行实际修改、调测,希望能如我所愿,达到预期效果,届时再更新本文。



你可能感兴趣的:(平台-iOS,<=即时总结=>,数据呈现-OpenGL,ES)