公司的APP想搞个很鬼畜的3D魔方菜单:
不用像真的模仿那样可以扭动,而是27个立方体构成一个大立方体,作为一个整体,可以左右上下翻转就行。
然后我参考吴亚峰编写的《OpenGL ES 3.x游戏开发 上卷》的P132页开始的透视投影(其实也是以前我用GLSurfaceView加速Canvas的内容移动缩放时使用的模式)章节,并且通过变换矩阵来使观察六角星的角度不停变换,具体相关的技术介绍可以看书本的描述。
我在这个章节的源码的基础上,自己魔改了5.3章节Cube类代替它的六角星,一口气生成了27个,分3层的9宫格立方体,再对接作者本身的触摸和变换矩阵的代码,即可实现多角度旋转大立方体效果了。
一些小细节代码:
1、触控之后传到Cube里面实现观察方向变化的矩阵变换:
2、
Cube的组成是由6个面,每个面4个三角形组成,三角形的每个坐标由x,y,z 3个float比例值构成。
实际效果:
代码: