3D图形核心基础精炼版-14:透过数学计算和graphics绘制点和线来了解3D绘制原理

这篇博客介绍了如何使用AS3和矩阵计算模拟3D正方体的绘制过程,包括列出立方体的8个顶点、设置MVP矩阵、转换坐标以及纹理贴图。通过纯矩阵运算和Graphics对象,可以在2D画布上呈现3D效果,提供了一个无需Stage3D的实现方法。
摘要由CSDN通过智能技术生成

使用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值