[Graphics]自组织植物建模方法(ContinousLassoBrush)
最近做了一个小程序,顺便用在了国科大“智能人机交互”课程(2018秋学期)的作业里。主要就是用self-organizing tree modeling和sketch的手段合起来做的程序。
用来实现自组织的植物建模。所谓的自组织,主要是指芽Bud对空间Space、资源Resource的争夺,前者实现了Branch在空间中进行自发生长,后者则用以模拟植物的顶端优势。在正文开始之前,还是惯例介绍一下这次做的结果~
一、相关资源和信息:
开发环境:C++/OpenGL
B站视频:https://www.bilibili.com/video/av42213837/
演示程序:https://pan.baidu.com/s/1swjQqXv
二、程序的部分效果截图:
本程序基于自组织的植物建模方法,开发了三种创建模式,分别是:套索、自生长、刷子。其效果分别如下所示:
1. 使用套索Lasso
2. 自组织生长的植物
3. 使用刷子创建植物模型
三、算法流程
接下来的部分将对本程序的核心思路进行描述。假设读者已经具备一定的图形学知识,这里就简单介绍一下self-organizing modeling的部分,其他sketch部分就不介绍了。
1. 基本数据结构的定义:
InterNode:树木的一段枝干,由两个坐标点描述,位于两点之间的线段即一小段枝干,是植物模型的最小分割单元。
芽Bud:每个Bud可生长出一个Metamer,每个Metamer由若干InterNode组成。Bud分为顶芽Terminal Bud和侧芽Lateral Bud。
2. Space Colonization空间殖民方法指导的自组织生长
为了表示可供植物生长的空间,我们用一个点集表示。这些点均匀的分布在三维空间中,我们可称之为Marker Points。
每次迭代过程中,需分析现存的每个芽Bud。对于每个Bud,使用如下图所示的探测锥来对空间进行探索,其中半径为r的球形空间是bud的独有空间;半径为d+r的锥形空间为探测区域,落于其中的Marker Points描述了Bud的生长方向。在每轮迭代过程中,首先将每个Bud的独有球形空间内的Marker Points删除,接着计算Bud到位于锥形空间内的所有Marker Points的平均方向v(描述新生的Metamer的生长方向),生长结束后,删除位于锥形空间内的Marker Points。
3. 顶端优势
顶端优势在整个建模过程中,并非是必须的步骤,但是使用顶端优势能够丰富植物模型的种类。本程序采用的顶端优势过程分为两个过程:自顶向下的积累资源、自下向上的分配资源。
(1)自顶向下的积累资源:
假设每个芽Bud接收的光照均为1.0,然后我们从上往下逐层积累光照资源,如上图左所示,每个InterNode中积累的资源是其子InterNode资源的总和,不断向下计算直到根节点位置。此时,假设根节点积累的光量资源为Q。
(2)自下向上的分配资源:
这里对根节点的资源翻倍,即根节点的待分配资源v为根节点积累的资源Q的2倍:v = 2Q。然后从下向上分配资源,因此为了描述顶端优势,我们引入参数λ(λ介于0~1之间):其中λv表示分配到顶芽的资源,(1-λ)v表示分配到侧芽的资源。因此若λ<0.5,则侧芽生长旺盛,顶芽受到抑制;若λ>0.5,则顶芽生长旺盛,侧芽受到抑制。我们可以让每个InterNode获得的资源表示该枝段的长度,以表达其顶端优势控制的效果。
使用顶端优势的几种不同结果如下图所示:
[Graphics]自组织植物建模方法(ContinousLassoBrush)相关推荐
- 目标检测中背景建模方法
FROM: http://www.cnblogs.com/ronny/archive/2012/04/12/2444053.html 最近一直在做前景检测方面的研究,刚开始主要是做一些工程性的应用,为 ...
- 常见的目标检测中的背景建模方法总结
最近一直在做前景检测方面的研究,刚开始主要是做一些工程性的应用,为了解决工程方面的问题,下了不少功夫,也看了不少最近国内外的文章.一直想做个总结,拖着拖着,终究却写成这篇极不成功的总结.(文章下载:h ...
- 常见的目标检测中的背景建模方法
Author: JW. ZHOU 2014/6/13 最近一直在做前景检测方面的研究,刚开始主要是做一些工程性的应用,为了解决工程方面的问题,下了不少功夫,也看了不少最近国内外的文章.一直想做个总结, ...
- 环境土壤物理模型HYDRUS建模方法与多案例应用
HYDRUS是由著名土壤学家Rien van Genuchten和Jirka Simunek等人基于Windows系统界面开发的环境土壤物理模拟软件,是模拟一维和多维变饱和多孔介质的水流.溶质运移.根 ...
- 环境土壤物理模型HYDRUS建模方法
查看原文>>>系统学习环境土壤物理模型HYDRUS建模方法与多案例应用 目录 一.HYDRUS模型概述 二.土壤和地下水流问题基础知识 三. 溶质运移问题模拟 四.热量传输问题模拟 ...
- 地理建模方法概述02
文章目录 第4节 地理建模方法概述 地理建模中常用的数学方法 一.数据分析法 (一)探索性数据分析 (二)数据分析的地理建模实例 二.机理分析法 (一)结构分析法 (二)功能分析法 (三)过程分析法 ...
- 山体计算机科学与技术,三维山体建模方法初探
论文导读:随着信息技术的逐步发展和社会要求的逐步提高,虚拟现实的研究领域开始转向山体.水域等不规则形态的实体.本文以山体为例就不规则形体的可视化过程进行研究,探讨一种不需要实体数据,计算机可视化技术与 ...
- 目标检测中背景建模方法总结
转自:http://www.cnblogs.com/ronny/archive/2012/04/12/2444053.html 背景建模或前景检测的算法主要有: 1. Single Gaussian ...
- 目标检测中背景建模方法 [转]
最近一直在做前景检测方面的研究,刚开始主要是做一些工程性的应用,为了解决工程方面的问题,下了不少功夫,也看了不少最近国内外的文章.一直想做个总结,拖着拖着,终究却写成这篇极不成功的总结. 背 ...
最新文章
- 基于VLC的rtsp服务器linux平台搭建
- 还原时代原声,AI修复老北京再次火爆全网
- LINUX中断学习笔记【转】
- ASP.Net定时任务执行
- wireshark C插件开发
- 64. Minimum Path Sum
- 撩妹学会这一招,就没有人能拒绝你!
- grep 命令的 12 个实例
- bert 中文 代码 谷歌_ELECTRA中文预训练模型开源,110个参数,性能媲美BERT
- 如何优化网页转化率?(下篇)
- centos 搭建Jenkins
- MFC中,多个Button响应同一个事件
- JAVA后端常用框架SSM,redis,dubbo等
- golang学习和使用经验总结
- 江苏机器人竞赛南航_挑战不止 热血不息!1000余名青少年决战江苏省机器人普及大赛!...
- 设计模式学习笔记(六:责任链模式)
- Image的Stride
- 荐书丨《哥德尔、艾舍尔、巴赫书:集异璧之大成》:机器人与音乐的次元壁破了
- 同济大学计算机学硕无人录取,2019年双非上岸同济大学计算机考研初复试经验分享,超详细!...
- 邮箱服务器退回,126邮箱群发邮件被对方服务器退回