SpeedTree导入Unity解决方案

微软的Note笔记,和网页编辑不能很好复制,这里没有图,建议查看另一个链接
https://onenote.com/webapp/pages?token=KxEyAkijcfJZgzOF30PAPkVySHIcjsPyhrE5wkJoK9KTIZNt93xkIq_aRhgH5HbkZVCGX44wNLkGWr0nwYFKYBDfMfRnKVJv0&id=636151182807326632


工具材料准备:

1.第一个工具:

官方SpeedTree For Unity插件 http://store.speedtree.com/product/speedtree-modeler-for-unity/ 19美元一个月。或者你寻找破解  

 

                                                                                         SpeedTree的每个版本】

SpeedTree有多个版本笔者了解的是:

     第一个版本就是SpeedTree-Modeler Ciname这个是ST的普通版本,只负责做树不承诺支持任何平台,可以导出FBX来实现模型通用问题。但是材质是不通用的。容易产生很多问题。

第二个版本是SpeedTree -Modeler  For Unity5.0的版本,这个是专门支持Unity开发的

官方给出发的功能解释;

SpeedTree® for Games, the vegetation software making AAA games great since 2003, has come to Unity 5! In response to strong customer interest, IDV is offering a version of the SpeedTree Modeler for Unity 5. Featuring our unique, award-winning combination of procedural plus hand-modeling approach, SpeedTree is a design package powerful enough to meet virtually any vegetation modeling requirement, from architectural backgrounds to Academy Award®-winning visual effects. Feature highlights (hyperlinks go to relevant SpeedTree docs pages):

【功能】:

  • Scalable wind effects, including Wind Wizard 【1】ST中的风力效果可以直接导入在Unity中使用并且调节一些参数
  • Seamless LOD tuning  
  • Create unlimited variations with one click
  • Branch seam blending
  • Sub-division surface modeling
  • Add collision primitives automatically or manually
  • Modeling with mesh forces (e.g. grow trees around or through 3D meshes)
  • Sample broadleaf (desktop & mobile resolutions), conifer, palm, and mesh force example trees included
  • Much more! See our online Modeler documentation for complete details

Mac OS version available now!

关于LOD的介绍;http://docs.speedtree.com/doku.php?id=lod

 

第二个工具:.Unity5.0以上版本的软件

一开始我用SpeedTree Modeler Cinema.exe也就是普通版制作的一个植物,但是不支持Unity,在Unity中不能直接使用,需要从SpeedTree中导出FBX才可以,很笨的方法,容易出现材质贴图难题,现在可以用SpeedTree Modeler Unity v7.1.4版本,那么SpeedTreeSpm工程文件可以直接在Unity5+中当成Prefabs中使用。

举个个人制作例子:

第一步:用speedtree-modeler-for-unity

 

 

 

 

 

第二步;

一定注意的是   Unity版的ST可以打开普通版的ST,但是普通版的ST打不开Unity版的ST 

 

 

第三步:在SpeedTree for unity版本中打开之后,可以另存一个工程文件,这时候ST会帮你创建适用于Unity的图集Altas,以及打包材质Shader,很棒的~

 

同一个工程文件在两个软件中效果对比:(不进行任何材质编辑的情况下)

 

 

可以看出来,树的效果从SpeedTree中完美转移,差别并不大。而且事实上我只是简单的把SpeedTree工程文件夹直接拷贝在UnityAsset/Resources下而已,没有编辑什么材质 Shader,但是如果发现材质没有使用贴图的Alpha通道的透明度,那么可能是你在St里面就

没有设置好相应的植物节点,比如叶子,在ST中你没有创建Leaf节点来哦表现叶子,而是用网格放在基础节点上,基础节点使用的材质

UnityGeometry Type只会识别为网格,而如果你是st中的Leaf节点上使用网格和贴图以及材质,Unity会把对应Leaf的材质,转换材质的时候Geometry Type会设置成leaf,区别在于什么呢,在于:FrondBranchLeaf节点、和几何类型可以识别带有Alpha通道的贴图,但是其他选项就不支持。所以Speedtree模型导入Unity发现不带透明通道了,第一是你没有用Speedtree  Modeler for Unity5.0来实现导入Unity

第二就是:在ST中创建的植物,相应的部分没有创建相应的节点。

 

如果在ST中,节点都设置好了那么导入Unity后材质的几何网格类型也会自动设置而且材质的名字也给好了

 

第四步尝试:测试在st中加好的风力效果

 

第五:预览效果

 

【完美】。。。。。

做成笔刷

官方演示案例:https://www.youtube.com/watch?v=fk1jOk7IxOA

 

以下是另一篇文章引用:http://blog.csdn.net/u010930289/article/details/50757477

SpeedTree资源(用SpeedTree建模器的Unity版本保存的.SPM文件)被Unity如其它资源一样识别以及导入。保证纹理在项目文件夹中能访问到,每个LOD的材质将被自动地生成。当你选择.SPM资源导入时有导入选项,让你调整生成的游戏对象和材质。材质在重新导入时不会被再次生成,除非你点击了Generate Materials或者Apply&Generate Materials按钮,那么所有对材质的定制将会被保持。 

SpeedTree导入器最后生成一个带有LODGroup组件的预物体。这个预物体可以在场景中如一个普通的预物体实例那样被实例化,或者作为一个地形上的树木原型被选中及大规模地绘制。另外,地形接受任何带有一个LODGroup组件的游戏对象作为一个树木原型,并在网格尺寸或被使用的材质数量(相比于TreeCreator树木)上不进行限制。但注意到SpeedTree树木通常使用3到4个不同的材质,这导致了在每一帧中一定数量的绘制调用产生,所以,在对于绘制调用数量敏感的平台上,你应当尝试避免对LOD树大量使用。

如何创建可以产生并接收实时投影的SpeedTree公告板

为了让公告板正确地计算投影,在阴影产生对象通过的期间,公告板被旋转面向光照方向(或者在点光源的情形下的光源位置)而非面向摄像机。 

为了开启这些选项,对一个.spm资源的检视器中选择Billboard LOD级别,在Billboard Options中勾选Cast Shadows或者Receive Shadows,并且点击Apply Prefab。 

 

要改变实例化了的SpeedTree游戏对象的公告板阴影选项,在层次窗口中选择_Billboard对象,然后在Billboard Renderer的检视器中调整这些选项,正如你在普通的Mesh Renderer中所进行的那样。 

 

在地形上绘制的树木,将从预物体中继承公告板阴影选项。 

你可以使用BillboardRenderer.shadowCastingMode和BillboardRenderer.receiveShadows在运行时来改变这些选项。 

须知:如其它任何渲染器一样,在使用延迟渲染时,接收阴影选项没有效果;公告板将总是以延迟方式接收阴影。

在5.3中的性能提升

在5.3中公告板批处理性能被提升了。多核被用于处理动态的公告板批处理代码。 

批处理逻辑被简化。现在一个批处理绘制一类公告板,因为在现实世界情形下,公告板很难共享同一个批处理。具体改变请参考SpeedTreeBillboard.shader。如果你有自定义的公告板着色器,根据之前的说法,你可能需要修改你的着色器。

**************************************

 

来自 <http://write.blog.csdn.net/postedit/53085283?ticket=ST-276439-cKO6fcAL6FhYLcfn7PQA-passport.csdn.net>

 


你可能感兴趣的:(Unity问题,SpeedTree)