17.材质和外观

1.图形学中的材质

在图形学中,材质(Material)是用来描述物体外观和表面特性的属性集合。它包含了控制光的反射、折射、吸收以及其他光学效果的信息,从而决定了物体在渲染过程中的外观。

渲染方程中那一项和材质有关? → BRDF,BRDF决定了光如何被反射

Material == BRDF

2.漫反射材质:光线打到一个点上均匀的朝各个方向去

漫反射材质可以定义任何一个点的漫反射系数,各个点对光的吸收部分和强度不同,因此显示不同的颜色

重新定义漫反射系数

首先根据漫反射定律,入射光都会均匀的被反射到各个方向上去

现在假设各个方向入射的radiance都是均匀且相同的,假设这个单位面积不吸收任何光照,根据能量守恒定律,接收的irradiance和出射的irradiance都应该是一样的,进而各个方向出射的radiance也应该和各个方向入射的radiance是相同的

那么就可以写出下面的反射方程,没有自发光,假设入射的radiance和Brdf都是常数,剩下的就是在半球上对余弦函数进行积分,这部分结果等于Π,因为入射的radiance等于出射的radiance,也就是说L_i要等于L_o,所以Brdf的结果就是\frac{1}{\pi }.这个时候就是完全不吸收能量的BRDF。

可以定义反射率这个概念。英文名是albedo,可以是单通道的一个数或者三个通道(RGB)的数也可以是光谱。它的值在0-1之间。这样就引入了不同颜色的BRDF,brdf的值在0-\frac{1}{\pi }之间

3.Gloosy material(BRDF)

类似于镜面反射但是又没那么光滑的反射,不同的材质反射出来的颜色也不相同

4.Ideal reflective / refractive

material (BSDF*)

既有反射又有折射

计算反射光线

计算折射光线

斯内尔定律/折射定律

只有从光疏介质到光密介质才会发生折射,否则会发生全反射现象

下图从水底向外看,只能看到一个锥形区域,范围大概是97.2°,超过这个范围的就会发生全反射

折射用BTDF表示,反射是BRDF,一般用散射也就是BSDF统称这两种

5.Fresnel Reflection / Term(菲涅尔项)

入射光线与物体的法线的夹角决定了反射和折射的能量的分布,通过菲涅尔项就可以解释到底有多少能量发生了反射和折射

例子1:图中的书,平看会反射,垂直看几乎不反射

例子2:坐公交车时,往窗外看可以看得到,看前排的人的窗户,看到的却是反射出的人脸。

入射光与物体的法线的角度与反射能量的关系(绝缘体)

s和p是两个不同方向的极化,与光的波动性有关,极化是指光只沿着某一个方向震动

导体的菲涅尔项

即使垂直看去反射率也很高,例如镜子一般用银质或者铜制的镜子,很少用玻璃的镜子

菲涅尔项计算公式

左边计算的是两个极化,会告诉两个不同的反射率,我们平常考虑不极化的光就将这两个反射率平均起来

因为上面的计算太复杂了,所以后面有人给出了简化的近似计算公式

在零度的时候反射率和二者的介质有关系,当90°的时候反射率等于1,这样不管是对导体还是绝缘体都可以近似的非常好,只要不是对材质的要求非常高。

6.微表面材质

1.微表面模型

只要我们离得足够远,很多微小的东西实际是看不到的,看到的是他们总体对表面的作用。

2.微表面理论

  • 假设物体表面粗糙
  • 远处看(宏观尺度):平面且粗糙的
  • 近处看(微观尺度):可以看到凹凸不平的表面且每一个表面的微元都是完全镜面反射
  • 每个微表面都有法线,也就是自己的朝向
  • 从远处看是材质/外观,近处看是几何

3.Microfacet BRDF

  • 关键:微表面的法线分布
  • Glossy:法线分布集中在宏观法线周围 ; 粗糙/Diffuse:法线分布分散
  • 图2:D=法线分布 F=菲涅尔项 G=几何项(左边面可能会挡住右边的面 →自遮挡/投影现象)

菲涅尔项表示一共有多少能量被反射,shadow masking项用来修正自遮挡自投影的现象,也就是

grazing angel(掠射角度),光方向与物体表面几乎平行的时候这种现象最明显,法线分布函数决定了光线到底是怎么反射的,集中还是发散,进而可以决定材质类型

7.区分材质的方式

1.材质分为两类:各项异性和各向同性

各向同性:微表面不存在一定的方向性(或很小) → 法线分布均匀

各项异性:法线分布有明确的方向性

2.各向异性的BRDF

如果BRDF不满足在相同的方位角旋转得到的还是原来的BRDF,那就是各向异性材质

  • 和方位角(绝对立体角)有关
  • eg :拉丝金属、尼龙、天鹅绒

8.BRDF的性质

1. 非负(能量的分布)

2.线性

3.可逆性

4.能量守恒

5.各项同性/各向异性

如果是各向同性:4维的可以→ 3维

由于可逆性:

//BRDF的测量有用

9.测量BRDF

1.why 测量

理论并不准确 → 要测出来

能测出来就不用算了

2.做法

枚举所有camera和光源的入射出射方向

3.测量出之后呢?

存下来

压缩

4.一个有名的BRDF库

MERL BRDF Database

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

HSE化工应急安全生产管理平台:信息化、流程化的安全管理新模式

随着化工行业的快速发展,安全生产管理日益成为企业发展的关键所在。在这一背景下,HSE化工应急安全生产管理平台应运而生,以信息平台为载体,数据驱动、风险管理为中心,致力于实现安全生产的动态、实时和智能化管理。本文…

【工具分享】批量查找文件并移动复制,咕嘎批量文件清单快速查找搜索文件,比bat批量查找文件并复制更简单一些

在工作中,像电商或者照相馆以及政府工程的工作人员,整理文件时,我们经常遇到批量查找部分文件,比如在10万个文件内查找5000个文件,把5000个文件分离出来,存在另外一个地方 如果是在电脑中挨个搜那要搜很久&…

客户至上!CRM系统如何助力企业提升客户满意度?

产品复购率是企业经营中的重要指标。要提升产品的复购率,除了产品质量需要过硬,客户服务的质量和效率也是重要影响因素,而CRM管理系统能够帮助达成这一点。 我们将通过这篇文章讲解CRM系统为何能提高客户满意度。 1.协助掌握客户的需要 企业…

【小尘送书-第十四期】《高效使用Redis:一书学透数据存储与高可用集群》

大家好,我是小尘,欢迎你的关注!大家可以一起交流学习!欢迎大家在CSDN后台私信我!一起讨论学习,讨论如何找到满意的工作! 👨‍💻博主主页:小尘要自信 &#x1…

JAVA集合进阶(Set、Map集合)

一、Set系列集合 1.1 认识Set集合的特点 Set集合是属于Collection体系下的另一个分支&#xff0c;它的特点如下图所示 下面我们用代码简单演示一下&#xff0c;每一种Set集合的特点。 //Set<Integer> set new HashSet<>(); //无序、无索引、不重复 //Set<…

云HIS支持连锁集团化管理,1+N模式,支撑运营,管理,决策多位一体

目录 云HIS系统特色 使用简易化 连锁集团化 可扩展化 系统描述 云HIS系统优势 &#xff08;1&#xff09;客户/用户角度 &#xff08;2&#xff09;开发/运维角度 &#xff08;3&#xff09;成功应用案例 HIS分系统&#xff08;HIS子系统&#xff09; 1、医疗业务子…

el-submenu is-opened 展开/闭合;el-submenu is-opened保持一个子菜单的展开控制

写了个mes系统目录 点击子菜单展开后&#xff0c;上一级菜单没有默认关闭。主流后台管理系统大部分都是保持一个子菜单关闭状态、 问度娘无果后&#xff0c;查询官网&#xff0c;一个属性搞定。 unique-opened 是否只保持一个子菜单的展开 加在 <el-menu 组件上即可 完整代…

Excel工作表控件实现滚动按钮效果

实例需求&#xff1a;工作表中有多个Button控件&#xff08;工作表Form控件&#xff09;和一个ScrollBar控件&#xff08;工作表ActiveX控件&#xff0c;名称为ScrollBar2&#xff09;&#xff0c;需要实现如下图所示效果。点击ScrollBar控件实现按钮的滚动效果&#xff0c;实际…

SpringBoot自带的tomcat的最大连接数和最大的并发数

先说结果&#xff1a;springboot自带的tomcat的最大并发数是200&#xff0c; 最大连接数是&#xff1a;max-connectionsaccept-count的值 再说一下和连接数相关的几个配置&#xff1a; 以下都是默认值&#xff1a; server.tomcat.threads.min-spare10 server.tomcat.threa…

8.网络游戏逆向分析与漏洞攻防-游戏网络架构逆向分析-游戏底层功能对接类GameProc的实现

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;通过逆向分析确定游戏明文接收数据过程 码云地址&#xff08;master 分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/titan 码云版本号&#xff1a;bcf7559184863febdcad819e48aaa…

科技云报道:黑马Groq单挑英伟达,AI芯片要变天?

科技云报道原创。 近一周来&#xff0c;大模型领域重磅产品接连推出&#xff1a;OpenAI发布“文字生视频”大模型Sora&#xff1b;Meta发布视频预测大模型 V-JEPA&#xff1b;谷歌发布大模型 Gemini 1.5 Pro&#xff0c;更毫无预兆地发布了开源模型Gemma… 难怪网友们感叹&am…

11:日志分析系统ELK|Elasticsearch|kibana

日志分析系统ELK&#xff5c;Elasticsearch&#xff5c;kibana 日志分析系统ELKELK概述Elasticsearch安装Elasticsearch部署Elasticsearch集群Elasticsearch插件 熟悉Elasticsearch的API调用_cat API创建 tedu 索引使用 PUT 方式增加数据查询数据修改数据删除数据 KibanaKibana…

C语言第三十一弹---自定义类型:结构体(下)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 目录 1、结构体内存对齐 1.1、为什么存在内存对齐? 1.2、修改默认对齐数 2、结构体传参 3、结构体实现位段 3.1、什么是位段 3.2、位段的内存分配 3.3、…

端口映射的软件有哪些?

端口映射软件是一种实用工具&#xff0c;能够帮助用户在网络中实现远程通信&#xff0c;解决不同地区电脑与电脑、设备与设备、电脑与设备之间的信息传输问题。其中&#xff0c;【天联】组网天联是一款功能强大的端口映射软件&#xff0c;它通过在全国各主要节点部署加速服务器…

KubeSphere实战

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 知…

数据可视化基础与应用-01-数据可视化概述

总结 本系列是数据可视化基础与应用的第02篇&#xff0c;主要介绍数据可视化概述&#xff0c;包括数据可视化的历史&#xff0c;原理&#xff0c;工具等。 认识大数据可视化 数据是什么 信息科学领域面临的一个巨大挑战是数据爆炸。据IDC Global DataSphere统计&#xff0c…

【Nuxt】在 Nuxt3 中使用 nuxt-icons 实现 icon svg 的动态变色效果

效果展示 nuxt-icons 安装 自己去看官网文档就行 nuxt-icons 配置 把 svg 放到 icons 目录下 使用 要想实现变色效果&#xff0c;需要我们把 svg 内部的需要动态变色的地方修改为 fill"currentColor" 才能实现动态修改颜色的效果 然后在代码中使用&#xff0c;使…

【机器人学导论笔记】三、操作臂正运动学

3.1 概述 操作臂正运动学研究操作臂的运动特性&#xff0c;主要涉及与运动有关的几何参数和时间参数。本章中&#xff0c;只研究静止状态下操作臂连杆的位置和姿态。 处理这些复杂的几何参数需要一些步骤&#xff1a;首先需要在操作臂的每个连杆上分别固接一个连杆坐标系&…

C++ Primer (第五版)第三章习题部分答案

在我自学C过程中&#xff0c;我选择了CPrimer这本书&#xff0c;并对部分代码习题进行了求解以及运行结果。接下来几个月我将为大家定时按章节更新习题答案与运行结果&#xff0c;运行环境&#xff08;Visual Studio Code&#xff0c;windows 11&#xff09;: 3.1.1.使用恰当的…

llm的inference(二)

文章目录 Tokenizer分词1.单词分词法2.单字符分词法3.子词分词法BPE(字节对编码&#xff0c;Byte Pair Encoding)WordPieceUnigram Language Model(ULM) embedding的本质推理时的一些指标参考链接 Tokenizer 在使用模型前&#xff0c;都需要将sequence过一遍Tokenizer&#xf…