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


Percentage Closer Filtering (PCF)

PCF最初是用来做抗锯齿的,后来发现可运用于软阴影上(PCSS)

从相机出发看向场景中的一点,记录该点的深度,将这点投影到光源照向场景的深度图(shadow map)中(在光源的深度图中寻找这一点的深度)。

在硬阴影中讲到比较该点的深度和光源的深度图中的深度进行比较,若不匹配说明有遮挡(为阴影区域),否则为可见区域。

在这里我们不仅仅找该点的深度,在shadow map上还要找该点周围的点的深度。

  1. 假设这里取3X3的区域。
  2. 将区域内的每一个点的深度与该点(中心点/投影的点)的深度进行比较(每次比较后的值为1 or 0 ,1为小于该点的深度(可见),0为大于该点的深度(不可见))。
  3. 进行比较后将比较后的值平均起来为0.667。

结果:(可到达抗锯齿的目的)


Percentage Closer Soft Shadows (PCSS)

将前面的PCF进行推广,如果filter变得特别大那么阴影就变成了软阴影!但是filter到底要如何变大,那一部分变大,变大到那种程度上才能得到最真实的效果?

比如上图,笔尖的地方接近硬阴影,笔帽的地方接近软阴影。可以观察到规律:阴影距离投射物越近越接近硬阴影,阴影距离投射物越远越接近软阴影。

所以要做软阴影,需要在物体阴影的不同位置上有不同大小的filtering-size,filtering-size与遮挡物与阴影的距离blocker distance有关.

 PCSS步骤:

在第一步做blocker  search的时候该使用多大的区域呢?

一般有两种解决办法:

1.使用5X5的格子

2.如下图:

示例图

软阴影(PCF、PCSS)相关推荐

  1. 【GAMES-202实时渲染】1、软阴影01(Shadow Mapping、Peter Panning、PCSS原理超详细)

    Lecture3 Real-Time shadows1 1 Shadow Mapping回顾 2 Shadow Mapping缺点及解决方案 2.1 自遮挡现象 解决方案1 定义一个bias 解决方案 ...

  2. GAMES202 PCSS软阴影算法细节解析

    在LearnOpenGL框架的基础上实现了一遍GAMES202的PCF+PCSS软阴影,之前学习GAMES202时一些没弄清楚的问题顺便搞清楚了. 注:本文中代码和shader均在笔者自学LearnO ...

  3. GAMES202 PCF PCSS 环境光渲染

    软阴影 Percentage closer soft shadows PCSS Shadow Mapping 两次渲染场景 第一次从光源看向场景,输出一个深度 shadow_map (每个方向/物体 ...

  4. Vulkan_PCSS软阴影

    本文简述实现,具体步骤原理可查看闫大神高质量实时渲染. 一.PCSS简介 1.1 PCF 百分比渐近过滤(PCF)是一个简单,常见的进行阴影边缘反走的技术.它通过在片段周围进行采样,然后计算样本比片段 ...

  5. unity3d软阴影和硬阴影的原理_使用随机采样创建软阴影

    本文是OpenGL 4.0 Shading Language Cookbook的学习笔记. Shadowmap的基础实现结合PCF可以产生软阴影.但是,如果想要更大宽度的软阴影,这种方法需要增加大量采 ...

  6. 一种软阴影的实现方法

    转载自:http://hi.baidu.com/laizhishen/blog/item/b4c219dee23df1e177c63851.html 软阴影 www.GameDev.net 作者:An ...

  7. ShaderJoy —— 最简单的软阴影(SoftShadow)实现【GLSL】

    效果图 关键思路解析 要实现阴影最核心的思想:就是要从场景中各个物体上的点 朝着光线的方向进行 Raymarching,如果经过 SDF 测试以后,发现有阻挡,则我们可知该像素是位于阴影区域的: 软阴 ...

  8. 333lu.vip.php,软阴影 - GameRes.com

    // Projecti= on matrix for the light<= /span>D3DXMatrixPerspectiveFovLH(&matPro= j, D3DXTo ...

  9. unity3d软阴影和硬阴影的原理_在广告摄影中阴影和高光的重要作用和控制技巧...

    投影和高光在大多数广告摄影画面中是不可避免的(除非像无投影布光或被摄体为非光洁表面),但又往往是影像的重要的组成部分. 投影和高光的存在,既有助于造型和质感的表现,但处理不当时,又会破坏画面和使人感到 ...

最新文章

  1. Scrum敏捷看板工具leangoo-销售流程管理
  2. 微软软件测试的可借鉴之处
  3. 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink——flink支持SQL,待看
  4. 2017-06-09 问题
  5. 详解数据挖掘与机器学习的区别与联系
  6. SQL Server安装计划
  7. LeetCode 3sum 问题
  8. 计算机网络设备配置遇到的问题,网络设备使用与维护
  9. vue引用jquery
  10. 轴承系统动力学模型matlab程序代码
  11. Theano入门神经网络(一)
  12. wps将批量数字转换成条形码_wps批量形成条码
  13. 恭喜腾佑当选“河南省企业上云推进联盟”理事单位!
  14. 网站banner设计有什么好的方法
  15. Exp2 后门原理与实践 ——20164316张子遥
  16. 微信小程序 教你如何复制页面路径 (以及京东、虎牙、苏宁、拼多多、等大厂的加密路径详解)(多图!!!)
  17. 教你炒股票29:转折的力度与级别
  18. 【建筑性能分析入门笔记】建筑能耗建模(1)
  19. 邮箱密码忘了怎么找回?电子邮箱密码怎么改和填写?
  20. 通过Swap函数交换两个变量的值

热门文章

  1. Android Weekly #37 :寻找知识的能力是一个非常重要的能力,如果找不到,你就只能等着别人来投喂...
  2. 计算机网络 - 练习(二百三十三)
  3. 8个经典数据分析模型
  4. 微信图片消息 服务器故障,解决图片上传到微信服务器后无法显示问题
  5. Android 四大组件之 BroadcastReceiver_3 实现开机启动拦截电话服务
  6. Java中字符串开头,java中如何判断字符串是以什么开头
  7. 科技岗位日趋增长,能成为女性职业选择的新可能吗?
  8. 【笔记】MATLAB文件中文乱码问题:使用记事本打开,保存成不同的格式,然后再使用Matlab打开观察结果
  9. [深度学习][原创]常用ocr框架和技术总结
  10. 谷粒学院(十七)讲师列表页 | 讲师详情 | 课程列表页 | 课程详情 | 整合阿里云视频点播