首页
学习
活动
专区
圈层
工具
发布

基础渲染系列(九)——复合材质

这使我们无法创建实际上代表不同材质混合的复杂材质。例如,这是计算机电路版的反照率图和法线图。 ? ? (电路的反照率图和法线图) 绿色部分构成电路板的底部,而蓝色部分代表光线。这些是非金属的。...(使用未压缩的法线贴图) 3.2 将平滑度与反照率相结合 当你同时需要将金属贴图和平滑贴图组合为单个纹理时,这很好。金属零件几乎总是比其他零件光滑。...对于不需要金属贴图的不透明材质,可以将平滑度存储在反照率贴图的Alpha通道中。由于这种做法很常见,因此标准着色器支持金属贴图或反照率贴图中的填充平滑度。我们也支持这一点。...如果我们最终得到一个不使用贴图的变体,则编译器将使用1来优化乘法。 ? 3.6 岩浆材质 以下是反照率和法线贴图的示例,它们对冷却的岩浆产生了失真现象。该材质不是金属,但具有不同的平滑度。...因此,平滑度值存储在反照率图的Alpha通道中。 ? ? (反照率带有平滑度,法线正常) 使用albedo source选项为平滑度创建带有这些贴图的材质。 ?

4.5K10

Unity通用渲染管线(URP)系列(八)——复杂的贴图(Masks, Details, and Normals)

1.1 反照率 材质的基础是其反照率贴图。它由几层不同的绿色组成,在上面有一些金色。除了一些棕色污渍之外,每个颜色区域是统一的,这会让区分随后添加的细节变得更加容易。 ?...该贴图称为遮罩贴图,其各个通道遮盖了不同的着色器属性。我们使用与Unity的HDRP相同的格式,后者是MODS映射。此代表金属,遮挡,细节和平滑度,以该顺序存储在RGBA通道中。...在GetMetallic中执行此操作,通过乘法使用遮罩贴图的R通道计算其结果。 ? ? (只有金色的电路是金属) 金属贴图通常是二进制的。在我们的案例中,金色电路是全金属的,而绿色电路板不是。...(法线贴图) 该贴图遵循标准的切线空间法线贴图的约定,即将上轴(在这种情况下称为Z)存储在B通道中,而右XY轴和前XY轴则存储在RG中。...XY存储在RG或AG中,具体取决于纹理格式。这将改变纹理的外观,但是Unity编辑器仅显示原始贴图的预览和缩略图。 法线贴图是否更改取决于目标平台。

5.5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基础渲染系列(十)——更复杂的复合材质

    就像金属贴图一样,使着色器功能仅在设置遮挡贴图时才对其进行采样。仅将功能添加到基本通道中,因此不必担心会出现其他灯光影响。 ?...2 细节遮罩 现在的电路材质缺乏一些细节。让我们完善这部分。下面是带细节的反照率图和法线图。 ? ? (细节反照率和法线贴图) 然后导入,并将纹理设置为淡出mipmap。分配纹理并使用全强度法线。...不必总是将反照率与细节相乘,而是基于蒙版在未修改和修改后的反照率之间进行插值。就像所有其他属性一样,将反照率的检索放入其自身的函数中。 ? 2.3 法线细节 还需要对法线向量进行相同的调整。...将这些功能添加到我们的着色器中吧。先保持简单并独立切换每个贴图。首先,根据细节反照率贴图的存在设置一个关键字。 ? 接下来,基于主法线图的关键字。 ? 与细节法线贴图相似。 ?...由于着色器编译器的优化,我们可以通过两次定义检查来完成此操作。 ? 那反照率图和颜色呢? Unity的标准着色器假定始终存在一个反照率贴图,因此不为其保留关键字。

    3.2K30

    基础渲染系列(十六)——静态光照

    对于导入的网格,你可以提供自己的坐标,或者让Unity为你生成它们。烘焙后,可以在光照贴图中看到纹理展开。它们需要多少空间取决于场景中对象的大小和光照贴图分辨率设置。...因此,将所需的变量和函数从“My Lighting”复制到“My Lightmapping”。为此,我们仅需要顶点位置和uv坐标。不使用法线和切线,但是需要顶点着色器中的光照贴图坐标。 ?...unity_MetaFragmentControl变量包含一些标志,这些标志告诉函数是输出反照率颜色还是自发光颜色。也有用于编辑器可视化变体的代码,但我将其删除了,因为它与此处无关。 ? ?...(粗糙的绿色金属 标准 VS 我们的着色器) 这个想法是,非常粗糙的金属应该产生比我们目前的计算结果更多的间接光。标准着色器通过将部分镜面反射颜色添加到反照率来对此进行补偿。...转换值为1减去平滑度值的平方。从平滑度到粗糙度的平方映射最终会产生比线性转换更好的结果。 ? ? (调整了反照率) 4 定向光照贴图 光照贴图器仅使用几何图形的顶点数据,不考虑法线贴图。

    4.6K20

    进阶渲染系列(七)——三向贴图(任意表面纹理化)【进阶篇完结】

    那就是反照率,发射率,法线,alpha,金属,遮挡和平滑度。 ? 将其放在单独的文件中,因此其他代码可以在包含任何其他文件之前使用它。...3 其他表面属性 除反照率外,还有更多可以存储在贴图中的表面属性。例如,对于我们的电路材质,还具有金属贴图,遮挡贴图,平滑度和法线贴图。让我们也支持这些。 ?...可以通过在单个贴图中存储多个表面特性来做到这一点。我们已经为电路材质创建了这样的贴图,在R通道中存储金属,在G中存储遮挡,在A中存储平滑度。因此,这就是“金属-遮挡-平滑度”贴图或MOS贴图。...将其支持添加到除阴影通道之外的所有通道中。 ? 将这些额外的映射添加到我们的着色器GUI。使用顶部反照率贴图需要确定是否设置了关键字。 ?...7.3 三向光贴图 剩下要做的就是声明我们的三向着色器在其元通道中需要的法线和位置数据。完成后,照明再次恢复,反照率将正确显示在场景视图中。 ? ?

    3.2K30

    基础渲染系列(六)——凹凸

    这正是我们想要的,但是需要将“Bumpiness”更改为更低的值,例如0.05。 ? ? (从高度图中生成法线图) 应用导入设置后,Unity将计算法线贴图。...这是因为法线贴图最常见的约定是将向上方向存储在Z分量中。从Unity的角度来看,Y和Z坐标被交换。 2.1 采样法线贴图 因为法线贴图与高度图完全不同,所以请相应地重命名shader属性。 ?...2.4 结合反照率和凹凸 现在我们有了功能性的法线贴图,你可以检查它带来的差异。仅使用大理石反照率纹理时,我们的四边形看起来就像是完美抛光的石头。添加法线贴图之后,它会变得更加有意思。 ? ?...首先,还向My First Lighting Shader添加对细节反照率的支持。 ? ? (现在增加了反照率贴图) 无需为细节UV添加插值器,而是将主UV和细节UV手动打包到一个插值器中。...法线贴图包含相同类型的法线,除了它们的Y和Z分量已互换。所以它们的形式是 ? 但是,这些法线已通过标准化过程进行了缩放。所以我们从 ? 开始。

    4.9K40

    ISUX译文 | The PBR Guide基于物理的渲染指引(下)

    金属贴图中并没有包含直接被材质引用的真实世界的数据(如反照率颜色、反射值等),它只是比较简单地对着色器描述Base Color中的哪个区域应该被解析成反照率颜色(非导体),哪个区域应该被描述成金属的反射值...漫反射贴图中的颜色表示的是非金属的反照率颜色,而纯黑(0.0)代表的是原始金属。 2. Base Color除了微观遮蔽(Micro-occlusion)外不应该带有其他光照信息。 3....·制图指引 和AO贴图一样,高度贴图在SP和SD中既可以从一个模型里烘焙出来,也可以利用内置的烘焙工具从法线贴图里进行转换。在SD中可以使用节点从法线贴图里转换出高度贴图(图47)。...它同时支持M/R工作流与S/G工作流,并且为原始金属材质提供了通用的预设。如果你需要创建非金属材质,SD也允许用户对反照率颜色(Albedo)进行设置。...你可以在对应通道里使用贴图并查看其效果,如Base Color、法线或者高度贴图。

    1.9K20

    基础渲染系列(四)——光照(Unity)

    本文重点内容: 1、法线从物体空间转化为世界空间 2、让方向光生效 3、计算漫反射和镜面反射 4、加强节能 5、金属材质工作流 6、利用Unity的PBS算法 这是关于渲染的系列教程的第四部分。...除了动态批处理之外,Unity还可以执行静态批处理。和动态批处理不同的是,静态批处理是在构建时候发生的,同样它也涉及到世界空间的转换。 ?...(带有反照率的漫反射着色器,gamma空间和linear空间) 3 镜面着色 除了漫反射之外,还还有一种叫镜面反射。当光线撞击表面后没有发生扩散时,就会发生这种情况。...通常,应将其设置为0或1,因为某物如果不是金属。就用介于两者之间的值表示混合金属和非金属成分的材质。 ? ? (金属度滑块) 现在,我们可以从反照率和金属特性中得出镜面反射色。...稍后我们将介绍间接光,因此暂时将这些颜色设置为黑色。 ? ? ? ? ? (非金属和金属分别在gamma和线性空间) 下一节,介绍多灯光。

    3.4K20

    基础渲染系列(八)——反射

    在CreateIndirectLight函数中,我们配置了Unity的UnityIndirect结构。而之前,我们把它的镜面反射分量设置为零。这就是为什么球体变成黑色的原因!...2.2 凹凸镜 除了使用平滑度表示较粗糙的镜像外,你当然还可以使用法线贴图添加较大的变形。当我们使用失真的法线来确定反射方向时,这是可行的。 ? ? ?...并且有许多材质是金属和非金属成分的混合。你可以通过将Metallic滑块设置在0到1之间的某个位置来模拟这一点。 ?...Unity为我们计算此值,并将插值器存储在unity_SpecCube0_BoxMin的第四个坐标中。如果仅使用第一个探针,则将其设置为1;如果存在混合,则将其设置为较低的值。 ?...结果,来自地板反射镜的初始反射现在包含在环境贴图中。 Unity最多支持五次弹跳。这需要大量渲染,因此你绝对不想在运行时使用它!要查看实际效果,请复制地板镜并将其变成天花板镜。 ?

    5.3K30

    基础渲染系列(十三)——延迟着色

    渲染路径和其他一些设置分为三个层级。这些层级对应于不同类别的GPU。GPU越好,Unity使用的层级就越高。...让基本通道将它们存储在缓冲区中。然后,附加通道可以重复使用该数据,从而消除了重复工作。我们必须按片段存储此数据,因此我们需要一个适合显示的缓冲区,就像深度缓冲区和帧缓冲区一样。 ?...(白色的法线) Unity检测到我们的着色器具有延迟的pass,因此它包含在延迟阶段使用我们的着色器的不透明对象和剪切对象。当然,透明对象仍将在透明阶段渲染。...反照率存储在RGB通道中,遮挡存储在A通道中。我们知道此时的反照率颜色,并且可以使用GetOcclusion访问遮挡值。 ? ? ?...A通道只有2位-因此总数又是32位,但它未使用,因此我们将其设置为1。法线的编码方式类似于常规法线贴图。 ? ? (法线) 2.5 Buffer 3 最终的G缓冲区用于累积场景的光照。

    4K20

    Unity基础(4)-资源管理知识(1)

    Scripts 文件夹下面一般根据功能划分,辅助类Utils/ 管理UI/ 管理角色Role/ 2、Unity资源下的材质 1:材质 材质是指某个表面的最基础的材料,如木质、塑料、金属或者玻璃等,用于渲染的纹理就是材质...3:关于Unity的图片格式:Texture Type 法线贴图 (Normal maps) :灰度图,可以用作对象的高度图,呈现凹凸的表面。...法线贴图用于法线贴图着色器,使低多边形模型看起来有更多的细节。这也是低模展示高模细节的一种手段 ? 法线贴图 EditorGUI and legacy GUI : 编辑GUI和传统的GUI ?...类似的,天空盒(Skybox )如何在背景显示遥远的风景。内置的反射(Reflective )着色器在Unity使用立方图(Cubemap),以显示反射。 ? Cubemap ?...Cursor:设置2D贴图作为光标的选项.设置一个2D贴图作为光标,唯一需要做的就是调用静态的Cursor.SetCursor方法并且将贴图作为第一个参数传递进去。

    3.1K20

    ISUX译文 | The PBR Guide 基于物理的渲染指引(上)

    光线在这类介质中穿透得越远,它则被散射或/且被散射得越多。因此,物质的厚度在光的散射和吸收中是一个重要的因素。厚度贴图可以用作描述物体的厚度,并且能被用于着色器进行渲染。...对比起金属,他们会反射更少的光并且拥有反照率颜色(*Albedo Color,需要注意的是Diffuse、Albedo、Base Color是在不同工作流的名称,它们作为贴图时所携带的RGB属性有着相似的适用原则...这些值的转换回线性空间大概是0.017-0.067之间(40-75 sRGB)。除了部分比较特殊的非金属材质(如宝石)之外,绝大多是非导体材质的F0值都不会超过4%。...同样,在Substance Integration插件中使用Substance材质时,输出结果已经根据贴图的色彩空间(线性或sRGB)、以及所在程序的色彩管理设置进行自动转换。...当贴图仅用于记录材质的属性数值(如粗糙度、发光度、高度、法线等),则该贴图在整个流程中都应该被解析为Linear空间。

    2.3K20

    unity vr虚拟现实完全自学教程 pdf_ug80完全自学手册pdf

    network(网络 ):用于设置游戏相关的网络属性; UI(界面):和UI相关的组件; AR(增强现实):增强现实相关的组件。 除了以上组件,还有很多,这里只是一些常用的组件。...unity中的标准着色器: Standard Sharder:用来处理大多数真实世界中的材质,如石头、玻璃等还可以用来处理皮肤,毛发; 了解着色器的相关渲染设置: 1.Opaque:默认的设置,适合渲染不透明的物体...制作法线贴图 制作法线贴图需要使用贴图烘焙技术,根据低模和原始模型提供的数据获得,除建模软件自带的烘焙功能外,还有专门针对烘焙的软件工具,如xNormal。...金属贴图(Metallic Map):金属贴图用于定义材质的哪些区域是金属的,哪些区域是非金属的,该贴图提供非0即1的数据,以灰度图形式提供给PBR材质。...作为导出到Unity中的光滑度贴图,一般附着在色彩或金属贴图中,以Alpha通道的形式提供信息,在标准材质中可选择该数据的来源。

    5.1K20

    VR开发-模型人员与模型的要求

    ,能量守恒定律 基于物理渲染的优点:很容易就可以作出真实和照片级的效果。...接口简单而直观,都 是基于世界真实的参数。(如粗糙度,金属度,等等)。不需要美术 去提供经验性的"奇怪"参数和配置。 更容易去解决问题和扩展需求。...Substance Painter工具 这个工具能够提供高品质的物理材质 PBR与传统贴图方式 目前基于Unity的传统方式,某一时刻某一光照条件下的烘焙贴图 PBR材质与传统的贴图技术相比,适应各种光照条件并保持高品质...高模与地模的关系 高模: High Res Models 面数较大,效果真实 低模:Low Res Models 面数较少,效果差 如何在不影响效果的情况下,包含更多的细节。...即地模展现高模细节 法线贴图:(Normalmap)就是其中一种。

    81830

    基础渲染系列(二十)——视差(基础篇完结)

    1.1 测试场景 下面是反照率图和法线图,它们暗含了许多高度差异。 ? ? (反照率和法线贴图) 导入这些纹理,然后创建使用它们和My First Lighting Shader的材质。...在DoMains和DoOcclusion之间在DoMain中调用新方法。 ? 现在可以为我们的材质分配视差贴图。这样做之后,将其强度设置为一个较低的值,例如0.03。 ?...不支持此功能的硬件通常功能不是很强大,因此无论如何你都不希望使用视差贴图。 使用原始顶点切线和网格数据中的法线向量在顶点程序中创建对象到切线的空间转换矩阵。...(细节网格纹理) 使用此纹理作为我们材质的细节反照率贴图。将次要贴图的平铺设置为10×10。这表明细节UV确实仍然不受影响。 ? ?...(动态批处理产生奇怪的效果) 问题在于,在将它们组合在单个网格中之后,Unity不会对批量几何的法线和切向量进行归一化。因此,顶点数据正确的假设不再成立。 Unity为什么不对这些向量进行归一化?

    4.3K20

    Unity基础(13)-光照系统

    如2017年,《ADAM》,使用了光照效果就非常酷炫,2018年,渐进光照贴图技术 Unity3D中默认可以创建这么几种灯光:聚光灯、点光源、平行光、面积光,另外还可以创建两种探针(Probe):反射探针...Mode:光照模式 Baked Indirect:仅烘焙间接光照(也就是物体之间漫反射导致的表面明暗效果),其它东西(如阴影)全部在运行时计算,跟实时差不多了。...所有颜色和阴影都烘死在光照图上,运行时静态物件不参与阴影图渲染,结果是不管光源怎么变,静态物件的受光和阴影都不变。...Mode Indirect Intensity:间接光照的强度 Albedo Boost : 使用这个滑块来控制在表面之间反弹的光的量,通过增强场景中的材料反照率,从1到10之间的值。...如何提高图像的渲染质量 Unity3D中图像质量是由很多因素共同决定的,而且默认的参数设置常常都不是最佳的。而我们在制作游戏的时候,需要在游戏运行效率和游戏画面质量上做出选择。

    3.5K31

    PBR材质专题-Working with PBR in Unity(1)

    (如粗糙度,金属度,等等)。不需要美术 去提供经验性的"奇怪"参数和配置。更容易去解决问题和扩展需求。...特点 PBR与传统贴图方式 目前基于Unity的传统方式,某一时刻某一光照条件下的烘焙贴图 PBR材质与传统的贴图技术相比,适应各种光照条件并保持高品质 2.SubStance工具集 Substance...SubStance Bitmap2Materials 将SBSAR材质包生成固定分辨率的各种贴图文件,例如(颜色/法线/凹凸/AO/高度等贴图) SubStance player 使各种软件的桥梁...所以贴图是没有办法制作的。 2.导入Mesh,找到对应的模型部分组件,进行单独设置 ? 3.Painter介绍 ? 新建项目Discard ? ? 都添加完毕后,进行相关的保存 ?...贴图设置 ? 视图设置 ? 显示设置 ? 资源文件

    2.1K20

    进阶渲染系列(一)——平坦和线框着色(导数和几何体)

    同样,如果我们可以使用具有任何网格的平面着色材质,并覆盖其原始法线(如果有),那将是更好的。 除了平面着色,显示网格的线框也可能有用或看起来时尚。这使得网格的拓扑更加明显。...使用此材质的任何网格均应使用平面着色渲染。它们看起来是多面的,如果你同时使用法线贴图时可能很难看清。所以, 在本教程的截图中,会使用标准的胶囊网格,材质为灰色。 ? ?...1.2 几何着色 除了使用导数指令之外,还有另一种方法可以确定三角形的法线。使用实际的三角形顶点来计算法线向量。这需要使用每个三角形而不是每个单独的顶点或片段来完成工作。这就是几何着色器的领域。...如果仅需要平面着色,则屏幕空间派生工具是实现该效果的最便宜的方法。然后,你还可以从网格数据中删除法线(Unity可以自动执行此操作),并且还可以删除法线插值器数据。...将相应的变量添加到MyFlatWireframe中,并在GetAlbedoWithWireframe中使用它们。根据平滑的最小值,通过在线框颜色和原始反照率之间进行插值来确定最终的反照率。 ?

    3.2K21

    《3D植被建模痛点解决:开放世界层级实例化+GPU批处理优化方案》

    、叶片按5片一组合并为单个面)、 impostor 面片(2D贴图模拟3D效果,包含正面/侧面/背面三个视角)”分级,材质维度按“完整PBR材质(含法线、粗糙度、金属度、 occlusion 贴图)、简化...PBR材质(仅保留基础颜色与法线贴图,去掉金属度通道)、单色贴图(无细节纹理,仅用渐变色模拟体积感)”适配。...为确保层级切换自然无断层,我们还在相邻层级间设置“5米过渡带”,比如玩家从15米向20米移动时,中景模型会以0.8秒的渐变时间,逐步降低面数(从4000面线性降至2000面)、弱化贴图细节(法线贴图强度从...我们用Unity Profiler的GPU模块抓取渲染瓶颈,发现问题出在“植被实例化的批处理逻辑”:不同类型的植被(如冷杉与榛子灌木)因材质属性(基础颜色贴图通道、法线贴图格式)不同,无法被引擎自动合并批处理...现在我们正在探索“AI辅助植被LOD生成”技术,通过训练基于Blender的AI插件,输入植被基础模型(如冷杉高精度模型)和LOD层级要求(如LOD1面数4000、LOD2面数2000),AI能自动识别植被的核心结构

    28610

    Unity Mesh基础系列(一)生成网格(程序生成)

    在本教程中,我们将创建一个由顶点和三角形组成的简单网格。...新的材质球使用的是Unity的标准着色器,它会开放一组设置参数来让你调整不同的视觉效果。 向mesh中添加大量细节的一个快速方法是提供一个albedo maps。...这是一个纹理贴图,用来表示一个材质球的基本颜色。纹理贴图只有长和宽2个维度,而mesh往往是一个三维物体,所以要达到这个目的,我们需要知道如何将这个纹理投射到mesh的三角形上。...这可以通过调整材质的贴图设置来抵消。通过将其设置为(2,1),U坐标将加倍。如果纹理被设置为重复,那么我们将看到它的两个方形瓦片。 ? ? ?...(凹凸不平的表面,使金属产生戏剧性的效果) 但只将这种材质球应用到我们的网格中会产生凸起,是不正确的。我们需要在网格中添加切线向量来正确地定位它们。 切线是如何作用的? 法线映射是在切线空间中定义的。

    12K41
    领券