使用as3的人员最初接触到的可能就是graphics绘制了,它可以让你绘制点、线、矩形、圆等,这是你所熟知的都是平面的画布。
此前也说过3D最终也是画成一张平面的画,只是通过了矩阵计算到GPU顶点着色 片段着色等阶段,那么现在我们不用stage3d,用纯矩阵 + 坐标点 + graphics绘制来模拟一个3D的正方体,并且可以正常的运动,其中一面还进行了纹理贴图。
这样就回到了你熟知的环境,你只需要了解一下matrix3d即可了
制作步骤:
1、列出立方体的8个顶点(Vector3d 并且按照stage3d屏幕坐标系来定坐标点)
2、准备数据M矩阵、V矩阵、P矩阵
3、准备一个Sprite作为画布,并为了模拟stage3d的屏幕坐标系需要转化下,比如Y轴相反和0~1的范围是1/4屏幕(可以用scaleY=-0.5来转化)
4、渲染:
-- 画布清空
-- 计算MVP
-- 遍历8个顶点,MVP x 每一个点 变为3D屏幕坐标系,并转化为2D设备坐标系(画布上的坐标点),然后画出这些点
-- 连线,既然计算出了8个点在画布上的坐标,连上即可(到这一步你就可以运行看到一个立方体线框了)
-- 纹理:取得图片bitmapData,并遍历每一个点,转为设备坐标(画布坐标,原理同上),然后取得这个点的颜色画上去
5、* 这里没有追加一些如深度测试之类的东西,假设你要追加的话你可以保留设备坐标上的z轴,开启深度测试则是要对比z轴再画
代码不长:(P矩阵需要利用到Adobe提供的PerspectiveMatrix3D类)
工程下载:https://pan.baidu.com/s/1ccaP0E 密码:fmgq
pac