统一显示顶点绘制颜色的模型

Showing a model with vertex painted colours in unity

我正在尝试将模型从显示顶点颜色的搅拌机导入到 unity 中。我有一个着色器(显示顶点颜色),我已将其应用于模型但仍然只是纯白色。 我知道着色器可以工作,因为我设法让它在另一个 blender 模型上工作,但是我只是不知道 blender 文件中使用了哪些设置。

这是我目前的做法: 我在 MagicaVoxel 中创建了一个模型并进行了着色。然后我将其导出为 .obj 文件。 然后我将其导入搅拌机。如果我切换到 "texture" 模式,我可以看到模型上的所有顶点颜色。 我将这个搅拌机文件保存为 "xxx.blend".

然后在 Unity 中,我将 .blend 文件拖过来,它会导入模型。我将 material 和顶点着色器应用于舞台上的模型。

模型应该开始显示顶点绘制颜色,但它没有。只是保持白色。

有没有人有什么想法?

干杯

我设法找到了一种在 Unity 中显示顶点颜色的方法。

我需要将纹理烘焙成顶点颜色,为此,在搅拌机中选择对象,选中材质下的 "vertex color paint" 框。 (如果不想在最后烘烤时有任何阴影,可以勾选Shadeless)

然后切换到"vertex paint"模式(从对象模式)然后在烘焙下的属性中,勾选"bake to vertex colour",烘焙模式是"textures",然后点击烘焙。

将blend文件导入Unity并应用顶点着色器查看。

对于正在寻找一种在 Blender 中使用顶点颜色并无需任何烘焙即可导入 Unity 的方法的其他用户:

  1. select 编辑模式下的一个面(或顶点或所有面)
  2. 切换到顶点绘制模式 (ctrl+tab)
  3. 点击白色方形图标 在 window 左上角的“顶点绘制”下拉菜单旁边 (“PaintMak”)
  4. ctrl + K 为其所有顶点着色,或者简单地 select 颜色选择器在多个位置可用并涂漆 顶点(windows 的顶部,使用 N-> 活动工具,selecting 和 在右侧属性区域“螺丝刀和英文钥匙”图标=活动 工具和工作区设置)。重要提示:你必须在顶点上绘画,在脸上绘画是行不通的。
  5. 对象 material 需要其“基础颜色”输入作为顶点颜色节点的输出,因此在着色器编辑器中创建此连接。
  6. 将 blender 文件保存到 Unity 项目文件夹或导出到 FBX
  7. 要在 object/edit 模式下显示颜色,请将视口着色切换到顶点(参见屏幕截图)
  8. 在 Unity 上创建一个 material 带有自定义着色器图,并将“顶点颜色”节点的输出固定到“基色”主节点。

注意:当使用顶点颜色时,Blender 会在“对象数据属性”(十进制三角形图标)中创建一个“Col”数据字段。