Unity3D自带功能:树物体(Tree)

通过菜单GameObject > 3D Object > Tree可以为当前场景创建一个Tree (树),同时还会把相应的Tree asset资源存放在项目文件夹中。

unity_tree_01.png
Tree是标准的Fractal(分形)结构,按“第一层主干上长出数根枝干,然后枝干上又各自长出数根细枝,……最后细枝上长出多片树叶”这样一层层搭建而来。Maya中的笔刷树也是用的这种构成方法,但Unity3D相对来说更简化了一些。


TreeStructureDiagram.png树编辑器及节点
Unity3D提供一个简单的树编辑器,让我们可以从主干开始创建一颗完整的树。这个树编辑器很像Xfrog(Maya中集成了一个简化版的Xfrog插件)。
一颗比较完整的树的结构至少要如下图所示,有多个层级,最下方是1个树节点,然后接一层枝节点当树干,然后再接1~2层枝节点当树枝,最后接一层叶节点来生成树叶。

编辑器中间的结构图示代表了不同层级的节点,Unity3D的Tree只有3个不同类型的节点:树节点(Tree)、枝节点(Branch)、叶节点(Leaf)。每个节点上的数字代表该节点中总共有多少根“树枝”或者多少片“树叶”。

选择一个枝节点,我们可以通过右下角的图标为它创建一个下级枝节点或者叶节点,或者复制/删除任意枝节点或叶节点,叶节点之下不能创建别的节点。
树节点只能有一个,不可删除。
树节点(Tree)
树节点是最底部的节点,用来控制整棵树的参数设置

unity_tree_02.png
*
Distribution

 *

Tree Seed:这是一个“种子数”,所谓“种子数”是计算机中控制“假随机数”的一个关键参数,大家只需要知道我们如果做好了一棵树以后想得到另一棵类似但不要完全一样的树,就可以直接复制这棵树,什么调整都不用做,只修改一下新树的“种子数”就好了。做好的树样子不太理想,改改“种子数”也许就能获得一个好看些的结果
*
Area Spread:区域散布距离,值越大,刷出来的树离笔刷路径距离越远
*
Ground Offset:这棵树离地面的高度
*
Geometry

 *

LOD Quality:设置LOD(随距离变化而改变模型精细度),因为Tree物体的mesh都是由程序根据参数来自动生成的,所以天生就有LOD属性
*
Ambient Occlusion:环境自遮罩阴影设置
*
AO Density:AO的程度
*
Material

 *

Translucency Color:透明区域颜色
*
Trans. View Dep.:透明区域渲染深度
*
Alpha Cutoff:贴图上半透明区域的切除程度,leaf通常都用透明贴图来呈现,但Tree物体会将透明通道做Cutoff处理,也就是不呈现半透明的效果
*
Shadow Strength:阴影强度
*
Shadow Offset:阴影偏移
*
Shadow Caster Res.:阴影分辨率

枝节点(Branch)
枝节点是创建枝干的节点,枝干是一根可以扭曲的长圆锥体,通常会贴上树皮的贴图,用来作为树干或者主要分叉树枝。

unity_tree_03.png
*
Distribution

 *

Group Seed:这个“种子数”是控制这一“群”枝条如何随机分布的
*
Frequency:在一根上级枝条上会出现多少根本级枝条,对于主树干来说这个值设置为1,其他的枝干这个值通常大于1
*
Distribution:这些枝条如何分布
*
Growth Scale:通过一根曲线控制这些枝条从长出点到尖端的截面粗细,通常是会设置成越靠近尖端越细
*
Growth Angle:通过一根曲线控制这些枝条从长出点到尖端的弯曲程度,大部分树越靠近尖端会越指向天空
*
Geometry

 *

LOD Multiplier:LOD的设置,次级枝条的LOD会读取上级枝条的LOD然后用这个倍乘数来调整
*
Geometry Mode:几何体模式,可以是branch(枝条)模式,那就是一个长圆锥;也可以是一个fronds(蕨类复叶结构),那就是一个扁平的长条双面片;还可以是branch+fronds,那就是两者都有
*
Branch Material:指定枝条的材质球
*
Break Material:指定枝条断口(顶端)的材质球
*
Shape

 *

Length:枝条长度,会随机在指定范围内取值
*
Relative Length:是否使用相对长度
*
Radius:枝条的最大直径
*
Cap Smoothing:断口处的光滑度
*
Crinkliness:枝条的扭曲度,0代表笔直的枝条,1代表弯弯扭扭的枝条,可以用曲线来控制从根部到顶端使用不同的Crinkliness值
*
Seek Sun:枝条尖端朝向太阳的程度,如果做向日葵的话当然就设成1咯
*
Noise:给枝条根部到顶端的粗细变化添加一个噪波随机紊乱,值越大越紊乱
*
Noise Scale U:噪波贴图的大小U值
*
Noise Scale V:噪波贴图的大小V值
*
Flare:只有主干(紧跟树节点的那个枝节点)才能设置Flare,Flare可以让主干底部变得很粗,且最底部截面根据Noise值而变得形状不规则,用来模拟树根有一部分突出在地面以上的效果

     *

Flare Radius:主干根部变粗程度
*
Flare Height:主干根部变粗部分高度
*
Flare Noise:主干根部截面
*
Weld:非主干的枝节点上出现的是下面3个属性,用来模拟长出数值的接口处的过渡效果

     *

Weld Length:衔接区域长度
*
Spread Top:向上方扩展程度
*
Spread Bottom:想下方扩展程度
*
Break Chance:枝条断裂的可能性,值越大,越多该层级的枝条出现断裂,断裂的枝条会有断口,而且也不会有次级枝条或叶片产生
*
Break Location:断裂的位置,会随机在指定范围内取值
*
Wind

Main Wind:风力大小
Main Turbulence:(非主干的枝节点上才会出现)主要紊乱场力度大小
Flare相关参数获得的根部效果


Weld相关参数获得的过渡效果

Break属性获得的断口效果
我们可以手动对branch进行调整:
*
Move Branch:branch的中轴控制曲线及其节点会显示在Scene View里,选择一个节点然后移动可以改变整个枝条的形状
*
Rotate Branch:branch的中轴控制曲线及其节点会显示在Scene View里,选择一个节点然后旋转,可以旋转自这个节点开始以后的枝条部分
*
Free Hand:可以手动在Scene View中画出枝条形状

注意:手动调整之后,很多参数就不可用了,编辑器中的节点图示上也会多出一个笔形符号做为提示。

叶节点
叶节点是创建叶片的节点,叶片是一个Quad面片,通常会贴上树叶贴图,但一般不会用奢侈到用单个面片做1片树叶,常见的用法是单个面片上贴上一枝带若干叶片的细小树枝的贴图,来模拟枝繁叶茂的样子。

unity_tree_04.png
*
Distribution

 *

Group Seed:这个“种子数”是控制这一“群”叶片如何随机分布的
*
Frequency:在一根上级枝条上会出现多少叶片
*
Distribution:这些叶片如何分布
*
Growth Scale:通过一根曲线控制这叶片的大小
*
Growth Angle:通过一根曲线控制这些叶片的弯曲
*
Geometry

 *

Geometry Mode:几何体模式

     *

Plane:单个Quad面片
*
Cross:十字交错的2个Quad面片
*
TriCross:十字交错的3个Quad面片
*
Billboard:单个Quad面片,但永远面朝摄像机
*
Mesh:指定一个多边形mesh作为叶片形状
*
Material:指定叶片的材质球
*
Shape

 *

Size:叶片大小
*
Perpendicular Align:叶片垂直方向对齐程度
*
Horizontal Align:叶片水平方向对齐程度
*
Wind

 *

Main Wind:风力大小
*
Main Turbulence:主要紊乱场力度大小
*
Edge Turbulence:边缘紊乱场力度大小

我们可以手动对leaf进行调整,leaf没有中轴线,所以只能移动或者旋转:
*
Move Leaf:沿着上级brunch移动leaf
*
Rotate Leaf:绕leaf和上级branch的接触点旋转leaf

注意:手动调整之后,很多参数就不可用了,编辑器中的节点图示上也会多出一个笔形符号做为提示。关于风场和动力学解算:
要产生树被风吹动的效果,需要创建一个Wind Zone(风区),我们可以点击Create Wind Zone按钮创建,或者从菜单栏创建。


树物体的“主干”、“枝条”、“叶片”三种不同的结构部分面对风场的动力学表现是不同的:
*
“主干”很粗,所以只受到风场风强的影响,会被风吹弯;
*
“枝条”比较细,除了跟着主干运动并被风强吹歪以外,还会受到一个紊乱场的影响,具有一定的震颤抖动效果;
*
“叶片”最轻,尤其在边缘部分的叶片,震颤抖动效果愈发明显,所以多了一个Edge Turbulence的参数。

unity2——tree树(自带)相关推荐

  1. 哈夫曼树 和 树的带权路径长度

    树的带权路径长度(Weighted Path Length of Tree):定义为树中所有叶结点的带权路径长度之和. 结点的带权路径长度:结点到树根之间的路径长度与该结点上权的乘积. 哈夫曼树是一种 ...

  2. 算法学习笔记——数据结构:哈夫曼树、带权路径长度WPL、哈夫曼编码

    引入 合并果子问题如下: 有n堆果子,每次可以合并任意两堆果子,耗费体力值为[两堆果子数之和],最终在n-1次合并后,得到一堆果子. 给出合并的方案,使得耗费的体力值最小 例如有3堆果子,质量依次为1 ...

  3. php easyui tree 结构,EasyUI Tree树组件无限循环的解决方法

    在学习jquery easyui的tree组件的时候,在url为链接地址的时,发现如果最后一个节点的state为closed时,未节点显示为文件夹,单击会重新加载动态(Url:链接地址)形成无限循环. ...

  4. tree树的展示,check树的展示,json数据转zree树格式数据

    tree树展示: <!DOCTYPE html> <HTML><HEAD><TITLE> ZTREE DEMO </TITLE><me ...

  5. C++求tree树的高度(附完整源码)

    C++求tree树的高度 C++求tree树的高度的完整源码(定义,实现,main函数测试) C++求tree树的高度的完整源码(定义,实现,main函数测试) #include <iostre ...

  6. C++实现tree树(附完整源码)

    C++实现tree树 node结构体定义 实现tree树算法的完整源码(定义,实现,main函数测试) node结构体定义 struct node {int val;node *left;node * ...

  7. 【BZOJ】3052: [wc2013]糖果公园 树分块+带修改莫队算法

    [题目]#58. [WC2013]糖果公园 [题意]给定n个点的树,m种糖果,每个点有糖果ci.给定n个数wi和m个数vi,第i颗糖果第j次品尝的价值是v(i)*w(j).q次询问一条链上每个点价值的 ...

  8. Apple Tree树状数组、前向星、DFS序(C语言)

    Apple Tree树状数组.前向星.DFS序(C语言) 题目 输入值 第一行包含一个整数Ñ(Ñ ≤100,000),这是树中的叉的数量. 接下来的N -1行分别包含两个整数u和v,这意味着fork ...

  9. Stream流实现Tree树状结构无限递归

    Stream流实现Tree树状结构无限递归 场景:在使用mybatis plus操作多层数据格式,多层遍利操作影响数据查询效率 代码 例子:需要返回给前端多级菜单 省(直辖市)/市/区(县) /*** ...

最新文章

  1. Linux grep,egrep及相应的正则表达式用法详解
  2. git之reset图解
  3. 求助:Event ID:10021日志错误的解决方法
  4. 决策树算法(四)——选取最佳特征划分数据集
  5. [Machine Learning]--无监督学习
  6. Elasticsearch大文件搜索
  7. 电脑投屏软件哪个好_电脑绘画软件哪个好?
  8. CVPR 2021 |针对强时序依赖,即插即用、混合注意力机制的 ACTION 模块
  9. 诗与远方:无题(七十五)
  10. WARN: Establishing SSL connection without server's identity verification is not recommended
  11. MATLAB中的概率函数
  12. Python300篇电子书
  13. python标准库6张思维导图学明白
  14. 一些Camera相关概念整理
  15. CA认证完整实现步骤
  16. 深入理解计算机系统bomb实验
  17. Unreal Engine 4 系列教程 Part 8:粒子系统教程
  18. 启锐 588 打印机每次打印都流出一部分,没有重新切换纸张
  19. OPPO 2019校园招聘C/C++开发工程师(手机方向) 笔试编程题-2018.09.10
  20. 數字圖像中邊緣檢測算法綜合研究

热门文章

  1. 炒菜机器人放食材的顺序_科技改变行业:改变餐饮行业的十大智能发明
  2. 重庆师范大学计算机与信息科学学院研究生院,2020年重庆师范大学计算机与信息科学学院现代教育技术硕士非全日制研究生招生简章...
  3. Redis数据的持久化操作(配置)
  4. python gmtime_在Python中操作日期和时间之gmtime()方法的使用
  5. C语言qsort()函数
  6. win10自带截图(Win+Shift+S快捷键)
  7. 关于"感恩的心"的由来
  8. android glsurface 闪屏,浅谈SurfaceView与GLSurfaceView
  9. UVa 136 - Ugly Numbers
  10. 长春高中数学一对一家教辅导班