问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Unity 3D, Blender 与Low-poly 建模的简单流程

创作时间:
作者:
@小白创作中心

Unity 3D, Blender 与Low-poly 建模的简单流程

引用
CSDN
1.
https://blog.csdn.net/m0_73087695/article/details/136332210

本文将详细介绍使用Blender进行Low-poly建模并导入Unity 3D的完整流程。从建模、着色到最终的调整,每个步骤都将得到详尽的阐述。

前言

本文记录了通过Blender建模Low-poly模型并导入Unity 3D使用的简单流程。总结自一些相关学习经验,并不代表专业,商业项目中的确切流程。必须指出这不是教学文章,不会有CG基础知识,建模教学,着色教学之类的(因为我也不是很明白)。只是记录了一个基本工作流。

Unity版本:Unity 2022.3.14f1c1
Blender版本:Blender 4.0

流程

分为四个环节:建模,着色,导入,调整。

1.建模

即使用建模软件建模,这里当然是开源免费的Blender。至于Low-Poly相关的建模流程细节可以参考以下视频,这里不详细介绍建模细节。

下面是油管原址:
https://www.youtube.com/watch?v=1jHUY3qoBu8
https://www.youtube.com/watch?v=1jHUY3qoBu8

懒得翻墙可以看B站搬运:
https://www.bilibili.com/video/BV1HK4y1N7tV?vd_source=1f82fa35bcae900f43192b90412af5f7
https://www.bilibili.com/video/BV1HK4y1N7tV?vd_source=1f82fa35bcae900f43192b90412af5f7

2.着色

准备单张或几张色卡,通过调整模型的UV到对应颜色上,从而实现不同部分有不同色彩。而且导入Unity时只用导入那些用到的色卡就行了,不需要其他纹理或贴图。

如下:展开每个面的UV并将它们依依按照想要的颜色拖入对应色卡。可以通过调整大小让所选面呈现纯色。

也就是说这样制作的模型不具有复杂的纹理,只具有许多的“色块”,不过对于Low-Poly这种风格的建模反而形成一种特殊美感。具体细节也可以通过上面“建模”部分的视频链接学习,里面也有相关操作。

这种色卡可以提供非常多颜色,而且非常容易制作,不论是网上找还是自己用PS做。它们还非常小,一般一个颜色只用一个像素,比如上图这张色卡仅有12×12个像素,8KB,占用空间非常非常小。另外一提,当你把这种非常小的色卡导入Unity时,千万不要压缩,否则像这种小文件很容易被压缩算法搞变形,导致UV和原来的颜色对不上,就会出现纹理错误。这种色卡本质上也算是一种纹理,纯色纹理,非常共用性的纯色纹理。

下面是《为了吾王》(For the King) 的画面展示,这就是典型的Low-Poly风格。

自己尝试了两种针对blender建模Low-Poly的着色方式:

1.直接在blender上用材质着色。在blender中创建很多材质,为不同面指定不同材质。并不推荐这种方法,因为这样会创造出很多材质,想象一下当我们想精细着色物体是,对每个面都指定不同的材质,而且物体有几千个面,就得生成几千个材质,坏处也是不言而喻。而且在同一个物体(网格)上的不同面指定不同材质会生成子网格(submesh),子网格与材质一一对应,在Unity中查看导入的fbx文件,找到其中的网格资源,可以在inspector中查看子网格和其他信息。

这是Unity中的网格基础:也是很重要的内容,有意向翻译过来。
https://catlikecoding.com/unity/tutorials/mesh-basics/
https://catlikecoding.com/unity/tutorials/mesh-basics/

2.纹理着色。这应该也是一般3D建模用的方式,即指定一张纹理图作为材质的基础色(在blender中的叫法)。纹理上已经包含了许多颜色信息,只需要调整好网格对应的UV图。这样物体可以只有一个材质但有许多颜色。

第一种方法应该是不会有人使用的,虽然上限很高但是确实太吃性能了(想象一下一个模型的每个面都有一个材质需要处理),不过我觉得只要规划合理应该也能行,比如绝大部分材质都是能公用的,比如”木头材质“”钢铁材质“等等,倘若”左脚的材质“”右脚的材质“这样来制定材质就很浪费了。

因为材质算是图像属性的集合体,自然也包括纹理,贴图(如法线贴图)等等,材质跟纹理就像“你中有我,我中有你”般关系。所以也许不把两种方式分开才合理一点。

3.导入

即导入Unity,先选定想要导出的模型,一般需要做到确保坐标归0,确保旋转归0,确保缩放归1,确保在Unity中模型面朝Z正方向等等,然后导出导入即可。

可以将整个blender文件直接导入Unity,但是这样也会导入一些可能不需要的数据,比如blender中用到的灯光和摄像机。所以应该按需导入,比如我只想导出一个模型(fbx),现在场景集合窗口选中,“文件”->“导出”->“FBX”,在导出设置的“包括”中设置要精确导出的物体,一般是选“选中”的物体。

通过直接在blender修改,再重新导入进Unity并覆盖之前那个文件,所以一定要同名,然后能直接看到场景中发生对应变化。

如: Unity场景中已经有一个车物体,对应车.fbx,为了能方便修改并直接验证可以直接在blender中修改,然后直接覆盖Unity项目中的同名fbx文件。最后可以直接在场景中看到对应变化。

Unity是左手坐标系,Blender是右手坐标系。

导入导出时应注意尽量让物体在Unity中面朝Z轴正方向,因为Z轴正方向在Unity中被定义为"Forward"。具体情况可能根据需求而改变,具体的导入导出设置也应该根据实际情况确定。

同样的导出前应尽量在blender中维持归零坐标,旋转和单位化缩放。具体来说就是通过物体的“清空”和“应用”操作实现。“清空”类似于回到默认(如果是位移旋转则归0,如果是缩放则归1),而“应用”类似于叠加后回到默认,比如缩放1.2,应用后缩放变回了1,但1.2的缩放切实作用到了物体上。

4.调整

即在Unity中根据实际需要再次调整模型细节,因为在Blender中看到的模型和在Unity中看到的模型是不太一样的(一般是色彩,自身坐标系等),这些有很多因素的影响,如色彩空间。

Unity内置两种色彩空间,我们在blender着色时也会指定色彩空间,但是blender的色彩空间不一定能与Unity一模一样。所以在blender中为物体着色后导入Unity中的物体并不一定和我们在blender中的颜色一样。除此之外还有很多因素可能影响色彩变化,包括Unity内置的渲染管线等等。

所以很多情况下,我们需要根据物体在Unity中的实际表现情况来再次编辑。或者直接省略在blender中进行材质编辑,只编辑UV以确定纹理,在随后的Unity中再新建材质编辑也是可以的(不怎么推荐,因为这样在blender中不能直接观察变化)。

可以把Unity理解成一个功能较差的建模软件,而blender作为功能较强的建模软件,有些东西导入Unity之后必然不能兼容。所以我们要根据Unity中的实际情况再次进行编辑。

Unity内置管线升级URP之色彩空间(伽马、sRGB、Gamma Space和Linear Space)_unity 新版本色彩空间-CSDN博客
https://blog.csdn.net/CrisFu/article/details/121788421

色彩空间(一):色彩空间基础 - 知乎大家好,我是练习时长五年半的设计练习生 章萧醇,喜欢 复制、粘贴、⌘Z、Delete… 在群里和小伙伴们交流的过程中,发现很多设计师对 “色彩空间” 或者 “色彩管理” 这样的概念还是比较模糊的,于是我重新查阅整…
https://zhuanlan.zhihu.com/p/120219636Unity内置色彩空间Gamma表现:

Unity内置色彩空间Linear表现:

这里就不得不说一个将模型导入Unity后最可能会遇到的问题了:

导入的fbx模型有部分面不显示。如图:

一开始我以为是面因为没有实体变透明了,结果其实是因为面的法线方向出了问题,导致Unity把那个面视作背面,Unity不会渲染背面,所以在场景中就直接消失了。

解决方法:

在blender编辑窗口中找到视图叠加层(右上角),勾选“几何数据”中的“面朝向”,就可以看到面的朝向信息(法线方向信息),如图:

蓝色视为正面,红色视为背面,背面不会被Unity渲染。

先选中要修改的面,在编辑窗口的左上角“网格”->“法向”->“翻转”可以反转面;或者快捷键"shift + N"重新计算法向。

其实最好的解决方法是在导入Unity前就做好相关检查。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号