最近做了一个小程序,顺便用在了国科大“智能人机交互”课程(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)相关推荐

  1. 目标检测中背景建模方法

    FROM: http://www.cnblogs.com/ronny/archive/2012/04/12/2444053.html 最近一直在做前景检测方面的研究,刚开始主要是做一些工程性的应用,为 ...

  2. 常见的目标检测中的背景建模方法总结

    最近一直在做前景检测方面的研究,刚开始主要是做一些工程性的应用,为了解决工程方面的问题,下了不少功夫,也看了不少最近国内外的文章.一直想做个总结,拖着拖着,终究却写成这篇极不成功的总结.(文章下载:h ...

  3. 常见的目标检测中的背景建模方法

    Author: JW. ZHOU 2014/6/13 最近一直在做前景检测方面的研究,刚开始主要是做一些工程性的应用,为了解决工程方面的问题,下了不少功夫,也看了不少最近国内外的文章.一直想做个总结, ...

  4. 环境土壤物理模型HYDRUS建模方法与多案例应用

    HYDRUS是由著名土壤学家Rien van Genuchten和Jirka Simunek等人基于Windows系统界面开发的环境土壤物理模拟软件,是模拟一维和多维变饱和多孔介质的水流.溶质运移.根 ...

  5. 环境土壤物理模型HYDRUS建模方法

    查看原文>>>系统学习环境土壤物理模型HYDRUS建模方法与多案例应用 目录 一.HYDRUS模型概述 二.土壤和地下水流问题基础知识 三. 溶质运移问题模拟 四.热量传输问题模拟 ...

  6. 地理建模方法概述02

    文章目录 第4节 地理建模方法概述 地理建模中常用的数学方法 一.数据分析法 (一)探索性数据分析 (二)数据分析的地理建模实例 二.机理分析法 (一)结构分析法 (二)功能分析法 (三)过程分析法 ...

  7. 山体计算机科学与技术,三维山体建模方法初探

    论文导读:随着信息技术的逐步发展和社会要求的逐步提高,虚拟现实的研究领域开始转向山体.水域等不规则形态的实体.本文以山体为例就不规则形体的可视化过程进行研究,探讨一种不需要实体数据,计算机可视化技术与 ...

  8. 目标检测中背景建模方法总结

    转自:http://www.cnblogs.com/ronny/archive/2012/04/12/2444053.html 背景建模或前景检测的算法主要有: 1. Single Gaussian ...

  9. 目标检测中背景建模方法 [转]

    最近一直在做前景检测方面的研究,刚开始主要是做一些工程性的应用,为了解决工程方面的问题,下了不少功夫,也看了不少最近国内外的文章.一直想做个总结,拖着拖着,终究却写成这篇极不成功的总结.      背 ...

最新文章

  1. 基于VLC的rtsp服务器linux平台搭建
  2. 还原时代原声,AI修复老北京再次火爆全网
  3. LINUX中断学习笔记【转】
  4. ASP.Net定时任务执行
  5. wireshark C插件开发
  6. 64. Minimum Path Sum
  7. 撩妹学会这一招,就没有人能拒绝你!
  8. grep 命令的 12 个实例
  9. bert 中文 代码 谷歌_ELECTRA中文预训练模型开源,110个参数,性能媲美BERT
  10. 如何优化网页转化率?(下篇)
  11. centos 搭建Jenkins
  12. MFC中,多个Button响应同一个事件
  13. JAVA后端常用框架SSM,redis,dubbo等
  14. golang学习和使用经验总结
  15. 江苏机器人竞赛南航_挑战不止 热血不息!1000余名青少年决战江苏省机器人普及大赛!...
  16. 设计模式学习笔记(六:责任链模式)
  17. Image的Stride
  18. 荐书丨《哥德尔、艾舍尔、巴赫书:集异璧之大成》:机器人与音乐的次元壁破了
  19. 同济大学计算机学硕无人录取,2019年双非上岸同济大学计算机考研初复试经验分享,超详细!...
  20. 邮箱服务器退回,126邮箱群发邮件被对方服务器退回

热门文章

  1. 2021年4月2日 星期五 农历二月 阴
  2. 证明 可逆矩阵A的各列线性无关
  3. jadx反编译—下载和使用(傻瓜教程,非常详细)
  4. 海马模拟器怎么连接android studio
  5. Camera 之水波纹和banding现象
  6. loop与for loop分别实现乘法口诀表
  7. ninja ripper新版教程
  8. android No address associated with hostname错误
  9. Doris报错there is no scanNode Backend
  10. Mozilla 宣布 Firefox OS 应用原生支持 Android