Unity光照相关
1. 光源类型
Unity支持多种类型的光源,包括:
1. 点光源(Point Light):从一个点向四周发射光线,适用于需要突出物体的光源。
2. 平行光(Directional Light):从无限远处的一个方向照射,适用于需要模拟太阳或月亮等光源。
3. 聚光灯(Spot Light):从一个点向一个方向发射光线,适用于需要集中光源来照亮某个区域。
4. 区域光源(Area Light):将光源区域化,使得光源在某个区域内分布均匀,适用于需要模拟某种特定的照明效果。
重要属性
1.在Range属性上向右或向左拖动以增加或减少光在场景中的传播距离;
2.在Intensity属性上向右或向左拖动以增加或减少其设置范围内的灯光强度;将Intensity属性设置为200到600之间更实际
3. Indirect Multiplier属性会影响 此光源提供的间接光的强度(被传感器接收前多次反弹的光);
如果你设置它:
低于1时,间接光每次从物体反弹时都会变暗。这是真实光照的行为方式,但您可能希望覆盖该行为以实现特定的光照效果。
高于1,间接光会随着每次反弹而变亮。这并不自然,但如果您试图照亮场景中的黑暗封闭空间,它会非常有用。
4. 选择color属性框打开颜色选择器窗口并调整灯光的颜色
2. 光照模式
1. realtime: 设置为realtime模式的光源,都会对所有能被它照射到的表面施加影响,那为啥叫realtime呢,其实所谓的realtime就是平时我们写shader的时候直接在shader里拿到并用于计算的光源,它是在shader里每帧更新的,所以叫realtime模式,
2. baked: 对于这种光照模式的光源就要设计到光照烘焙了,所谓的光照烘焙,是利用的另外的程序获得unity中的场景数据,然后在场景中各种光源的相应方向上发射出很多束光线,这些光线经过反弹,就会形成所谓的间接光对场景施加更多的影响,然后经过几次反弹后,就完成了每个物体的光照计算,并把结果保存在每个物体各自的贴图中,下次在场景启动的时候,直接采样这些贴图就行了
3. mixed: 在烘焙的时候烘焙间接光照信息,而运行时就是跟realtime模式一样贡献直接光就行了
3. 阴影
- Light中Shadow Type
- BlobShadowProjector
- 平面网格制作阴影
常见的几种模式 (realtime非常耗费性能)
1. realtime: 在这种模式下,无论是静态对象和动态对象都会在每帧实时的计算该光源对表面的影响,众所周知,一般动态光源的阴影都是利用阴影贴图计算的,而一个光源就需要一张阴影贴图,像是点光源的话更是需要六张阴影贴图,所以为了避免不必要的开销,unity中针对比较远的物体可以直接不渲染它的阴影贴图,这里究竟多远就不渲染呢?在quality setting里面有一个shadow distance参数就是控制究竟什么距离下才渲染阴影的。也就是收realtime模式的光源会对所有动态和静态的物体投射阴影,前提是它们距离摄像机的距离要小于阴影距离。
2. baked: 这里因为是baked模式,所有对于设置为此模式的光照,它的所有光照信息都会被烘焙到所有静态物体上,包括光照探针,注意这里说的是静态物体,意思就是烘焙光照的时候相当于把动态物体直接完全忽略了,然后运行游戏的时候因为该光源所有的光照信息都已经存在相应的静态物体的光照贴图中了,所有运行时具有baked光照模式的光源就会直接“退休”,如同没有存在过一样。
3. mixed: 因为unity针对mixed模式的阴影表现有一些额外的设置,这些设置就是在light setting里面mixed lighting下的light mode设置,有三种,分别为baked indirect,shadowmask,subtractive,注意这些设置只对mixed光照模式有效果,而且是针对场景中所有的mixed光源的。先说说baked indirect设置,这是最符合直觉的设置,上面说过mixed光照模式实时计算直接光,烘焙间接光,所以这种设置下光源会把它的间接光直接烘焙到静态物体的光照贴图中的(记住这一点,烘焙光照永远只能烘焙进静态物体中,光照探针也算),注意间接光因为太弱了一般不会造成阴影,烘焙完以后你还能在editor模式中看见阴影那是因为mixed模式光源的直接光是实时的。所以运行的收mixed模式造成的阴影效果就更realtime模式一摸一样(使用阴影贴图的动态阴影)。
接下来是subtrative模式,这是三种模式里开销最低得一种模式,为什么呢,启用这种设置以后,场景中所有的mixed光源会在烘焙的时候烘焙间接光和直接光,前面说过baked indirect设置下尽管间接光被烘焙进光照贴图里去了,但是mixed光源的直接光部分会像realtime光照模式的光源一样既照射到静态物体上又照射在动态物体上
4. Post-Processing后期处理
触发器为摄像机本身,一般用于调整屏幕颜色和添加光晕效果,提升画质。
Unity学习之PostProcessing的使用_post processing_斗淇的博客-CSDN博客
几种常用的功能:
1. Color Grading颜色分级:见下方
2. Bloom 高斯模糊:再现真实世界相机的成像伪像的效果。该效果产生从图像中明亮区域的边界延伸的光的条纹。
3. Vlgnette渐晕:渐晕是用于与中心相比朝向图像边缘变暗和/或去饱和
5. Global illumination全局照明
是一组可在 Unity 中用于提供逼真照明效果的技术。这些技术被称为全局照明,因为它们模拟直接光和间接光,而不仅仅是直接光。
1. 烘焙全局照明系统:光照贴图、光照探针、反射探针
2. 实时全局照明系统:Enlighten光照贴图、光探头
全局Light-Scene-New LightSetting配置全局烘焙模式
6. Light Probe光照探针
用于处理烘培的场景下,需要对动态物体进行正确的照亮。
使用Scene-shader-Contributors / Receivers 查看光照情况
7. Reflection Probe反射探针
默认情况下,场景内的对象直接从天空盒中获取反射并形成光照贴图,加入反射探针后,将从探针范围内取样并把结果写入到y一张立方体贴图中,让周围经过的物体获得反射影响。
- 检查其Type是否设置为Baked
- 启用Box Projection属性
相关文章:
Unity光照相关
1. 光源类型 Unity支持多种类型的光源,包括: 1. 点光源(Point Light):从一个点向四周发射光线,适用于需要突出物体的光源。 2. 平行光(Directional Light):从无限远处…...
Qt基本类型
QT基本数据类型定义在#include <QtGlobal> 中,QT基本数据类型有: 类型名称注释备注qint8signed char有符号8位数据qint16signed short16位数据类型qint32signed short32位有符号数据类型qint64long long int 或(__int64)64位有符号数据类型&#x…...

前端基础(Element、vxe-table组件库的使用)
前言:在前端项目中,实际上,会用到组件库里的很多组件,本博客主要介绍Element、vxe-table这两个组件如何使用。 目录 Element 引入element 使用组件的步骤 使用对话框的示例代码 效果展示 vxe-table 引入vxe-table 成果展…...

C++学习记录——이십팔 C++11(4)
文章目录 包装器1、functional2、绑定 这一篇比较简短,只是因为后要写异常和智能指针,所以就把它单独放在了一篇博客,后面新开几篇博客来写异常和智能指针 包装器 1、functional 包装器是一个类模板,对可调用对象类型进行再封装…...

UE学习记录03----UE5.2 使用拖拽生成模型
0.创建蓝图控件,自己想要展示的样子 1.侦测鼠标拖动 2.创建拖动操作 3.拖动结束时生成模型 3.1创建actor , 创建变量EntityMesh设为可编辑 生成Actor,创建变量EntityMesh设为可编辑 屏幕鼠标位置转化为3D场景位置 4.将texture设置为变量并设为可编辑&am…...
Spring Cache框架(缓存)
1、介绍: Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单加个注解,就能实现缓存功能。它提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager 接口来实现不同的缓存技术。 针对不同…...

Linux学习之Ubuntu 20使用systemd管理OpenResty服务
sudo cat /etc/issue可以看到操作系统的版本是Ubuntu 20.04.4 LTS,sudo lsb_release -r可以看到版本是20.04,sudo uname -r可以看到内核版本是5.5.19,sudo make -v可以看到版本是GNU Make 4.2.1。 需要先参考我的博客《Linux学习之Ubuntu 2…...
[数据集][目标检测]疲劳驾驶数据集VOC格式4类别-4362张
数据集格式:Pascal VOC格式(不包含分割的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):4362 标注数量(xml文件个数):4362 标注类别数:4 标注类别名称:["closed_eye","closed_mouth"…...

matlab使用教程(25)—常微分方程(ODE)选项
1.ODE 选项摘要 解算 ODE 经常要求微调参数、调整误差容限或向求解器传递附加信息。本主题说明如何指定选项以及每个选项与哪些微分方程求解器兼容。 1.1 选项语法 使用 odeset 函数创建 options 结构体,然后将其作为第四个输入参数传递给求解器。例如࿰…...
MybatisPlus简单到入门
一、MybatisPlus简介 1、入门案例(重点): 1.SpringBoot整合MP1).创建新模块选择,Spring项初始化。2).选择当前模块使用的技术,只保留MySQL Driver就行,不要选择mybatis避免与后面导入mybatisPlus的依赖发…...
9. 优化器
9.1 优化器 ① 损失函数调用backward方法,就可以调用损失函数的反向传播方法,就可以求出我们需要调节的梯度,我们就可以利用我们的优化器就可以根据梯度对参数进行调整,达到整体误差降低的目的。 ② 梯度要清零,如果梯…...

go学习之流程控制语句
文章目录 流程控制语句1.顺序控制2.分支控制2.1单分支2.2双分支单分支和双分支的四个题目switch分支结构 3.循环控制for循环控制while 和do...while的实现 4.跳转控制语句breakcontinuegotoreturngotoreturn 流程控制语句 介绍:在程序中,程序运行的流程…...
docker基于已有容器和通过Dockerfile进行制作镜像配置介绍
目录 一.制作镜像的两种方式 1.在已有容器中更新并提交这个镜像 2.使用Dockerfile来制作 二.基于容器制作镜像 1.格式 (1)主要格式 (2)可选参数 2.案例 基于容器创建镜像设置标签并进行验证是否可用 (1&…...

2022年09月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
第1题:最长上升子序列 一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 < i1 < i2 &…...

二级MySQL(九)——表格数据处理练习
在Mysql中,可以用INSERT或【REPLACE】语句,向数据库中已一个已有的表中插入一行或多行记录。 在Mysql中,可以用【DELETE】或【TRUNCATE】语句删除表中的所有记录。 在Mysql中,可以用【UPDATE】语句来修改数据表中的记录。 为了完…...
QT ListQvector at赋值出错以及解决办法 QT基础入门【QT存储结构】
1、问题 error: passing const QString as this argument discards qualifiers error: assignment of read-only location vec.QVector<int>::at(0) 在Qt中QList,Qvector一般获取元素都是通过at(index)来获取,但是at()的返回是一个const & 常引用,也就是元素不支…...

STM32 CubeMX (H750)RGB屏幕 LTDC
STM32 CubeMX STM32 RGB888 LTDC STM32 CubeMX一、STM32 CubeMX 设置时钟树LTDC使能设置屏幕参数修改RGB888的GPIO 二、代码部分效果 RGB屏幕线束定义: 一、STM32 CubeMX 设置 时钟树 这里设置的时钟,关于刷新速度 举例子:LCD_CLK24MHz 时…...

Redis问题集合(三)在Redis容器里设置键值对
前言 前提是已经拉取了Redis镜像并创建了对应的容器做个记录,方便后续查看 步骤 查看Redis容器的ID:docker ps -a 进入容器:docker exec -it 容器ID /bin/bash进入redis命令行:redis-cli输入密码:auth 配置密码 查看…...

spark中排查Premature EOF: no length prefix available
报错信息 /07/22 10:20:28 WARN DFSClient: Error Recovery for block BP-888461729-172.16.34.148-1397820377004:blk_15089246483_16183344527 in pipeline 172.16.34.64:50010, 172.16.34.223:50010: bad datanode 172.16.34.64:50010 [DataStreamer for file /bdp/data/u9…...
numpy高级函数之where和extract函数
1 numpy.where() 函数返回输入数组中满足给定条件的元素的索引 ---------------------------------------------------- 代码: n1np.random.randint(10,20,10) n2np.where(n1>15) 结果: [17 15 19 15 12 10 16 11 15 13] #原始数组 (array([…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...