当前位置: 首页 > news >正文

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> 中&#xff0c;QT基本数据类型有&#xff1a; 类型名称注释备注qint8signed char有符号8位数据qint16signed short16位数据类型qint32signed short32位有符号数据类型qint64long long int 或(__int64)64位有符号数据类型&#x…...

前端基础(Element、vxe-table组件库的使用)

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

C++学习记录——이십팔 C++11(4)

文章目录 包装器1、functional2、绑定 这一篇比较简短&#xff0c;只是因为后要写异常和智能指针&#xff0c;所以就把它单独放在了一篇博客&#xff0c;后面新开几篇博客来写异常和智能指针 包装器 1、functional 包装器是一个类模板&#xff0c;对可调用对象类型进行再封装…...

UE学习记录03----UE5.2 使用拖拽生成模型

0.创建蓝图控件&#xff0c;自己想要展示的样子 1.侦测鼠标拖动 2.创建拖动操作 3.拖动结束时生成模型 3.1创建actor , 创建变量EntityMesh设为可编辑 生成Actor&#xff0c;创建变量EntityMesh设为可编辑 屏幕鼠标位置转化为3D场景位置 4.将texture设置为变量并设为可编辑&am…...

Spring Cache框架(缓存)

1、介绍&#xff1a; Spring Cache 是一个框架&#xff0c;实现了基于注解的缓存功能&#xff0c;只需要简单加个注解&#xff0c;就能实现缓存功能。它提供了一层抽象&#xff0c;底层可以切换不同的cache实现。具体就是通过CacheManager 接口来实现不同的缓存技术。 针对不同…...

Linux学习之Ubuntu 20使用systemd管理OpenResty服务

sudo cat /etc/issue可以看到操作系统的版本是Ubuntu 20.04.4 LTS&#xff0c;sudo lsb_release -r可以看到版本是20.04&#xff0c;sudo uname -r可以看到内核版本是5.5.19&#xff0c;sudo make -v可以看到版本是GNU Make 4.2.1。 需要先参考我的博客《Linux学习之Ubuntu 2…...

[数据集][目标检测]疲劳驾驶数据集VOC格式4类别-4362张

数据集格式&#xff1a;Pascal VOC格式(不包含分割的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;4362 标注数量(xml文件个数)&#xff1a;4362 标注类别数&#xff1a;4 标注类别名称:["closed_eye","closed_mouth"…...

matlab使用教程(25)—常微分方程(ODE)选项

1.ODE 选项摘要 解算 ODE 经常要求微调参数、调整误差容限或向求解器传递附加信息。本主题说明如何指定选项以及每个选项与哪些微分方程求解器兼容。 1.1 选项语法 使用 odeset 函数创建 options 结构体&#xff0c;然后将其作为第四个输入参数传递给求解器。例如&#xff0…...

MybatisPlus简单到入门

一、MybatisPlus简介 1、入门案例&#xff08;重点&#xff09;&#xff1a; 1.SpringBoot整合MP1).创建新模块选择&#xff0c;Spring项初始化。2).选择当前模块使用的技术&#xff0c;只保留MySQL Driver就行&#xff0c;不要选择mybatis避免与后面导入mybatisPlus的依赖发…...

9. 优化器

9.1 优化器 ① 损失函数调用backward方法&#xff0c;就可以调用损失函数的反向传播方法&#xff0c;就可以求出我们需要调节的梯度&#xff0c;我们就可以利用我们的优化器就可以根据梯度对参数进行调整&#xff0c;达到整体误差降低的目的。 ② 梯度要清零&#xff0c;如果梯…...

go学习之流程控制语句

文章目录 流程控制语句1.顺序控制2.分支控制2.1单分支2.2双分支单分支和双分支的四个题目switch分支结构 3.循环控制for循环控制while 和do...while的实现 4.跳转控制语句breakcontinuegotoreturngotoreturn 流程控制语句 介绍&#xff1a;在程序中&#xff0c;程序运行的流程…...

docker基于已有容器和通过Dockerfile进行制作镜像配置介绍

目录 一.制作镜像的两种方式 1.在已有容器中更新并提交这个镜像 2.使用Dockerfile来制作 二.基于容器制作镜像 1.格式 &#xff08;1&#xff09;主要格式 &#xff08;2&#xff09;可选参数 2.案例 基于容器创建镜像设置标签并进行验证是否可用 &#xff08;1&…...

2022年09月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;最长上升子序列 一个数的序列bi&#xff0c;当b1 < b2 < … < bS的时候&#xff0c;我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN)&#xff0c;我们可以得到一些上升的子序列(ai1, ai2, …, aiK)&#xff0c;这里1 < i1 < i2 &…...

二级MySQL(九)——表格数据处理练习

在Mysql中&#xff0c;可以用INSERT或【REPLACE】语句&#xff0c;向数据库中已一个已有的表中插入一行或多行记录。 在Mysql中&#xff0c;可以用【DELETE】或【TRUNCATE】语句删除表中的所有记录。 在Mysql中&#xff0c;可以用【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屏幕线束定义&#xff1a; 一、STM32 CubeMX 设置 时钟树 这里设置的时钟&#xff0c;关于刷新速度 举例子&#xff1a;LCD_CLK24MHz 时…...

Redis问题集合(三)在Redis容器里设置键值对

前言 前提是已经拉取了Redis镜像并创建了对应的容器做个记录&#xff0c;方便后续查看 步骤 查看Redis容器的ID&#xff1a;docker ps -a 进入容器&#xff1a;docker exec -it 容器ID /bin/bash进入redis命令行&#xff1a;redis-cli输入密码&#xff1a;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() 函数返回输入数组中满足给定条件的元素的索引 ---------------------------------------------------- 代码&#xff1a; n1np.random.randint(10,20,10) n2np.where(n1>15) 结果&#xff1a; [17 15 19 15 12 10 16 11 15 13] #原始数组 (array([…...

用Python写一个武侠游戏

前言 在本教程中&#xff0c;我们将使用Python写一个武侠类的游戏&#xff0c;大的框架全部搭好了&#xff0c;很多元素都可以自己添加&#xff0c;让游戏更丰富 &#x1f4dd;个人主页→数据挖掘博主ZTLJQ的主页 个人推荐python学习系列&#xff1a; ☄️爬虫JS逆向系列专栏 -…...

Java --- 异常处理

目录 一、什么是异常 二、异常抛出机制 三、如何对待异常 四、 Java异常体系 4.1、Throwable 4.2、Error 4.2、Exception 4.2.1、编译时异常 4.2.2、运行时期异常 五、异常处理 5.1、捕获异常&#xff08;try-catch&#xff09; 5.1.2、catch中异常处理方式 …...

CDN/DCDN(全站加速)排查过程中如何获取Eagle ID/UUID

目录 前言1.通过浏览器直接访问文件时获取Request ID 前言 阿里云CDN/DCDN(全站加速)为接收到的每个请求分配唯一的服务器请求ID&#xff0c;作为关联各类日志信息的标识符。当您在使用CDN/DCDN(全站加速)过程中遇到错误且希望阿里云技术支持提供协助时&#xff0c;需要提交失…...

网络安全应急响应预案培训与演练目的

1、增强网络安全意识 网络安全事故隐患往往“生成”于无形。例如&#xff0c;漏洞或黑客攻 击发生之时&#xff0c;受害方企事业单位可能处于非常危险的境地而无所察 觉&#xff0c;一些内部部门人员的网络安全意识也容易懈怠。但不论是内部 员工的疏忽还是管理上的大意&am…...

2023年高教社杯 国赛数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…...

7.Oracle视图创建与使用

1、视图的创建与使用 在所有进行的SQL语句之中&#xff0c;查询是最复杂的操作&#xff0c;而且查询还和具体的开发要求有关&#xff0c;那么在开发过程之中&#xff0c;程序员完成的并不是是和数据库的所有内容&#xff0c;而更多的是应该考虑到程序的设计结构。可以没有一个项…...

rust学习-不安全操作

在 Rust 中,不安全代码块用于避开编译器的保护策略 四种不安全操作 解引用裸指针通过 FFI (Foreign Function Interface,外部语言函数接口)调用函数调用不安全的函数内联汇编(inline assembly)解引用裸指针 原始指针(raw pointer,裸指针)* 和引用 &T 有类似的功…...

RHCE——八、DNS域名解析服务器

RHCE 一、概述1、产生原因2、作用3、连接方式4、因特网的域名结构4.1 拓扑4.2 分类4.3 域名服务器类型划分 二、DNS域名解析过程1、分类2、解析图&#xff1a;2.1 图&#xff1a;2.2 过程分析 三、搭建DNS域名解析服务器1、概述2、安装软件3、/bind服务中三个关键文件4、配置文…...

flink cdc初始全量速度很慢原因和优化点

link cdc初始全量速度很慢的原因之一是&#xff0c;它需要先读取所有的数据&#xff0c;然后再写入到目标端&#xff0c;这样可以保证数据的一致性和顺序。但是这样也会导致数据的延迟和资源的浪费。flink cdc初始全量速度很慢的原因之二是&#xff0c;它使用了Debezium作为捕获…...

论文笔记: MOGRIFIER LSTM

2020 ICLR 修改传统LSTM 当前输入和隐藏状态充分交互&#xff0c;从而获得更佳的上下文相关表达 1 Mogrifier LSTM LSTM的输入X和隐藏状态H是完全独立的 机器学习笔记&#xff1a;GRU_gruc_UQI-LIUWJ的博客-CSDN博客这篇论文想探索&#xff0c;如果在输入LSTM之前&#xf…...

网站开发数据交互/怎么引流到微信呢

给定一个字符串&#xff0c;找到它的第一个不重复的字符&#xff0c;并返回它的索引。如果不存在&#xff0c;则返回 -1。 案例: s "leetcode" 返回 0.s "loveleetcode", 返回 2. 我的思路&#xff1a; 利用字典记录每个字母出现的次数O(N) Python代…...

wordpress阿里云短信/seo 最新

1、安装setuptool 下载&#xff1a;https://pypi.org/project/setuptools/#files 执行命令&#xff1a;python setup.py install 2、安装pip 下载&#xff1a;https://pypi.org/project/pip/#files 执行命令&#xff1a;python setup.py install...

网站后台上传图片脚本错误/semicircle

1)实验平台&#xff1a;ALIENTEK NANO STM32F411 V1开发板2)摘自《正点原子STM32F4 开发指南(HAL 库版》关注官方微信号公众号&#xff0c;获取更多资料&#xff1a;正点原子第六章 跑马灯实验STM32 最简单的外设莫过于 IO 口的高低电平控制了&#xff0c;本章将通过一个经典的…...

邵阳学院研究生与学科建设处网站/windows优化大师是自带的吗

编译并运行第一个java程序a)、在”D:\Tools\Java\test“目录下新建HelloWorld.java源文件(目录任意&#xff0c;要设置显示系统的扩展名)。b)、输入如下代码&#xff1a;public class HelloWorld {public static void main(String[] args) {System.out.println("Hello Wor…...

杭州网站建设哪家公司好/营销网站类型

在Linux系统下安装docker容器环境 1.容器介绍 1.1 镜像&#xff08;Image&#xff09; 镜像可以用来创建Docker 容器&#xff0c;Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像&#xff0c; 用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。1.…...

河北网站建设seo优化/营销型企业网站的功能

项目一直从dotnet core 1.1开始&#xff0c;升级到2.0&#xff0c;乃至如今2.1&#xff0c;以后保持继续更新。 但可能只是一个后台&#xff0c;前台的话&#xff0c;到时候看有没有好的模板。 ------------无聊的分割线------------- 项目git仓库&#xff1a;https://github.c…...