准备
IDE:VisualStudio 2017
Language:VB.NET / TypeScript
图形API:Win2D
Github:[ UWP ] [ TypeScript ]
本文将向你介绍一种粒子系统(Particle System)模拟植物的简单方法。
第一节 移动
粒子按照某种规则移动,且始终保留移动轨迹。
定向移动
粒子具有一个初始速度
粒子渐变
粒子的渲染半径逐渐减小,渲染颜色逐渐变浅
方向偏移
粒子始终朝着某个方向偏移
随机扰动
粒子在任意方向上随机受力
图1-1 定向移动
图1-2 渐变
图1-3 转向
图1-4 扰动
第二节 分裂
已经存在的粒子随机分裂为若干个新的粒子。
方向偏移
分裂时新粒子速度方向偏转,移动轨迹将产生分叉
粒子减速
分裂时新粒子移动速度减小,移动轨迹会越来越短
图2-1 分叉
图2-2 减速
第三节 迭代
现在,你可以自由调节参数然后迭代啦!
迭代深度
尽可能大的迭代深度
颜色渐变
生长和分裂时渐变颜色
粒子贴图
粒子颜色对应贴图指定位置的像素点
图3-1 茂密
图3-2 珊瑚
图3-3 地卜师
附录
Github:[ UWP ] [ JavaScript ]
编程模拟自然(一):如何画一颗静态树
编程模拟自然(三):更好的静态树算法
编程模拟自然(六):如何画一颗动态树