关闭

改进粒子系统-2D Particle

标签: 工具游戏
7475人阅读 评论(0) 收藏 举报
分类:

改进粒子系统

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

 

如果重新实现一套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粒子随着动.

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:140958次
    • 积分:1705
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:2篇
    • 译文:1篇
    • 评论:63条
    最新评论