Quantcast
Channel: 最近的帖子
Viewing all articles
Browse latest Browse all 12

使用 Blender* 重新拓扑 VR 和游戏素材

$
0
0

retopolgized images

本文将介绍如何将网格重新拓扑成一个整洁的低密度模型,然后 UV 解包该网格,以便将纹理贴添加至新模型。本文还将探讨如何使用免费工具,比如 Blender* 及其 Bsurface 插件,重新拓扑雕塑的 3D 网格。

关于重新拓扑

重新拓扑指一种重新构建 3D 网格使其规模更小、设计更整洁、更便于使用的行为。重新拓扑看起来似乎只是 3D 创作人员的课间自习,但这一任务非常关键,且有利于灵活创作模型。大多数原始网格使用 3D 建模程序构建而成,经过了雕塑或扫描,可捕捉细节层以使模型变得美观。然而,同一细节会生成较大的文件,其读写操作和所需的内存对目标应用来说存在一定难度。而且大多数细节丰富的网格细节过多且不对称,生成网格动画时会产生大量奇怪或无用的折痕、折叠和移动。

high topology mesh and renderlow topology mesh and render

为避免出现这种情况,需要将网格重新拓扑成更基础、更实用的结构,然后将该 3D 结构的颜色、碰撞和折痕等详细数据传输至“合并”的2D 材质贴图。这样可减少 3D 网格顶点的数量,缩小文件规模,同时渲染效果保持不变。在上图中,原始网格的面数从 500,000 减至 2,000,但输出的外观相对一致。

开始前的准备工作:

  • PC:Mac* 或 Linux* 计算机;推荐使用英特尔® 酷睿™ i5 或英特尔® 酷睿™ i7 处理器
  • 启用 BSurface 插件的 Blender 3D(免费下载)

Blender* 和 BSurface

Blender 是一款免费、功能齐全的 3D 建模、渲染和动画工作室工具。借助这款强大的工具,你可以在 Blender 中创建简单的 3D 对象或生成全特性动画影片。为实现本文的目的,我们重点使用 Blender 的建模功能。如果之前用过 Blender,建议观看 入门视频学习如何设置 Blender 以获得比较理想的结果。

如需完成本教程中的任务,需要一个高拓扑 3D 网格。出于教学目的,我们使用 Blender 中的一个网格对象 — Suzanne 猴头模型。如需创建顶点数超过 500K 的高密度版模型,请执行以下步骤:

  1. AddMesh,然后选择 Suzanne
  2. Tools面板下方选择 Smooth
  3. Properties面板下方点击 wrench 图标以获取修饰符。
  4. 添加名为 Subdivision Surface的修饰符。
  5. Subdivision设为 5。
  6. 单击 Apply

使用 BSurface 重新拓扑

本视频介绍了以下重新拓扑步骤。

设置 BSurface

如需安装 BSurface,从 File菜单单击 User Preferences。选择 Add-Ons选项卡。搜索 “bsurf”。此时右侧将显示 BSurface 插件。启用该插件时,选中插件名称左侧的方框......此时 BSurface 应已安装并启用。

要想 BSurface 将右侧的顶点与原始模型对齐放置,必须在场景中的“对象模式”下加载和最初选择原始模型。然后创建重新拓扑、添加平面,这样就可以创建一个新的素材。前往 Edit 菜单,然后选择 Snap to Features

配置 BSurface 时,从 Tools菜单中选择 Grease Pencil选项卡。然后进行以下操作:

  • 选择继续。
  • Data Source下方选择 Object
  • Stroke Placement下方选择 Surface

surface button in the menu

你可能会发现,可以手动移动部分顶点、边缘或平面。要想这些条目同时贴住模型表面,请在编辑模式下选择以下选项:在 Snap下方选择 on,然后在 Snap Element下方选择 Face。最后,点击右下方的 4 个图标。

face button in the menu

现在您已准备好使用 BSurface。

创建第一个栅网

BSurface 可根据你在原始网格上绘制的一些线条自动创建网格。

  • 只需朝一个方向绘制几条平行线。BSurface 将根据这些线条创建一个交叉网格。不要绘制不同方向或交叉方向的线条。
  • Tools面板下方的 Tools选项卡中,可以看到 BSurface。单击 Add Surface按钮。

steps to add surface

  • 如果要调整创建的内容,可设置 Cross strokesFollow的数量(绘制的线条之间的线条)。此外,如果你想要 BSurface 忽略除第一条和最后一条之外的其他线条,可以清空 Loops on strokesFollow现在就是第一条和最后一条线之间的细分部分。

cross strokes example

创建径向网格

你通常需要一个围绕某个区域(比如眼睛或嘴巴)的网格。要创建这种类型的网格,只需从围绕的区域绘制均匀分布的射线。

radial mesh

单击 Add Surface,然后选择 Cycle Cross,以结束径向并设置所需的环形交叉的数量。

radial mesh example

和之前一样,可以清空 Loops on strokes以更均匀地设置细分。

角落填充

你会发现,通常网格两侧完成后,仍然需要填充两侧之间的网格。为此,可以选择两侧上的所有点。使用 SHIFT+ RIGHT+CLICK 取消选择角落的点,然后绘制缺失的一侧。在下列示例中,设置并选择顶部和右侧的边缘。按照网格点的弧线绘制底部边缘。单击 Add Surface进行填充。

corner fill

corner fill grid

连接网格

如需连接两个网格,请选择需要连接的所有点。请确保每侧所选择的点的数量相同。然后想象它们之间的一系列线条。绘制至少两条线,最后一条线在突显的顶点集上进行绘制。

connecting meshes

connecting meshes detail

现在你已经基本了解了快速重新拓扑模型所需的 BSurface。继续使用 BSurface 在高拓扑模型上创建完整的网格。

UV 解包和添加详细的纹理贴图

UV 解包是这一流程的关键组成部分,也是管道的一部分,可帮助你将高拓扑模型中丢失的细节上传到刚刚重新拓扑的模型上。

UV 解包是定义如何将 2D 图像映射在网格的所有顶点上的过程。可以想象一下地球模型,你有一个光滑的球体,并计划生成有关地球上包裹的所有特征的打印图像。对于包裹住地球的 2D 图像,你需要合理地裁剪图像,使其包裹住球体。这称之为地图投影。

texture map
图片来源维基百科:古德等面积投影的世界

对于 3D 建模,UV 解包模型支持你定义这种投影模式,从而了解如何将所有类型的 2D 信息映射到 3D 对象上。在地球示例中,你可以将信息合并成包含有关地球陆地或水的色彩、粗糙度/光泽度和高度信息的 2D 图像映射,然后使用 UV 贴图把它投影到球体上。

以下示例展示了如何 UV 映射 3D 外星人头部模型。左侧的图像称为色彩贴图,中间的图像称为法线贴图或凹凸贴图。两张图像都有在各自图像上进行扁平化处理的线框网格。这种扁平化网格模式就是 UV 贴图。

UV map

所需内容

在这部分教程中,你需要一个包含纹理细节的高多边形网格,可以是能用的文件,也可以是创建并用 Sculpt 添加纹理细节的高多边形对象。链接中的文件是雕刻了皱纹、线条和皮皱的猴子头部。

首先确保高多边形网格和重新拓扑或低多边形网格在同一空间中。使用属性面板中的转化选项将 X、Y 和 Z 轴设在同一位置。

本视频还介绍了需要执行的步骤。

第一步:标记接缝处

标记接缝处是一种选择过程,将网格裁剪或分解以使其成为扁平 2D 模式的 3D 模型。例如,衬衫或毛绒玩具等将 2D 材料缝在一起所形成的接缝处。而且你肯定不希望接缝处太多,也不希望接缝位于显眼的区域。将它们放在有大量曲面几何体以及使自然边缘看起来合理的地方。如果像我们一样合并纹理贴图,接缝处可能不会显示出来。但如果使用噪音或其他模式的程序化贴图,这些模式通常在接缝处断裂。

如果要标记接缝处,请选择“低多边形对象”,然后前往编辑模式。选择 Edge 选择工具,然后选择想要放置接缝处的位置。

marking seams example

  • 选择 Mesh Menu> Edge> Mark Seams。每一个想要标记的接缝处都要这样操作。

steps to follow

模型上的接缝显示为红色边缘。

red colored edges of seams

第二步:解包低多边形网格

这一步非常简单,包括解包模型,然后创建待映射的纹理文件。需要再次进入低多边形模型的编辑模式。选择所有选项,验证每个网格面是否都已选择。输入 “U”,以显示 Unwrap 菜单。选择菜单顶部的 UV Unwrap

对于待运行的 UV 贴图,你希望它能够为即将合并或渲染的纹理文件提供指南。创建新的视口窗口,将该视口设为 UV Image Editor。在视口中的 Image下方选择 New Image

red colored edges of seams

设置所需的分辨率选项,命名,然后保存。

steps to unwrap the low poly mesh

现在它将变成一张不包含任何内容的黑色图像。但是你可以从黑色图像上看到 UV 贴图。

steps to unwrap the low poly mesh

第三步:合并高多边形网格的法线贴图

在这一步,将高分辨率模型的纹理信息“合并”成一个称为法线贴图的 2D 图像文件。然后将这种纹理添加到低分辨率模型的材料上。第一步是确保你的低分辨率模型有包含纹理的材料。

选择低分辨率或重新拓扑模型。在 Properties面板中前往 Materials选项卡。如果没有材料,添加材料并选择 Nodes。(请确保 Blender 应用顶部的渲染设置设为 Cycles Render。)

cycles render

将其中一个视口设为 Node Editor,以打开 Node Editor。从菜单Add菜单选择 Texture,然后选择 Image Texture

steps to select image texture

添加完这些后,将文件设为你之前创建的 UV 图像的名称。同样将其设为 Non-Color data

steps to select non-color data

接下来需要选择合并设置。在 the Properties Panel下方选择 Render设置,它为摄像头图标。滚动到 Bake部分的底部并执行以下操作:

  • 对于 Bake Type,选择 Normal
  • 对于 Space,选择 Tangent
  • 选择 Selected To Active
  • Ray Distance设为至少 1.00。

bake section

接下来的部分可能难度较大。你需要选择两种模式,同时需要确保首先选择高分辨率版本,然后选择低分辨率版本。务必处于对象模式,而非编辑模式。

如果处于对象模式,使用 Asset Inventory面板验证高拓扑模型和低拓扑模型是否可见,而且名称右侧是否有眼睛图标。选择高拓扑模型,使其显示为白色。右击,然后点击 Select。应看到用金色部分选择的模型,名称出现在 3D 视口中。

bake section

现在按住 SHIFT 键,然后右击 3D 视口中的低多边形模型。这样操作后,低多边形模型的名称将显示为白色,3D 视口中出现低多边形模型的名称,而且选择颜色将从金色变成橘色。完成后,在 Render面板中单击 Bake

steps to select high topology

第四步:将法线贴图应用于模型

在这最后一步中,我们提取合并文件,将其连接至低多边形模型的材料。首先需要保存上一步的 Baked 渲染器。在视口中 UV 图像贴图的下方,首先验证保存的 UV 贴图的名称是否显示在文件浏览器中。图像应涂成蓝色/紫色,与下图类似。如果是编辑模式,左侧的图像显示的是法线贴图;如果是对象模式,右侧的图像显示的是合并图像。在 UV 贴图图像编辑器中,选择 Image Menu,然后单击 Save

texture ready to connect to the model

现在我们准备连接纹理和模型。

前往包含“纹理图像节点”的“节点编辑器”。将“纹理节点”连接至“法线贴图节点”。在 Add> Vector> Normal Map下方获取“法线贴图节点”。

image in normal map mode

将法线贴图模式连接至 Principled BSDF Shader 的法线插槽。现在,你应该能在低分辨率模型中看到高分辨率模型的所有细节。

image in normal map mode

现在你已完成用于游戏或 VR 软件的 3D 素材工作流的主要部分。除了模型的纹理法线信息外,还可以用其他创建真实皮肤、头发或其他材料(包括开裂的混凝土和带有刮痕的炮铜)的材料贴图制造纹理。如欲参考接下来的工作流,请使用 Substance Painter*和 Blender 等工具搜索 PBR 材料。


Viewing all articles
Browse latest Browse all 12

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>