计算机图形学--阴影1--PCSS算法

Shadow(PCF算法思路)------计算机图形学高质量实时渲染(二) 1.寻找blocker,并计算平均深度2.通过blocker深度计算fileter size3.按照PCF方式绘制软阴影PCSS本质上就是求出了阴影中需要做PCF的半影部分后再进行PCF的计算,这样动态调节了半影范围,也就是动态设置了PCF的搜索范围,这样我们的硬阴影部分清晰,软阴影部分模糊,动态的实现了不错的软阴影效果。简言之就是自适应滤波核的PCF。 阅读详情

阴影是怎么产生的,如何渲染出阴影

Shadow Mapping
假设要渲染以下场景
在这里插入图片描述
渲染场景2次:
1.第一次,产生一个shadow map,shadow map描述光源能照到的着色点.
在这里插入图片描述
在这里插入图片描述

2.从眼睛出发,从第一次渲染 shadow map中,看某个点是否在阴影里.
在这里插入图片描述
3. 再次渲染,我们渲染一个结果,比较深度。
在这里插入图片描述
好处:不再需要知道场景的几何信息
坏处:走样和锯齿

Shadow Mapping 的问题

问题一:渲染结果自遮挡
原因:我们对每一个场景的像素的深度,这个值是固定的。Shadow Map记录的深度不连续。且光线和场景的像素有夹角,也就是斜着照到像素上,Shadow Mapping 就会出现自遮挡现象。
在这里插入图片描述
解决方法:
如果光线打到像素上的时候夹角很大,我们Shadow Map中记录的深度和计算的深度加上偏移。光线和和着色点法线的夹角越大,偏移值越大。
在这里插入图片描述
问题二:引入问题一的方案后阴影不全
在这里插入图片描述
问题三:走样
在这里插入图片描述

如何渲染出好的阴影

预备知识:不等式
我们在实时渲染中,会把不等式在一定条件下,当做约等于用。
在这里插入图片描述
乘积的积分和积分的乘机近似:

以上不等式什么时候可以近似相等:
1.实际的积分范围很小的时候,可以近似.
2.g(x)在积分域的范围内变化不大(min,max差别不).
在这里插入图片描述
1.面光源,光源没有什么变化
2.BRDF是一个diffuse的材质在这里插入图片描述

PCSS算法(产生软阴影的方法)

Percentage Closer Filtering(PCF)**
第一:不是对已经存在的阴影做Filter
第二:不是对ShadowMap做Filter
在这里插入图片描述
PCF算法:
硬阴影:对任意一个着色点,计算它的阴影时候。比较shadow map中点和这个点的深度,看是否在阴影里。这种方式某个点的阴影只有0和1两种结果,也就是在阴影里面,或者不在阴影里面。这种方式产生的阴影叫做硬阴影
软阴影: 如果我们需要软阴影,那么我们这个点(某个着色点)需要和shadow map中的一个点比较。同时和shadow map中这个点附近的 7 * 7(除去该点)个点比较深度。那么我们得到了很多49个值(这些值是0或者1) 加权平均,就得到了一个在0~1之间的数值。那么这个值就可以代表阴影有多"软",越接近0,越软,越接近1,越硬。
在这里插入图片描述PCF的效果:在这里插入图片描述
在这里插入图片描述
什么时候是软一些,什么时候硬一些
在这里插入图片描述
Percentage Closer Soft Shadows (PCSS)**
距离遮挡物越近,阴影越硬,距离遮挡物越远,阴影越软。我们需要计算一个相对的平均的遮挡物和阴影的投射物之间的距离。
在这里插入图片描述
下图是光线,遮挡物(Blocker),阴影接收物(Receiver)和阴影的软硬关系。我们用这个计算的结果来确定过滤时候的核多大。PCF算法中 77 还是 33。
在这里插入图片描述
算法的核心:
第一步:记录一个shading point的遮挡物的平均深度(计算多大的区域内遮挡物?)
第二步:计算Filter的大小
第三步:PCF算法
在这里插入图片描述
找多大的区域?在着色点,连向光源,形成一个椎体,在这个椎体中去找blocker,再去找平均深度。
在这里插入图片描述
截图和公式来源闫令琪老师games202课程
感谢闫令琪老师为我们带来这么精彩的图形学课程
https://www.bilibili.com/video/BV1YK4y1T7yY?p=4&spm_id_from=pageDriver

Shadow Map ———— PCSS(percentage-closer Soft Shadow) Shadow Map  ———— PCSS(percentage-closer Soft Shadow)   1、PCSS解决了什么问题 传统的PCF每一次采样过滤耗费很大(每次都要遍历附近的几个点,虽然用了泊松分布,但还是不可避免),PCSS算法基本解决了该问题(通过动态计算采样范围,使用FindBlocker剔除非阴影点) 传统的PCF半影不够逼真…PCSS算法通过计算准确的半影范围解决 阅读详情

相关推荐

软阴影(PCF、PCSS)

软阴影与硬阴影的区别如下:上面为硬阴影,下面为软阴影。PCSS ,PCF

dx1313113的博客 3296

Vulkan_PCSS软阴影

本文简述实现,具体步骤原理可查看闫大神高质量实时渲染。 一、PCSS简介 1.1 PCF 百分比渐近过滤(PCF)是一个简单,常见的进行阴影边缘反走的技术。它通过在片段周围进行采样,然后计算样本比片段的更接近光源的比例,使用这个比例对散射光和镜面光成分进行缩放,然后对片段进行着色。使用这一技术后,阴影边缘看上去进行了模糊一样。 但对于较大物体的内部的采样是一个较大的浪费,我们并无法只针对物体边界进行采样,所以在性能是具有很大的瓶颈。 1.2 PCSS pcss是距离相关的, 它通过搜索阴影贴图上的附近区域

qq_35312463的博客 2296

基于亮度差算法的图像阴影遮挡去除——MATLAB仿真

本文将介绍一种基于亮度差算法的图像阴影遮挡去除方法,并提供相应的MATLAB仿真源代码。在亮度差分图像中,阴影区域通常具有较低的亮度值。接下来,计算原始图像的亮度差分图像。可以通过对原始图像进行高斯滤波平滑处理,然后计算平滑后的图像与原始图像的差值来得到亮度差分图像。可以使用图像修复算法(如基于纹理合成或基于领域填充)来填充阴影区域,以恢复原始图像的外观。函数是一个图像修复函数,可以使用MATLAB的图像修复工具包或自定义实现。基于亮度差算法的图像阴影遮挡去除——MATLAB仿真。请注意,上述代码中的。

ByteKnight的博客 570

PCSS 简介

本文简单介绍一下Percentage Closer Soft Shadow的原理,由于本人对于这个东西理解很浅,所以有些想法可能是不成熟的。 谈到PCSS,首先我们要介绍一下PCF(Percentage Closer Filtering),最早在1987年就被人提出的一种过虑算法,当时作者的初衷是用这种算法来改变Shadow Map的走样问题。 我把SDK中的Shadow Map简单改了一下,生成了上面两幅图片。左边的渲染图是经过PCF处理的,而右边是最普通的shadow map算法(

codeboycjy的专栏 1万+

超炫3D模拟照明与背景效果实战设计

htmltable {th, td {th {pre {简介:在计算机图形学中,3D模拟照明与背景效果是提升视觉真实感的核心技术,广泛应用于游戏、电影、虚拟现实等领域。本文深入解析光照模型、阴影处理、反射折射、全局光照及实时与预烘焙策略,并涵盖天空盒、环境贴图、动态天气、深度场和路径追踪等背景增强技术。通过本项目实践,开发者可掌握构建逼真3D场景的关键方法,在性能与画质之间实现高效平衡,打造沉浸式视觉体验。

weixin_35636570的博客 1149

Unity AR开发实战:从Vuforia图片识别到实体识别全流程解析

增强现实(AR)技术通过计算机视觉算法将虚拟信息叠加到现实世界,其核心原理在于对现实环境的感知与理解。在移动端AR开发中,图像识别与物体识别是实现虚实融合的关键技术,它们决定了虚拟内容能否准确、稳定地与现实对象对齐。Vuforia作为成熟的商业AR SDK,为开发者提供了从平面图像识别(Image Target)到三维实体识别(Model Target)的完整解决方案,极大降低了计算机视觉技术的应用门槛。在工程实践中,Vuforia通过封装复杂的特征提取与匹配算法,使开发者能够专注于交互设计与内容制作,广泛

weixin_30972263的博客 301

阴影(shadow)------计算机图形学高质量实时渲染(三)

也就是省去了在这个范围内进行。

weixin_44683202的博客 1054

沈阳计算机研究所复试,沈阳计算所复试试题附答案.doc

沈阳计算所复试试题附答案目录数据结构1200612007220085200914操作系统16200616200718200818200919组成原理20200620200720200821200921经典算法22数据结构2006数据结构部分(共25分,第1题10分,第2题15分)在(下图)所示的有向图中:v1 v2v4 ...

weixin_42511053的博客 862

GAMES 图形学系列笔记(三十九)

1这么一个范围,这是没有问题的,那么嗯如果我有一个比较大的k,比如说k我取五,那也就是说这个比值呢在0。2的时候。其实我就认为它的值已经达到一了,再大它也它也还就是一了对吗,也就是说这个比值我就只看0~0点二之间,这么一比值,而这个比值会告诉我哦,呃它的阴影会从零变到一,那如果我k我取100。那我基本上来说就是就这个这个比值,在0。

龙哥盟 2126

告别以太网瓶颈:手把手教你为AI训练集群搭建InfiniBand网络(以NVIDIA DGX A100/H100为例)

本文详细指导如何为AI训练集群搭建InfiniBand网络,解决以太网瓶颈问题,特别针对NVIDIA DGX A100/H100系统。通过硬件选型、网络架构设计和性能调优,显著提升多机多卡训练效率,适用于大规模模型训练场景。

weixin_30336061的博客 310

KNX智能家居工程设计应用

KNX,是一个起源于欧洲的总线标准,主要应用于家居和楼宇中,对末端电气设备进行总线式的控制,比如照明、空调、地暖、电动窗帘和遮阳设备等等。根据2017年英国著名咨询公司BSRIA的数据报告显示,在中国的智能家居和灯光控制市场,KNX产品的市场份额为各类产品中排名第一,占据了42%的市场份额,远远领先于其他的标准协议。设备中一个继电器表示一路输出,某些功能可能需要用到多个输出,比如1个窗帘AC输出需要占用两路继电器输出,一个继电器用于控制正转,一个用于控制反转,而普通开关输出则需要占用一路继电器输出即可。

hhhh5555666的博客 934

【游戏图形开发必看】:深度理解Shadow Mapping与PCSS的实战对比

掌握真实光影效果的秘诀,深入解析渲染的阴影实现技术。对比Shadow Mapping与PCSS在游戏图形中的应用,涵盖原理、适用场景与性能优化策略,提升画面真实感与效率。实战导向,值得收藏。

ProceNest的博客 803

别再为模糊的3D重建头疼了!手把手教你用3DSlicer处理DICOM数据,搞定医学影像三维可视化

本文详细解析了医学影像三维重建中常见的模糊问题,并手把手教你使用3DSlicer处理DICOM数据,实现精准的三维可视化。从层厚设置到数据格式转换,再到重建算法选择和渲染参数微调,提供了一套完整的优化方案,特别适合临床医生和医学影像处理人员提升工作效率。

weixin_28693447的博客 247

【计算机图形学/实时渲染】 阴影(GAMES202)

关于Light Map,Shadow Map,PCF,PCSS的介绍,参考GAMES202

qq_42885747的博客 1857

11-16 Fluent结果查看及后处理功能(做动画、监控点)

监控点、面及动画操作

zheaa的博客 1万+

Allegro基本规则设置指导书之Spacing Region

当网络需要在Region中需要按照自身的规则匹配时,可以创建Region Class来匹配。Region也支持Class to Class规则,点击ok即可。Allegro基本规则设置指导书之Spacing Region。下面介绍基本规则设置指导书之Spacing Region。给创建好的Region 匹配一个规则。空白的地方创建一个Region。

weixin_54787054的博客 564

【GAMES202】Real-Time Shadows1—实时阴影1

主要介绍了阴影图产生的问题:自遮挡,阴影走样,以及解决方法,以及实现软阴影的方法PCSS

Yhisken的博客 1203

idea出现 EXCEPTION_ACCESS_VIOLATION (0xc0000005) 的解决方法

idea启动的时候出现如下问题,以为没啥事,就索性关闭 后面再打开idea的时候发现直接闪退,之后打开其他软件,直接蓝屏

码农研究僧的博客 4817

【渲染的阴影技术全解析】:掌握实时光影核心技术的7大关键步骤

掌握实时光影核心技术,解决画面真实感难题。本文深入解析渲染的阴影关键技术,涵盖级联阴影映射、PCF滤波、VSM优化等7大步骤,适用于游戏开发与虚拟现实场景。提升性能与画质平衡,实现高效逼真的光影效果,值得收藏。

ByteShoal的博客 725

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

[GAMES202]作业1

本文系列为介绍games202中作业1的任务介绍,部分框架代码介绍以及示例答案代码。硬阴影基于PCF的软阴影,和基于PCSS的软阴影实现。本文主要介绍其中硬阴影的作业部分。

刘好念的博客 1323

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Percentage Closer Soft Shadows (PCF):实时软阴影渲染核心技术解析

PCF(Percentage Closer Soft Shadows)是实时3D渲染中实现软阴影的关键技术,通过多采样加权融合解决传统阴影映射产生的硬阴影问题。其核心原理是在目标像素周围定义采样核,进行多深度比较后计算阴影占比,实现平滑过渡效果。文章详细解析了PCF的技术基础、实现步骤(采样核设计、深度比较、加权融合)以及关键优化点(采样核类型选择、阴影acne处理、性能优化)。同时介绍了PCSS等衍生技术,对比了不同应用场景下的技术选型建议。PCF凭借简单高效的特点,仍是游戏引擎和实时渲染的基础阴影方案,

分享知识,拥抱变化 1595

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【实时渲染必修课】:深入理解阴影贴图与级联阴影的底层原理

掌握实时渲染中渲染的阴影实现原理,深入解析阴影贴图与级联阴影技术。适用于大型场景与复杂光照,提升画质与性能。详解算法逻辑与优化策略,值得收藏。

ProceShoal的博客 862

Real-Time Rendering 第七章 shadow

如果使用体积光或区域光 ,阴影就会由 完全阴影(umbra)和半阴影(penumbra)组成 半阴影如果仅仅是模糊阴影的边缘是不行的,得不到正确的半阴影 真确的soft shadow ,离阴影投射物体越近,阴影就越sharp,soft阴影的大小和hard 阴影的大小并不一样,它随着光源大小的增加而减小,soft shadow 让物体看起来更真实一些,但是hard shadow 渲染的更快 7.1 Planar Shadows 7.1.1 Projection Shadows 投射到平面..

qq_37672438的博客 1158

计算机图形学(Computer Graphics, CG)工程师 职级指南

级别核心关注点遇到问题时典型代码行为初级API 使用、功能实现“这行代码怎么报错了?调用 API,写简单的 Shader中级性能、效果落地“怎么跑得更快?怎么更像设计图?优化 Shader 指令,减少 Draw Call高级架构、底层原理“GPU 为什么在这个阶段卡顿?写 Compute Shader,重构渲染Pass专家技术突破、极限压榨“现在的硬件架构限制了我们,怎么绕过?手写汇编优化,修改驱动行为,复现论文首席数学理论、未来趋势“未来的渲染应该是什么样的?推导公式,制定标准。

抟土成人祖,炼石补青天。眼中览银河,手可摘星辰。 1129

[简化版 GAMES 101] 计算机图形学 21:从光栅化到光线追踪

本文深入浅出地讲解了计算机图形学中光栅化与光线追踪技术的核心差异与应用场景。文章首先剖析了光栅化技术在全局光照效果上的局限性(如硬阴影、Glossy反射和间接光照的实现困难),继而引出光线追踪技术的物理准确性优势。通过对比表展示了两种技术在渲染精度、性能表现等方面的显著差异,并详细阐述了光线追踪的三大光学假设基础(直线传播、光线互不干扰、光路可逆性)。 文章重点解析了Whitted-Style递归光线追踪的工作原理,包括主光线投射、阴影光线检测以及反射/折射光线的递归追踪机制,同时强调了能量守恒原理在光线追

软件科学-郝学胜 603

(渲染的阴影黑科技)全球仅5%团队掌握的VSM与Cascaded Shadow技术

掌握渲染的阴影黑科技,解决实时阴影锯齿与性能难题。详解VSM与Cascaded Shadow技术原理,适用于大型3D场景与游戏开发,提升画质同时优化效率。全球仅少数团队精通,值得收藏。

SimSolve的博客 740
上一篇: 计算机图形学----材质与外观
下一篇: LearnOpenGL学习笔记——OpenGL创建窗口
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值