第23章,景深:技术综述

一,定义:
中景:物体聚焦的范围(即清晰成像的范围)。
景深:在中景之外,都会成像模糊,即景深。景深通常用来指示对场景的注意范围,并提供场景深度的感觉。
背景:比中景远的区域。
近景:比近景近的区域。
焦平面:光穿过摄像机透镜(或人眼睛的晶体),会聚焦到胶片(或人的视网膜)上的一个点。此时,光源与透镜的距离,即为焦平面。
模糊圈Coc:如果光源没在焦平面上,则投影到胶片上的区域不再是一个点,而是一个模糊圈。即,模糊圈。CoC的直径与透镜尺寸和偏离焦平面的距离成正比。
由于Coc的直径与透视尺寸成正比,那么,如果透镜尺寸为0的时候,Coc的直径也是0,即针孔照相机没有景深。

二,模糊圈的计算
在这里插入图片描述

在世界空间中,摄像机到物体的距离产生的模糊圈可以用摄像机参数来计算。
CoC = abs(aperture * (focallength*(objectdistance - planeinfocus)) / (objectdistance * (planeinfocus - focallength)))
物距能通过z缓冲区的z值计算:
objectdistance = -zfar * znear / (z * (zfar - znear)- zfar)
模糊圈也能通过z缓冲值,以及综合摄像机参数的缩放项和偏置项来计算
CoC = abs(z * CocScale + CocBias)
用摄像机参数计算缩放和偏置项
CocScale = (aperture * focallength * planeinfocus * (zfar - znear)) / (planeinfocus - focallength 0 * znear * zfar)
CocBias = (aperture * focallength * (znear - planeinfocus) ) / ((planeinfocus * focallength ) * znear)
三、主要技术
Z缓冲区技术上更适用于在目前的图形硬件上实时渲染。
1,穿过(非针孔)透明表面的分布式光线跟踪(Cook等,1984年)
对穿过透镜的光线进行恰当的统计分布,能够得到最正确的景深。因为这样真实地模拟了光线在摄像机和场景中的传输(正确着色而无须实时处理时)
2,累积缓冲区技术
累计缓冲区是高精度彩色缓冲区,在实时渲染中通常用它来累加多个图像。
摄像机从不同的位置到穿过透镜来多次渲染场景,然后使用累计缓冲区混合结果。所混合的渲染遍越多,看起来就越好,与“真实”景深越接近。但是如果遍数太多的遍数,丧失实时操作的可能。所需要的遍数与模糊圈的面积成正比。

3,多层次的渲染
理想情况下,把场景中各个物体分层排序,而层的深度互不重叠,那么就能够基于各层所代表的深度对每层进行模糊。然后把这些层组成最终的图像,给出景深的印象。
缺点是:
1,同层中的所有像素都均匀地进行模糊。当物体的深度跨度太大时,它的景深就显示不出来
2,物体跨越的深度范围大时,不能很好分割场景。
所以一般不用。
4,向前映射的Z缓冲景深。
适用于任意场景,可以给渲染好的图像和影片加上景深。
1,把像素的彩色值和深度值存储到缓冲区,
2,深度缓冲值为那个像素确定Coc。
3,把一个圆圈混合到帧缓冲区内,圆圈的颜色就是像素的颜色,圆圈的直径等于Coc,而圆圈的面积与alpha值成反比。
4,为了避免模糊像素影响它前面的清晰像素,只允许那个像素与离摄像机更远的相邻像素混合。
5,最后对该像素的alpha值重规范化。
6,渲染数以百万计的精灵(固定的彩色圆),不能很好的对应于硬件实时渲染。
5,反向映射的z缓冲区技术
1,存储一个颜色和深度的图像
2,逐个改变像素的深度值,去模糊被渲染的场景。取z值和焦平面z值较大的值作为模糊级别。
3,对于有mipmaps的场景纹理,以模糊圈作为导数执行纹理查询,决定从哪个mipmap级别读取。
4,可能会有几种失真: 。
(1)由于深度的不连续性产生失真(最严重,焦平面不能在场景的远处)
(2)双线内插的失真
(3)由于像素扩散产生的失真

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

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

相关文章

飞算 JavaAI -智慧城市项目实践:从交通协同到应急响应的全链路技术革新

免责声明:此篇文章所有内容都是本人实验,并非广告推广,并非抄袭,如有侵权,请联系。 目录 一、智慧城市核心场景的技术攻坚 1.1 交通信号智能优化系统的实时决策 1.1.1 实时车流数据处理与分析 1.1.2 动态信号配时…

GM3568JHF快速入门教程【二】FPGA+ARM异构开发板环境编译教程

SDK 可通过搭建好的 Docker 镜像环境进行编译。 具体参可考该部分文档内容。1 Docker镜像环境编译SDK1.1 SDK 自动编译命令切换到 Docker 内需要编译的 SDK 根目录,全自动编译默认是 Buildroot, 可以通过设置环境变量 RK_ROOTFS_SYSTEM 指定不同 rootfs.…

Vue3 整合高德地图完成搜索、定位、选址功能,已封装为组件开箱即用(最新)

Vue3 整合高德地图完成搜索、定位、选址功能(最新)1、效果演示2、前端代码2.1 .env.development2.2 GaodeMap.vue2.3使用示例1、效果演示 2、前端代码 2.1 .env.development https://console.amap.com/dev/key/app# 地图配置 VITE_AMAP_KEY "您的…

SpringBoot切换 Servlet 容器为Undertow

题目详细答案Spring Boot 默认使用 Tomcat 作为嵌入式的 Servlet 容器,但你也可以切换到 Undertow。Undertow 是一个轻量级、高性能的 Web 服务器和 Servlet 容器。步骤 1:排除 Tomcat 依赖需要在pom.xml文件(如果使用的是 Maven)…

通过限制对象的内存分配位置来实现特定的设计目标

《More Effective C》中的条款27聚焦于如何通过语言特性强制或禁止对象在堆上分配,其核心目标是通过控制内存分配位置来提升代码的安全性、可维护性和资源管理效率。 个人觉得,这个条款看看就可以了,可能在个别情况下需要考虑条款中说的情况。…

广东省省考备考(第七十四天8.12)——资料分析、数量关系(40%-70%正确率的题目)

资料分析 错题解析解析今日题目正确率:87% 数量关系:数学运算 错题解析解析备注: ①本题所求保护罩的表面积不包含底面。因为通常所说的“罩子”是没有底面的,即使罩子有底面,往往底面材质和罩子材质也不一样&#xff…

Java多源AI接口融合框架:动态模型切换与智能路由实战

> 在电商客服场景中,用户的一句“这件衣服适合夏天穿吗?”需要同时调用服饰知识库、天气API和风格推荐模型,但当GPT-4响应延迟时能否无缝降级到Claude?在预算有限时能否自动选择成本更低的本地模型? **多源AI接口整合已成为企业智能化落地的新基建**。据Gartner 2025报…

Linux中Docker redis介绍以及应用

一、NoSQL 1.1 单机mysql的美好时代 在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。 那个时候,更多的是静态网页,动态交互类型的网站不多。 上述架构上,我们来看看数据存储的瓶颈是什么&…

锅气:「现炒之魂·烟火人间」

《现炒之魂烟火人间》高清4K写实摄影方案高清4K写实摄影方案描述,可直接作为AI绘画工具(如MidJourney/DALLE)的提示词使用:🌟 核心概念✅ 主题:中式爆炒瞬间的生命力爆发✅ 氛围:炽烈烟火气 神…

【力扣494】目标和

用子集法,选or不选变成了正or负,BFS执行所有情况,判断恰好为目标和。 灵神: 设所有数的和为s,取正的和为p,则和为p-(s-p); 有t p-(s-p) 2p-s,即p (st)/2;这里的s和t都…

零基础AI编程开发微信小程序赚流量主广告实战

目录 前言:为什么选微信小程序流量主?零基础也能搞定的开发流程AI编程助手怎么帮忙?实战案例:做个AI图片识别小程序流量主广告怎么接入和变现?常见问题与避坑指南经验总结与互动1. 前言:为什么选微信小程序…

第六十三章:AI模型的“跨界之旅”:不同硬件架构下的兼容性方案

不同硬件架构兼容前言:AI的“英雄”与“舞台”第一章:AI硬件生态总览:百花齐放的“算力战场”1.1 CPU:AI计算的“全能基石”1.2 GPU:AI计算的“核心加速器”1.3 专用AI芯片:NPU/TPU等“定制利器”第二章&am…

2 Abp 框架核心架构

ABP Framework 核心架构 架构概述 ABP Framework 基于模块化、分层架构构建,遵循领域驱动设计(DDD)、依赖注入和 SOLID 原则,为构建可维护、可测试和可扩展的应用程序提供基础。 核心模块 #mermaid-svg-10g1JRKDltZN4z5P {font-fa…

Spring的高频基础面试题(二)

1. 线程池创建的作用是什么 ? 线程池的核心参数有哪些 ? 线程池执行任务的流程 ?作用:提高线程的复用性,降低损耗资源。核心参数:核心线程 、最大线程数 、等待空闲时间、时间单位、任务队列、线程工厂、拒绝策略执行流程: 首…

【JavaEE】(12) 创建一个 Sring Boot 项目

一、Maven 1、什么是 Maven Maven 用于管理项目、管理依赖(通过 POM 文件配置各种各样的 jar 包)。 在没有 Maven 之前,需要手动将 jar 包导入项目。整个流程:从网上查 jar 包并下载到本地(或者叫同事发)&…

最终章【1】Epson机器人篇

1,开发环境 Epson RC 7.5.1 RC90控制器 2,条件分支指令 2.1,If...EndIf,逻辑判断分支 语法格式: If 条件1 Then 处理逻辑1................ ElseIf 条件2 Then 处理逻辑2................ Else 处理逻辑3................ EndIf 例子: String order$If ord…

vue3 实现web网页不同分辨率适配

vue3 实现web网页不同分辨率适配首先这个标题可能不是特别的合适,之前开发了一个网站,那个网站是类似于官网的效果,按照 19201080100% 的分辨率进行开发的,但是在开发完成之后,发现有的电脑是 19201080125% 的大小展示…

电子电路原理学习笔记---第5章特殊用途二极管---第2天

5.5阅读数据手册图5-15给出了1N957B和1N4728A系列的齐纳二极管数据手册中的数据,再后面的讨论中将参考这些数据。数据手册中大部分信息是提供给电路设计者的,但有些内容在故障诊断和测试时也有必要了解。5.5.1最大功率齐纳二极管的功率等于它对应的电压与…

实现一个二维码让 iOS 和 Android 用户自动跳转到对应下载链接

实现一个二维码让 iOS 和 Android 用户自动跳转到对应下载链接 背景 开发一个APP后,需要分发Android测试包和iOS TestFlight的场景,但为两个端分别生成二维码,需要为二维码标识系统以免导致用户扫错码。如何实现一个二维码让 iOS 和 Androi…

Docker中ES安装分词器

1、下载好的文件上传到虚拟机或者云服务器 https://release.infinilabs.com/analysis-ik/stable/ elasticsearch-analysis-ik-8.10.4.zip 2、将本地 ZIP 文件复制到容器内的临时目录(如 /tmp/) docker cp /data/elasticsearch-analysis-ik-8.10.4.zip e…