惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
Security @ Cisco Blogs
小众软件
小众软件
D
Docker
博客园_首页
A
About on SuperTechFans
P
Privacy International News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
A
Arctic Wolf
Spread Privacy
Spread Privacy
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
Latest news
Latest news
WordPress大学
WordPress大学
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
The Exploit Database - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
大猫的无限游戏
大猫的无限游戏
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
K
Kaspersky official blog
V2EX - 技术
V2EX - 技术
SecWiki News
SecWiki News
U
Unit 42
GbyAI
GbyAI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
LINUX DO - 热门话题
S
Security Affairs
Y
Y Combinator Blog
aimingoo的专栏
aimingoo的专栏
Blog — PlanetScale
Blog — PlanetScale
MongoDB | Blog
MongoDB | Blog
博客园 - 【当耐特】
The GitHub Blog
The GitHub Blog
T
Tenable Blog
W
WeLiveSecurity
Cloudbric
Cloudbric
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
Google Developers Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
N
News and Events Feed by Topic
D
DataBreaches.Net
P
Proofpoint News Feed
B
Blog RSS Feed
B
Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org

博客园 - ExperDot

用 AI Coding 工具生成 60 万字奇幻世界设定的实践记录 追求极致体验:AI 聊天应用的 20 个功能要点 探索性 AI 聊天应用:交叉分析表 3种方法让大语言模型提取任意文档中的知识点 AI 聊天应用的 10 条高级需求 Web安全入门(一):Web安全是什么? ASP.NET Core文件压缩最佳实践 什么是软件开发? Web应用实例:音频可视化 粒子系统(二):绘制精美几何图案 图像识别:微信跳一跳机器人 Unity3D对弈游戏:狼吃羊游戏 ExperDot的博客目录导航 编程模拟自然(九):元胞自动机 自动绘图AI:程序如何画出动漫美少女 UWP简单示例(三):快速开发2D游戏引擎 UWP简单示例(二):快速开始你的3D编程 UWP简单示例(一):快速合成音乐MV AR创意分享:儿童涂鸦遇上程序绘图
粒子系统(一):从零开始画一颗树
ExperDot · 2017-05-19 · via 博客园 - ExperDot

准备

  IDE:VisualStudio

  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 ]

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

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

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