基本渲染

普通渲染(通常指的是传统的非基于物理的渲染流程)通常依赖于一组较为简单的纹理集,这些纹理集主要用于模拟光照和表面细节,但不会像PBR那样严格遵循物理规律。以下是普通渲染中常见的一些纹理类型:

  1. 漫反射(Diffuse)纹理

    • 作用:存储材质表面的颜色信息,是最基本的纹理。
    • 描述:漫反射纹理通常包含颜色信息,用于确定物体在普通光照条件下的颜色。
  2. 高光(Specular)纹理

    • 作用:定义材质表面高光区域的强度和大小。
    • 描述:高光纹理通常用于控制光照反射的强度和范围,使物体表面在光照下产生亮点。
  3. 法线(Normal)纹理

    • 作用:模拟表面细节的凹凸感。
    • 描述:法线纹理提供表面法线信息,用于在渲染时计算光照,从而在不增加几何复杂度的情况下模拟出更加细致的表面凹凸效果。
  4. 环境光遮蔽(Ambient Occlusion)纹理

    • 作用:模拟光线被周围结构遮挡的效果。
    • 描述:环境光遮蔽纹理用于在材质表面添加阴影,模拟光线被邻近表面遮挡的情况,增加材质的深度感。
  5. 反射(Reflection)或镜面(Mirror)纹理

    • 作用:存储反射信息,用于模拟物体表面的反射效果。
    • 描述:反射纹理通常用于创建光滑表面的反射效果,如镜子或光泽的塑料表面。
  6. 透明度(Transparency)纹理

    • 作用:定义材质的透明或不透明区域。
    • 描述:透明度纹理用于创建透明或半透明效果,如窗户、瓶子等。
  7. 自发光(Emission)纹理

    • 作用:模拟物体自身发光的效果。
    • 描述:自发光纹理用于创建物体自身发光的效果,常见于特效或者光源物体。
  8. 光泽度(Glossiness)或光滑度(Smoothness)纹理

    • 作用:控制材质表面对光线的反射方式。
    • 描述:光泽度纹理通常用于控制物体表面的光泽效果,与高光纹理配合使用,影响高光区域的模糊程度。
  9. 细节(Detail)纹理

    • 作用:增加材质表面的小细节。
    • 描述:细节纹理用于在材质表面添加额外的细节层次,如裂缝、磨损等。
  10. 位移(Displacement)纹理

    • 作用:在几何层面上改变物体的形状。
    • 描述:位移纹理用于在渲染时改变物体的几何形状,以模拟更复杂的表面结构。

普通渲染流程中的纹理集通常不需要像PBR那样遵循严格的物理规则,因此它们在视觉效果上可能更加灵活,但也可能不如PBR渲染那样真实。在PBR渲染成为主流之前,这些纹理集是游戏和实时渲染中常见的材质定义方式。

PBR渲染

PBR(基于物理的渲染)渲染技术在游戏和电影行业中的应用越来越广泛,它通过模拟光线与物体表面的物理交互来实现更加逼真的渲染效果。为了实现PBR渲染,通常需要以下几类纹理集:

  1. 基础颜色(Albedo/Diffuse)纹理:存储物体表面的颜色信息,通常是一个RGB纹理图。

  2. 金属度(Metallic)纹理:用于区分物体表面是金属还是非金属材质,金属度较高的表面会反射更多的光线,而非金属表面则更多地吸收光线。

  3. 粗糙度(Roughness)纹理:控制光线在物体表面的散射程度,粗糙度较高的表面会使得反射光更加分散,而粗糙度较低的表面则会产生较清晰的反射。

  4. 法线(Normal)纹理:包含表面每个点的法线方向信息,用于在不增加几何复杂度的情况下模拟出更加细致的表面凹凸效果。

  5. 高度(Height)纹理:用于创建物体表面的宏观高度变化,但PBR中较少使用,因为它更多关注微观细节。

  6. 环境光遮蔽(Ambient Occlusion, AO)纹理:模拟光线被周围结构遮挡的效果,增加材质的深度感。

  7. 光泽度(Glossiness)或光滑度(Smoothness)纹理:与粗糙度纹理相对应,控制材质表面对光线的反射方式。

  8. 自发光(Emission)纹理:用于创建物体自身发光的效果,常见于特效或者光源物体。

  9. 透明度(Transparency)纹理:定义材质的透明或不透明区域,用于创建透明或半透明效果。

  10. 反射率(Specularity)纹理:在某些PBR工作流程中,可能需要一个单独的反射率纹理来存储材质的反射颜色。

这些纹理集共同作用,通过精确模拟光线和材质的物理行为,影响最终的渲染输出,从而带来更逼真的视觉效果。在PBR渲染中,这些纹理的制作和应用需要遵循物理规则,以确保渲染结果的真实性。例如,粗糙度和金属度纹理对于模拟不同材质的光线反射和散射行为至关重要。而基础颜色纹理则定义了材质的基本色彩,是PBR工作流程中不可或缺的一部分。正确地使用这些纹理集,可以显著提升渲染效果的真实感和视觉质量。

无光照渲染

Unlit(无光照)渲染是一种不依赖光照计算的渲染方式,它通常用于2D游戏或者那些不需要真实光照效果的场景。在Unlit渲染中,常用的纹理集包括:

  1. 基础颜色/漫反射(Base Map/Diffuse Map):这是最主要的纹理,用于定义物体表面的颜色和图案。在Unlit渲染中,这个纹理决定了物体的视觉外观,因为它不受光照影响。

  2. 透明度(Transparency):如果材质需要透明效果,可以使用透明度纹理来定义哪些区域是透明的。透明度纹理通常使用Alpha通道来实现透明效果。

  3. 自发光(Emission):即使在Unlit渲染中,有时也需要某些物体部分能够发光。自发光纹理可以用来定义这些发光区域和发光强度。

  4. 法线(Normal):虽然Unlit渲染不考虑光照,但法线纹理有时用于创建扁平的、卡通风格的渲染效果,或者在某些特效中模拟凹凸感。

  5. 细节(Detail):细节纹理可以用来增加材质的复杂度,比如模拟表面的小裂缝或者磨损效果。

在Unity中,Unlit渲染可以通过选择相应的Shader来实现。例如,在Universal Render Pipeline (URP) 中,你可以选择“Universal Render Pipeline > Unlit”作为Shader。在High Definition Render Pipeline (HDRP) 中,你可以选择“HDRP > Unlit”。这些Shader通常包含一些基本的属性,如颜色、纹理、透明度等,以及一些高级选项,如GPU实例化和渲染通道设置。

Unlit Shader的Inspector界面通常包含以下元素:

  • Surface Options:控制材质在屏幕上的渲染方式,如表面类型(Opaque或Transparent)、混合模式(如Alpha、Premultiply、Additive、Multiply)等。
  • Surface Inputs:描述表面本身,如基础颜色纹理、纹理平铺(Tiling)和偏移(Offset)。
  • Advanced:高级设置,影响渲染的底层计算,如GPU实例化。

在创建Unlit材质时,你可以根据需要调整这些属性来实现所需的视觉效果。例如,你可以设置基础颜色纹理来定义材质的颜色,使用透明度纹理来创建透明效果,或者调整纹理平铺和偏移来控制纹理在物体上的布局。这些纹理和设置共同工作,使得Unlit渲染能够提供简单而有效的视觉效果。

卡通渲染

卡通渲染(也称为卡通着色或漫画渲染)是一种非真实感渲染技术,它旨在模仿传统卡通或漫画的视觉风格。这种渲染风格通常不追求物理上的准确性,而是追求视觉上的夸张和风格化效果。卡通渲染可能需要以下类型的纹理集:

  1. 漫反射(Diffuse)纹理

    • 作用:存储材质的基本颜色信息。
    • 描述:漫反射纹理在卡通渲染中用于定义物体的基础色彩。
  2. 轮廓线(Outline)纹理

    • 作用:创建物体的轮廓线,增强视觉的分离感。
    • 描述:轮廓线纹理或效果用于在物体边缘添加明显的线框,这是卡通渲染中的一个重要特征。
  3. 高光(Specular)纹理

    • 作用:定义材质表面的高光区域。
    • 描述:在某些卡通风格中,可能会使用高光纹理来模拟光线集中照射的区域,但通常比真实感渲染更为夸张和风格化。
  4. 法线(Normal)纹理

    • 作用:模拟表面的凹凸感。
    • 描述:法线纹理可以用于在不增加几何细节的情况下,通过光照变化来模拟表面的凹凸效果。
  5. 自发光(Emission)纹理

    • 作用:模拟物体自身发光的效果。
    • 描述:自发光纹理在卡通渲染中可以用来创建特效,如发光的眼睛或魔法效果。
  6. 纹理蒙版(Texture Masks)

    • 作用:用于控制不同纹理效果的混合和应用区域。
    • 描述:纹理蒙版可以用来定义哪些区域应该显示特定的纹理效果,例如,控制哪里应该有高光或阴影。
  7. 颜色渐变(Gradient)纹理

    • 作用:创建颜色的渐变效果。
    • 描述:颜色渐变纹理可以用来模拟光照变化,或者在卡通渲染中创建特殊的视觉效果。
  8. 光泽度(Glossiness)纹理

    • 作用:控制材质表面反射的模糊程度。
    • 描述:在一些卡通渲染风格中,可能会使用光泽度纹理来模拟不同程度的光泽效果。
  9. 纹理混合(Texture Blending)

    • 作用:将不同的纹理效果混合在一起。
    • 描述:通过混合不同的纹理,可以创造出独特的视觉效果,如将不同的颜色或图案应用到材质的不同区域。
  10. 细节(Detail)纹理

    • 作用:增加材质表面的小细节。
    • 描述:细节纹理可以用来增强材质的视觉效果,使其更加丰富和有趣。

卡通渲染的关键在于风格化和夸张的视觉效果,因此纹理集的使用和处理方式可能会根据所需的艺术风格和视觉效果有很大差异。在实现卡通渲染时,开发者和美术人员会根据项目的需求和风格来选择和设计合适的纹理集。

其他贴图

在游戏渲染中,除了前面提到的纹理集,还有一些其他的纹理类型可以用于创造丰富的视觉效果:

  1. 纹理图集(Texture Atlas):这是一种包含多个较小贴图的图像,通常它们打包在一起以减少整体尺寸,有效减少GPU纹理内存的开销,并提供更多的灵活性。纹理图集可以通过工具如TexturePacker或Unity的Sprite Packer创建 。

  2. 自定义渲染纹理(Custom Render Texture):这是一种特殊类型的纹理,可以通过着色器更新纹理,用于创建复杂的模拟,如焦散、雨水效果的波纹模拟和液体喷溅 。

  3. 环境贴图(Cubemap):用于存储环境的全景图像,常用于反射和折射效果,模拟物体表面反射周围环境的场景。

  4. 光晕贴图(Bloom/Glare Texture):用于创建亮度过高时产生的光晕效果,增强视觉冲击力。

  5. 特效贴图(Effect Maps):用于实现特定的视觉效果,如魔法效果、爆炸、火光等。

  6. 细节增强贴图(Detail Maps):用于在不增加模型多边形数量的情况下,通过纹理细节增强模型的表面细节。

  7. 遮挡贴图(Occlusion Maps):用于模拟光线被物体表面结构遮挡的效果,增加材质的深度感。

  8. 光泽度贴图(Glossiness Maps):用于控制材质表面对光线的反射模糊程度,与粗糙度纹理相对应。

  9. 透明度贴图(Translucency Maps):用于创建半透明效果,如叶子、皮肤等。

  10. 水波纹贴图(Water Caustics):用于模拟水下的光线折射和波纹效果。

  11. 粒子纹理(Particle Textures):用于定义粒子系统中粒子的外观,如烟雾、火焰、魔法粒子等。

  12. 纹理蒙版(Texture Masks):用于控制不同纹理效果的混合和应用区域,比如控制哪些区域显示高光或阴影。

这些纹理集可以单独使用或组合使用,以实现所需的视觉效果。在游戏渲染中,材质的视觉表现主要依赖于这些纹理集和着色器的属性设置。