当前位置: 首页 > article >正文

GAMES101:现代计算机图形学入门-笔记-11

来到第二十节课了,笔记也来到了十一。

继续说上节课的遗留问题光场(图中两个单词指代的是同一个事物)。

‘我们用全光函数来描述我们人眼能看到的所有的东西。

我们可以用极坐标来表示(球坐标系),将全光函数用两个角度来表示(也可以用x,y来表示,不过效果不好)。

我们在此基础上再假如波长作为函数的参数(波长带来的就是颜色的参数,因为不同颜色的光的波长不同)。

接着我们再加入一个时间的话,就构成了一个电影。

之前我们考虑的是人不动的情况,现在我们再假设人或者摄像机可以自由移动的话,这个电影就变成了全息电影。

我们可以在任何位置,任何时间,自由地朝任一方向看到任何颜色的光,这就是我们人眼所能看到的所有东西,这就是全光函数,我们拿七个维度来衡量整个人眼所能观察的世界。

现在让我们来定义一下光线:三维的位置,二维的方向。

又或者我们利用两点确定一条直线的性质,假设光线是无限延长的,那方向依然是二维,而位置也可以用二维变量来定义(HOW?)。

我们将一个物体用一个包围盒包围起来后,就可以记录所有跟这个物体的光有关的信息,光场是全光函数的一部分(包含距离和方向(两个二维向量)),是从任一位置通过任一角度观察物体的光的强度。

光场的参数化方法:

我们对于需要观察的物体(最右边的平面),他上面的任一个点都可以用二维坐标表示出来,接着我们再在他之外加上一个平面,这个平面上的任一个点也可以用一个二维坐标表示出来,于是我们可以用两个二维的坐标来得到光场中的任何一条光线。

这样的话,我们固定一个(s,t)坐标,让另一个平面上的(u,v)自由变化,就可以得到一个图像。(我们就假设一个是观察者的平面,一个是被观察的平面)

固定好(s,t)变化(u,v)本身并不难理解,可是如果我们固定(u,v)然后变化(s,t)会怎么样呢?想象一下我们从无数个摄影角度来观察我们需要观察的物体,这样得到的就是我们所谓的光场。

在自然界中就有一些生物是这样的,比如苍蝇的眼睛:复眼。我们将这多个棱镜吸收到的光,进行一个分光的操作:比如把光中的红色聚集在一个范围,绿色也聚集在一个范围这样。

而这,就是光场照相机的原理。

光场照相机的魅力在于:我们可以先拍照后后续聚焦,而不是一开始就限定好焦距,从硬件层面支持后期的修改。

接下来的部分是:颜色

我们都知道不同颜色的光来源于不同的波长,于是折射率不同,共同构建了可见光谱。

这里引入了一个新的概念:谱功率密度:描述不同波长的光的强度。

这里是一些光的SPD图像,以便理解。

SPD有一个非常好的性质:线性可加性。

什么是颜色呢?颜色本质上是人的一种感知,光本身并不具备颜色这个属性。

那人类具体来说是如何感受到颜色的呢?

这是我们人眼的结构,本质上和我们的相机差不多:瞳孔就是光圈,晶状体就是棱镜,而视网膜就是感光元件。

视网膜上有两种感光细胞:柱状体与锥状体。他们一个只感受灰度,一个提供颜色的感觉。

值得一提的是:对于不同人来说视网膜上的三种锥状体的数量并不相同(分别感受红,绿,蓝)。

对于人眼来说,光进入人眼,视网膜上的锥状体将光化成R,G,B三个值再传输给大脑,这就是形成了我们认知中的颜色。

我们已经知道了所谓的颜色其实是光谱通过一系列曲线积分后得到的结果,那么会不会出现虽然光谱完全不同但是曲线积分后得到一样的值的结果呢?

这种现象被称为同色异谱,这种现象对于我们手动调整颜色的值来说非常重要。

有点做不下去了,这节课有点过于无聊了,感觉要睡着了。反正大体上就是介绍了光场和颜色的这两种比较重要的概念的感觉,但是似乎也没有什么实际的应用,就当作科普吧。


http://www.kler.cn/a/450930.html

相关文章:

  • 容器技术所涉及Linux内核关键技术
  • Spring常见面试题总结
  • 虚幻引擎结构之ULevel
  • nmap扫描优化
  • 动态规划<四> 回文串问题(含对应LeetcodeOJ题)
  • 109.【C语言】数据结构之求二叉树的高度
  • 数据结构与算法Python版 散列与区块链
  • 前端常用算法集合
  • HTTP—01
  • MQTT协议在树莓派上的安全性和性能测试及其在物联网应用中的应用
  • 【网络云计算】2024第52周-每日【2024/12/24】小测-理论实操-解析
  • docker 安装minio
  • SpringBoot的Thymeleaf做一个可自定义合并td的pdf表格
  • LeetCode33题:搜索旋转排序数组(原创)
  • 【VMware虚拟机】安装win10系统教程双机可ping通
  • leetcode hot100回文字符串的链表
  • 帝国CMS:如何去掉帝国CMS登录界面的认证码登录
  • 类OCSP靶场-Kioptrix系列-Kioptrix Level 5(2014)
  • GB/T34944-2017 《Java语言源代码漏洞测试规范》解读——行为问题、路径错误、处理程序错误
  • 光谱相机在农业中的具体应用案例
  • C/C++ 数据结构与算法【数组】 数组详细解析【日常学习,考研必备】带图+详细代码
  • zabbix监控山石系列Hillstone监控模版(适用于zabbix7及以上)
  • vue实现打印指定页面内容
  • 消除视野盲区,保障行车安全--叉车四路环绕AI防撞系统
  • 迈向未来:.NET技术的持续创新与发展前景
  • 【华为OD-E卷-木板 100分(python、java、c++、js、c)】