通過菜單GameObject
> 3D Object
> Tree
可以為當(dāng)前場景創(chuàng)建一個Tree (樹),同時還會把相應(yīng)的Tree asset資源存放在項目文件夾中弊知。
Tree是標(biāo)準(zhǔn)的Fractal(分形)結(jié)構(gòu)慧瘤,按“第一層主干上長出數(shù)根枝干俺泣,然后枝干上又各自長出數(shù)根細枝,……最后細枝上長出多片樹葉”這樣一層層搭建而來蜓氨。Maya中的筆刷樹也是用的這種構(gòu)成方法圆恤,但Unity3D相對來說更簡化了一些突倍。
樹編輯器及節(jié)點
Unity3D提供一個簡單的樹編輯器,讓我們可以從主干開始創(chuàng)建一顆完整的樹哑了。這個樹編輯器很像Xfrog(Maya中集成了一個簡化版的Xfrog插件)赘方。
一顆比較完整的樹的結(jié)構(gòu)至少要如下圖所示,有多個層級弱左,最下方是1個樹節(jié)點窄陡,然后接一層枝節(jié)點當(dāng)樹干,然后再接1~2層枝節(jié)點當(dāng)樹枝拆火,最后接一層葉節(jié)點來生成樹葉跳夭。
編輯器中間的結(jié)構(gòu)圖示代表了不同層級的節(jié)點,Unity3D的Tree只有3個不同類型的節(jié)點:樹節(jié)點(Tree)们镜、枝節(jié)點(Branch)币叹、葉節(jié)點(Leaf)。每個節(jié)點上的數(shù)字代表該節(jié)點中總共有多少根“樹枝”或者多少片“樹葉”模狭。
選擇一個枝節(jié)點颈抚,我們可以通過右下角的圖標(biāo)為它創(chuàng)建一個下級枝節(jié)點或者葉節(jié)點,或者復(fù)制/刪除任意枝節(jié)點或葉節(jié)點嚼鹉,葉節(jié)點之下不能創(chuàng)建別的節(jié)點贩汉。
樹節(jié)點只能有一個,不可刪除锚赤。
樹節(jié)點(Tree)
樹節(jié)點是最底部的節(jié)點匹舞,用來控制整棵樹的參數(shù)設(shè)置
- Distribution
-
Tree Seed
:這是一個“種子數(shù)”,所謂“種子數(shù)”是計算機中控制“假隨機數(shù)”的一個關(guān)鍵參數(shù)线脚,大家只需要知道我們?nèi)绻龊昧艘豢脴湟院笙氲玫搅硪豢妙愃频灰耆粯拥臉浯突涂梢灾苯訌?fù)制這棵樹,什么調(diào)整都不用做浑侥,只修改一下新樹的“種子數(shù)”就好了姊舵。做好的樹樣子不太理想,改改“種子數(shù)”也許就能獲得一個好看些的結(jié)果 -
Area Spread
:區(qū)域散布距離寓落,值越大括丁,刷出來的樹離筆刷路徑距離越遠 -
Ground Offset
:這棵樹離地面的高度
-
- Geometry
-
LOD Quality
:設(shè)置LOD(隨距離變化而改變模型精細度),因為Tree物體的mesh都是由程序根據(jù)參數(shù)來自動生成的零如,所以天生就有LOD屬性 -
Ambient Occlusion
:環(huán)境自遮罩陰影設(shè)置 -
AO Density
:AO的程度
-
- Material
-
Translucency Color
:透明區(qū)域顏色 -
Trans. View Dep.
:透明區(qū)域渲染深度 -
Alpha Cutoff
:貼圖上半透明區(qū)域的切除程度躏将,leaf通常都用透明貼圖來呈現(xiàn),但Tree物體會將透明通道做Cutoff處理考蕾,也就是不呈現(xiàn)半透明的效果 -
Shadow Strength
:陰影強度 -
Shadow Offset
:陰影偏移 -
Shadow Caster Res.
:陰影分辨率
-
枝節(jié)點(Branch)
枝節(jié)點是創(chuàng)建枝干的節(jié)點祸憋,枝干是一根可以扭曲的長圓錐體,通常會貼上樹皮的貼圖肖卧,用來作為樹干或者主要分叉樹枝蚯窥。
- Distribution
-
Group Seed
:這個“種子數(shù)”是控制這一“群”枝條如何隨機分布的 -
Frequency
:在一根上級枝條上會出現(xiàn)多少根本級枝條,對于主樹干來說這個值設(shè)置為1塞帐,其他的枝干這個值通常大于1 -
Distribution
:這些枝條如何分布 -
Growth Scale
:通過一根曲線控制這些枝條從長出點到尖端的截面粗細拦赠,通常是會設(shè)置成越靠近尖端越細 -
Growth Angle
:通過一根曲線控制這些枝條從長出點到尖端的彎曲程度,大部分樹越靠近尖端會越指向天空
-
- Geometry
-
LOD Multiplier
:LOD的設(shè)置葵姥,次級枝條的LOD會讀取上級枝條的LOD然后用這個倍乘數(shù)來調(diào)整 -
Geometry Mode
:幾何體模式荷鼠,可以是branch(枝條)模式,那就是一個長圓錐榔幸;也可以是一個fronds(蕨類復(fù)葉結(jié)構(gòu))允乐,那就是一個扁平的長條雙面片;還可以是branch+fronds削咆,那就是兩者都有 -
Branch Material
:指定枝條的材質(zhì)球 -
Break Material
:指定枝條斷口(頂端)的材質(zhì)球
-
- Shape
-
Length
:枝條長度牍疏,會隨機在指定范圍內(nèi)取值 -
Relative Length
:是否使用相對長度 -
Radius
:枝條的最大直徑 -
Cap Smoothing
:斷口處的光滑度 -
Crinkliness
:枝條的扭曲度,0代表筆直的枝條拨齐,1代表彎彎扭扭的枝條鳞陨,可以用曲線來控制從根部到頂端使用不同的Crinkliness
值 -
Seek Sun
:枝條尖端朝向太陽的程度,如果做向日葵的話當(dāng)然就設(shè)成1咯 -
Noise
:給枝條根部到頂端的粗細變化添加一個噪波隨機紊亂瞻惋,值越大越紊亂 -
Noise Scale U
:噪波貼圖的大小U值 -
Noise Scale V
:噪波貼圖的大小V值 - Flare:只有主干(緊跟樹節(jié)點的那個枝節(jié)點)才能設(shè)置Flare厦滤,F(xiàn)lare可以讓主干底部變得很粗,且最底部截面根據(jù)Noise值而變得形狀不規(guī)則熟史,用來模擬樹根有一部分突出在地面以上的效果
-
Flare Radius
:主干根部變粗程度 -
Flare Height
:主干根部變粗部分高度 -
Flare Noise
:主干根部截面
-
- Weld:非主干的枝節(jié)點上出現(xiàn)的是下面3個屬性馁害,用來模擬長出數(shù)值的接口處的過渡效果
-
Weld Length
:銜接區(qū)域長度 -
Spread Top
:向上方擴展程度 -
Spread Bottom
:想下方擴展程度
-
-
Break Chance
:枝條斷裂的可能性,值越大蹂匹,越多該層級的枝條出現(xiàn)斷裂碘菜,斷裂的枝條會有斷口,而且也不會有次級枝條或葉片產(chǎn)生 -
Break Location
:斷裂的位置限寞,會隨機在指定范圍內(nèi)取值
-
- Wind
-
Main Wind
:風(fēng)力大小 -
Main Turbulence
:(非主干的枝節(jié)點上才會出現(xiàn))主要紊亂場力度大小
-
我們可以手動對branch進行調(diào)整:
- Move Branch:branch的中軸控制曲線及其節(jié)點會顯示在Scene View里忍啸,選擇一個節(jié)點然后移動可以改變整個枝條的形狀
- Rotate Branch:branch的中軸控制曲線及其節(jié)點會顯示在Scene View里,選擇一個節(jié)點然后旋轉(zhuǎn)履植,可以旋轉(zhuǎn)自這個節(jié)點開始以后的枝條部分
- Free Hand:可以手動在Scene View中畫出枝條形狀
注意:手動調(diào)整之后计雌,很多參數(shù)就不可用了,編輯器中的節(jié)點圖示上也會多出一個筆形符號做為提示玫霎。
葉節(jié)點
葉節(jié)點是創(chuàng)建葉片的節(jié)點凿滤,葉片是一個Quad面片妈橄,通常會貼上樹葉貼圖,但一般不會用奢侈到用單個面片做1片樹葉翁脆,常見的用法是單個面片上貼上一枝帶若干葉片的細小樹枝的貼圖眷蚓,來模擬枝繁葉茂的樣子。
- Distribution
-
Group Seed
:這個“種子數(shù)”是控制這一“群”葉片如何隨機分布的 -
Frequency
:在一根上級枝條上會出現(xiàn)多少葉片 -
Distribution
:這些葉片如何分布 -
Growth Scale
:通過一根曲線控制這葉片的大小 -
Growth Angle
:通過一根曲線控制這些葉片的彎曲
-
- Geometry
-
Geometry Mode
:幾何體模式-
Plane
:單個Quad面片 -
Cross
:十字交錯的2個Quad面片 -
TriCross
:十字交錯的3個Quad面片 -
Billboard
:單個Quad面片反番,但永遠面朝攝像機 -
Mesh
:指定一個多邊形mesh作為葉片形狀
-
-
Material
:指定葉片的材質(zhì)球
-
- Shape
-
Size
:葉片大小 -
Perpendicular Align
:葉片垂直方向?qū)R程度 -
Horizontal Align
:葉片水平方向?qū)R程度
-
- Wind
-
Main Wind
:風(fēng)力大小 -
Main Turbulence
:主要紊亂場力度大小 -
Edge Turbulence
:邊緣紊亂場力度大小
-
我們可以手動對leaf進行調(diào)整沙热,leaf沒有中軸線,所以只能移動或者旋轉(zhuǎn):
- Move Leaf:沿著上級brunch移動leaf
- Rotate Leaf:繞leaf和上級branch的接觸點旋轉(zhuǎn)leaf
注意:手動調(diào)整之后罢缸,很多參數(shù)就不可用了篙贸,編輯器中的節(jié)點圖示上也會多出一個筆形符號做為提示。
關(guān)于風(fēng)場和動力學(xué)解算:
要產(chǎn)生樹被風(fēng)吹動的效果枫疆,需要創(chuàng)建一個Wind Zone(風(fēng)區(qū))爵川,我們可以點擊Create Wind Zone
按鈕創(chuàng)建,或者從菜單欄創(chuàng)建息楔。
樹物體的“主干”雁芙、“枝條”、“葉片”三種不同的結(jié)構(gòu)部分面對風(fēng)場的動力學(xué)表現(xiàn)是不同的:
- “主干”很粗钞螟,所以只受到風(fēng)場風(fēng)強的影響兔甘,會被風(fēng)吹彎;
- “枝條”比較細鳞滨,除了跟著主干運動并被風(fēng)強吹歪以外洞焙,還會受到一個紊亂場的影響,具有一定的震顫抖動效果拯啦;
- “葉片”最輕澡匪,尤其在邊緣部分的葉片,震顫抖動效果愈發(fā)明顯褒链,所以多了一個
Edge Turbulence
的參數(shù)唁情。
大家可以下載一些Asset Store里提供的免費的Tree資源,看看別人是怎么設(shè)置的: