美文网首页
光照及渲染

光照及渲染

作者: 虫小白 | 来源:发表于2019-08-15 19:08 被阅读0次

光照

光源类型

光源类型可分为:Realtime,Mixed,Baked

  • Realtime light - 实时光源 在运行时照亮对象,可作用于静态对象和动态对象
  • Baked light - 烘焙光源 在烘焙时为静态对象提供光照
  • Mixed light - 混合光源 在烘焙时和运行时均可提供光照
    window->Lighting->MixedLighting->LightingMode中可设置混合光源的作用方式:
  1. Baked Indeirect:在烘焙时,只烘焙该光源在静态对象间的反射效果。在运行时,该光源可以作用于静态对象和动态对象
  2. ShadowMask:在烘焙时,烘焙静态对象的阴影以及反射效果。在运行时,该光源可以作用于静态对象和动态对象,动态对象的阴影是实时阴影,对于静态对象,当ShadowMask ModeShadowMask时,阴影为烘焙阴影,当ShadowMask ModeShadowMask Distance时,在相机距对象距离小于Shadow Distance时,为实时阴影,反之为烘焙阴影。(ShadowMask ModeShadow Distance均在Edit-> ProjectSetting->Quality中设置)
  3. Subtractive:最直接的烘焙方式。烘焙时,效果和BakedLight相同(烘焙光照、阴影、反射效果)。在运行时,只作用于动态对象,不再为静态对象提供光照。

Realtime Lighting

实时全局光照:启用后场景中的场景中的实时灯光将同时提供直接光照和间接光照作用于静态对象和动态对象。
在2017.4.11f1版本的Unity中实验时,在运行时,仅平行光类型的实时光源可将间接光作用于动态对象(且烘焙前需要将动态对象标记为Static,烘焙完成后再去掉Static标记),其他类型的实时光源只能将间接光照正确作用于静态对象。(不知道是不是我哪里设置错了)

渲染路径

前向渲染路径

含义:根据影响对象的光源在一个或多个通道中渲染每个对象。

光源类型

在前向渲染中,光源可以被定义为三种类型:像素光源,顶点光源,球谐光源(sh光源)

  • 像素光源
    某个对象进行逐像素渲染时采用的光源。
    一个对象是否有逐像素光源或采用哪一个光源作为逐像素光源,按以下规则而定:
  1. Render Mode 设置为 Not Important 的光源始终为每顶点或 SH 光源。
  2. 最亮的方向光始终为每像素光源。
  3. Render Mode 设置为 Important 的光源始终为每像素光源。
  4. 如果上述情况导致光源数少于当前设置的像素光源数量,则按照亮度降低的顺序,更多光源采用每像素渲染方式。(像素光源数量在 Edit-> ProjectSetting->Quality->PixelLightCount中设置)
  • 顶点光源
    某个对象进行顶点渲染时采用的光源(每个对象最多可以有四个顶点光源,顶点光源不会产生剪影和阴影)
  • 球谐光源
    对象进行顶点渲染时,四个顶点光源以外的其他光源作为球谐光源进行处理。球谐光源是以球谐函数计算的光源,可以认为是一种近似的、简化的计算方法,可减少计算量。
小结

前向渲染路径以每个对象作为渲染基础,渲染某个对象时,Unity会查找当前场景中的所有灯光,并按照规则决定某个光源是作为像素光源、顶点光源还是sh光源,然后对该对象进行渲染(一个光源对于对象A是像素光但对于对象B可能是顶点光或sh光)。
这种方式适用于灯光较少的场景,其性能消耗是随场景复杂程度呈次方增加的,比如场景中只有1个光源1个对象,则只需要渲染一次,如果是10个光源10个对象,则需要渲染10x10次。

延迟渲染路径

使用延迟渲染时,没有光源数量限制,所有光源均作为像素光源进行处理。
优点:光照的处理开销与接受光照的像素数成正比。这取决于场景中的光量大小,而不管接受光照的游戏对象有多少。因此,可通过减少光源数量来提高性能。
缺点:不支持抗锯齿,也无法处理半透明游戏对象(这些对象会自动使用前向渲染进行渲染)。此外,它也不支持网格渲染器 (Mesh Renderer) 的接受阴影 (Receive Shadows) 标志,并且仅在有限程度上支持剔除遮罩。最多只能使用四个剔除遮罩。也就是说,剔除层遮罩必须至少包含所有层减去四个任意层,即必须设置 32 个层中的 28 个层。否则,会产生图形瑕疵。

相关文章

  • 光照及渲染

    光照 光源类型 光源类型可分为:Realtime,Mixed,Baked Realtime light - 实时光...

  • Unity3D-Rendering Paths(渲染路径)及Li

    Unity3D-Rendering Paths(渲染路径)及LightMode(光照模式) 简述 U3D支持不同的...

  • 光照与渲染(二)- 光照技术

    广义的来说,Unity的全局光照是”实时”或是”预先计算好”的,在某些情况下两种方法可以结合使用,照出更逼真的场景...

  • 光照与渲染(十一)- 光照探头

    只有静态的对象物体才会被Unity的Baked或者Precomputed Realtime GI 系统所考虑。为了...

  • 二、光照模型:1、光照渲染

    光照基础知识 为了更好地模拟真实3D世界,通常是需要模拟真实光照的。可以选中不同的光源:平行光,点光源,区域光,聚...

  • 了解OpenGL专业名词

    上下文 Context context记录了OpenGL渲染需要的所有信息,如当前绘制使用的颜色、是否有光照计算及...

  • 光照与渲染(四)- 渲染路径

    前向渲染(Forward Rendering) 在前向渲染中,每个对象会被每个影响它的光源在一个‘pass’中渲染...

  • OpenGL光照渲染技术

    1 简介 本系列的文章到目前为止已经介绍完了OpenGL的基础知识,你应该已经了解OpenGL中的大部分特性,也在...

  • Unity光照渲染(一)

    Unity光照版本的话有5.6之前和5.6之后是两个不同版本这里我用2017.2 天空盒 百度搜索天空盒选一个这样...

  • Unity光照渲染(二)

    灯光探针 之前的用那个属性让静态物体影响动态物体比较消耗性能导入素材 打开sence 把灯光改为Mixed模式 然...

网友评论

      本文标题:光照及渲染

      本文链接:https://www.haomeiwen.com/subject/mvuajctx.html