改进粒子系统-2D Particle

改进粒子系统

今天美术提出新需求:用粒子实现界面上某些特效,如点击按钮溅起的火花等.

 

如果重新实现一套2D粒子系统,不仅要重写相应的编辑工具,而且美术也要花时间熟悉新的概念和工具.由于时间紧,这种做法不合实际.现在唯一的做法是改进原有的3D粒子系统,使其可以渲染2D粒子.

 

大概思路就是去掉z轴影响,将粒子投影到平面上.将3D粒子系统指定的坐标,换算到2D平面上的坐标.伪代码:

If 2d粒子渲染器

       使用平行投影的摄像机计算粒子的位置,法向量等属性.填充VertexBuffer

       设置Model-View-Ortho Proj矩阵

       渲染.

Else

       使用透视投影的摄像机计算粒子的位置,法向量等属性.填充VertexBuffer

       设置Model-View-Perspective Project矩阵

       渲染.

我将Ortho Proj矩阵的width, height都设为1, 这规定了视口的长和宽分别是1. 按照这个规定,美术来设置粒子的大小, 速度等属性(比如说长和宽都为1的粒子和视口一样大). 

粒子的位置可以由粒子相对于窗口的坐标(单位为象素)除以窗口的大小得到.

截图:

在以前的3D粒子编辑器中编辑2D粒子:

在游戏中的效果,显示了一个"?"作为图标,当拖动它时,会有4个2D粒子随着动.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值