漫反射和镜面反射

漫反射和镜面反射(或反射)光是描述光和材料之间两种主要相互作用类型的两个术语。镜面光是指从表面反弹的光。在光滑的表面上,这种光将反射所有相同的方向,并且表面将呈现镜像。漫射光是被吸收,散射在材料中并重新出现的光。与镜面光不同,该光在方向上趋于均匀。在吸收和重新出现期间,一些光波长将被吸收。未被吸收的波长使材料成为它的颜色。例如,如果吸收了所有蓝色和绿色波长,则材料将显示为红色。在渲染术语中,漫反射颜色有时称为“反照率”或“基色”。

简单说就是漫反射是向各个方向反射,镜面反射朝向一定方向反射!

能量守恒

物理正确渲染的关键特征之一是能量守恒。由于漫射光和反射光均来自照射材料的光,因此漫射光和反射光的总和不能超过撞击材料的总光。在实践中,这意味着如果表面具有高反射性,则它将显示非常少的漫反射颜色。相反,如果材料具有明亮的漫反射颜色,则它不能反射太多。

PBR的乐趣在于着色器中包含能量守恒!

金属和非金属

PBR与旧的着色模型之间的一个新特点是考虑材料的构成以确定它的行为。我们在这里考虑的主要问题是材料是导体(通常是金属)还是绝缘体(非金属)

这很重要的原因是它决定了材料如何响应光的许多因素。例如,金属通常是反射性的(在60%-90%之间),而非金属不是(0%-20%)。其次,对非金属的反射通常是白色的,因为金属通常会反射与漫反射相同的颜色。

由于这些差异,PBR工作流程之一包括金属性质,通过将材料定义为金属或非金属,使得这种材料变得简单。

菲涅尔

用通俗语言讲就是当法线和视觉角度越大镜面反射强度会越大,当趋近90度基本就是完全反射

微表面

最后到显微表面。通常,3D艺术家熟悉法线贴图的概念。用于修改应用曲面方向的纹理。微表面,也称为粗糙度或光泽度,提供类似的东西,仅在更小的规模上。材料的微观表面描述了表面的粗糙或光滑程度。将玻璃(高光泽度,低粗糙度)与砂纸(高粗糙度,低光泽度)进行比较。我们没有指定表面所面对的确切方向,只是粗略或平滑的一般概念。

一些PBR系统使用粗糙度,一些使用光泽度,它们是相同的。粗糙度与光泽度相反,反之亦然。如果要从一个转换为另一个,只需反转纹理或值。

PBR原理的更多相关文章

  1. 由浅入深学习PBR的原理和实现

    目录 一. 前言 1.1 本文动机 1.2 PBR知识体系 1.3 本文内容及特点 二. 初阶:PBR基本认知和应用 2.1 PBR的基本介绍 2.1.1 PBR概念 2.1.2 与物理渲染的差别 2 ...

  2. PBR实现

    我们的目标:UnityStandard 我一直作Unity开发,所以环境也就选择了Unity.目标也就是尽可能接近UnityStandard的效果,不过主要为了学习PBR,所以就只实现基本的PBR和法 ...

  3. 【翻译】CEDEC2013 BANDAI NAMCO 了解游戏格斗动画中的身体运动结构和原理

    CEDEC搬运工程开始~   这篇会议PPT的作者 元梅幸司曾经就职在TECMO参与开发了死或生2,3[ DEAD OR ALIVE],忍龙「NINJA GAIDEN」后来加入NAMCO(现在是BAN ...

  4. nova file injection的原理和调试过程

    file injection代码 file injection原理来讲是比较简单的,在nova boot命令中,有参数--file,是将文件inject到image中 nova boot --flav ...

  5. (转)简述47种Shader Map的渲染原理与制作方法

    在Shader中会使用各种不同图参与渲染,所以简单地总结下各种图的渲染原理.制作方法,最后面几种是程序生成图. 1. Albedo 2. Diffuse(Photographic) 从上图可以看出来, ...

  6. PBR探索

    原理 根据能量守恒,以及一系列光照原理得出微表面BRDF(Bidirectional Reflectance Distribution Function)公式 // D(h) F(v,h) G(l,v ...

  7. UE制作PBR材质攻略Part 1 - 色彩知识

    目录 一.前言 二.色彩知识 2.1 色彩理论 2.1.1 成像原理 2.1.2 色彩模型和色彩空间 2.1.3 色彩属性 2.1.4 直方图 2.1.5 色调曲线 2.1.6 线性空间与Gamma空 ...

  8. LearnOpenGL.PBR.理论

    判断一种PBR光照模型是否是基于物理的,必须满足以下三个条件: ()基于微平面(Microfacet)的表面模型.Be based on the microfacet surface model. ( ...

  9. PBR(基于物理的渲染)学习笔记2

    相关资料 https://www.cnblogs.com/dojo-lzz/p/13237686.html 文档:PBR学习笔记.note 链接:http://note.youdao.com/note ...

随机推荐

  1. Checkpoint checkup中文报告模板使用

    步骤: Step1:下载中文版语言包和字体 https://supportcenter.checkpoint.com/supportcenter/portal?action=portlets.DCFi ...

  2. spring boot 实践总结(转)

    pring Boot是最流行的用于开发微服务的Java框架.在本文主要分享的是在专业开发中使用Spring Boot所采用的最佳实践.这些内容是基于个人经验和一些熟知的Spring Boot专家的文章 ...

  3. 两种高效的事件处理模式(Proactor和Reactor)

    典型的多线程服务器的线程模型 1. 每个请求创建一个线程,使用阻塞式 I/O 操作 这是最简单的线程模型,1个线程处理1个连接的全部生命周期.该模型的优点在于:这个模型足够简单,它可以实现复杂的业务场 ...

  4. HashMap、lru、散列表

    HashMap HashMap的数据结构:HashMap实际上是一个数组和链表("链表散列")的数据结构.底层就是一个数组结构,数组中的每一项又是一个链表. hashCode是一个 ...

  5. ASP.Net MVC SignalR的应用

    ASP.Net MVC SignalR的应用 最近做的一个MVC项目有个模块是要使用即时通信实现弹幕效果.既要考虑通信的实时性也要考虑服务器性能和资源消耗,所幸项目对浏览器的版本没有要求.所以我最先想 ...

  6. maven parent 与 import 的区别

    在 maven 配置文件 pom.xml 中可以 引入 <parent>,方式如下(举例是 spring-boot-starter-parent 中的继承关系)   <parent& ...

  7. $Noip2012\ Luogu1081$ 开车旅行 倍增优化$ DP$

    Luogu Description Sol 1.发现对于每个城市,小A和小B的选择是固定的,可以预处理出来,分别记为ga[],gb[] 2.并且,只要知道了出发城市和出发天数,那么当前城市和小A,小B ...

  8. 【记录】.bin文件 到 .vdi文件的转换教程

    .bin文件 到 .vdi文件的转换教程 1. 背景 想体验一下 Chrome OS 系统,于是准备在 虚拟机VirtualBox(Mac版) 中安装一下,网上教程非常少,找到如下教程 原贴地址:ht ...

  9. 「CF242E」XOR on Segment 解题报告

    题面 长度为\(n\)的数列,现有两种操作: 1.区间异或操作 2.区间求和操作 对于每个查询,输出答案 思路: 线段树+二进制拆位 线段树区间修改一般使用的都是懒标记的方法,但是对于异或,懒标记的方 ...

  10. KMP 和 扩展KMP

    KMP:在主串S中找子串T的位置KMP算法的时间复杂度O(|S|+|T|). #define maxn 1000 char s[maxn],t[maxn];//s为主串,t为子串 int net[ma ...