6. 6
为了对每个node进行独立编辑,你需要进入node编辑模式进行操作。按下node编辑模
式图标就可以使用node编辑了。选择一个node,可以在可视窗口中点击。当选中了以后被
高亮成橙色而不是蓝绿色说明选择对了。你可以按住Ctrl进行多选,或者通过various tree
window toolbar's 'Select-> Nodes' pull-right menu options 进行选择。
Node Value Offsets
如果node被选中,那么该node的属性编辑将被显示,而非生成器界面。默认的node设置将
会把每个属性值设为0.以为内node只包括其本身计算偏移值。这就是说以后的生成器编辑设
置依然可以影响node。例如,做一个偏移值为10的node,node的计算长度是5,那么结果
可能达到15。如果你回到生成器并增加7个长度最大值,则导致长度可能是22在生成器编辑
中你可以看到很多属性,这些属性被用来确定位置,旋转和缩放。比如,简单的拖动位置参
数的滚动条就可以使得node在其父类上进行上下移动。
Node Curve Offsets
道理和node值偏移相似。node一般都有偏移曲线。单击曲线缩略图然后在曲线编辑器中进
行偏移曲线的编辑。偏移曲线增加了node的曲线偏移,所以设置的偏移数值将被反映在曲
线轮廓中。
Deleting Nodes
select and press the delete key (or press the 'X' icon on the tree window toolbar
Deleted nodes can be retrieved with undo (CTRL + Z)
All deleted nodes can be retrieved by pressing the 'Reset' (or 'Randomize') button
in the generation editor (deleting the a generator link will also result in a loss of
node edits).
Node Manipulator
选择的node将会被如图显示(控制器)
每个node对应其特别的类型,比如,branchesnode有着可以
控制位置,初始角度,长度等等的控制柄,可以通过旋转控
制柄来判断哪个部分的属性将会被修改。单击并拖拽线的方
向可以修改相关的偏移值。
控制器可以在树可视窗口的属性编辑器中被缩放和关闭。
7. 7
Control Points on Hand Drawn Branches
手绘branches是由其控制点进行的。通过调整控制点可以改变branches外观。这些点可以
通过控制点属性被添加和移除。
Accessing Control Points
进入node选择模式,然后点击任意手绘branches即可,控制
点将会呈现绿色,并带有淡绿色的控制柄。一般有三类控制点 。
如图,通过树窗口属性条可以进行控制点类型设置。
forcesforcesforcesforces
Overview
forces object是一种强大的可以任意控制spine生长方式的建模工具,单单通过修改属性值
也无法如此建模工具所达到的效果相媲美,ST有很多种forces,未来随着插件的丰富,这
部分将会更加完善。
由于forces是world-space object,所以可以直接在树可视窗口中在操作,你可以通过工具
栏上图标来改变操作模式。
Adding Forces
加 入 forces 方 法 right-click in the tree window or use the '+' toolbar button and
select 'Add force'.
如果当前没有选中任何生成器,那么添加进去的forces将不会对树模型产生外观上的改变
如果选中多个生成器那么forces将被作用于所选生成器,删除方法依然不变。
Allowing Forces
即便forces被添加进去,也依然要经过生成器和node的许可。在forces被真正添加进去前,
属性编辑器中的forces组会出现复选框。如果其中一项被勾选,那么这个选项就会在当前
选中的node上。这样的机制可以让forces在trunk上起作用,同时在子对象上加入一个
Unrelated force。如果一个force在某个生成器上开启,那么生成器被选中时,它的3D导
航器将会被高亮。
未启用的forces将会被显示成深灰色。
Renaming Forces
forces可以根据其类型而自动命名。当类型改变,名字也会改变。在多个同类forces被选
中的情况下,新的名称将被按照统一格式进行命名并以此类推。这样也会造成迷惑,特别是
多个同种类型forces的命名。但forces可以手动命名。press the 'Rename' button (or
press 'F2') to rename the force.新的名称叫会被反映在所有的spine生成器和node上。
Localizing the Area of Influence
9. 9
手绘可以允许你用手绘装置和鼠标对需要的branches进行手绘,然后用控制点进行任意的
调 整 。 you can even grow procedural content right on top of the hand-drawn
branches!(你甚至可以根据要求在branches端点继续绘制想要的branches)。
procedural tool和手绘的结合可以让你根据需要进行精确调整。
Hand drawn vs Procedurally Generated
两者的不同点如下
Generation 参数并不会应用到手绘branches上每个手绘生成器中的node将会被手动添加
进去。不幸的是,请注意如果你删除了手绘生成器的连接,那么再重新连接的时候原来的
node将不复存在。
Bifurcation 在手绘branches的时候将不起作用。这个功能与手绘不相互兼用。
forces disturbance and jink 可用。如果在生成器中运用了forces或disturbance,那么结
果可能在绘制的时候branches出现脱离Line的现象。
手绘spine可以通过控制点进行调整。手绘曲线外型可以借助控制点将线变成贝塞尔曲线而
不是由spine属性来单独决定。进入Node selection Mode 可以实现上述功能。
你可以在手绘branches顶端加入procedural content,通过连接生成器即可实现。
将手绘branches与模板相结合。模板可以被载入保存并粘贴进手绘生成器中。
你甚至可以把多个模板载入到trunk和一系列不同级别的branches,将他们连接起来并将模
板用在所需要的不同的层级上。如果在目标级别没有手绘生成器,那么有模板创造出的新生
成器(在名为手绘的模版文件夹下)。
内定的偏移值将在手绘branches的创建中表现出来(偏移值有固定的设定)这意味着
branches将所画即所现,不论在生成器属性中如何设置,ST在此有优化的方案使得手绘的
效果达到最好表现。
然而在完成对branches的绘制之后,对于诸如Start angle roll size scaler 等等的属性设
置相对于原先对于生成器属性的设置依然会对外型产生变化。
很重要一点是手绘生成器不能呢个被转化为procedual生成器反之亦然虽然不能在两种生成
器中进行互相转化但是可以通过拷贝你想要的生成器,然后在另外一种类型生成器上用粘贴
命令。这样以来除了Generation value之外的所有设置,而且所有连接保持完好。
10. 10
The Hand Drawing Process
1.载入一个现有的树模型,或者创建一个新的树并设置至少一个bark material
2.将camera调整到一个合适的角度。当开始绘制时,垂直的平面将被当做画布来使用(3D
相关属性将会通过调整控制点来实现)
3.按住Space来进入手绘模式。cursor将会有默认cursor变为十字线
4.通过按住鼠标左键或者手绘板来激活tree radius内的十字线开始画
trunk,或者在一个现有的trunk上通过十字线来绘制branches
5.移动十字线在屏幕中绘制线条。
6.松开鼠标左键来结束绘制
7.如果还没有指定材质,则指定bark材质到trunk。如果在已有的trunk上绘制branches,
那么该branches的材质将会继承其父类的。子类的也一样
8.进入node选择模式,然后点击手绘branches的任何部分来激活控制点,用node控制器来
调整旋转角度,位置或者缩放。
9.选中控制点或者手柄,通过旋转跳动来增加depth(3D)
Hold down the ALT key while selecting points to select all subsequent control points
in the line。第一个被选中的控制点将作为杠杆的支点,调整branches剩下的部分。同样的 ,
如果用translate
manipulator mode将会使得整个部分一致地移动。
10.Add or delete controls points by pressing the 'After' or 'Before' buttons on the
Property Editor, or by pressing the delete key with a control point selected.
11.通过重复以上步骤来绘制子branches,但用新创建的branches作为父node。
为了做到这一点,只要按住space从branches的任何一点开始绘制就行
Control Point Options
改变控制点数量
当手绘曲线结束的时候,将会被自动转换为贝赛尔曲线。一部分隐藏在tree window
properties选项控制着新的贝赛尔曲线如何被创建。
这个选项可以使得曲线更加精确,获得更多控制点。你通过两个方面来控制:spacing间隔 和
curve fit曲线拟合
spacing
即两个控制点间的允许的最小距离。两点间的计算距离收到绘线速度和角度。然而,间隔要
控制恰当。间隔单位可以是世界绝对单位,或者相对单位。相对单位更加合适于树模型。
curve fit
即控制创造曲线的控制点数。值为1代表最为精确与绘制速度和其他因素有密切关系。小于
0.5则变得不精确,但比较容易控制。如果用较低的值,可以用Corner这种控制点风格确保
最佳的精确度和较少的点。你也可以在此基础之上加控制点。
Control Point Types
控制点可以分为corner,linear,或者smooth,linear和smooth
11. 11
的控制点都有线性的控制柄,但smooth控制点有其他的一些限制,比如他们必须有相同的
长度。smooth是最适合流线型的branches,因为拐角使得等距离的线性点难以再生。
Working With Hand Drawn Generators & Templates
一旦手绘生成器被创建,手绘标志就出现在Generation Editor的右下角手绘生成器可以被
通过以下方法创建:
1.添加新的手绘branches
2.添加手绘模板
3.拷贝其他的手绘模板
New Branches
创建新branches的准则
1.如果目前的目标branches级别里没有手绘生成器,新的手绘生成器就被自动创建。用于新
的手绘生成器的模板位于"Templates/Hand Drawn" 子文件夹里。独立的用于trunk的模板
来自于其他branches级别。
最好不要改变模板文件,可以选择在使用订制branches前载入模板化的手绘生成器。
2.如果一个手绘生成器已经与父node相连,所有新的手绘branches将会被放在这个生成器
里。这意味着所有branches,frond,以及材质属性将从现存的手绘生成器里继承。
3.如果有多个手绘生成器与父node连接,其中一个必须被设置为手绘目标,目的是接受新的
branches。
Hand Drawn Templates
和其他生成器一样,手绘生成器可以像模版一样被存储和载入(stt格式)。当一个手绘模板
被载入到了生成器编辑器中,将会用手绘图标在生成器图标的右下角表示出来。
手绘模板可通过两种方式被创建:一是在通过手动编辑一个自动创建的手绘生成器并保存为
模板文件,另一个是,粘贴到现存的手绘生成器并保存为模板。记住,任何branch都不会
被存到模板里。
stacking templates
如果能将所有的部分连接起来作为一个整体的树模板,则可以大大提高手绘模板的使用效
率。只需要在连接之前设置trunk的材质,所有后来的branches都会继承这样的材质。You
can even link procedurally-generated leaves to the last branch level – all before
drawing a single thing. Then, the properties for each branch level are already in
place which allows you to draw naturally without having to adjust each branch level
as its created.
Paste Into
在选中的生成器编辑器中进行右键可以粘贴生成器里的内容到另外一个生成器,即便node
已经被绘制并且存在子类。所有的属性都会被粘贴除了generation components,所以只有
branch skin,frond properties,materials,and dynamic 设置被进行粘贴。
这是个提高效率的好办法,尤其是在绘制好branches之后,利用此法可以快速生成器中的
12. 12
设置;创建手绘模板的时候也适用,另外对子branchesnode进行编辑的时候进行。
Copying and Pasting Hand Drawn Generators
一个刚粘贴手绘生成器是空白的,因为手绘生成器必须被连接到父node才能生成子类。
Reseting a Hand Drawn Generator
Presing the 'Reset' button while selecting a hand drawn generator will only remove
the node edits from the hand drawn nodes. To remove all hand drawn branches
without unlinking/relinking, select the link before a hand drawn generator and press
the 'Reset' button instead.
Hand Drawn Targets
第一个创建在branches级别的手绘生成器是被自动指定的目标。目标用复选号(对勾)显
示出来,然而,目标可以被手动取消,方法是对生成编辑器工具栏的目标按钮(对勾)进行
操作。一旦branches级别的目标被取消,新的branches被加入该级别时将会有新的手绘生
成器被创造。目标可以在现有的和手绘的生成器间移动,在任何一个特定时间只允许有单个
目标。
Locking Hand Drawn Sources
偶尔,为了手绘branches不能被作为子类进行生成,你或许需要锁定一个生成器。通常都
是在树非常复杂的情况下,以至于难以辨别哪个出branches属于哪个生成器。通过锁定,
手绘生成器将无法创建子类
LeafLeafLeafLeaf CollisionCollisionCollisionCollision
Overview
一般来说树模型中的leaves都是渲染表现中的瓶颈。主要是因为两个原因,高三角面数和
overdraw( 透 支 )。leaf collision组中的属性之所以会有就是考虑到常有leaves的间距太近。
leaf collision只有在参数设定停止的时候才不会出现延迟。
接下来的两种技术都是高消耗计算方式,尤其是在高解析度模型中表现的非常厉害。关闭该
类树模型的leaf collision将会大幅提高计算速度。在这种情况下可以考虑在建模的时候降级
来减少collision。
Spreading
为了减少负荷,碰撞树叶可以分散以保证更好的覆
盖率。这个过程并不会增加leaves的数量,而是将
现有的leaves进行重新放置以使leaves能够大致维
持不错的效果并在leaves间的间距并不像从前那么
紧。
13. 13
工作方式如下
1.所有的leaves位置的计算是基于每个leaves生成器和node的参数
2.在计算之后,碰撞的leaves被识别出来,并通过迭代处理将其分开
3.spread多远是由spread factor属性来控制
spreading leaves 是个相对缓慢的处理过程,可以通过按钮和自动触发。
leaf collision可以在leaf collision组中被禁用,以使得所有的的碰撞被取消,或者看成时降
级。
Culling
为了减少三角面的计算,离得过近的leaves可以被消除。当
两个leaves在cull tolerance(this value is a percentage of
each leaf's size)范围之内,其中的一个将会被移除。这个
过程不需要重置位置。
culling leaves 是一个相对缓慢的处理过程,并可以通过按钮和自动的方式触发。
spead &cull scalars
每个叶生成器都有对应global spread 和cull tolerances的scalar ,位于tree generator
properties。选中一个叶生成器在下面可以找到placement组,scalar是这样工作的:
values小于1意味着,这个叶生成器基本不会在与其他叶生成器碰撞时被culled or spread,
其本身有着较小的collision tolerance。
values 为0意味着不会进行culled or spread,这个设置对于关键的leaf mesh比较有用,以
你为我们需要保证它的外形完好。
values大于1则会增加某个生成器在与其他生成器碰撞时culled的概率,同时增加collision
tolerance。
automaticautomaticautomaticautomatic leafleafleafleaf collisioncollisioncollisioncollision
spreading and culling可通过automatic属性的设置来达到自动化。当两者都被自动化,请
设置一个先后次序。如果culling先,更多的leaves将被移除,少部分的spreading真正被发
挥作用;反之同理。
node-edited leaves
如果一个leaves在node selection mode下被操作,那将免于被spread or culled。原理是,
如果选择手动编辑node,就不要把node丢了。否则可能被删除。spread设置被忽视,因为
改变leaf位置或者旋转它将使得Leaf被移开。如果将node属性改为ignore spread:false,
则可以使得spread发挥作用。 To make it cullable again, presss the 'Clear Node Edits'
button at the top of the Property Editor.
14. 14
customcustomcustomcustom meshmeshmeshmesh assetsassetsassetsassets
订制模型几何体可以通过mesh tab
in assets bar被导入到st modeler里
面 。mesh可以是leaves,frond,或者是
mesh forces。
mesh可以是obj or stm格式
loading the utility
stm 文 件 只 能 通 过 SpeedTree
Mesh Utility from within
Autodesk 3DS MAX(Maya users
can always export to OBJ and
bypass using the mesh utility)被 导
出。
The SpeedTree Mesh Utility is written in in the MAXScript language and must be
loaded in the same manner as any other MAXScript.
The script is located here -> "[SpeedTree Modeler Install Dir]/Scripts/3ds
Max/SpeedTree Mesh Utility 5.0.ms". Run the script from within 3ds Max by
selecting the menu item 'MAXScript->Run Script' and browsing to the location
above.
一旦开始,SpeedTree Mesh Utility 为了方便起见将会载入startup,条件是load this
utility at startup被勾选。
Exporting Mesh Assets
这个工具的主要功能是为了在st system中使用将几何体作为mesh
model导出。为了导出一个mesh,你必须选择场景里一个对象进行。一
次只有一个对象可以作为leaves模型被导出。如果多个对象被选中,只
有第一个选中的可以被导出。选中的将会在面板中被显示。下面是三角
面熟和dimension的显示。
还有其他的一些选项列举如下。他们的选择状态是有黏着性的。
use display units
如果选择unit system而不是通用单位,会使得模型大小被重新按照system unit进行重置。
如果没有可以应用的单位转换,则这个选项是不可选的。
use custom normals
15. 15
如果这个选项被选中,custom-edited normals 将会被输出。normals通过edit normals 修
改器进行修改的。normals的修改在thin-walled几何体中被经常用到,已达到看上去更厚的
视觉效果。
取消这个选项将会重置normals,使normal与对象面normal一致。
override offset
meshes在st modeler中的定向和位置都是由场景中被导出的模型远点来做pivot被确定下
来的。如果某个对象被从场景原点移开,那么整个树模型在使用的时候也会出现相同的偏移 。
如果这个选项被勾选,那么对象的移动将会被忽略,并且导出的模型也将会按照[0,0,0]的
原点来放置,有效的利用对象local pivot(物体本身的相对的)而不是场景中的实际原点。
model format
在下拉菜单中选择输出格式:STM或者OBJ
export mesh
To export an object, press the "Export Mesh" button at the bottom of this group
once the desired object is selected.
一个保存对话框就会出现,询问用户对输出的几何体进行文件夹名称的确定。
mapping coordination一定要在导出前进行。另外,textures applied to leaf meshes
should not title, 所以相应的调整你所用的MAX材质来保证所有texture coordinates 在
0.0-1.0范围
Import Mesh (.stm)
在mesh export组下面的是import mesh按钮。meshes可以被导入回max。任何位于用户系
统的stm文件可以被读入到MAX中 。Use 3ds Max's built-in OBJ importer for importing
OBJ files.
mesh tools
st mesh utility 收藏了一整套工具来帮助你完成custom mesh assets,不论你是否导出
STM,OBJ
project normals
Overview
由于leaf meshes的本质(blade-like and low-detail),使用face normals在树模型上看上去
会出错。 Usually normals need to be pushed "outward" so the tree lights as if it has
volume.否则每个leaves个体会被当做每个独立的模型进行光照渲染不论他们在树上的具体
位置,从而减少了视觉效果。
从ver 5开始,STmodeler囊括了spreading 和统一法线的工具,用于那些被赋予到树模型
上的leaves。See the 'Leaf Properties -> Lighting group' contextual help to see how
range, global reference, global, local, and card smoothing affect leaf normals.
在导出leaf mesh之前投影法线可以有效提高树光照的灵活性,原因是后面需要global
16. 16
smoothing就会变得更少。
projection bias
project normals将每个对象的法线与从共同原点射出的矢量进行
对齐。projection bias参数用来改变投射的原点。值大于0则将
projection向外,而当bias为0时,则从对象中心project normals。
bias spinner 范围是[1,-1],缺省值是0.5。
flip normals
这个工具会让法线顺着需要的
轴去翻转,以使得光照发生相
关变化。
如果没有选中具体法线,则所
有法线都会被翻转。选中XYZ
将会完全翻转所有法线
(同MAX)
remove thin faces
By pressing the button labeled 'Remove faces <', any faces with an area less than
the number shown in the spinner to the right will be removed. thin(low area) 三角
面如果在启用colliding mesh force的情况下会在modeler引起很多问题。所以最好还是在
引入到树模型之前就移除他们。
17. 17
这工具只有在editable mesh几何体中可以运用,所以你不得不在使用该工具前将editable
poly或者其他集合体转换为editable mesh。
value
spinner(在0-0.04通用单位内)可为每个三角面构成的mesh提供了最小允许范围。没有通
过测试的,都将被从对象中移除。
如果几何体被转存到modeler里,那么在每次导入的时候都会被移除。
set pivot
通过按这个按钮,对象的pivot将会被移到按钮右边下拉菜单中选中的选项。
关于设置pivot的可选选项如下:
Origin
将会把选中的对象pivot移到场景原点,不改变几何体
Center
将会把pivot作为几何体的中心。
extra utilities
Unit Converter
Overview
当无论在modeler还是world builder中使用specific units时,你可
以用这个单位转换器在导入它们到modeler之前重新确定mesh
assets的大小。比如,st model library中的树的建模单位是feet,
但你可以做一个用meters单位的colliding mesh assets,如果需要
的话。
另外个用途是,将别的作品导入到你现在的工作单位系统里去。
conversionconversionconversionconversion optionoptionoptionoption
size and position
size and position都可以缩放到需要的单位尺寸。
from
模型被创建时的初试单位
to
模型进行转换的目标单位。Use the special case 'Scene units' to convert to the units in
the current '.max' file.
注意:不止一次的进行单位转换会使得缩放对象的缩放成倍数增长。
FBX material processor
The standard FBX importer 在st modeler中只支持很少的
18. 18
texture选项。
为了保证material导入后会在modeler中被看到,你必须借用这个工具进行material处理。
process imported objects
如果'Process imported objects'在 'FBX Material Processor' 被启用,所有导入的对象
(包括alpha channels,normal maps,etc)都会被处理。对象可以通过手动的方法'Process
Selected' button进行处理.如果'Process translucency'和'Include ambient occlusion'被
勾选,它们也会被包括。
process translucency
如 果 启 用 , 如 果 material 包 括 transmission information 那 么 处 理 时 将 会 创 建 一 个
translucent shader material 。
这些materials更加复杂,在scanline renderer下将更加逼真。
include ambeint occlusion
如果启用的话经过处理的材质将会混合顶点着色与漫反射材质。这将会使得烘焙ambient
occlusion可以渲染。如热锅用这种办法,增加另外的ambient occlusion技术比如辐射着色
或者final gather将成为可能的,因为内部顶点已经被baked-in ambient occlusion渲染了。
process selected
Use this button to process an object already in the scene.
'Quick Save' MacroScript
一旦st mesh utility 被执行,一个macroscript就被创建了,允许用户指定热键或者按钮来
快速存储。macroscript 被称作quicksave STM,并位于st 文件夹,accessible via the
Customize User Interface dialog of 3ds Max ('Customize->Customize User
Interface...'). Select the QuickSaveSTM action and assign either a hotkey, toolbar
button, or menu item to it if desired.
quick save不会出现存储对话框,只是替换上次导出的stm文件。
在需要进行多次快速迭代的时候比如tweaking leaf mesh的normals 或者uvcoordinates,
以达到预期效果的情况下使用非常有效。
ambientambientambientambient occulusionocculusionocculusionocculusion
Overview
ambient occlusion 正 在 快 速 发 展 成 为 cutting-edge 3d
graphics主要的渲染效果。基本的原则就是从多角度计算一个
模型的某个区域。最终的结果是一个在褶皱,交叉,覆盖部分
进行不定向的darkening处理,更像是现实中里面的leaves和
branches看起来暗的效果。一个可以达到这种效果的技术是
rendering light maps offline,但这种处理非常耗时,并且不
19. 19
允许texture titling。而 ST里的ambient occlusion给每个顶点指定occlusion值,并允许SDK
进行runtime读取。
ambient occlusion rendering mode
To view ambient occlusion only, select one of the 'Ambient occlusion / dimming'
rendering modes from the tree window toolbar (first icon).
invalid ambient occlusion solutions
ambient occlusion是一个建模后处理方案。任何时候当你改变影响spine,branch skin,or
leaf位置的属性值导致重新计算时,ambient occlusion solution会无效。因为它被从某个生
成器中移除导致了harsh lighting artifacts所以也就会被整个从树模型中移除。Ambient
occlusion can also be manually removed from a tree by selecting the menu item
'Tools->Clear ambient occlusion'.
generator 和node ambient occlusion properties
在计算过ambient occlusion之后,它的效果可以从每个生成器和每个node上通过属性中的
ambient occlusion 进行调整已达到和谐一致的效果。See the context-sensitive help for
descriptions of each option (Offset, Contrast, Min, and Max).
computing ambient occlusion on load
如果embed geometry被再tree generator prop.里被禁用,ambient occlusion就可以通过
compute AO on load 选项来对tree进行计算。这个选项对于带有embedded geometry的
大规模,细节度高的tree非常有用。
ambient occlusion tool
To calculate ambient occlusion, use the tool located
under the menu item 'Tools->Compute ambient
occlusion'.ambient occlusion
可以被当做是后续处理原因是当在编辑tree属性时所作的
即时运算可能非常慢。这些设置也会被存在tree model中 。
samples
light samples的数量是用来计算ambient occlusion的。增加ambient occlusion的数量,会
使得计算结果更加精确,但需要消耗更多的计算。
blur
用半径来确定blur ambient occlusion的结果。blurring使得效果更加平滑自然,使多个node
统一。blurring values越高,计算时间越长。
global offset
20. 20
Offsets the net darkening effect (positive number result in less darkening). Offset
can be tuned per-generator on top of the global offset.
sky influence
将sample放在控制,会使得底下的branches暗化,较低的区域被较高的区域遮挡。
geometry types
Choose to include or exclude branches, fronds, leaf cards, leaf meshes, or mesh
forces from receiving ambient occlusion. *
即使不接受ambient occulusion,树的剩下的部分也依然要受到影响。
CollisionCollisionCollisionCollision PrimitivesPrimitivesPrimitivesPrimitives
Overview
简单的collision primitives 可以进行滞后处理。这些volumes不是由那
些会降低渲染速度的多边形构成——他们只是geometric primitives
(只被赋予了半径和高度而已)。
placing collision primitives
collision primitives可以通过两种方法进行添加:手动或者自动。primitives可以在tree
window 通过the right-click menu ('Add collision object') or by pressing the add ('+')
button on the toolbar and selecting 'Add collision object' from the pull-right menu
进行手动添加。
手动添加collision primitives需要你通过控制器手柄来做到。你需要手动移动旋转并缩放对
象来覆盖tree的基本外型。
通过generate collision primitives tool,collision primitives会根据tree的框架智能的完
成。一些对于生成的primitives手动编辑依然是必要的。
types of collision primitives
有两种collision primitives可以选择:capsule 和sphere。capsules比较适合approximating
branch volumes并且spheres 更合适 approximating leaf clouds。
viewing collision primitives
collision primitives 默认下被隐藏。需要查看的时候, toggle the collision objects
button on the tree window toolbar.
21. 21
generate collision primitives tool
要自动生成collision primitives 的话,use the tool
located under the menu item 'Tools->Generate
collision primitives'.
clear existing primitives
当启用了以后,所有现存的collision primitives被移
除。否则他们将被添加到现存的set里。
branch capsules
生成Branch capsules的数量。这个工具会从最大的branches开始一直下去直到遇到了指定
数量的capsules。
encompasses percentage
Amount of "wiggle room" for placing branch capsules。如果encompass
percentage为1,也许会显得过于大了,实际上是为了要包裹整个branch,甚至是那些比较
扭曲的branch。
leaf sphere
The number of leaf spheres to generate.
levellevellevellevel ofofofof detaildetaildetaildetail
Overview
在st5.0中,我们已经完全的重做了LOD系统,LOD变得更加过度平滑,转换迅速。我们的
新途径从两方面来着手:一个是leaves,另一个是branches/fronds。
Enabling LOD
要启用LOD,选择树生成器开启LOD:enabled属性。所有全局LOD属性也一样。
See the context-sensitive help at the bottom of the Property Editor for detailed
descriptions of each property.
22. 22
previewing LOD
要在tree window改变目前LOD状态,既可以滑动LOD indicator,或者进行缩放。LOD 必
须大于1才能看到变化。
editing LOD
所有branch,frond和leafLOD的控制在spine或者leaf生成器LOD组中。
大多数的细节削减都靠LOD curves——the left side of the curve is highest LOD, and
the right side is lowest LOD.
Branch and Frond LOD
我们的LOD方法是同时减少每个branch和frond分割,同时移除与camera固定距离上的
spine。
Reducing the Number of Segments
5.0是ST的第一个允许你为单个branches进行多边形面削减的版本。
在spine 生成器里的LOD组中,对length segment, radial segment, cap segment, 或者是
segment multiplier curve进行分割减少以达到低LOD。
为了减少LODs间的POPING(突兀there is no transition for segment reduction), 预 览
结果,并编辑曲线直到LOD到下一个LOD之间的变化不会太剧烈。
Optimization
LOD的优化可以使LOD级别达到最小。通常来说,简单的增加optimization数可以作为一个
减少分割数量的不容易被注意到的方法,因为基点随着实际分割数量的变化而改变(优化跳
过那些基于相邻点之间角度确定的分割,角度发生变化保证整体)
removing entire branches and fronds
我们的新方法的第一个特点就是移除branches和fronds。之前的branches不得不整个突出
来或者难看的结束,现在LODbranch和frond的转换是通过缩小branches半径和减少
fronds宽度直到看不见。这种技术显著地提高了效率,因为perspective camera运动使得
对象大小与camera位置有关。一旦branch或者frond到了zero area,就被删除。当静止的
时候,你不可能注意到树的变化。
在细节级别降低的时候移除branches的过程如下:
1.为最高细节级别的Branches,caps,and fronds设置最大阈值。
2.用相关的LOD curve控制依然呈离散LOD状态的每个几何体的数量。
23. 23
The left side of the curve corresponds to the highest (full) LOD while the right
side of the curve corresponds to the last (lowest) LOD.一般 linear decay 和'droop'
curve default 能达到非常好的效果。
比如,如果你对一个有有着3个离散细节级别的tree用一个linear decay curve ,最高的
LOD将会包括所有branches/caps/fronds,第二LOD将会包括在数量上大于50%最高级别
branches的branches,最后一个LOD级别将不会有任何branches/frond/caps。
如果不想再在任何级别移除所有branches,需要确保associated LOD curve 右端的值大于
0。阈值不是branches数量的百分比,而是curve的Y值与最大volume或者每个几何体域之
比。这样一来你可以轻松的移除小的不连续branche,同时保证整体效果。
Keep Override
为了防止某个node在LOD时被移除,我们提供了一个node属性叫做 'Keep override'。当
该属性被启动时,node将免于culling不论生成器LOD设置如何。
leaf LOD
我们的leaf LOD方法是减少在固定位置(相对于camera)部分的leaves数量。
以前版本的做法是当用新的更少的leaves集去替换上面的leaves。在某些情况下是有效的,
它需要在转化的时候渲染两套leaves集。但在转换的过程中可以被看出来。
在5.0中我们找到了一个可以使branches和frond被移开多简单方法。某些leaves随着
camera的移动缩小,同时其他的leaves变大以保证leaves覆盖面积不变。一旦leaves长得到
了需要的大小,就停止,那些不断缩小的leaves也就消失了。
Tuning Leaf LOD
你可以在 leaf generator's 'Level of Detail' group的属性设置中协调leaves削减的方式。
最低LOD时最小的leaves数量被KEEP属性控制。KEEP为0的话,最小LOD时就没有leaves
被保留下来。为了避免这种情况,可以根据需要来调整KEEP数值。要知道,在手动预览模
式中,要预览最低级LOD效果需要拖拽 LOD Indicator。为了使得低级LOD结果随机化,
可以改变LODseed值,或者调整'Fuzziness' value 直到你满意为止。
Keep Override
To exclude a node from being removed by LOD entirely, we've provided a node
property called 'Keep override'. When enabled, the node will survive the culling
process regardless of the generator's LOD settings
DegradationDegradationDegradationDegradation
Overview
Degradation是一个减少树模型细节的过程,目的是减少三角面的数
量以提高计算速度。所有的降级参数设置可以通过选中 Tree
Generator来达到。这样的功能在做高精度CG画质的tree这样需要
24. 24
在较长时间里计算大量数据的树模型时非常有用。
有两种降级方式: regular degradation 和 interactive degradation。
两者可以单独使用或者共用。
注意:在即时演算时,降级没有什么用。
Degradation
这个属性可以从多边形面解析度和建模技术上对树模型的质量进行降低。当降级被开启后,
所有对于质量的削减都将贯穿建模过程:树可视窗口渲染经过降级的树模型,导出时也会导
出一个经过降级的树,并且所有通过ST编译器的嵌入几何体也要被降级。
这种降级方法主要针对的含有高精度的树模型的时候。基本的概念是让你在工作的时候保证
建模过程的互动性情况下,进行降级,并在导出的时候导出完全解析度的版本。
Enabling Degradation
To toggle degradation, press the degradation button in the main tree window toolbar
or change the 'Degradation -> Enabled' property on the Tree Generator.
当 开 启 的 时 候 , 统 计 信 息 将 会 显 示 在 tree window 左 上 角 呈 淡 黄 色 , 并 包 括
"DEGRADATION ENABLED"(在选择标签里)
Options
在降级选项组里,你可以发现4种方法去影响降级方式。Welding和leaf collision是一些会
降级计算速度的部分,所有将他们禁止会大幅度提高速度。segment和leaf frequency
scalar可以提供些额外的简化途径。
Frequency Scalar and Degradation Style
Frequency Scalar是唯一个要依靠其他的选项的进行应用的设置。任何生成器都可以设置
frequency scaled 或者不这样,方式是通过'Degradation Style’的值设定。如果设置为
Always,则在降级的时候一直scale。反之,设置为never,将会省略任何scale步骤(适用
于roots,没有子类,但有几个node)。
如果设置为default,frequency 将在只有是生成器chain的toplogical end的时候才进行
scale(比如leaves)。在这个chain最后一个的生成器通常负责被创建node的大小,因此有
限制的frequency将显著提高速度(较差的显示效果),效果比减少生成器的node要好的多。
Interactive Degradation
这个属性只有在被计算的时候才会对tree model降级。一旦tree不再被编辑的时候,它将
按照全解析度开始进行计算。改组属性的目的为在交互的时候减低细节已达到快速的预览。
Interactive degradation is active while the left mouse button is being held down,
like when scrolling the spinner on a numeric property, or moving a point in the curve
editor.
这种降级在对高解析度的tre models会再次使用。这种方法和前面提到的不同之处在于,
25. 25
tree在Interaction结束的时候会回到正常状态。
Disabling Propogation
不难得知interactive Degradation最重要的特点是能
够在编辑的时候对所选生成器或者node的子类进行延
缓计算。比如,某个trunk可以被很快的计算,但当你
把 所 有 branches,sub-level branches , twigs 和
leaves 考虑在内的时候,就会变的很慢。当关闭'Allow
propogation' 后,任何经过当前生成器的部分都会被
隐藏直到鼠标松开。
Low Detail Navigation
用 Low detail navigation 选项 可 以 在 进 行 高 多 边 形 面 数 模 型 处 理 的 时 候 显 著 增 加
panning,rotating,和zooming的速度。
WindWindWindWind
Overview
wind(turn wind on by pressing its toolbar icon or '8')在整个ST 建模过程中是
波动的。每个node固有或者继承wind 参数会控制对象的独一无二的运动,而这组
wind参数也会和其他fan对象共享,所有的wind参数被保存在模型中,并在即时环境下编译
后发挥作用。wind动画可被分为5种。
Primary Motion
每个tree model顶点会在XY平面随着风的方向前后震荡。多少,多远,多快,这些程度都
由fan对象中primary组里的属性来决定。
secondary motion
每个node可以在primary oscillation之后明确一个次级方向和震荡的程度。
所有node的顶点震荡方向相同(use the "Wind" parameters of each node type to
control the direction and length of this vector)但程度是根据他们被指定的wind 重量。
这样的运动与风力有关不是风向,并由 的fan 对象"Secondary" group参数控制。
leaves
leaf cards和meshes的顶点根据法线方向和风力进行震荡。fan对象的leaves属性组控制多
少,多远和风向的影响程度。Leaf generator也有针对每个生成器和单个leaf mesh的风力
值和风力控制曲线(这在控制长叶Mesh的时候很有用,比如藤。一个线性外观的曲线将使
得这样的mesh根部不动,而前段随风摇摆)。
增加 'Windward scalar' 属性将会使得leaves在面对风源的时候震荡的更加明显。
Frond Ripple
fronds的顶点震荡根据每个node的参数设置成波浪状运动。你可以在 "Frond Ripple"
26. 26
property group of the fan object or on the spine node itself 控制运动的多快和程度。
frond ripple在运用image-based的branches作为frond geometry的时候不可用。这种现象
主要是对蕨类植物以及大块leaves的植物来说。
Gusting
STwind可以被设成周期性的阵风。每个gust对目标施放新的风力并持续不定的时间周期(由
用户定)。在"Gust" property group of the fan object里编辑所有gust参数。
Low Wind, High Wind, Response Times, and Exponents
Most of the wind groups on the fan object have parameters for low and high wind
frequency, low and high wind distances, and strength exponents.
大多数wind groups on the fan object有可以调节wind frequency频率高低,风距离远近和
风力的参数。
另外,还有针对风力响应时间和方向响应时间的全局设定。理解这些参数所扮演的角色对于
编辑一个优秀的风动画非常重要。
Low Wind vs. High Wind
这些参数表面上看上去简单。Low wind parameters dictate how the tree responds in
low wind, high wind parameters dictate how the tree responds in high wind。然而,并
不总是high wind parameters就会更高。通常情况下,为了创造一个真实的强风效果,需要
同时将high wind distances调短,将high wind frequency调高。
Exponents
The strength exponent parameters基于风力控制values从low wind 向high wind转移程
度的参数。增加 strength exponents 将减缓从low wind到high wind 的过程。一个可以让
leaf和frond涟漪比 secondary strength exponent少的办法让其比 primary strength
exponent 低。这样的结果就是wind 反映更小更轻的树元素先于更大的components运 动 。
response times
strength and direction response times控制着对应风变化Tree改变的速度。增加值将会
模拟一个看起来更大,移动缓慢的tree。
Fan Object
当wind被启用时,fan对象就会出现在Light下。点击fan可以进行对上面五个组的属性进行
编辑。
fan可以通过旋转柄进行旋转。A shortcut for fan manipulation is to
hold down 'F', left click, and drag the pointer in the tree window to
point the fan in a different direction 。 Doing the same with the
middle mouse button is a shortcut for changing the strength.
27. 27
Wind Strength
Wind strength可以通过fan喜爱的两个条达到可视化。蓝色的条是target base strength。
白色的条代表目前的力度。当target strength 改变,白色的条也会根据响应时间来移动。
同样的,红色条代表gust力度。bars中间的白条是实际应用到tree上的力,是set strength
和gust总和。
Wind Data Transfer
Wind Date 可 以 用 位 于 top of the Fan Object properties under the 'Wind Data
Transfer' group的命令来在tree间转移。
Here wind properties can be Imported and Exported as ".swd" (SpeedTree Wind
Data) files, or simply copied and pasted between open trees.
PhysicsPhysicsPhysicsPhysics
概述
ST5.0是第一个直接引用physics的版本。ST模型现在可以在放置Bones(throughout tree
model)上获得本地的支持和控制。
物理数据在通过models的exporters之后便可以使用。随着ST的持续开发,更多的物理选
项将和数据将会借助exporter和内部SDK出现。
Support for PhysX™ and the APEX Vegetation Module, by NVIDIA®
随着5.0版本在物理性能上的极大扩展,ST将很快推出对于NVIDIA’s PhysX™ SDK and
the APEX Vegetation Module的内嵌支持。
NVIDIA APEX 被设计成与现有的PhysX SDK's 协作的modular framework,可以让开发
者将更多物理效果细节加入到他们的游戏中,并帮助他们在多平台开发时优化游戏体验(一
次创造,对应多平台内容共享)。
APEX支持多种plug-in模块,包括植被,破坏和clothing,以使艺术家和关卡设计师可以对
创造的内容在不需要程序的介入下进行即时效果的查看。APEX模组现在已经可以在多个平
台上使用了。
Along with greatly expanded physics capabilities in version 5.0, SpeedTree will soon
include built-in support for NVIDIA’s PhysX™ SDK and the APEX Vegetation
Module.