【GAMES101】Lecture 20 光场

目录

光场(Light Field / Lumigraph)

广场照相机


光场(Light Field / Lumigraph)

我们在三维的世界中从一个观测点出发看到这么一幅二维的画面

如果有这么一副画布可以完美的显示出从观察点看到的画面,那用这幅画布去替换周围的世界而使你感觉不到有什么不一样,这就是虚拟现实技术

我们能看到这个世界是因为周围有光线进入我们的视网膜,就可以用一个全光函数(The Plenoptic Function)来描述我们看到的东西

所谓全光函数,就是我往三维中某个方向看去会有不同的光进入我的视网膜,那就是这样一个关于空间角的一个函数返回光的强度

 但是这个世界是有颜色的,也就是对于不同波长的光会有不同的值,所以要加上光的波长

周围的事物是会发生变化的,此刻和前一刻的光可能会不一样,因此还需要加上时间

不同的观测点看到的世界也会有所不同,因此还需要加上观察点的位置

在世界中定义一条光线需要光线上某个点的位置和光线的方向,也就是五个维度的,三个维度的位置,和两个维度的方向确定一条光线

但是还可以通过两个点来决定一条光线,此时的参数是四维的,为什么是四维的后面说

那么光场是什么?对于一个物体,用一个包围盒包住它,用包围盒记录下物体表面每个点出来的光线信息,记录下光的方向,然后包围盒上的点可以用二维的(s,t)来表示,方向可以用(\theta\phi)来表示,这就是光场(我寻思这个包围盒不是立体的吗,怎么点的位置可以用二维的(s,t)来表示?我思考了一下,这个包围盒只有表面有用,应该是可以把它展开,那么表面在立体中是三维的存就会可以用二维确定)

有了这个光场之后,就不再需要这个物体本身了,就把这个包围盒当成是黑盒,不用关心里面是什么,反正我从外面看到的就是这个物体发出来的光,因为这个光场已经记录下物体表面所有点发出来的光了

对于包围盒中的一条光线可以通过两个点来确定,这两个点可以通过一个对称面上的二维坐标确定下来

假设摄像机在右边,那从(u,v)某个点连接(s,t)上的所有点的光线所形成的画面就是从某个角度看向的物体画面

而从(s,t)上某个点连接(u,v)上所有点的光线则是对应于物体的某点从各个方向看到的样子

广场照相机

普通照相机在拍照完成之后呢这个成像基本就已经定下来了,而光场照相机可以先拍照后期可以动态调整聚焦来决定哪块模糊哪块清晰,那这个是怎么做到的呢?顾名思义就是用的光场的原理

简单来说,光场照相机记录的是整个光场的信息,普通照相机即时成像在传感器上,那每个像素的值就固定下来是这个来着各个方向的光的平均值,但是光场照相机把每个像素换成薄透镜,把传感器放后面一点,这样聚焦的光线经过薄透镜后会再次散开落在后面的传感器上,这样记录下来的就是来着各个方向的光,即整个光场的信息,后期利用光场可以实现动态调焦的效果

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

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

相关文章

idea设置terminal为git

要在IntelliJ IDEA中设置终端为Git Bash,请按照以下步骤操作: 打开 Settings(设置)。点击 Tools(工具)选项卡。进入 Terminal(终端)界面。在 Shell Path 下选择 Browse(…

Redis发布订阅及事务管理

目录 一、发布订阅 1.1、常用命令 1.2、示例演示 二、事务管理 2.1 Multi、Exec、Discard 2.2 示例演示 2.3 事务的错误处理 2.4 事务的冲突问题 2.4.1 事务场景 2.4.2 悲观锁 2.4.3 乐观锁 2.4.4 事务解决冲突—WATCH 2.4.5 UNWATCH 2.4.6 Redis事务的三个特性 …

测试管理总结

前言 最近经常被问到如何对测试团队进行管理的问题。 我自己总结了一下自己的一些看法,希望书面记录下来,加深印象,也借机像各位同行大牛请教一下 **我从5个方面进行总结: 第一、团队组建** 分别从2个团队的情况来说&#xff…

突破编程_C++_面试(基础知识(9))

面试题24:什么是面向对象编程 面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式或编程模型,它基于对象的概念来设计和实现程序。在面向对象编程中,程序是由一系列对象组成的,…

ES实战-book笔记1

#索引一个文档,-XPUT手动创建索引, curl -XPUT localhost:9200/get-together/_doc/1?pretty -H Content-Type: application/json -d {"name": "Elasticsearch Denver","organizer": "Lee" } #返回结果 {"_index" : "g…

尚硅谷 Vue3+TypeScript 学习笔记(中)

目录 三、路由 3.1. 【对路由的理解】 3.2. 【基本切换效果】 3.3. 【两个注意点】 3.4.【路由器工作模式】 3.5. 【to的两种写法】 3.6. 【命名路由】 3.7. 【嵌套路由】 3.8. 【路由传参】 query参数 params参数 3.9. 【路由的props配置】 3.10. 【 replace属性…

机器学习:SVM、softmax、Dropout及最大池化max_pool介绍

一、利用线性SVM进行分类 train_data: (train_num, 3072) 训练流程 初始化权重W: (3072, 10) 梯度dW: (3072, 10)train_data和权重相乘得到score(10,)对应每个类别的分数 2.1 对于每个score中的分数i,如果是正确的类别对应的score跳过 2.2 如果是其他的类别&…

【GAMES101】Lecture 20 颜色

目录 光 颜色 加色系统 CIE RGB颜色匹配实验 颜色空间 CIE XYZ颜色空间 HSV颜色空间(Hue-Saturation-Value) CIELAB空间 减色系统:CMYK 光 光是由不同波长的光波组成的,其中可见光的波长范围在400nm到700nm 用谱功率密度(Spectral…

Low 级别反射型 XSS 攻击演示(附链接)

环境准备 如何搭建 DVWA 靶场保姆级教程(附链接)https://eclecticism.blog.csdn.net/article/details/135834194?spm1001.2014.3001.5502 测试 打开 DVWA 靶场并登录,找到反射型 XSS 页面(笔者这里是 Low 级别) 先…

图像处理之《鲁棒图像隐写术:隐藏频率系数中的信息》论文精读

一、文章摘要 隐写术是一种将秘密信息隐藏到公共多媒体对象中而不会引起第三方怀疑的技术。然而,大多数现有的工作不能提供良好的抗有损JPEG压缩鲁棒性,同时保持相对较大的嵌入容量。提出了一种基于可逆神经网络的端到端鲁棒隐写系统。该方法将秘密信息…

SpringBoot源码解读与原理分析(六)WebMvc场景的自动装配

文章目录 2.6 WebMvc场景下的自动装配原理2.6.1 WebMvcAutoConfiguration2.6.2 Servlet容器的装配2.6.2.1 EmbeddedTomcat、EmbeddedJetty、EmbeddedUndertow2.6.2.2 BeanPostProcessorsRegistrar(后置处理器的注册器)2.6.2.3 两个定制器的注册 2.6.3 DispatcherServlet的装配2…

医学搜题神器找答案? #知识分享#职场发展

大学生必备的搜题工具,专业课本习题、电子版教材、考研资料、英语四六级等考试题目也能一并搜索,每道题目都有详细的讲解,每个都堪称大学神器。 1.题小聪 这是一个公众号 它支持文本搜索、扫码搜书、拍照搜索,不会的题目直接对…

幻兽帕鲁PalWorld服务器2024年配置选择

幻兽帕鲁PalWorld是一款备受期待的虚拟游戏,其独特的幻兽系统和丰富的世界观吸引了大量玩家。然而,随着游戏日益受到关注,服务器的配置选择成为了关键问题。2024年,随着技术不断发展,玩家对于游戏体验的需求也在不断提…

[word] word自定义编号格式怎么设置 #经验分享#职场发展#职场发展

word自定义编号格式怎么设置 在Word文档的编辑中,经常会给段落添加编号,但是在编号的使用过程中我们会遇到很多问题,今天给大家分享word自定义编号格式怎么设置,希望能帮到您! 1.如何自定义编号格式? 点击…

NAS如何成为生产力?使用绿联DX4600 Pro搭建图床并实现创作自由

NAS如何成为生产力?使用绿联DX4600 Pro搭建图床并实现创作自由 哈喽小伙伴们好,我是Stark-C~ 关注我的小伙伴都知道,我之前有分享过我的创作过程与工具,其中介绍了我个人其实一直都是使用Markdown的编辑器来进行图文创作的。 我…

数据存储的端序(大端序和小端序)——VB/VBA

VB/VBA存储的端序 1、要想制造高性能的VB/VBA代码,离了指针是很难办到的。 2、因为VB/VBA里,用Long来表示指针,而32位(包括64位兼容的)计算机里4字节整数的处理,是最快的方式! 3、要想用指针来处理数据,…

leetcode 153

153 寻找旋转排序数组中的最小值 这道题,如果我们熟悉数组 api,可以直接用 Arrays.sort()秒杀,这个方法使用了双轴快速排序算法。 解法1如下: class Solution {public int findMin(int[] nums) {Arrays.sort(nums);return nums…

如何在 Mac 上恢复永久删除的文件:有效方法

您是否错误地从 Mac 中删除了某个文件,并且确信它已经永远消失了?好吧,你可能错了。即使您认为已永久删除计算机上的数据,仍有可能将其恢复。 在本文中,您将了解如何在 Mac 上恢复永久删除的文件,并了解增…

基于微信小程序的校园失物招领小程序

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

【Web】小白友好的Java内存马基础学习笔记

目录 简介 文件马与内存马的比较 文件马原理 内存马原理 内存马使用场景 内存马分类 内存马注入方式 这篇文章主要是概念性的,具体技术细节不做探究,重点在祛魅。 简介 内存马(Memory Shellcode)是一种恶意攻击技术&…