unity 前向渲染 渲染阴影原理

news2024/11/28 16:04:06

下面情况默认是 前向渲染路径,场景中平行光开启了阴影

方式

原理

备注

ShadowMap

把相机放到光源的位置,那么场景中该光源的阴影区域就是那些相机看不到的位置

得到的是:场景中距离光源最近的表面位置(深度信息)

unity中专门的pass 单独处理阴影映射纹理。

pass的LightMode = ShadowCaster

shadowMap本质上是一个深度图

屏幕空间的阴影映射技术

Screenspace Shadow Map

显卡要求支持MRT

使用 额外的pass LightMode = ShadowCaster

第一步 得到可投射阴影的光源的阴影映射纹理(光源映射纹理)

和摄像机的深度纹理 (相机深度纹理)

第二步 根据光源的映射纹理和相机的深度纹理 得到 屏幕空间的阴影图

如果相机深度图中记录的表面深度大于光源映射纹理的深度值,就说明该表面可见,但是处于光源的阴影中。

得到的 阴影图包含了屏幕空间中所有的阴影区域

使用的时候, 由于阴影图是在屏幕空间下的,所以需要阴影的物体需要把表面坐标,从模型空间转换到屏幕空间中,然后使用这个坐标对阴影图进行采样

物体的阴影处理有两个过程 :

1 接受其他物体的阴影。 需要在Shader中对阴影映射纹理进行采样, 采样结果和光照进行相乘 ,得到产生阴影的效果

2 向其他物体投射阴影。 需要把该物体加入到光源的阴影映射纹理的计算中

可模拟Screenspace Shadow map中的光源映射纹理(橘黄色)和相机深度纹理(红色)。 想想一下,光源处理得到哪里有阴影, 相机深度得到哪里可以看见,两者进行处理得到结果就是屏幕空间的阴影图

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

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

相关文章

一个基于SpringBoot+vue的学生信息管理系统详细设计

一个基于SpringBootvue的学生信息管理系统详细设计 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码…

【docker08】本地镜像发布到阿里云

本地镜像发布到阿里云流程 1.流程 2.镜像的生成方法 基于当前容器创建一个新的镜像,新功能增强命令: docker commit [OPTIONS] 容器ID [REPOSITORY[:TAG]] 3.将本地镜像推送到阿里云 3.1本地镜像素材原型 3.2阿里云开发者平台 进入阿里云找到控制台进…

Word控件Spire.Doc 【Table】教程(2):如何设置Word表格列宽

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

CV中一些常见的特征点

Harris、SIFT、SURF、ORB特征点总结本篇博客介绍一些常见的特征点。Brief描述子:编辑切换为居中添加图片注释,不超过 140 字(可选)编辑切换为居中添加图片注释,不超过 140 字(可选)编辑切换为居…

基于JavaSpringboot+Vue实现前后端分离房屋租赁系统

基于JavaSpringbootVue实现前后端分离房屋租赁系统 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码…

已解决Python pandas.read_excel读取Excel文件报错

已解决(Python pandas.read_excel读取Excel文件报错)io ExcelFile(io,storage_optionsstorage.options, engineengine) 文章目录报错代码报错原因解决方法帮忙解决报错代码 粉丝群一个小伙伴想用pandas.read_excel读取Excel文件&#xff…

Linux文件管理---磁盘上文件如何管理(inode)

文章目录磁盘与文件的关系磁盘的逻辑结构与操作系统关系真实的磁盘逻辑结构一台计算机磁盘上的文件是非常多的,这些文件该如何进行管理?我们想打开某个磁盘上的文件究竟是如何找到该文件的?磁盘与文件的关系 这就是磁盘的物理模型和存储结构 …

Ubuntu20.04安装Mysql5.7

目录 1、下载安装包 2、解压 3、删除测试安装包 4、开始安装Mysql 4.1、如果碰到缺少依赖处理方法,没有碰到忽略即可 5、配置MySQL 5.1、查看mysql状态 5.2、设置root密码 1、下载安装包 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-server_5.7.3…

操作系统死锁相关知识点介绍

死锁 死锁的定义 一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到的资源,这种现象称为进程死锁,这一组进程就称为死锁进程。 如果死锁发生,会浪费大量系统资源,甚至导致…

【CSDN周赛】第21期第二题千问万问

题目描述: 给定大小为n的整数序列A. 现在会有q次询问,询问子区间的整数数量。 思路: 1、考的时候没做出来,但是感觉不难,一直不懂错在哪里,所以比赛结束后继续修改; 2、以下代码没有按调用函…

QTextDocument

一、描述 此类用来储存结构化的富文本文档。 二、类型成员 1、enum QTextDocument::FindFlag:此枚举描述查找函数可用的选项。这些选项可以用“|”组合: FindBackward:向后搜索。FindCaseSensitive:不区分大小写。FindWholeWo…

用户单点登录

一、用户身份认证 1、单一服务器模式 我们使用传统的Session贺Coookie的模式,就可以完成单一服务器的登录,会话跟踪技术, 一般过程如下: 用户向服务器发送用户名和密码。 验证服务器后,相关数据(如用户名…

SpringBoot自定义动态定时任务(三十五)

二八佳人体似酥,腰间仗剑斩愚夫。虽然不见人头落,暗里教君骨髓枯。 上一章简单介绍了SpringBoot整合Quartz实现动态定时任务(三十四) ,如果没有看过,请观看上一章 通过 Quartz 实现了动态定时任务,还需要引入 Quartz 组件, 能不…

腾讯前端二面高频手写面试题总结

实现LRU淘汰算法 LRU 缓存算法是一个非常经典的算法,在很多面试中经常问道,不仅仅包括前端面试 LRU 英文全称是 Least Recently Used,英译过来就是” 最近最少使用 “的意思。LRU 是一种常用的页面置换算法,选择最近最久未使用的…

降本提效 | AIRIOT设备运维管理解决方案

传统运维多是使用在本地化系统,以人工运维和独立系统执行运维工作,重点关注的是设施运行,存在以下几个问题: 1、信息孤岛:本地化系统的接口不同,功能单一独立,各个系统之间的数据无法对接、交互…

了解枚举。

在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。 [1] 是一个被命名的整型常数的集合,枚举在日常生活中很常见&#xff0…

xxx.OpenResty+Lua后续补充

OpenRestyLua后续补充-请求参数处理看上图,鼠标右键-在新标签中打开图片食用 这是对xxx.nginx转发OpenResty(nginx升级版)_web服务器lua_tgbyhn31的博客-CSDN博客 的一个补充,用于nginx处理请求参数。 附代码: nginx 配置 #user nobody; w…

centos7 安装docker和docker-compose

本人使用的是 阿里云的centos7 的 镜像 安装在虚拟机里面的linux系统 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 如果这条命令没用 在国内很慢 换个地址用下面的试试 curl -sSL https://get.daocloud.io/docker | sh 安装成功 设置开机启动doc…

让你轻松掌握电商设计的在线工具,无门槛

零门槛不用经过工具认识,跟着教程就能上手的电商主图设计平台,让无基础又急需要设计电商主图的你轻松设计商品主图,下面跟着小编的教程一起学习如何使用乔拓云,在线设计电商主图!按照步骤就能搞定!第一步&a…

适配器Adapter

1.意图:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 2.结构 类适配器结构图 对象适配器结构图 类适配器使用多重继承对一个接口与另一个接口进行匹配。对象适配器依赖于对象组合。 Targ…