zoukankan      html  css  js  c++  java
  • 【三】材质反射属性模型BRDF

    • 双向反射分布函数(BRDF:Bidirecitonal Reflectance Distribution Function)
      • 用来描述物体表面对光的反射性质
    • 预备知识
    • BRDF的定义和性质
    • BRDF模型
    • BRDF的度量与评价

    光照、照明

    • 分为全局和局部光照
      • 局部光照(Local illumination)和物体直接被光源照射的情况
      • 全局光照(global illumination)和物体被光源外的其他地方的光线照射的情况相关,包括其他物体反射和投射过来的光线。

    预备知识

    • 球面坐标(Spherical Coordinate)
    • 立体角(Solid Angel)
    • 投影面积(Foreshortened Area)
    • 光能(Radiant Energy)
    • 光通量(Radiant Flux)
    • 灰度(Irradiance)
    • 发光强度(Intensity)
    • 光亮度(Radiance)

    球面坐标

    • 由于光线主要通过方向来表达,通常用球面坐标表示比笛卡尔坐标更方便

    • 球面坐标中的向量用三个元素表示

      • r表示向量长度
      • θ表示向量与z轴的夹角
      • φ表示向量在x-y平面上的投影与x轴逆时针夹角
    • 球面坐标和三维笛卡尔坐标对应关系

    Car(x,y,z)=Sph(r,theta,phi)
    
    • 转换关系
    r=sqrt(x^2+y^2+z^2)
    
    
    θ = acos(z/r)
    φ = atan(y/x)
    

    立体角(Solid Angle)

    • 立体角描述了从原点向一个球面区域张开的视野大小,是平面角的自然推广
    • 立体角的最大值为全交:4π,改最大值表示区域为整个球面
    • 立体角微分形式
    dw=dA/r^2
    
    • 由于面积微元在球面坐标系下可以写成
    dA = (rdθ)(rsinθdφ) = r^2sinθdθdφ
    

    投影面积(Foreshortened Area)

    • 投影面积描述了一个物体表面的微小区域在某个视线方向上的可见面积。
    • 对于面积微元A,则沿着与法向夹角为θ方向的A的可见面积。
    Area=Acos θ
    

    光能(Radiant Energy)

    • 光能表示的是(一个区域中)光子能量的总和。
    • 光能通常使用符号Q表示,单位是焦耳(J)

    光通量(Radiant Flux)

    • 光能并不会停留和存储在某个位置,而是在始终不断运动。
    • 光通量描述的是单位时间穿过截面的光能。

    辉度(Irradiance)

    • 辉度表示单位面积受光能的影响的程度,等于单位面积上的光通量

    发光强度(Intensity)

    • 对一个点(如光源),发光强度表啊是单位立体角上的光通量。

    光亮度(Radiance)

    • 光亮度表示物体表面沿着某一方向的明亮成都,它表示单位投影面积和单位立体角上的光通量。

    BRDF的定义和性质

    • BRDF的定义
    • BRDF的性质
      • 可逆性(Reciprocity)
      • 能量守恒
      • 基于BRDF的渲染方程(Redering Equation)

    BRDF的定义

    • BRDF描述的是物体表面将光能从任何一个入射方向反射到任何一个视点方向的反射特性。

    • BRDF模型是绝大多数图形学算法中用于描述光反射现象的基本模型。

    • BRDF是关于入射光方向和反射光方向的四维实值函数,它等于反射方向的光亮度和沿入射方向的入射光的辉度之比:

      f(wi→wr)=dLr(wr)/dEi

      • 可以写成关于入射光的光亮度的形式

      f(wi→wr)=dLr(wr)/Li(wi)cos wi dwi

    BRDF的可逆性

    • BRDF的可逆性源自于Helmholtz光路可逆性
    • BRDF的可逆性是说:交换入射光和反射光的角色,并不会改变BRDF的值

      f(wi→wr)=f(wr→wi)

    能量守恒性质

    • BRDF需要遵循的另一个物理定律是能量守恒。入射光的能量与出射光的总能量应该相等

      Qincoming=Qreflected + Qabsorb + Qtransmitted

    • 因此BRDF必须满足如下积分的不等式、

    渲染方程(Redering Equation)

    • 用于计算环境光照明下的反射光的光亮度,可以写成不同角度入射光的光亮度乘BRDF的积分

    BRDF模型

    • 为了方便高效的使用BRDF数据,往往被组织成为参数化的数值模型

    • BRDF的数值模型分为三类

      • 经验模型(Empirical Models)
      • 基于物理的模型(Physical-based Models)
      • 数据表达的模型(Data-driven Models)
    • 经验模型

      • 使用基于实验提出的公式对BRDF做快速估计
    • 基于物理的模型

      • 根据物体表面材料的几何以及光学属性简历反射方程计算BRDF
    • 数据表达的模型

      • 将BRDF按照实测数据建立查找表,以便于快速的查找和计算

    经验模型1:Lambertain

    • Lambertain模型是最基本的反射模型
      • 反射光线被均匀的反射到到各个方向
      • 沿不同的方向BRDF是一个常数
    • 反射率
      • 反射率是反射光亮度与入射光亮度之比。

    • Lambert漫反射模型能很好的描述包含纯粹漫反射的物体(如:纸张)
    • Lambert漫反射模型不能表现出材质的镜面反射效果,而镜面反射对金属材质非常重要。
    • 由于Lambert模型的简洁以及对漫反射良好的描述,常在其他经验模型中作为分量被包含

    经验模型2:Phong模型

    • Phong模型是在Lambert漫反射模型的基础上,添加了镜面反射项,以表达反射角上的镜面反射效果

    • 其中pd和ps分别表示漫反射光和镜面反射光线的反射率,s表示发光指数,用于描述镜面反射的锋利度。
    • Phong模型不满足可逆性
    • Phong模型缺乏物理解释,并且对于某些金属材质,它并不十分准确,优势在于简洁高效,可以同时表现漫反射和镜面反射的特征。

    Phong模型的扩展

    • Blinn-Phong模型
    • 引入入射方向l和视线方向v的角平分线h,使用h和法向n的点积代替原来的r与v的点积,简化运算。
  • 相关阅读:
    python集成开发环境Anaconda的安装
    hasMap2
    WireShark:TCP三次握手 抓包
    CCF 201409-4 最优配餐
    201403-4 无线网络
    java IO的字节流和字符流及其区别
    平衡二叉树DSW算法
    警惕Java编译器中那些“蜜糖”陷阱
    laravel 学习笔记 —— 神奇的服务容器
    LNMP下安装phpmyadmin的一个小错误解决办法
  • 原文地址:https://www.cnblogs.com/SeekHit/p/7746402.html
Copyright © 2011-2022 走看看