GAMES101.闫令琪.10.光场(Lecture 20)

  • https://www.bilibili.com/video/av90798049

光场

  • Light Field / Lumigraph
    • 同义词
    • 历史遗留问题,两个组同时各自发现这个概念

我们看到的世界

  • 放上一块幕布,让我们看到的东西和原来一模一样

  • 虚拟现实技术的原理
  • 我们只是看到各个方向的光线,看不到光线是多远来的、从什么地方来的

全光函数

  • The Plenoptic Function
  • 描述我们往各个方向看看到的光线

  • \(P(\theta,\phi)\)
    • 灰度图
  • \(P(\theta,\phi,\lambda)\)
    • 彩色图
  • \(P(\theta,\phi,\lambda,t)\)
    • 电影
  • \(P(\theta,\phi,\lambda,t,V_x,V_y,V_z)\)
    • 人眼/摄像机的位置可以改变
    • 全息电影
    • 我们能看到的所有东西
    • 7 个维度的函数就可以描述我们看到的整个世界
    • 全光函数

光线

  • ray
  • \(P(\theta,\phi,V_x,V_y,V_z)\)
    • 起点和方向
  • 物体表面的话可以用 4D 表示

光场

  • 光场:在任何一个位置,往任何一个方向去的光的强度
  • 2D 的位置,2D 的方向
  • 3D 物体的表面是在一个 2D 的空间中的
    • 纹理映射的思想
  • 2D 的方向
    • \(\theta,\phi\)
  • 有个光场之后,可以得到任意位置对物体的观测
    • 对于观测相机,做出视线,求出在物体表面的反射光线,然后从光场中读出即可
  • 我们不需要知道光场描述的具体的物体,只需要知道在物体表面的任何位置、任何方向的光线强度即可
    • 可以当作黑盒
    • 前提:观测点得在物体外面(我们记录的信息是往外的)
  • 取一个平面,对于平面上任意一个点、任意一个方向,记录光照强度,这样也可以描述光场
  • 另外一种参数化方式
    • 取两个平行的平面,然后在两个平面上各取一个点,这样也能描述光场
    • 两个点相当于确定了一个方向
    • \(u,v,s,t\) 描述

  • \(u,v,s,t\) 的两种理解方式
    • \(u,v\) 不变,取遍 \(s,t\)
      • 能看到完整的物体图
      • 相当于摄像机看向整个世界
    • \(s,t\) 不变,取遍 \(u,v\)
      • 能看到同一个点来自各个方向的光照
      • 看的是同一个东西,但是是从各个不同的角度去看
      • 相当于把记录的 irradiance 展开为 radiance

Stanford camera array

  • 利用上面的想法,从不同的 \(u,v\) 看向整个世界,让后把记录到的结果整合出来

苍蝇的眼睛(复眼)

  • 就是一个光场

  • lenslet:像素
  • 把光分开,把来自各个方向上的光分到不同的位置上去
    • 把实际的感光元件放在背后,前面放置一个透镜,通过透镜将光分开
    • 把 irradiance 分解为 radiance

光场摄像机

  • Light Field Camera
  • 上面提到的复眼的原理,透镜代替原来的像素,实际的感光元件放在背后
  • 支持重新聚焦
    • 原理就是光场
  • 很实用,重要的照片拍糊了,没关系,重新调焦距

原理

  • Each pixel (irradiance) is now stored as a block of pixels (radiance)

  • 怎么获取从光场摄像机的结果中获取一张照片

    • 每个小透镜都选择一个相同的方向
      • 相当于摄像机朝着这个方向去拍
    • 方向可以任意选择
    • 相当于可以虚拟的移动相机位置
  • 怎么生成给定对焦平面后的结果照片

    • 根据对焦平面计算出每一个光线的方向,在光场上查询出具体的强度
    • visually changing focal length, picking the refocused ray directions accordingly

问题

  • 分辨率较低
    • 方向分辨率更高,空间分辨率更低
    • same film used for both spatial and directional information
  • 价格贵
  • 微透镜的设计很麻烦