基础知识丨八猴烘焙知识的细枝末节2
connygpt 2024-11-18 10:40 12 浏览
Hello . 大家好
今天给大家翻译上次的八猴教程
我是charming
原文来自 Joe Wilson.
Object ID 物体ID
objectID会为每个材质(物体)烘焙一个独一无二的颜色
UV ID
UV ID 会为每个UV区块烘焙一个独一无二的颜色
Wireframe 线框
线框贴图输出低模线框图
Alpha
alpha烘焙高模中的孔洞结构信息
4材质
Albedo 反照图(无光影信息的颜色图)
albedo烘焙输出反照率贴图信息,对于高模上的简单的颜色或者纹理的烘焙十分有用。
Specular
specular反射烘焙输出高模的反射信息。
Gloss
Gloss烘焙输出高模的光泽度信息
Albedo (Metalness)
albedo 烘焙输出基于金属度工作流的高模材质细节。对比上面的specular流程就能发现亮色金属的albedo是纯黑,颜色由亮色specular决定,而这里的基于metalness的albedo直接决定了金属的色相信息。
Roughness
Roughness烘焙输出高模的粗糙度细节信息。
Metalness
金属度烘焙输出高模的金属度信息。如果你的材质没有金属度信息,金属度信息将自动生成,由一个金属度阈值设置来微调。
Vertex Color 顶点色
顶点色烘焙将会把顶点色或者Zbrush中的polypaint信息烘焙到低模贴图中。很多风格化角色创作都是这么做的。
Transparency
Transparency透明度烘焙输出高模中的透明信息。
Emissive
Emissive烘焙输出高模中的发光信息。
现在,你已经牢牢掌握了八猴中可以生成的内容类型,请转到下一节,以了解更多关于法线映射的基础知识以及如何对常见问题进行故障诊断。
4
烘焙基础
什么是烘焙?
烘焙是涉及将材质属性从源网格模型转移到目标网格模型的过程,通常,烘焙涉及将细节从高多边形(高分辨率)网格投射到低多边形(低分辨率)网格,但也可能意味着将细节从一个网格转移到具有不同拓扑或UV的另一个网格。要进行烘焙,您需要确保目标网格具有UV。但是,源网格不需要UV,除非它具有带有纹理贴图的材料,这些纹理将有助于烘焙。
烘焙通常用于从物体上捕获细节表面,否则模型面数资源消耗巨大而无法直接在游戏,电影或其他类型的视觉媒体中使用。
Toolbag 可以烘焙什么?
八猴可以烘焙一系列常见的图像贴图类型,例如法线,环境光遮挡,曲率,高度等。(上文介绍的各类贴图)
什么是法线贴图?
(我承认这张图没有前几天某篇推文封面图有趣啦)
简单来说,法线贴图是一种纹理,其中每个像素代表表面的法线或方向。法线贴图可用于模拟几何形状相对较少的网格的详细表面。要烘焙法线贴图,必须将高多边形网格的表面细节投影到低多边形网格上。
投射如何工作?
要烘焙纹理贴图,将高模的几何体投影(射线追踪)到低模上。将此可视化的最佳方法是,想象一台照相机看着高多边形并捕获法线贴图中每个像素的表面方向。为确保投影不会撞到错误的元素,必须设置cage或投影网格以限制投影的距离。对于每个像素,摄像机的角度由cage的法线方向设置。
什么是Cage?
Cage实际上是低模的副本,该副本向外扩展以包围高多边形。通常,cage最好延伸得足以覆盖高多边形的最高点。如果cage延伸得太远,可能会导致具有重叠或太尖锐转角的复杂网格问题。
Cage的种类
Cage有两种类型:平滑的和不平滑的。在Toolbag 3中,可以在Baker对象的Geometry设置中设置Cage类型。
在确定投影方向时,平滑(或平均)的Cage会忽略低多边形网格法线。保持Cage的平滑对于确保烘焙的结果是无缝的,在沿硬边的投影中没有缝隙时至关重要。建议将这种类型的Cage用于大多数情况。
不光滑的Cage使用低面多边形的垂直网格法线进行投影。这种方法会在硬边缘边界处产生缝隙或接缝,通常不建议这样做。这种方法的主要优点是可以减少细节偏差。但是,Toolbag的倾斜绘画工具可以轻松解决倾斜问题。
Tangent Basis切线基础
使用法线贴图进行渲染的大多数系统都使用切线空间,该切线空间是一个坐标系统,用于指定模型上每个点的曲面方向。切线空间由网格的每个顶点处的切线,双切线和法线向量定义。法线贴图包含与该空间内的XYZ坐标对应的RGB值。因此,切线空间矢量的精确方向在烘焙(创建法线贴图)和渲染(使用法线贴图)期间都至关重要。如果在每个步骤中使用不同的切线空间,则贴图中法线的方向将不再与原始模型的法向匹配,并且可能会导致严重的阴影瑕疵。
在不同的3D应用程序和游戏引擎中有多种切线空间法线贴图的实现。为确保正确着色美术资产,请记住使用渲染器使用的相切空间烘焙法线贴图。如果您不确定要使用哪个切线空间,那么Mikk / xNormal是一个不错的选择,因为Unity,Unreal引擎和其他各种应用程序都将使用它。
在八猴中烘焙时,将使用网格当前设置为的切线空间。使用网格属性中的“切线空间”下拉菜单来设置切线空间。您还可以通过转到“编辑”->“首选项”->“内容”->“默认切线空间”来设置默认切线空间(注意:此设置将应用于新导入的网格,而不是当前场景中的网格)。
如果您没有统一的烘焙工作流程,例如,如果您不知道渲染器使用的切线空间,或者不支持所需的切线空间,请确保在创建低模时就牢记这一点。通常,这意味着通过添加倒角命令或软硬边设置来确保阴烘焙效果不会有严重的问题。
完美法线
本部分包含提示和技巧,可以帮助您成为烘焙大师。学习了解高低多边形结构,uv和一些关键设置如何影响烘焙。
当baker将法线贴图的信息从高多边形投影到低多边形时,它只会看到方向的变化,而不是深度。因此,完全平行的面部将不会记录信息。为确保烘焙几何细节,可以使用坡度,斜角或两者相结合。
同样,元素从底面伸出的距离也不会改变最终的法线贴图。缩短螺栓等细节的深度可以使您创建具有更易于管理的偏移距离的Cage包裹框。
Floaters浮片模型
您可以在表面上制作浮片,以创建复杂的表面法线细节。这样可以节省时间,并使高多边形网格更容易使用。使用浮片的主要缺点是取决于距离(例如高度或位置)的输出可能不会产生理想的结果。
Detail Size细节尺寸
当涉及到精细的细节时,请务必牢记对象的大小,观察距离和纹理的分辨率。小于1个像素的细节将无法正确记录,因此,对于斜角和其他精细结构,最好保持一致的最小尺寸。另外,如果可以从远处看到模型,则最好放大斜角以及转折,以便能够被观察到。(小结构的倒角适度夸张)
除了确保您的细节被捕获之外,斜边还可以捕捉镜面反射高光,并且通常看起来不错。大多数现实世界中的对象都有圆角的边缘,不过您可能要根据对象的大小和预期的可视距离来放大斜角,以保持可读性。(圆角以及斜角&便于观察的倒角效果)
Hard Edges and UVs硬边和UV
使用硬边(或平滑组)时,重要的是要确保沿所有硬边边界分开UV区块。如果您使用坚硬的边缘但不拆分uv,则由于每个面都会尝试烘烤到坚硬的边缘线上,因此会出现接缝瑕疵。
尽管不必沿所有uv边界使用硬边,但这样做特别有益,尤其是对于硬表面资产。在UV接缝处使用硬边可以在低多边形上创建较少的极端平滑度,这意味着在应用到LOD网格物体时,在较低的分辨率或Mip贴图级别上,生成的烘焙效果更好。请密切注意上图的边缘细节:虽然同步的工作流程可以补偿极端的阴影,但是缺乏分辨率可能会导致沿低多边形的三角形边界产生错误。
Low Poly Size低模尺寸
确保低模的尺寸与高模的尺寸尽可能接近。如果您的低多边形太大或太小,则可能会发生投影错误。不必担心cage要完全覆盖高多边形和低多边形。
The Right Number Of Sides正确的边数
匹配高模的曲率很重要,虽然法线贴图可以轻松表示精细的细节,但它们不能更改轮廓。在曲面上使用适当数量的侧面可以减少波纹,并使您的资产总体上看起来更好。斜角可以在某种程度上帮助对抗波纹,但是增加边的数量往往更有效。
Cap The Gaps封口
高模上的孔洞可能会导致错误,因为baker无法投射无法被感知的表面。这里有两种解决方案,一种是封闭高模中的孔洞,这通常是在低模预算较低的情况下要采取的方法。另一种解决方案是更精确地匹配高多边形的形状,在这种情况下,也将对低模的孔洞结构进行建模。
Triangulation and X-Shaped Errors三角面化以及X形状错误
在将网格导入到Toolbag中之前,请确保对网格进行三角化处理。如果未对网格进行三角化处理,则在应用程序之间,四边形和多边形内部边缘可能会发生变化,从而导致三角面化不匹配,从而导致x形平滑错误。这本质上是切线空间不匹配的一种,因为边缘方向的变化会导致切线基数不同。
如果使用的是Maya,则可能要先锁定网格法线,因为网格法线会在三角面化时发生变化。
Banding, Bit Depth and Dithering带状&位数&抖动
带状瑕疵是由8位法线贴图的精度不足引起的。没有足够的颜色值来准确表示高多边形和低多边形表面之间的细微差别,这会导致阶梯状瑕疵。
抖动将消除条带伪像,但会损失一些添加到法线贴图的噪波。通常最好使用噪声,因为大多数表面都具有一定程度的纹理,因此默认情况下在Toolbag中启用此功能。您也可以烘焙16位法线贴图,这样可以使烘焙更平滑,但是许多渲染器需要8位法线贴图。如果烘焙16位贴图,则可能需要将其转换为8位颜色以生成最终纹理,这可能会导致抖动和噪点。但是,有些艺术家更喜欢使用16位,以避免这一类瑕疵。(游戏制作通常为8位)
- End -
相关推荐
- 自学Python,写一个挨打的游戏代码来初识While循环
-
自学Python的第11天。旋转~跳跃~,我~闭着眼!学完循环,沐浴着while的光芒,闲来无事和同事一起扯皮,我说:“编程语言好神奇,一个小小的循环,竟然在生活中也可以找到原理和例子”,同事也...
- 常用的 Python 工具与资源,你知道几个?
-
最近几年你会发现,越来越多的人开始学习Python,工欲善其事必先利其器,今天纬软小编就跟大家分享一些常用的Python工具与资源,记得收藏哦!不然下次就找不到我了。1、PycharmPychar...
- 一张思维导图概括Python的基本语法, 一周的学习成果都在里面了
-
一周总结不知不觉已经自学Python一周的时间了,这一周,从认识Python到安装Python,再到基本语法和基本数据类型,对于小白的我来说无比艰辛的,充满坎坷。最主要的是每天学习时间有限。只...
- 三日速成python?打工人,小心钱包,别当韭菜
-
随着人工智能的热度越来越高,许多非计算机专业的同学们也都纷纷投入到学习编程的道路上来。而Python,作为一种相对比较容易上手的语言,也越来越受欢迎。网络上各类网课层出不穷,各式广告令人眼花缭乱。某些...
- Python自动化软件测试怎么学?路线和方法都在这里了
-
Python自动化测试是指使用Python编程语言和相关工具,对软件系统进行自动化测试的过程。学习Python自动化测试需要掌握以下技术:Python编程语言:学习Python自动化测试需要先掌握Py...
- Python从放弃到入门:公众号历史文章爬取为例谈快速学习技能
-
这篇文章不谈江流所专研的营销与运营,而聊一聊技能学习之路,聊一聊Python这门最简单的编程语言该如何学习,我完成的第一个Python项目,将任意公众号的所有历史文章导出成PDF电子书。或许我这个Py...
- 【黑客必会】python学习计划
-
阅读Python文档从Python官方网站上下载并阅读Python最新版本的文档(中文版),这是学习Python的最好方式。对于每个新概念和想法,请尝试运行一些代码片段,并检查生成的输出。这将帮助您更...
- 公布了!2025CDA考试安排
-
CDA数据分析师报考流程数据分析师是指在不同行业中专门从事行业数据搜集、整理、分析依据数据作出行业研究评估的专业人员CDA证书分为1-3级,中英文双证就业面广,含金量高!!?报考条件:满18...
- 一文搞懂全排列、组合、子集问题(经典回溯递归)
-
原创公众号:【bigsai】头条号:程序员bigsai前言Hello,大家好,我是bigsai,longtimenosee!在刷题和面试过程中,我们经常遇到一些排列组合类的问题,而全排列、组合...
- 「西法带你学算法」一次搞定前缀和
-
我花了几天时间,从力扣中精选了五道相同思想的题目,来帮助大家解套,如果觉得文章对你有用,记得点赞分享,让我看到你的认可,有动力继续做下去。467.环绕字符串中唯一的子字符串[1](中等)795.区...
- 平均数的5种方法,你用过几种方法?
-
平均数,看似很简单的东西,其实里面包含着很多学问。今天,分享5种经常会用到的平均数方法。1.算术平均法用到最多的莫过于算术平均法,考试平均分、平均工资等等,都是用到这个。=AVERAGE(B2:B11...
- 【干货收藏】如何最简单、通俗地理解决策树分类算法?
-
决策树(Decisiontree)是基于已知各种情况(特征取值)的基础上,通过构建树型决策结构来进行分析的一种方式,是常用的有监督的分类算法。决策树算法是机器学习中的一种经典算法,它通过一系列的规则...
- 面试必备:回溯算法详解
-
我们刷leetcode的时候,经常会遇到回溯算法类型题目。回溯算法是五大基本算法之一,一般大厂也喜欢问。今天跟大家一起来学习回溯算法的套路,文章如果有不正确的地方,欢迎大家指出哈,感谢感谢~什么是回溯...
- 「机器学习」决策树——ID3、C4.5、CART(非常详细)
-
决策树是一个非常常见并且优秀的机器学习算法,它易于理解、可解释性强,其可作为分类算法,也可用于回归模型。本文将分三篇介绍决策树,第一篇介绍基本树(包括ID3、C4.5、CART),第二篇介绍Ran...
- 大话AI算法: 决策树
-
所谓的决策树算法,通俗的说就是建立一个树形的结构,通过这个结构去一层一层的筛选判断问题是否好坏的算法。比如判断一个西瓜是否好瓜,有20条西瓜的样本提供给你,让你根据这20条(通过机器学习)建立起...
- 一周热门
- 最近发表
- 标签列表
-
- kubectlsetimage (56)
- mysqlinsertoverwrite (53)
- addcolumn (54)
- helmpackage (54)
- varchar最长多少 (61)
- 类型断言 (53)
- protoc安装 (56)
- jdk20安装教程 (60)
- rpm2cpio (52)
- 控制台打印 (63)
- 401unauthorized (51)
- vuexstore (68)
- druiddatasource (60)
- 企业微信开发文档 (51)
- rendertexture (51)
- speedphp (52)
- gitcommit-am (68)
- bashecho (64)
- str_to_date函数 (58)
- yum下载包及依赖到本地 (72)
- jstree中文api文档 (59)
- mvnw文件 (58)
- rancher安装 (63)
- nginx开机自启 (53)
- .netcore教程 (53)