17 - Games101 - 笔记 - 材质与外观

**17 **材质与外观

材质与BRDF

自然界中的材质:丝绸、头发、蝴蝶翅膀表面、寿司表面等等
图形学中的材质:同一个模型之所以渲染出不同结果的原因就是因为材质。在图形学中是给不同的物体指定不同的材质,知道它们如何和光线作用后就能正确的渲染。

image-20240408202511984

漫反射 BRDF

漫反射材质:光线打到一个点上后均匀分散到各个不同方向上。

image-20240408202615511

漫反射材质可以定义它在任何一个点上可以有不同的漫反射系数,虽然都是漫反射,但各个点的光被吸收的不同,所以会显示出不同的颜色。

image-20240408202716277

image-20240408203236191

Glossy BRDF

image-20240408203313863

Glossy材质,不完全镜面反射,也就是抛光金属。

BSDF=BRDF+BTDF

折射:一根光线打进来,一部分能量沿着镜面反射出去;有一部分能量却进到物体内部,这叫折射。
这种材质是玻璃或者水。

image-20240408203623592

反射BRDF和折射BTDF共同称为散射BSDF

反射BRDF

反射定律:对于镜面物体有一个入射方向,法线方向,出射方向,入射角等于出射角。

反射公式:

  • 平行四边形法则
  • 投影

image-20240408203750032

折射BTDF

斯内尔定律:入射角的正弦和折射角的正弦,它们之间满足折射率相乘相等的关系。

image-20240408203948946

折射角的计算:

image-20240408204038262

折射方向的计算:

image-20240408204244699

image-20240408205546281

全反射现象BTDF:
再来看折射角公式:

image-20240408204932726

例:

image-20240408204952750

菲涅尔项

日常生活中可以发现,物体的反射率与观察角度有关。

image-20240408205210545

对于绝缘体来说观察角度与法线夹角越大,反射的程度就越大,如下图:

image-20240408205358611

导体(金属)与绝缘体不同,他的反射率与夹角呈如下关系:

image-20240408205420245

菲涅尔项公式(精确)

image-20240408205447393

微表面理论 Microfacet Material

镜面反射项推导

对于一个物体如果我们离得足够远,很多微小的东西是看不到的,看到的是他们总体对表面的作用。
微平面理论,就是从微观的角度去分析,其认为任意物体的表面在到达微观的尺度之后,都是由许许多多的更小的镜面所组成的:
img
远处(macrosurface)看材质 近处(microsurface)看几何

微表面BRDF的核心是认为每个微表面都有自己的法向量,它们的分布对整体的法向量有贡献。
img
Glossy的微表面法向量分布与整体几乎一致,而diffuse较为分散。

微表面镜面反射项公式
img

image-20240408205836918

image-20240408210034154

image-20240408210151698

image-20240408210322165

image-20240408210350667

image-20240408210414835

image-20240408210426246

image-20240408210453767

image-20240408210508604

image-20240408210518699

区分材质

材质可以分为两类:

  • 各向同性:微表面法线分布均匀
  • 各项异性:微表面法线分布有明确的方向性

各项异性的BRDF

  • 和方向角(绝对立体角)有关
  • 拉丝金属(钢锅底)、尼龙、天鹅绒

BRDFs的性质

img
img
img

  • 非负性:能量的分布
  • 线性性质:Blinn-Phong
  • 可逆性
  • 能量守恒
  • 各向同性/异性

BRDFs的测量

  • 测量的原因:理论准确,直接测出来,能测出来的就不用计算了。
  • 做法:枚举所有camera和光源的入射出射方向
  • 著名BRDF库:MERL BRDF Database

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/805356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++11 数据结构0 什么是 “数据结构“?数据,数据对象,数据元素,数据项 概念。算法的基本概念 和 算法的度量,大O表示法,空间换时间的代码

数据: 是能输入计算机且能被计算机处理的各种符号的集合。数值型的数据:整数和实数。非数值型的数据:文字、图像、图形、声音等。 数据对象: 性质相同的 "数据元素" 的集合 例如一个 int arr[10], Teacher tea[3]; 数…

汽车4S行业的信息化特点与BI建设挑战

汽车行业也是一个非常大的行业,上下游非常广,像主机厂,上游的零配件,下游的汽车流通,汽车流通之后的汽车后市场,整个链条比较长。今天主要讲的是汽车流通,汽车4S集团。一个汽车4S集团下面授权代…

MySQL高级篇(存储引擎InnoDB、MyISAM、Memory)

目录 1、存储引擎简介 1.1、查询建表语句,默认存储引擎:InnoDB 1.2、查看当前数据库支持的存储引擎 1.3、创建表,并指定存储引擎 2、 存储引擎-InnoDB介绍 2.1、存储引擎特点 3、MyISAM存储引擎 4、Memory存储引擎 5、InnoDB、MyISAM、Memory…

HTML基础(3)

1、内联框架 iframe用于在网页内显示网页&#xff0c;语法如下&#xff1a; <iframe src"URL"></iframe> URL指向隔离页面 hight&#xff0c;weight设置高宽&#xff0c;删除边框将frameborder设置为0 <td> <iframe frameborder"0&qu…

AI技术创业机会之农业与食品科技

农业与食品科技领域在人工智能&#xff08;AI&#xff09;技术的推动下正经历深刻变革&#xff0c;为创业者提供了丰富的创业机会。以下详述了农业与食品科技背景下AI技术的创业机会及其具体细节与内容&#xff0c;以5000字篇幅深入探讨各细分领域&#xff0c;为有志于投身这一…

C++ 获取数组大小、多维数组操作详解

获取数组的大小 要获取数组的大小&#xff0c;可以使用 sizeof() 运算符&#xff1a; 示例 int myNumbers[5] {10, 20, 30, 40, 50}; cout << sizeof(myNumbers);结果&#xff1a; 20为什么结果显示为 20 而不是 5&#xff0c;当数组包含 5 个元素时&#xff1f; 这…

麒麟v10安装mysql-8.0.35

因为要修复漏洞的原因&#xff0c;这两天将麒麟v10操作系统的服务器上的MySQL版本由5.7.27升级到8.0.35&#xff08;mysql安装包下载地址&#xff1a;MySQL :: Download MySQL Community Server (Archived Versions)&#xff09;&#xff0c;mysql的安装过程主要参考了这个博主…

JavaScript-throw、try,2024年前端高级面试题总结

提交电话 二、xml初识 xml文件是用来做什么的 核心思想&#xff1a; 答&#xff1a;存储数据 延伸问题&#xff1a; xml是怎样存储数据的&#xff1f; 答&#xff1a;以标签的形式存储 例: coco 什么是xml元素? 元素该如何编写? xml中的元素其实就是一个个的标签 标签…

面试官为什么喜欢考察Vue底层原理

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

国产低代码工具,轻松搞定数据迁移

在日常的业务系统升级或者数据维护过程中&#xff0c;数据迁移是各个企业用户不得不面临的问题&#xff0c;尤其是数据迁移过程中要保障数据完整性、统一性和及时性&#xff0c;同时也需要注意源数据中的数据质量问题&#xff0c;比如缺失、无效、错误等问题&#xff0c;需要在…

前端面试算法题1

1.已知&#xff1a; • 布局分为&#xff1a;父元素A和N个子元素B&#xff1b; • A宽度不固定&#xff1a;最小宽度为1000px&#xff0c;内部边距是32px • B的宽度不固定&#xff1a;相邻两个B元素的间距是16px&#xff0c;所有B的宽度相同&#xff0c;边框为1像素&#x…

docker-如何离线安装部署

离线安装Docker通常涉及到以下几个主要步骤&#xff0c;这里是一个简化的流程概述&#xff0c;适用于大多数Linux发行版&#xff08;如Ubuntu、CentOS等&#xff09;&#xff1a; 下载离线安装包 访问Docker官方下载页面或者使用已有的网络环境提前下载所需的Docker引擎安装包和…

【JAVA语言-第19话】多线程详细解析(一)

目录 多线程 1.1 并发和并行 1.2 线程和进程 1.2.1 进程 1.2.2 线程 1.3 单线程 1.3.1 单线程案例 1.4 创建多线程的方式 1.4.1 继承Thread类 1.4.2 实现Runnable接口 1.4.3 使用匿名内部类 1.5 Thread类 1.5.1 构造方法 1.5.2 常用方法 1.5.3 Thread类中…

《QT实用小工具·二十四》各种数学和数据的坐标演示图

1、概述 源码放在文章末尾 该项目实现了各种数学和数据的坐标演示图&#xff0c;下面是demo演示&#xff1a; 项目部分代码如下&#xff1a; #ifndef FRMMAIN_H #define FRMMAIN_H#include <QWidget> class QAbstractButton;namespace Ui { class frmMain; }class fr…

吴恩达机器学习-异常检测(Anomaly Detection)

在本练习中&#xff0c;您将实现异常检测算法&#xff0c;并将其应用于检测网络上出现故障的服务器。 文章目录 1-包2-异常检测2.1问题陈述2.2数据集2.3高斯分布2.2.1高斯实现的估计参数&#xff1a;2.2.2选择阈值&#x1d716; 2.4高维数据集 1-包 首先&#xff0c;让我们运…

基于FPGA的以太网相关文章导航

首先需要了解以太网的一些接口协议标准&#xff0c;常见的MII、GMII、RGMII时序&#xff0c;便于后续开发。 【必读】从MII到RGMII&#xff0c;一文了解以太网PHY芯片不同传输接口信号时序&#xff01; 介绍一款比较老的以太网PHY芯片88E1518&#xff0c;具有RGMII接口&#xf…

PTA 三足鼎立

当三个国家中的任何两国实力之和都大于第三国的时候&#xff0c;这三个国家互相结盟就呈“三足鼎立”之势&#xff0c;这种状态是最稳定的。 现已知本国的实力值&#xff0c;又给出 n 个其他国家的实力值。我们需要从这 n 个国家中找 2 个结盟&#xff0c;以成三足鼎立。有多少…

代码随想录阅读笔记-二叉树【总结】

二叉树的理论基础 代码随想录 (programmercarl.com)&#xff1a;二叉树的种类、存储方式、遍历方式、定义方式 二叉树的遍历方式 深度优先遍历 代码随想录阅读笔记-二叉树【递归遍历】-CSDN博客&#xff1a;递归三部曲初次亮相代码随想录阅读笔记-二叉树【迭代遍历】-CSDN博…

网络工程师练习题(12)

网络工程师 下列分组交换网络中&#xff0c;采用的交换技术与其他3个不同的是IP网。路由器与计算机串行接口连接&#xff0c;利用虚拟终端对路由器进行本地配置的接口是Console口&#xff0c;路由器通过光纤连接广域网的接口是SFP端口。点对点协议PPP中LCP的作用是建立和配置数…

Java异常处理之旅:解救迷失的程序员(二)

本系列文章简介&#xff1a; 在编程世界中&#xff0c;程序员们常常会遇到各种各样的问题和挑战。有时候&#xff0c;这些问题很容易解决&#xff0c;而有时候&#xff0c;它们却会让我们感到迷失和无助。 在这个旅程中&#xff0c;我们将探索Java异常处理的世界&#xff0c;解…