当前课程知识点:移动图形概论 >  第七章 基于物理的渲染 >  7.1 基于物理渲染的基本概念 >  基于物理渲染的基本概念

返回《移动图形概论》慕课在线视频课程列表

基于物理渲染的基本概念在线视频

下一节:基于图像的照明

返回《移动图形概论》慕课在线视频列表

基于物理渲染的基本概念课程教案、知识点、字幕

各位同学大家好

今天给大家介绍

目前比较主流的基于物理的渲染技术

今天的主要内容包括基于物理渲染技术的基本原理

和实现基于物理渲染的基本流程

这是最新的照明技术之一

因此了解如何在移动硬件上实现它十分有用

基于物理的渲染也就是PBR

是一组基于对象的真实材料属性

来模拟光照与对象如何发生作用的技术

这些材料属性包括反照率

也就是通常意义上的颜色

还有粗糙度和反射率等

所有这些属性都会改变光线在对象上反射的方式

这些属性通常被编码为纹理数据

着色器程序将在运行时对其采样

基于物理的渲染

可以获得非常逼真的照明效果

下面我们看一个演示

这个演示来自SDK中的示例程序

我们可以看到场景中的头盔上面有各种各样的细节

似乎可以看出各个部分不同的组成材料

有些是金属有些是橡胶

还有一些是玻璃

部分材料可以对环境反射

有些还可以自发光

各种细节的处理都非常的真实

这就是基于物理的渲染技术

可以达到的效果

基于物理的渲染技术的基本原则有以下几点

一采用基于微表面模型对物体进行建模

也就是假定物体的表面是由无数不同

朝向的微小表面所组成

二光线的入射与出射符合能量守恒定律

第三点物体表面的反射方程基于物理原理进行建模

也因此被称为基于物理的渲染

我们先来看一下反射方程

基于物理的渲染技术认为

物体表面任何一点的反射光线

都与以这个点为球心的半球方向上的全部光照有关

因此

图中P点在欧米伽零方向上的出射光线

可以用如下的公式来表示

这个公式就是反射方程

它对整个半球面进行积分

其中Li是在欧米茄i方向上的入射光强

而f_r是我们后面要介绍的双向反射分布函数

反射方程通过积分的方式

考虑全部的光照效果来计算反射光线

获得更加真实的视觉效果

双向反射分布函数

英文缩写为BRDF

简单来说

它决定了光如何从物体表面反射出来

它有三个主要参数

一个是模型上的点

另外两个分别是入射光线和出射光线

这个函数将告诉我们从一个入射方向

照射到表面上的光有多大比例

沿另外一个观察方向反射

最简单的BRDF就是常量

也就是说在任何方向上反射的光是固定强度

漫反射就属于这种情况

物体的表面在所有的方向上反射的亮度都相同

大多数的物体表面都比较粗糙

达不到镜子般的完美光滑程度

我们需要的BRDF函数应该可以根据物体表面的粗糙度

来改变光线反射的效果

在前面的演示中

我们使用了Cook-Torrance微面镜面反射模型

它基于微表面模型

就是把粗糙的表面近似为一系列的微面

这些位面可以视为表面上很小的凸起和凹陷

可以像镜子一样绕其局部表面法线完美的反射光线

其中每一个微面的表面法线的方向有所不同

这意味着入射光将根据其照射的微面

沿略微不同的方向反射

微面表面法线的分布将根据表面的粗糙度而变化

这里的粗糙度是物体属性的一个重要参数

物体表面越粗糙

其表面法线的变化范围越大

镜面反射的分量变得越分散

对于非常粗糙的表面镜面反射开始近似散射光

微面模型可以模拟大量微面的镜面反射的累积影响

为了便于计算

BRDF可以分成漫反射部分

与镜面反射部分

其中漫反射部分为常量

其中的π是积分归一化因子

而镜面反射部分采用Cook-Torrance模型

拥有D F G三个组成部分

分别对不同的物理性质进行建模

其中D参数是微表面的分布模型

它决定了有多少微表面与半程向量的方向相同

这个模型的输入参数是半程向量 法向量和粗糙度

它的输出是镜面反射部分的相对面积

这个图展示了不同粗糙度的球体

在D参数影响下的反射效果

粗糙度0.1时高光面积很小

粗糙度1.0时变为完全的漫反射

G参数是粗糙度的几何模型

粗糙度高会使得微表面互相遮挡

它的输入包括光线的方向

视线方向 法线方向和粗糙度

它的输出是被遮挡微表面的相对面积

这个图展示了不同粗糙度

在G参数影响下的光照效果

当粗糙度比较高时

由于遮挡的效果使得物体表面会显得更暗一些

F参数根据菲涅尔反射方程建模

它基于物理上的菲涅尔效应

不同的入射角度的光

其反射率会有不同

入射光与法线夹角越小反射率越低

与法线夹角越大

其反射率会越大

例如你站在湖边低头看脚下的水

你会发现水是透明的

反射不是特别强烈

如果你看远处的湖面

你会发现水并不是透明的

反射非常强烈

回到这个模型

它的输入参数有F0

视线方向和法向量

它的输出是反射光线与折射光线的比率

F0是反射表面的一个属性

称为垂直入射的镜面反射率

它是体现材料属性的重要参数

可以用rgb3个分量表示

例如这里列出了材料为铜

或者塑料的不同F0值

如果场景中有多个点光源

那么根据反射方程

积分退化为叠加

只需将多个光源的反射情况分别计算

然后加在一起就可以了

下节课我们将继续介绍全局光照的情况

好 今天的课程就到这里

谢谢大家

移动图形概论课程列表:

第一章 课程简介

-1.1 课程基本情况介绍

--课程基本情况介绍

-1.2 GPU 相关基础知识

--GPU 相关基础知识

-1.3 OpenGL ES 技术发展历史

--OpenGL ES 技术发展历史

-1.4 PowerVR SDK 安装和使用

--PowerVR SDK 安装和使用

-第一章测试

第二章 图形编程入门

-2.1 OpenGL ES 基本概念

--OpenGL ES 基本概念

-2.2 编写第一个图形程序

--编写第一个图形程序

-2.3 主要 API 介绍

--主要 API 介绍

-第二章测试

第三章 OpenGL ES 变换

-3.1 矢量和矩阵知识基础

--矢量和矩阵知识基础

-3.2 旋转与位移变换

--旋转与位移变换

-3.3 OpenGL ES 变换基础

--OpenGL ES 变换基础

-第三章测试

第四章 OpenGL ES 着色器

-4.1 着色器编程语言介绍

--着色器编程语言语法

--着色器编程语言特殊语法

-4.2 着色器编程实例

--着色器编程实例

-第四章测试

第五章 颜色与纹理

-5.1 颜色的基本概念

--颜色的基本概念

-5.2 纹理素材的使用

--纹理素材的使用

-5.3 立方体纹理

--立方体纹理

-第五章测试

第六章 光源与光照

-6.1 光照的基本概念

--光照的基本概念

-6.2 光源模型

--光源模型

-6.3 使用着色器渲染颜色

--使用着色器渲染颜色

-6.4 反射与折射

--反射与折射

-第六章测试

第七章 基于物理的渲染

-7.1 基于物理渲染的基本概念

--基于物理渲染的基本概念

-7.2 基于图像的照明

--基于图像的照明

-7.3 PBR 的实现

--PBR 的实现

-第七章测试

第八章 PowerVR 工具简介

-8.1 Vulkan 介绍

--Vulkan 介绍

-8.2 SDK 中的实用工具介绍

--SDK 中的实用工具介绍

-综合测试

基于物理渲染的基本概念笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。