Unity填坑-灯光烘焙相关

Unity填坑-灯光烘焙相关

文章目录

  • Unity填坑-灯光烘焙相关
  • 前言
  • 一、Light的模式
  • 二、光的效果分类
  • 三、各种Light模式与烘焙的说明
    • 1.Realtime,实时光
    • 2.baked,烘焙光
    • 3.mixed,混合
  • 四、实时全局光
  • 五、其他说明
    • 1.动态物体的全局光照效果
    • 2.手机使用烘焙注意的点
    • 3.其他设置


前言

项目组对灯光烘焙那块参数以及工作流程有一定疑问,单独抽时间把整个机制做了一次单独的调研,错漏之处恳请指点。


一、Light的模式

Unity中的Light模式分为三种:
在这里插入图片描述
实时,混合,烘焙。
这三种要结合在Lighting设置一起工作来看。

二、光的效果分类

一种是直接光照,即光直接照到物体上,反射到相机里。
二种是全局光,即光照到物体上,再反射到其他物体上,如此再反射到相机里的光。
三种是环境光,即没有任何灯的情况下,场景还会被天空盒、环境设置的光等照亮的光。

三、各种Light模式与烘焙的说明

1.Realtime,实时光

在运行时,直接对场景物体进行光照,产生高光、漫反射、阴影等实时效果。这时Light的变化,会带来场景物体接受灯光的实时变化。
备注:其中阴影通过实时的阴影深度图实现。

这个灯和Lighting设置有关系的是设置RealtimeLighting开启(即实时全局光),后面单独说这个设置的流程。

2.baked,烘焙光

提前利用这个灯的信息在场景里面找到设置Static(特别是ContributeGI)的物体,进行整个场景烘焙,得到场景的烘焙信息数据:光照贴图、光照方向、光照信息、ShadowMask贴图、光照探针的信息。其中光照贴图,会因为Lighting设置不同,生成不同的光照贴图(比如:用于采样间接光的间接光照贴图,用于实时计算间接光的物体位置信息贴图,用于阴影采样计算的ShadowMask贴图)。
需要注意的是,当场景中没有进行烘焙时(即没有烘焙数据时),baked光等同于Realtime光。
如果已经烘焙出了场景的各种贴图,那么baked光就无用了,在运行时无论是开启还是关闭都没有任何效果。
运行时,对应标记的物体,会直接去采样这些贴图信息(在shader中会有不同关键字去开启对应的流程)然后进行渲染显示各种效果。

3.mixed,混合

字面意思就是又有烘焙光的功能,又有实时光的功能。对于动态物体,它就是提供Realtime光的功能,提供实时照明效果。

对于标记了静态(特别是ContributeGI)的物体,要根据Lighting设置中的,MixedLighting设置会有不同效果。
如果LightMode是:BakedIndirct,烘焙只会包含间接光照数据,那么这些静态物体在渲染时,会去间接光照贴图中采样间接光照,从而显示出逼真的效果。

在这里插入图片描述

此时,如果灯光Light的RealtIme部分会产生实时阴影、高光漫反射等效果,即光源变化时,阴影等效果都会跟随变化,而间接光(比如上图中的泛红色部分不会变化)。

LightMode:subtractive,直接光与间接光效果都会进入烘焙贴图中,从而运行时这些静态直接采样这些贴图进行渲染,这个mix灯产生的直直接光与间接光效果(与baked灯效果一样,但是这个mix灯还可以对其他动态物体进行直接光照效果)都进入贴图。此时移动这个灯,不会产生任何变化。

LightMode:Shadowmask,比BakedIndirct多一个shadowMask贴图。即阴影也会进入到贴图信息中。此时需要关注Project中Quality设置的阴影模式,如果是shadowMask,那么这个静态物体产生的阴影会从贴图中读取,意味着mix的灯变化的话,阴影不会有任何变化。
在这里插入图片描述

如果Quality设置为Distance ShadowMask,那么在近距离内,阴影为mix灯产生的实时阴影,远距离时,会变为采样shadowMask中的阴影信息产生阴影。这个距离指的是摄像机与阴影的距离,在URP中的MaxDistance设置。
在这里插入图片描述

四、实时全局光

如果开启了实时全局光,那么烘焙会烘焙出静态物体的位置信息贴图数据,且关联的是场景中LightMode为Realtime的光。烘焙好之后,当这些灯(realtime)发生变化时,全局光也会相应的变化。可以理解为实时渲染出全局光照贴图,供给这些静态物体进行渲染,产生更加逼真的效果。

五、其他说明

1.动态物体的全局光照效果

可以看到以上并没有实时的全局光照给动态物体的,所以需要额外的手段进行烘焙,即光照探针贴图,他可以收集场景中的光照信息,并且投射给接受全局光照为光照探针的场景物体。此时物体移动(只勾选了全局光照的信息)可以接受来自光照探针的全局光照信息。同样的,当全局光照为实时,光照探针的光照信息也会跟随光变化。
在这里插入图片描述
反射探针与光照探针原理类似,它会收集探针的六个面,进行投射,从而采样。

2.手机使用烘焙注意的点

手机由于性能问题,不建议开启实时全局光照。同时有时候烘焙效果,在手机内有很大差异,原因在于光照贴图的格式,在手机与PC上格式不一样,设置LightMap的Encoding时会有不同的编码格式,注意设置光照强度,手机上光照强度超过一定值都会被限制到一定数值内,从而导致与PC上看起来相差很大。所以一定要注意物体表面烘焙的光照强度。

在这里插入图片描述

3.其他设置

Lightmapping Settings:光照贴图的生成设置,对照Unity文档就能知道差异
Workflow Settings:光照探针的一些可视化设置。

Environment设置,环境光照的一些设置,环境光设置后,可以保证场景中没有灯,也会被环境光照亮。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/617073.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GB28181/GB35114平台LiveGBS何如添加白名单,使指定海康、大华、华为等GB28181摄像头或录像机设备可以免密接入

1、什么是GB/T28181级联 协议定义中的解释如下: 级联 cascadednetworking 两个信令安全路由网关之间按照上下级关系连接,上级中心信令控制服务器通过信令安全路由网 关可调用下级中心信令控制服务器所管辖的监控资源,下级中心信令控制服务器通过信令安全路由网 关向…

(26)Linux 进程通信之共享内存(共享储存空间)

共享内存是System V版本的最后一个进程间通信方式。共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常为同一段物理内存。进程可以将同一…

端侧AI的“春风化雨手”,翻开中国科技下一页

大模型是一年多来全球科技圈的最大热点,手机厂商想要借助大模型的锋芒,打造高端形象,获得新的增长,这无可厚非。 不过,大家注意到没有,越是“AI强者”,对待大模型越举重若轻。 简单来说&#xf…

43-函数的声明定义,函数表达式定义,函数的调用,声明提升,参数,形参,实参

1.函数声明定义 function 函数名(){} 2.函数表达式定义 匿名式函数表达式 var 函数名 function(){} 命名式函数表达式 var 函数名 function 函数关键字(){} 3.函数的调用 var fn function f(){alert("aaa");}//函数名()//函数想调用几次…

rpb/rpc文件说明与matlab读取

什么是rpb/rpc文件? rpb文件是用来存储用于遥感数据几何校正的RPC(Rational Polynomial Coefficients )模型的文件。类似的还有RPC文件,rpb与rpc文件只是格式不同,但包含的信息一致。其用于从图像坐标转换到地理坐标&a…

acwing4986.互质数的个数

题目不难 有个好的细节想着分享一下 一开始写的有点问题&#xff5e;需要特判掉一个... #include<bits/stdc.h> using namespace std; using ll long long; const int N 1e510;const ll mod 998244353;ll qmi(ll a,ll b){ll ans 1;while(b){if(b&1)ans ans*a%…

浅谈6种流行的API架构风格

前言 API在现代软件开发中扮演着重要的角色&#xff0c;它们是不同应用程序之间的桥梁。编写业务API是日常开发工作中最常见的一部分&#xff0c;选择合适的API框架对项目的成功起到了至关重要的作用。本篇文章将浅谈一下当前6种流行的API架构风格的优点、缺点以及适用场景。 …

反向传播(Back Propagation)

目录 回归简单模型的梯度计算 反向传播计算图链式求导链式法则定理&#xff1a; Forward 前馈计算反向传播Back Propagation例子线性模型的计算图计算前馈过程反向传播过程&#xff08;逆向求导&#xff09; 练习 Pytorch中的前馈过程和反向传播过程Tensor代码小结 回归 简单模…

中药房数字化-亿发中药饮片信息化建设方案,中药材饮片智能追溯

中药&#xff08;包括中成药、颗粒剂、中药饮片等&#xff09;是中医临床的重要工具和武器&#xff0c;中药材是其中的核心要素。在这一体系中&#xff0c;“药材好&#xff0c;药才好”是关键&#xff0c;因为只有中药材的品质稳定和高效&#xff0c;才能最大限度地确保中医治…

Android音视频: 引入FFmpeg

本文你可以了解到 本文将介绍如何将上一篇文章编译出来的 FFmpeg so 库&#xff0c;引入到 Android 工程中&#xff0c;并验证 so 是否可以正常使用。 一、开启 Android 原生 C/C 支持 在过去&#xff0c;通常使用 makefile 的方式在项目中引入 C/C 代码支持&#xff0c;随…

Minitab的单因子方差分析的结果

单因子方差分析概述 当有一个类别因子和一个连续响应并且想要确定两个或多个组的总体均值是否存在差异时&#xff0c;可使用 单因子方差分析。如果经检验&#xff0c;发现至少有一组存在差异&#xff0c;请使用单因子方差分析中的比较对话框来标识存在显著差异的组对。 例如&…

前端布局——垂直、水平居中

行内元素 方法一&#xff1a;给行内元素设置行高 <div class"box"><span>行内元素</span> </div> <style type"text/css">.box{width: 100%;height: 200px;background-color: orange;line-height: 200px;text-align: cent…

代码随想录算法训练营第三天| LeetCode203.移除链表元素、707.设计链表、206.反转链表

文章目录 一、203. 移除链表元素感受代码二、707.设计链表感受代码206.反转链表感受总结一、203. 移除链表元素 感受 我对这道题。从理论上来说太熟悉了。咸鱼讲数据结构常用的方法他都会讲。但是我没上机没写过。到后面上机还是写不出来。giao。 代码 第一次写,想说一下,…

LeetCode刷题:141. 环形链表

题目&#xff1a; 是否独立解答出&#xff1a;否&#xff0c;有思路&#xff0c;但是代码报错&#xff0c;参考解题代码后&#xff0c;修改通过 解题思路&#xff1a;利用循环与哈希表存储每一个节点&#xff0c;如果发现添加不进去说明&#xff0c;存在环&#xff0c;正常来说…

x3daudio1_7.dll如何恢复,这6个方法都能修复x3daudio1_7.dll丢失问题

x3daudio1_7.dll文件缺失”。那么&#xff0c;什么是x3daudio17.dll文件&#xff1f;它的作用和影响又是什么呢&#xff1f;本文将详细介绍x3daudio17.dll文件的定义、作用和影响&#xff0c;并提供6个修复方法来解决这个问题。 一、x3daudio1_7.dll是什么&#xff1f; x3dau…

推荐熊猫电竞赏金电竞系统源码

熊猫电竞赏金电竞系统源码&#xff0c;包含APP、H5和搭建视频教程&#xff0c;支持运营级搭建&#xff0c;这套源码是基于ThinkPHPUniaapp框架开发的。 系统是一套完整的电竞平台开发源码&#xff0c;包括赛事管理、用户系统、竞猜系统、支付系统等模块。源码结构清晰&#xff…

vue3+vite开发生产环境区分

.env.development VITE_APP_TITLE本地.env.production VITE_APP_TITLE生产-ts文件中应用 console.log(import.meta.env.VITE_APP_TITLE)在html中应用&#xff0c;需要安装 html 模板插件 pnpm add vite-plugin-html -Dvite.config.ts中 import { createHtmlPlugin } from v…

非常好用的个人工作学习记事本Obsidian

现在记事本有两大流派&#xff1a;Obsidian 和Notion&#xff0c;同时据说logseq也很不错 由于在FreeBSD下后两种都没有相关ports&#xff0c;所以优先尝试使用Obsidian Obsidian简介 Obsidian是基于Markdown文件的本地知识管理软件&#xff0c;并且开发者承诺Obsidian对于个…

算法-二分专题

文章目录 概念应用场景代码模板OJ练习寻找指定元素1题目描述输入描述输出描述样例题解 寻找指定元素2题目描述输入描述输出描述样例题解 寻找指定元素3题目描述输入描述输出描述样例题解 寻找指定元素4题目描述输入描述输出描述样例题解 寻找指定元素5题目描述输入描述输出描述…

Qt添加资源文件

ui->setupUi(this);//1. 使用本地文件&#xff1a;ui->actionasdasdas->setIcon(QIcon("本地绝对路径"));ui->actiona1->setIcon(QIcon("C:/Users/满满/Desktop/output/picture/1.jpg"));//2. 使用资源文件&#xff1a;ui->actionasdasd…