Unity中Shader的全局照明简介

news2024/11/17 11:52:42

文章目录

  • 前言
  • 一、什么是全局照明GI
    • 1、全局照明(Global Illumination),简称GI
    • 2、指既考虑场景中直接光源的光照(Direct Light)又考虑经过场景中其他物体反射后的光照(Indirect Light)的一种渲染技术,使用全局照明能够有效地增强场景地真实感
    • 3、全局照明 = 直接光照(Direct Light)+ 间接光照(Indirect Light)
  • 二、Unity中的GI方案
    • 1、预计算实时GI
    • 2、烘培GI
  • 三、Unity中的GI烘培系统
    • 1、Enlighten
    • 2、Progressive CPU Lightmapper(推荐用这个,效果稳定)
    • 3、Progressive GPU Lightmapper(个人感觉烘培起来超级快)
  • 四、Unity中的GI技术
    • 1、Baked Indirect
    • 2、Shadowmask / Distance Shadowmask
    • 3、Subtractive
    • 注意:
  • 五、Unity中使用上面方案的效果
    • 没有使用烘培方案时的效果
    • 1、使用预计算实时GI后的效果
    • 2、使用 Baked Indirect 的效果
    • 3、使用 Subtractive 的效果
    • 4、使用 Shadowmask / Distance Shadowmask


前言

Unity中全局照明简介


一、什么是全局照明GI

1、全局照明(Global Illumination),简称GI

2、指既考虑场景中直接光源的光照(Direct Light)又考虑经过场景中其他物体反射后的光照(Indirect Light)的一种渲染技术,使用全局照明能够有效地增强场景地真实感

3、全局照明 = 直接光照(Direct Light)+ 间接光照(Indirect Light)

使用全局照明前效果:
在这里插入图片描述
使用全局照明后效果:(更加符合现实中的效果)
在这里插入图片描述


二、Unity中的GI方案

1、预计算实时GI

预计算实时GI是在实时显示前把需要的数据进行烘培好,然后在运行时再进行读取以便和实时的光源进行互动

2、烘培GI

烘培GI是把光源对场景中静态物体的光照效果提前烘培到一张张的光照纹理中,然后再把光照纹理采样到物体表面以产生全局光照效果的方式


三、Unity中的GI烘培系统

1、Enlighten

旧版中的烘培技术,2020LTS是最后一个支持此技术的版本,在2021.1中完全移除

2、Progressive CPU Lightmapper(推荐用这个,效果稳定)

渐进式烘培,基于路径追踪的烘培系统。Unity后续版本中大力推广的烘培系统。

3、Progressive GPU Lightmapper(个人感觉烘培起来超级快)

类似于Progressive CPU,只不过是在GPU上进行烘培计算,不过由于具体采样算法的不同,在效果上会有细微的差别。

在Unity中,可以在 Lighting 窗口中修改

在这里插入图片描述


四、Unity中的GI技术

1、Baked Indirect

只把间接光照烘培,直接光照还是实时的效果

2、Shadowmask / Distance Shadowmask

都是属于ShadowMask,可选使用按距离渲染的ShadowMask

3、Subtractive

把 直接光照 和 间接光照都烘培

在Unity中,可以在 Lighting 窗口中修改

在这里插入图片描述

注意:

这个 GI 方案需要在场景设计前确认,在确认之后这个场景的Shader都按这个标准来写


五、Unity中使用上面方案的效果

没有使用烘培方案时的效果

请添加图片描述

1、使用预计算实时GI后的效果

在这里插入图片描述

请添加图片描述

2、使用 Baked Indirect 的效果

只把间接光照烘培,直接光照还是实时的效果

在这里插入图片描述
请添加图片描述

3、使用 Subtractive 的效果

把 直接光照 和 间接光照都烘培

在这里插入图片描述

这个情况下,需要把光的模式修改为 Mixed

在这里插入图片描述

我们会发现,被设置为静态的物体,既不被 直接光照 影响 也 不被 间接光照 影响了
请添加图片描述

4、使用 Shadowmask / Distance Shadowmask

都是属于ShadowMask,可选使用按距离渲染的ShadowMask

对于Shadowmask来说,又点特殊,会烘培出两张贴图
一张 光照的 ,一张 阴影的
在这里插入图片描述

  • 1.使用 Shadowmask 的效果(影子被烘培了,但是会随着光线角度变亮变淡)
    在这里插入图片描述
    请添加图片描述
  • 2.使用 Distance Shadowmask 的效果(在指定距离内使用实时阴影,在范围外使用和烘培阴影)

在这里插入图片描述
在设置的距离范围内时(实时的阴影):
请添加图片描述

在设置的距离范围外时(正常烘培的Shadowmask阴影):

请添加图片描述

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

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

相关文章

小红书关键词类型有哪些,如何布局搜索流量?

通过搜索关键词寻找到关注的内容,是大部分小红书用户的浏览习惯。因此作为品牌方,找准搜索的关键词,并合理嵌入内容中,就显得尤为重要。今天为大家分享下小红书关键词类型有哪些,如何布局搜索流量? 一、关键…

加速生态培育,国产CPU走到哪了?

国产大飞机C919的成功商飞,证明我国已经拥有了设计制造大飞机的能力。继高铁、盾构机等多个领域后,再次证明即使是技术后来者,通过在起步阶段引进关键技术,吸收消化后,自主研发不断发展前行,这条“引进吸收…

智慧粮库挡粮门异动监测

我国以往粮食收储设施比较老化,如何减少粮食在存储运输过程中的人为因素,确保粮食安全,成为亟待解决的问题,为了减少粮食的损失,“智慧粮库”的建设在我国有着重要意义。“智慧粮库”充分利用物联网、人工智能等技术&a…

自定义点云的数据类型PointXYZIRT

PCL支持的点云数据类型有PointXYZ、PointXYZI等,但是对于速腾、Velodyne等激光雷达的原始点云中还包含了激光点线号ring和每个激光点的时间戳信息,在读取该类点云时需要基于PCL库自定义点云格式才能读到原始点云的所有信息,以速腾激光雷达点云…

回归测试:在不断变化的环境中确保软件的稳定性

软件开发是一个复杂的过程,需要不断变化和更新以满足客户不断变化的需求,但它们也可能产生新问题或导致旧问题重新出现。这就是回归测试的用武之地——它是在不断变化的环境中确保软件稳定性的重要组成部分。 在这篇文章中,我们将深入探讨什…

开放式耳机推荐排行榜、开放式耳机性价比推荐

随着无线耳机越来越普及,人们对于耳机的要求也越来越高。传统的入耳式耳机虽然音质好,但是长时间佩戴容易引起耳部不适,甚至可能导致听力损失。为此大家都开始选择入手舒适、安全的开放式耳机,现在耳机市场,各种品牌、…

*VS Code中的Ajax

下载插件并使用 下载插件,开放一个端口给要加载的资源,解决跨域问题,没有后端接收数据,用来做小模块很合适 建立文件夹,文件夹下放入jquery插件和json文件 data.json {"total": 4,"data": [{"name&qu…

11、SpringCloud -- 利用redis优化查询秒杀商品的数据(就是可以把商品数据先存到redis中)

目录 秒杀商品数据存到redis中并查询需求hash理解代码:RedisService商品数据初始化:查询 测试: 秒杀商品数据存到redis中并查询 需求 利用redis优化查询秒杀商品的数据,就是可以把商品数据先存到redis中,要查的时候先…

springboot整合日志,并在本地查看

目录 1.导入依赖 2.编写配置 3.使用 4.验证 5.打印错误信息 1.导入依赖 <!-- logback&#xff0c;向下兼容log4j,还支持SLF4J--> <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId> </depen…

IPv6地址配置方式

IPv6地址分类 IPv6地址分为单播地址、任播地址&#xff08;Anycast Address&#xff09;、组播地址三种类型。和IPv4相比&#xff0c;取消了广播地址类型&#xff0c;以更丰富的组播地址代替&#xff0c;同时增加了任播地址类型。 单播地址 IPv6单播地址标识了一个接口&…

桶装水送水多门店水票押金押桶小程序开发

桶装水送水多门店水票押金押桶小程序开发 用户注册和登录首页展示各门店的桶装水品牌和价格用户可以选择门店和水品牌&#xff0c;并下单购买桶装水用户可以选择送水时间和地址用户可以查看自己的订单历史和当前订单状态用户可以申请退款或修改订单信息门店可以登录后台管理系…

毕业设计基于SpringBoot+Vue智慧云办公系统源码+数据库+项目文档

智慧云办公管理系统 一、系统简介 智慧云办公系统是一个采用SpringBootVue技术开发的前后端分离的项目&#xff0c;云办公系统通过软件的方式&#xff0c;方便快捷处理中小型企业的公司日常事务&#xff0c;能够提高整体的管理运营水平&#xff0c;使得办公更加高效方便&…

WebDAV之π-Disk派盘 + 读出通知

手机各种推销通知太多,如何避免那些繁琐的通知内容,做出一键就能够阅读重要通知的最佳体验,帮助您更加快速和便捷的体验到那些应用内容?推荐大家使用读出通知。 读出通知APP可以设置接收通知的app,还可以用耳机操作,操作简单,你还可以指定播报设备,还有播报的声音的设置…

大数据四大阵营

一、OLTP 阵营 OLTP&#xff08;在线事务、交易处理&#xff09;&#xff1a;RDBMS( Relational Database Management System)、NoSQL、NewSQL OLTP阵营可以分为&#xff1a; 传统的关系型数据库NoSQLNewSQL 1、NoSQL NoSQL类系统普遍存在下面一些共同特征&#xff1a; 不需…

草柴返利APP如何领取天猫淘宝红包优惠券享淘礼金红包0元购物福利?

什么是草柴返利APP&#xff1f; 草柴APP是一款淘宝/天猫、京东等电商平台购物前查询领取大额内部隐藏优惠券&#xff0c;确认收货后拿购物返利的省钱工具。同时&#xff0c;草柴APP上线隐藏的红包功能&#xff0c;查询到淘宝/天猫、京东商品优惠券、返利结果&#xff0c;点击进…

uniapp @click点击事件在新版chrome浏览器点击没反应

问题描述 做项目时&#xff0c;有一个弹出选择的组件&#xff0c;怎么点都不出来&#xff0c;最开始还以为是业务逻辑限制了不能点击。后来才发现别人的电脑可以点出来&#xff0c;老版本的浏览器也可以点出来&#xff0c;最后定位到是新版的chrome就不行了 这是我的浏览器版本…

postman使用POST,却收到的是GET请求

现象&#xff1a; 可以看到我们postman发出的确实是post请求&#xff0c;message却报错这个接口不支持get请求&#xff0c;说明服务器实际上收到的是一个get请求。 产生原因分析 如果我们访问的是线上的接口&#xff0c;线上的nginx一般都会对http访问做一个302重定向&#xf…

掌握Google Play上的应用商店优化

对于Google Play而言&#xff0c;ASO不仅可以提高我们的应用程序的可见性&#xff0c;还可以对我们的应用在应用商店搜索结果中的性能产生深远的影响。 1、应用商店优化在Google Play中的作用。 能够增强应用在Google Play商店搜索结果中的性能并提高点击率 。在优化过程涉及各…

Istio 实战

文章目录 Istio流量管理分享会【1】什么是istio?【2】istio 可以干什么?【3】业务中的痛点?【4】istio 高级流量管理5.1 istio 组件介绍与原理5.2 sidercar何时注入?如何控制是否注入?5.3 查看sidecar 容器插入的容器中的iptablesDestination RuleVirtual ServiceGateways…

Qwt QwtPlotMultiBarChart绘制多列柱状图

1.概述 QwtPlotMultiBarChart 是 Qwt 绘图库中的一个类&#xff0c;用于绘制多列柱状图。它可以显示多个柱状条并将它们按照不同的类别分组显示。每个类别下的柱状条可以有不同的颜色和宽度。 以下是类继承关系图&#xff1a; 2.常用方法 设置数据&#xff1a; void setSam…