计算机图形学入门25:BRDF的测量

1.前言

BRDF(双向反射分布函数)可以用各种各样的材质去描述,但是这只是一种基于物理的描述或者近似,那什么是真正的BRDF?只有测出来的才是真正的。

为什么要测出BRDF?因为之前所描述的BRDF并不准确。如下图所示,以菲涅尔项举例,三种不同材质实际测出来的值完全不一样,也就是说实际上菲涅尔现象非常复杂,不是简化公式可以描述的。

2.测量

2.1 测量原理

BRDF就是两个方向的函数,一个入射方向和一个出射方向,只要得到所有可能入射和出射方向对的数据就能得到测试结果。

2.2 基于图像的BRDF测量

如上图所示,找一个光源从各方向照射物体表面,再用一个相机从各方向去拍摄,这样就覆盖了BRDF所有可能的入射方向和出射方向对。

如下图所示是一个测量仪器,叫做Gonioreflectomer。

一般算法如下。

这样得到了4 维的BRDF,但是4维这个操作非常费时。比如相机固定一个方向,光源就要绕物体所有方向拍摄一遍,然后相加换一个方向,光源就又要重新绕物体所有方向拍摄一遍。

下面可以做一些优化。

1. 各向同性(Isotropic)表面将维度从4维降低到3维。各向同性的BRDF是只有3维的。

2.可逆作用减少一半测量。BRDF的可逆性。

3.智能光学系统。不用所有方向测量,可以猜测出来。

2.3 BRDF测量的表示

BRDF测量出结果后需要表示出来或者说存储下来,需要涉及到大量的存储。就是各种各样测量的BRDF存储要求如下。

1.紧凑的表示。

2.测量数据的精确表示。

3.对任意方向对的高效评估。

4.可用于重要抽样的良好分布。

MERL BRDF Database是BRDF的一个库,测量了很多不同的材质。

相关推荐
郝学胜-神的一滴6 天前
中级OpenGL教程 020:巧用数组与循环实现多点点光源渲染,告别冗余代码重构方案
c++·unity·游戏引擎·godot·图形渲染·unreal
图扑软件6 天前
其域创新 × 图扑软件|3DGS 高斯泼溅智慧钢厂实景孪生
前端·低代码·3d·编辑器·图形渲染·可视化
ysu_03149 天前
07 | 全局缩放重构实录
c语言·重构·游戏程序·图形渲染
郝学胜-神的一滴10 天前
[简化版 GAMES 101] 计算机图形学 17:纹理技术从基础原理到多场景实战应用
c++·unity·游戏引擎·图形渲染·three.js·opengl·unreal
csdndenglu13 天前
Easy3D:一个轻量级、易用、高效的C++库,用于处理和渲染3D数据,无复杂要求时可替代VTK
开发语言·c++·图形渲染·3d渲染
郝学胜-神的一滴14 天前
中级OpenGL教程 013:渲染器类架构设计与逐帧渲染流程详解
开发语言·c++·unity·游戏引擎·图形渲染·opengl·unreal
XX風15 天前
VTK 策略模式详解:InteractorStyle、Mapper、Picker 与可替换算法
图形渲染·策略模式
叩码以求索15 天前
实时渲染插件:Enscape保姆级安装教程与下载步骤分享
图形渲染
郝学胜-神的一滴17 天前
[简化版 GAMES 101] 计算机图形学 16:纹理走样、Mipmap、三线性插值、各向异性过滤原理全解
unity·游戏引擎·godot·图形渲染·three.js·opengl·unreal
ZJU_fish199618 天前
全局光照/阴影的几个常见问题
游戏引擎·图形渲染