尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Blender模型导出FBX到UE/Unity全流程:贴图丢失、材质变黑、法线翻转排查指南

发布时间:2026/9/18 1:30:22

资讯中心
01
ARTICLE

Blender模型导出FBX到UE/Unity全流程:贴图丢失、材质变黑、法线翻转排查指南

Blender模型导出FBX到UE/Unity全流程:贴图丢失、材质变黑、法线翻转排查指南
干建模这行的多少都经历过这种尴尬在Blender里模型和贴图配合得天衣无缝材质球上一个节点没多预览窗口里那叫一个漂亮。结果导出FBX丢给隔壁用UE的同事或者在Unity里自己预览一眼贴图要么黑屏要么颜色灰了一片要么模型整体变了形。特别是网上那些“按教程配置了shader还是不对”的情况十有八九不是引擎的问题而是导出那一环节有小动作没做干净。这篇就聊我实际操作的完整流程从Blender这边的贴图准备、FBX导出的每一个选项到UE和Unity各自的材质连接、颜色空间设置把真正踩过的坑、排查过的错误一次讲完。适合正在学建模、经常需要把资产从Blender搬运到UE/Unity的人参考不管你是美术还是程序照着做都能少走好几趟弯路。1. 开工前先搞懂Blender里的“贴图正常”到了引擎里为什么会变样1.1 材质节点在转换时被“翻译”掉了多少Blender里你看到的效果靠的是由Shader节点组成的材质树Principled BSDF连上基础色、粗糙度、法线、置换……这些节点在Blender内部实时计算所以你预览的时候看到的色彩、光影、凹凸都是节点计算的结果。但是FBX格式本身并不保存这些节点树它只保存了mesh数据和一张“基本信息表”。这句话是重点FBX是一个几何交换格式不是材质交换格式。FBX能记录的材质信息极其有限基本上只有几个固定的插槽比如Diffuse、Normal、Specular这些。你做得再复杂的节点网络导出时FBX都会“降维翻译”成简单的几个通道翻译不了的部分直接丢弃。这就是为什么你从Blender导出FBX再进引擎材质看起来跟Blender里完全两码事——不是引擎不行是格式的设计上限就在那。所以在准备导出之前先想一想你的贴图管线是怎么做的。如果你用的是PBR流程也就是基础色、金属度、粗糙度、法线、AO这些独立贴图那FBX导出时的损失相对很小因为PBR本身就是引擎友好的。如果你依赖的是Blender里的节点烘焙结果那就要考虑先把这些效果烘焙成贴图再导出FBX。这一点很多教程不会讲但恰恰是“进了引擎就变样”的根源之一。1.2 颜色空间sRGB与线性工作流的一场硬仗颜色空间是另一个巨大的暗坑。Blender默认的色彩管理是Filmic这一点和UE、Unity都不太一样。Filmic会把暗部细节提亮、高光压缩让你在Blender里看到的效果本身就带一层“调色滤镜”。一旦进入引擎引擎不会帮你套Filmic直接按原始数值显示看起来就偏灰或偏暗。另一个和颜色空间强相关的点是贴图自身的属性基础色贴图通常要当作sRGB来用但粗糙度、金属度、法线、AO这些数据贴图必须当作线性(linear)数据来用。这个区别在UE里体现得很明显导入贴图时如果没有把粗糙度贴图的sRGB勾掉画面会灰蒙蒙的金属感也完全不对。Unity里也有类似的设置。我在实际项目里就见过有人整张贴图全用默认sRGB结果金属表面像被水洗过一样。怎么检查在Blender里看贴图的色彩管理属性导入引擎后逐个检查贴图的sRGB开关。这是一项枯燥但必须做的工作偷懒的后果全部会在最终渲染里暴露。1.3 单位制毫米、米、厘米之间差了100倍单位问题平时不显眼一旦模型带物理尺寸进引擎就是大问题。Blender默认单位是米UE内部用的是厘米Unity默认也以米为逻辑单位但物理单位也是厘米。当你从Blender导出FBX时如果缩放的设置不对模型进UE可能变成原来的100倍或1/100。这不是危言耸听。FBX文件里本身包含一个Unit Scale的字段Blender导出的时候默认会写1.01米但很多同学在导出时勾选了“!Apply Transform”等选项导致的额外缩放或者反过来忘记勾选就会让模型比例乱掉。一个最简单的检查方法导出后在引擎里放一个标准CubeUE里Capsule或Cube的默认大小把模型和它放在一起对比一眼就能看出比例对不对。在Blender里可以先把场景单位设置成米制模型尺寸用实际米数来建导出FBX时确保缩放选项是“应用缩放”这样进UE的尺寸基本不会错。Unity那边也类似但要注意Unity的FBX导入默认会做单位换算在Import Settings里可以查看Scale Factor参数。这些看起来是小事但是后续所有问题的前提。材质对了但是尺寸错了等于一切白干尺寸对了材质错了还能一个个排查。经验和教训都告诉我先把单位搞对再谈贴图。2. FBX导出设置逐项拆解每勾选框背后是什么后果2.1 路径模式与纹理嵌入Blender导出FBX时“文件路径模式”这个下拉菜单是很多人忽略的第一道坎。默认情况下它是“自动”或“复制”很多人直接就点了导出结果引擎里模型有贴图却全部丢失。这里要解释一下这几种模式的区别自动Blender尝试按照原始路径找到贴图然后把这个路径写入FBX。复制把贴图文件复制到FBX旁边的texture文件夹里FBX本身并不包含贴图文件内容。嵌入纹理把贴图直接打包进FBX文件内部这个FBX就是一个完整的自包含文件。我的建议是如果是一次性交付给他人或者要上传到网盘分享直接选“复制”并把texture文件夹一起打包交付或者勾选“嵌入纹理”生成一个单文件FBX。如果你的团队用的是版本管理软件贴图单独管理也是可以的但路径模式最好还是选“复制”同时保留texture文件夹的相对路径不然换一台机器打开必丢贴图。另外一个必须注意的重点是FBX里嵌入纹理后文件体积会大幅膨胀。一张2048的贴图大约5-15MB如果一个FBX里嵌了五六张贴图文件就上百MB了。这在你频繁迭代的时候会拖慢工作效率。所以我个人的习惯是开发阶段用“复制”最后交付或上传时如果对方要求单文件再用“嵌入纹理”导一版。2.2 应用缩放与变换旋转和缩放的坑FBX导出面板里有一堆变换选项应用缩放、应用旋转、烘焙变换等。这些选项看起来深奥实际上是决定模型进引擎后“站得正不正、大不大”的关键。Blender里模型如果是在建模时旋转过整个物体比如你为了对齐视角把模型旋转了90度导出的时候不处理进到UE里模型就斜着。这种问题最常见的解法是在Blender里把模型CtrlA应用全部变换也就是把旋转、缩放、位置都清零再导出FBX。如果你不想在Blender里改动原始数据也可以依赖FBX导出面板的“应用缩放”和“!烘焙”选项但相比之下在Blender里先做一步应用变换更直观、更可靠。有一个典型的案例某个模型从Blender导出后进了Unity模型看起来小了一半怎么缩放都不对。最后检查发现Blender里模型缩放不是1.0而是0.5导出时又没有勾选应用缩放。Unity导入FBX时按原始缩放值读入于是size就不对了。处理方式很简单模型在Blender里建模完成后养成习惯检查Transform面板确认Scale是1Rotation是0Location不是乱七八糟的值。如果不是就先CtrlA应用再进行导出。2.3 网格与材质分离导出的取舍FBX导出面板还有一片区域管“对象类型”比如网格、相机、灯光、空物体等默认会勾选网格但新手容易把整个场景都导出去。如果你是只需要一个物件导出前先选中目标物体再在导出面板勾选“仅选中物体”。这时候物体相关的父子关系、空物体是否也要导出就要看你的实际需求了。像一些挂点、骨骼、碰撞体的空物体如果对方引擎里要用就得留如果只是静态网格别导那些空物体省得后期删除麻烦。材质分离则是指一个模型如果用了一个带多张贴图的材质或者用了多个材质槽导出的FBX里会包含多个材质槽信息。在UE里如果不同材质槽对应不同材质导入后会自动生成多个材质区段这很正常。但在Unity里如果你之后要按子网格分配碰撞体或LOD材质槽数量和顺序就要在Blender里提前规划好否则进Unity再拆会麻烦很多。3. UE导入篇从半透材质到法线反了的排查清单3.1 导入FBX后的纹理优先级UE导入FBX时如果FBX带了材质会自动创建以模型命名的材质资源。但要注意的是这个自动材质只是“引用”了贴图路径并不等于贴图完美匹配。很多时候导入后要手动打开材质球检查贴图有没有正确连到对应通道。这里有个经验法则FBX里记录的是贴图路径不是贴图内容。如果你在Blender导出时用“复制”模式但没有把texture文件夹一起拷到项目目录UE导入后材质球里的贴图引用就会是断的贴图显示为问号或直接黑掉。解决方式是把texture文件夹放进UE的项目Content目录里用相对路径引用或者干脆在Blender导出时用“嵌入纹理”让FBX自带贴图这样UE导入时会自动提取。3.2 法线贴图绿色通道翻转问题法线贴图在Blender里看着是对的进了UE就发现凹凸方向反了这是最经典的一个坑。根本原因是两种引擎对法线贴图绿色通道Y轴的解析方式不同。Blender的Cycles和默认视口用的是OpenGL法线贴图约定绿色通道向上。UE5里导入法线贴图时Texture的“Flip Green Channel”选项通常会自动处理这层兼容但如果你导入的是从其他软件烘焙出来的法线贴图或者某些法线贴图不是标准OpenGL格式就还是需要手动勾选或取消勾选Flip Green Channel来调整。如果发现模型表面出现奇怪的凹陷、凸起方向反了优先检查法线贴图的设置。根据我的经验不是每次都一定会反但反的概率很高尤其是从其他DCC软件烘焙出来的法线贴图交叉使用多了之后你就会形成条件反射进UE先看法线贴图的Flip Green Channel进Unity同样看法线设置这样能省掉80%的排查时间。3.3 UDIM与贴图分组UE是支持UDIM的这一点比Unity强不少。UDIM就是UV平铺把一个模型的UV拆成多个平铺格子每格对应一张贴图适合超大场景细节多的资产。在Blender里创建UDIM很简单展UV时启用多平铺并在Image Editor里新建UDIM贴图集。但导出到UE的时候需要注意FBX的UV数据本身支持多平铺但UE识别UDIM的方法是按贴图命名规范来匹配的比如文件名_1001.png、文件名_1002.png对应第一格、第二格。如果命名不规范UE无法自动按UDIM识别所有贴图会挤在一起模型贴图就糊成一片。如果你不想研究UDIM还一个更简单的做法把多张UDIM贴图在Blender里打包成一张图集(texture atlas)。但这需要你处理好缝隙不然接缝处会出现像素渗色。这个操作在Blender里可以用UV Pack Master之类的插件辅助但也有人工处理的说到底是一个精力和质量的取舍。3.4 半透明材质变黑的常见原因常见的场景导入一个带透明贴图的植物或面片到UE模型看起来是黑的只有边缘有半透明痕迹。这个问题一般出在两个地方一是贴图通道连接问题。UE的标准材质需要把透明贴图连接到“Opacity Mask”或“Opacity”通道并设置Blend Mode为Masked或Translucent。如果你只是把贴图连到了Base Color模型当然显示为不透明黑块。二是法线贴图方向问题同时引发的阴影错误。这个更隐晦法线贴图方向反了表面光线计算完全错乱某些角度看起来就黑漆漆一片。所以遇到“半透明变黑”先确认Blend Mode再检查法线方向按这个顺序排查就能定位到问题。4. Unity导入篇压缩格式与Shader的隐形规则4.1 Texture Import Settings三个最需要注意的选项Unity导入贴图的默认设置一般是“好用的默认值”但在实际项目里这三个选项必须逐一检查否则贴图显示和性能都会出问题。第一个是Max Size。Unity默认会限制单张贴图的最大尺寸比如默认2048如果你在Blender里做的贴图是4096Unity会默认缩小到2048画面细节直接降档。对非标贴图这个“缩小”通常是悄悄发生的不对比原图很难发现。第二个是Compression。默认是“Normal Quality”视觉上还行但对金属度和粗糙度这类数据贴图来说压缩造成的色阶断裂和细节丢失非常明显。我的习惯是基础色和AO可以用中档压缩法线、金属度、粗糙度尽量用“None”或最高质量尤其是近距离观察为主的项目。第三个是Generate Mip Maps。大多数贴图需要打开Mip Map避免远距离闪烁。但对于UI贴图、某些纯色纹理关掉Mip Map反而能省内存。而且如果贴图没有Alpha通道却开了Mip Map某些压缩格式下边缘会出现白色或黑色溢色这也是贴图“看着不对”的隐藏原因之一。4.2 内置渲染管线 vs URP的材质兼容Unity的渲染管线问题比UE复杂因为不是每个人用同样的管线和Shader。你从Blender导出的标准PBR贴图在built-in管线里用Standard Shader可能一切正常但切到URP后Standard Shader会被自动转换成URP的Lit Shader转换过程中有些参数可能丢失或改变。另一个常见坑Unity 2022之后默认模板很多是URP的如果你把贴图连接到一个Built-in材质球上材质球会显示粉红色(因为Unity找不到对应Shader)。这个粉红色是新手最容易慌的事情。处理方法很简单把素材拖到场景前先在Project窗口右键创建URP的Surface Shader或Lit材质不让引擎自动生成默认材质。本质上Unity是“材质驱动”的模型本身只是一堆网格数据最终显示效果全部依赖材质球和Shader的选择。从Blender导出的FBX一般不带任何Unity兼容的Shader设置所以进入Unity后你要重新创建材质球手动把贴图拖进对应通道。这也是为什么Unity项目的资产导入步骤比UE多一步的原因。4.3 金属度流程的标准连接方式既然从Blender导出的是PBR贴图到Unity后就应该用PBR材质来对接。金属度流程中贴图通道的连接方式如下Base Map → Base Map基础色Metallic金属度 → Metallic通道Roughness粗糙度 → Smoothness通道注意Unity用的是Smoothness不是Roughness所以通常需要反转Roughness1-RoughnessNormal → Normal Map通道Ambient OcclusionAO → 视情况连到Occlusion通道其中最大的坑就是Roughness到Smoothness的反转。很多人在Blender里做的是Roughness贴图到Unity里直接连到Smoothness结果物体看起来像敷了一层高光的蜡——因为刚好反了。另外在URP/HDRP里这个“反转”操作可以单独用贴图的Invert节点或者在材质球设置里翻转通道不一定非要在PS里先处理。UE里则是直接连Roughness不需要反转这一点和Unity正好相反。所以同样的贴图在两个引擎里的处理方式不一定是完全一样的。5. 一次实例复盘一张贴图从Blender到UE再到Unity的完整路径5.1 Blender侧的准备用一个简单场景举个例子我做了一个带基础色、法线、粗糙度和金属度贴图的木箱模型。在Blender里木箱UV展好贴图命名规范box_base_color、box_normal、box_roughness、box_metallic材质节点连接方式按PBR标准。导出前我把模型变换应用掉了单位设成米制尺寸设置为1x1x1米。这一步的经验是命名规范很关键。你导出的贴图名称会在引擎里被自动识别和引用如果你的Blender文件里材质名乱写比如Material.001、Texture.003进引擎后所有贴图都会堆在一起找起来相当痛苦。在Blender里提前把材质名改成资产名把贴图节点名也改成资产名后面能省大量时间。5.2 FBX导出参数实测在Blender里选中木箱文件-导出-FBX。导出面板的关键设置路径模式复制同时textures文件夹会和FBX一起交付空间变换应用缩放对象类型仅勾选网格自定义属性不勾选除非必要时用应用修饰符勾选如果你有细分修改器没导出前就白做了烘焙动画不勾选静态资产用不上导出后再检查一下texture文件夹确认四张贴图和FBX在同一目录层级下。这一步检查了后面引擎导入就能少很多问题。5.3 两边引擎的导入差异对比用同一个FBX导入UE和Unity我总结过一个对照项目UEUnity单位换算导入后按cm读入通常自动正确需要检查Scale Factor确认模型尺寸贴图连接导入时自动创建材质贴图引用按相对路径需要手动创建材质球逐通道连接贴图法线贴图检查Flip Green Channel检查Generate Mip Maps和Normal Map设置粗糙度直接连Roughness通道反转后连Smoothness透明Blend Mode要设为Masked/Translucent材质Shader要选带Cutout/Transparent的这个表我建议直接收藏每次交接资产前对着检查一遍可以挡住大部分低级错误。多引擎间搬运资产做多了之后你会有一种直觉先看格式再看管道最后才看画面细节。逻辑是“格式对了才谈得上显示效果”很多问题是格式层面的。做这一行久了你会发现Blender导出模型到UE/Unity这件事真正难的不是哪一步操作而是两套引擎的“世界观”差异。Blender是通用DCCUE和Unity各有自己的渲染管线和材质体系想要一次导出让两边都满意关键是建立一套稳定的“资产规范”贴图命名、尺寸、颜色空间、FBX导出参数固化下来形成检查清单能省掉后面90%的返工。我个人实操中最大的体会是永远不要在贴图丢失或颜色不对的时候急着改引擎设置先回头检查FBX和贴图文件本身。大部分问题的根源都在导出侧而不是引擎侧。先保证数据完整、路径正确、颜色空间正确再谈调色和效果。希望这篇从踩坑里攒出来的经验能帮你把这条管线跑顺。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。