IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 【技美百人计划】图形 4.5 Dof景深基础 -> 正文阅读

[游戏开发]【技美百人计划】图形 4.5 Dof景深基础

笔记

景深原理

● 指相机对焦点前后相对清晰的成像范围,是一段三维空间
● 针对相机成像产生的概念,肉眼也有类似的效果
在这里插入图片描述
在这里插入图片描述

景深遇到的问题

因为是基于深度图的实现,如果是半透明物体,则没有深度,要如何解决
个人思路:那首先得提取这个半透明物体,通过描边或alpha通道,识别出这个物体,然后再进行模糊与原图的混合来得到结果

实现思路

在这里插入图片描述
在这里插入图片描述

高级景深效果思路拓展

颜色泄露问题

颜色泄露:模糊的颜色夹杂着前景的颜色
在这里插入图片描述
解决方法:
扩散滤波,将每个像素点的颜色扩散到这个像素点的模糊圈范围中,动态改变模糊圈的大小:
聚焦区域以外的像素有大的模糊圈,聚焦区域内的,模糊圈直径小于一个像素,就不会扩散
在这里插入图片描述

模糊不连续缺陷

焦点在背景区域时,前景会有一种截断的现象。
原因:背景的光圈为0,前景区域大于0
在这里插入图片描述
解决方法:
做前景和背景的一个区分
然后把前景的模糊单独拿出来计算,制作一个mask,再与背景融合(也即过渡阶段,不要用0,1来选择前景或背景)

散景的模糊(Bokeh)

● 摄影学中,景深指的是虚焦造成了光点模糊的质量
● 散景在背景为高光的情况最为显著,如夜景灯光,镜面反射等
● 原因:高光区域亮度相对于场景的其它物体要亮的多,一般会超出拍摄时设定的成像范围,造成强度值的溢出截断;所以在景深渲染时,需要特殊处理,以补偿这些亮度过大的区域

解决方法:
在背景滤波的基础上,用点函数来模拟3d效果,因为光源在不同参属下成像效果也是不一样的。
单色光源在不同参数下的成像:
在这里插入图片描述
远景滤波上做了修改的公式:
在这里插入图片描述

作业

实现景深效果

请添加图片描述

分析官方后处理插件PPS中的景深实现

PPS V2 地址 https://github.com/Unity-Technologies/PostProcessing

  1. 通过 Pass CoCCalculation 用一张贴图记录 焦点与 深度的关系
  2. 选一种种模糊方法,得到模糊的贴图
  3. 通过Pass Combine,根据1、2两张贴图得到结果
enum Pass
        {
            CoCCalculation, // 用CoC表示了 焦点与 深度的关系(相当于解耦了:在自己的代码中,将这一步与Combine合并了,如果换了模糊函数,还得重新采样深度图计算)
            CoCTemporalFilter, // 与TAA相关
            DownsampleAndPrefilter, // 用于降低CoC贴图的大小,减轻带宽
            BokehSmallKernel,
            BokehMediumKernel,
            BokehLargeKernel, 
            BokehVeryLargeKernel, //考虑不连续问题、散景模糊的、使用不同卷积核大小的扩散滤波
            PostFilter, // 简单的均值滤波
            Combine, //用CoC贴图,与模糊贴图组合得到结果
            DebugOverlay //将CoC贴图可视化
        }

参考资料

https://www.bilibili.com/video/BV1dv411u7KA?p=2

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:40:53  更:2021-11-22 12:42:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 22:29:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码