个人技术总结——使用Blender进行植物建模并导入Unity

一、技术概述

1.1 为什么会有这样的需求

在我们的项目《福大模拟器》中,为真实展示福州大学的校园风采,对各类具体事物建模的真实程度提出了较高的要求。植物作为校园中随处可见的事物,自然成为了模型的重要组成部分,所以有必要对各种植物进行模型的构建。

1.2 学习该技术的原因

为使所建的模型更符合在现实生活中的模样,也为了玩家能如身临其境地体验福大校园,需要这样的技术来增加真实性。

1.3 实现的难点

难点在于植物的种类繁多,各类植物的根枝存在差别;而且不像建筑物有棱有角,叶子的位置和方向的规律难以捉摸。

1.4 实现效果展示

灌木丛

在这里插入图片描述

行道树

在这里插入图片描述

二、技术详述

2.1 实现思路概述

把植物大致分为两种:

  • 第一种是低矮的灌木,它们基本呈现为方形或是圆形等规则图形,所以直接创建规则物体,并使树叶附着于其上
  • 第二种是普通的行道树,它们枝叶分明,且二者都有比较大的随机性,所以求助于Blender中的特殊插件来辅助
2.2 树叶的处理

虽然植物的形态各有差异,但是对不同植物的树叶的处理却是相同的。

首先在网上找到合适的素材,用PS将其的背景抠掉并导出为.psd文件

在这里插入图片描述

然后在Blender中,将这张图片作为平面导入

在这里插入图片描述

在这里插入图片描述

对其进行适当修改,是平面曲折有致,更符合叶子的真实情况

在这里插入图片描述

将做好的叶子导入Unity会发现图片存在白色的背景,此时叶子材质Shader属性为默认的Standard

在这里插入图片描述

在这里插入图片描述

这时将叶子材质的Shader属性调整为Sprites/Default,可以看到白色背景消失,但是还有白边,导致镜头拉远后,植物整体发白

在这里插入图片描述

点击Tint属性的取色器,选择合适的颜色。这一步直接修改了整张图片的色调,从而使白边消失

在这里插入图片描述

到此,叶子处理结束

2.3 灌木的建模

以制作方形灌木为例,先创建一个立方体,为其加上粒子系统,粒子选为发射体。调整粒子数量到合适值(因为在导入Unity后,每个粒子都会被认为是一个单独的物体,所以及其占用运行内存,导致卡顿甚至闪退)并将起始帧和结束点均设为0

在这里插入图片描述

将该粒子系统的渲染属性设为渲染物体,并选择已经处理好的叶子平面,调整其缩放属性值为合适大小

在这里插入图片描述

勾选旋转属性,调整随机值到合适位置,使叶子看起来较为无序

在这里插入图片描述

为立方体添加一个材质,将该材质的Alpha值设为0,混合模式设为Alpha混合,阴影模式设为无

在这里插入图片描述

到此,灌木丛建模完成

2.3 行道树的建模

借助Blender自带的树根建立工具,可以直接创建该工具中所有的树形。选择合适的树形并创建

在这里插入图片描述

在这里插入图片描述

将整棵树转换为网格并进入权重模式

在这里插入图片描述

在这里插入图片描述

权重模式中选择渐变工具,用径向方式从正、侧、俯视位置,为树枝的顶点添加权重,保证树叶出现的位置合理

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

行道树的叶子与灌木不同,前者的叶子是从顶点出发,所以要把叶子的顶点设在根部。选择根部顶点,将3D游标吸附于次,再将原点移动到3D游标处

在这里插入图片描述

在这里插入图片描述

为树加上粒子系统,粒子选为毛发。设置合适的数量、长度和段数,将发射源选为顶点,取消随机顺序

在这里插入图片描述

与灌木同样,将该粒子系统的渲染属性设为渲染物体,并选择已经处理好的叶子平面,调整其缩放属性值为合适大小,此时的树叶还是随机出现的

在这里插入图片描述

将其顶点组的密度属性设为群组,这时,树叶已经出现在了该出现的位置

a

为树干添加如图材质

在这里插入图片描述

到此,行道树建模完成

三、技术使用过程中遇到的问题和解决过程

3.1 遇到的问题

树叶素材在Blender中是通过插件作为平面导入的,这使得在最后模型导入Unity时出现不兼容,导致前文所述的白底和白边问题。

3.2 解决过程

将模型文件和素材一起导入Unity后,发现虽然素材文件在Unity中确实显示的是无背景的状态,但是材质却有白色背景

在这里插入图片描述

在这里插入图片描述

这时我想到可能的原因是制作模型时,无论是灌木还是行道树都对其材质的Alpha相关属性进行过调整,遂把树叶材质的Shader属性也调整为Alpha混合,但是效果并不好,仍存在白边

在这里插入图片描述

存在白边的主要原因是PS处理不够精细,会把本属于背景的部分白边算作叶片本身,所以当图片足够小,即Unity中视角拉远的情况下,白边会非常明显。故解决此问题的思路是:在去除背景的前提下,改变图片的整体色调,使白边自然消失。最终找到了Shader属性的Sprites方式解决了这个问题,效果如上2.1叶片的处理中所示。

四、总结

  • 对于树叶素材的处理步骤为:先使用PS去除图片背景导出.psd文件,再将其作为平面导入Blender;建模完成导入Unity后,为去除白边白底,需将叶子材质的Shader属性调整为Sprites/Default,并选择合适的色调;
  • 灌木的建模可以根据具体植物的形状选择方形或圆形等,在Blender中创建对应立体图形,添加发射体粒子系统,渲染为树叶平面,按照实际情况改变叶片的大小、方向等,最后将该立体图形材质设为透明;
  • 行道树的建模借助Blender自带的树干生成器,根据要求生成想要的树形,为其枝头部分添加权重后,添加毛发粒子系统,同样渲染为树叶平面,此时要将树叶对象的原点设在根部;在将顶点组的密度设为群组确保树叶出现位置正确,最后为树皮添加仿真材质。

五、参考资料

Blender不用装插件快速做树

【Blender】如何制作灌木丛

Unity图像边缘显示白边的解决办法

猜你喜欢

转载自blog.csdn.net/weixin_72722740/article/details/131054786
今日推荐