粒子系统:从零开始画一颗树

  IDE:VisualStudio 2017

  Language:VB.NET/C#

  图形API:Win2D

  游戏引擎:ExperDot.EDGameEngine

  本文将向你介绍一种粒子系统(Particle System)模拟植物的简单方法。

第一节 移动

  粒子按照某种规则移动,且始终保留移动轨迹。

  定向移动

  粒子具有一个初始速度

  粒子渐变

  粒子的渲染半径逐渐减小,渲染颜色逐渐变浅

  方向偏移

  粒子始终朝着某个方向偏移

  随机扰动

  粒子在任意方向上随机受力

图1-1 定向移动

图1-2 渐变

图1-3 转向

图1-4 扰动

第二节 分裂

  已经存在的粒子随机分裂为若干个新的粒子。

  方向偏移

  分裂时新粒子速度方向偏转,移动轨迹将产生分叉

  粒子减速

  分裂时新粒子移动速度减小,移动轨迹会越来越短

图2-1 分叉

图2-2 减速

第三节 自由

  现在,你可以随意调整参数啦!

 

图3-1 直线

图3-2 折线

图3-3 曲线

图3-4 稀疏

图3-5 繁盛

图3-6 茂密

附录

  源码开放。下述博客是自然树的另一种实现方式。

  开源链接:EDGameEngine.Visuals.Particles.Tree

  相关博客:编程模拟自然(一):如何画一颗静态树

  相关博客:编程模拟自然(三):更好的静态树算法

  相关博客:编程模拟自然(六):如何画一颗动态树

posted @ 2017-05-19 16:25 ExperDot 阅读(...) 评论(...) 编辑 收藏