PBR材质理解整理

这篇具有很好参考价值的文章主要介绍了PBR材质理解整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PBR Material

草履虫都能看懂的PBR讲解(迫真)

先前看了很多遍类似的了,结合《Unity Shader 入门精要》中的内容整理了下便于以后理解,以后有补充再添加。



光与材质相交会发生散射和吸收,散射改变光的方向,吸收改变光的能量。

在均匀介质中,光沿直线传播。传播过程中材质的折射率变化,光的传播方向也会发生变化,介质边界折射率突变,光会发生散射现象。

实际光和物体交互非常复杂,光沿直线传播也只是一种特例。介质的表面是不平滑的,由很多的微表面构成,微表面折射的光被折射到物体内部,一部分被物体吸收,一部分被重新散射到物体外部。对于金属材质,折射的光往往会被立刻吸收,对于非金属材质,折射到物体外部的光又被称为次表面散射光

PBR材质理解整理,计算机图形学,材质,图形渲染

渲染建模中,会考虑两个介质的边界无限大且光学平滑。在此前提下,光在不同介质边界会被划分为两个方向:散射和折射。

双向反射分布函数BRDF

一般用辐射率去量化光。辐射率L是单位面积,单位方向上的光源辐射通量。评估光线的颜色和亮度。

计算光线与物体交互后的出射辐射率,需要使用BRDF计算。

当光线随着入射方向I到达表面某点时, BRDF=f(I,V) 表示了有多少能量被反射到了观察方向V上。

观察方向上的某个点出射辐射率等于所有入射辐射率叠加运算的结果。

由此引出反射等式:

L 0 = ∫ Ω f ( I , v ) ∗ L i ( I ) ∗ ( n ⋅ I ) d ω i L_0=\int_{\Omega}f(I,v)*L_i(I)*(n \cdot I)d\omega_i L0=Ωf(I,v)Li(I)(nI)dωi

BRDF表示了入射光线在观察方向上的权重分布。(n.I)表示f(I,v)*Li在材质表面的投影结果。渲染过程中采用的是精确的光源,方向确定,大小无限小。可以简化反射等式为:

L 0 = π f ( I , v ) ∗ c l i g h t ∗ ( n ⋅ I ) L_0=\pi f(I,v)*c_{light}*(n \cdot I) L0=πf(I,v)clight(nI)

BRDF决定了着色是否基于物理,需要满足交换律和能量守恒定律。基于这些理论,BRDF可以用于描述表面反射次表面散射。其中表面反射被成为高光反射项,次表面散射被称为漫反射项

漫反射

最简单的Lambert 模型中Lambertian BRDF表示为:

f L a m b s t ( I , v ) = c d i f f u s e / π f_{Lambst}(I,v)=c_{diffuse}/\pi fLambst(I,v)=cdiffuse/π

假定漫反射在任何方向的强度相同。满足能量守恒定律的BRDF要求反射能量不能超过入射能量,BRDF在半球内积分为1,所以要除Pi。(具体要好好思考下,关于能量守恒定律这点,书上有公式能很好的解释这点,就不多复述了)。

对于给定入射光方向的出射漫反射辐射::

L d i f f = c d i f f u s e / π ∗ L i ( I ) ∗ ( n ⋅ I ) L_{diff}=c_{diffuse}/\pi *L_i(I)*(n\cdot I) Ldiff=cdiffuse/πLi(I)(nI)

一点补充:

PBR材质理解整理,计算机图形学,材质,图形渲染

高光反射

微面源理论提出,物体表面是由很多人眼看不到的微面元组成的。微面元可以被认为是光学平滑的。

发生反射时,不同的微表面会把光线反射到不同方向,只有一部分为微面反射的光能够进入我们的眼睛,即表面。下图介绍了可能出现的反射情况。

PBR材质理解整理,计算机图形学,材质,图形渲染

h为I和v的半角矢向量,m为表面法线。

法线分布函数NDF可以用于计算有多少比例的微面元满足m=h, 阴影遮掩函数G(I,v,h) 用于计算满足m=h的微面元中有多少因为遮挡不被看到,给出了活跃微面元的所占浓度,活跃的微面元才能把光线反射到观察方向上。

Blinn模型中的法线分布函数是最简单的,而Unity中standard shader使用了GGX模型。

D b l i n n ( h ) = ( n ⋅ h ) g l o s s D_{blinn}(h)=(n\cdot h)^{gloss} Dblinn(h)=(nh)gloss

D G G X ( h ) = α 2 π ( α 2 − 1 ) ( n ⋅ h ) 2 + 1 D_{GGX}(h)=\cfrac{\alpha^2}{\pi(\alpha^2-1)(n\cdot h)_2+1 } DGGX(h)=π(α21)(nh)2+1α2

其中α=roughness^2。

阴影掩盖函数使用了GGX衍生的Smith-Schlick模型。

G ( I , v , h ) = 1 ( ( n ⋅ 1 ) ( 1 − k ) + k ) ( ( n ⋅ v ) ( 1 − k ) + k ) G(I,v,h)=\cfrac{1}{((n\cdot 1)(1-k)+k)((n\cdot v)(1-k)+k) } G(I,v,h)=((n1)(1k)+k)((nv)(1k)+k)1

其中k=roughness^2/2。

菲涅尔反射函数可以计算活跃的微面元会把多少光反射到观察方向上,表示了反射光线占入射光想的比例。

F ( I , h ) = F 0 + ( 1 − F 0 ) ( 1 − 1 ⋅ h ) 5 F(I,h)=F_0+(1-F_0)(1-1\cdot h)^{5} F(I,h)=F0+(1F0)(11h)5

其中F0为高光反射系数,可以理解为高光反射颜色。常常会受到材质金属性的影响。文章来源地址https://www.toymoban.com/news/detail-635879.html

float3 F0 = float3(0.04, 0.04, 0.04);
F0 = lerp(F0, ALBEDO(input.UV), metallic);

到了这里,关于PBR材质理解整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机视觉与图形学-神经渲染专题-pi-GAN and CIPS-3D

    《pi-GAN: Periodic Implicit Generative Adversarial Networks for 3D-Aware Image Synthesis 》 摘要 我们见证了3D感知图像合成的快速进展,利用了生成视觉模型和神经渲染的最新进展。然而,现有的方法在两方面存在不足:首先,它们可能缺乏底层的3D表示,或者依赖于视图不一致的渲染,从而合

    2024年02月14日
    浏览(52)
  • 计算机视觉与图形学-神经渲染专题-Seal-3D(基于NeRF的像素级交互式编辑)

    摘要 随着隐式神经表示或神经辐射场 (NeRF) 的流行,迫切需要与隐式 3D 模型交互的编辑方法,以完成后处理重建场景和 3D 内容创建等任务。虽然之前的作品从不同角度探索了 NeRF 编辑,但它们在编辑灵活性、质量和速度方面受到限制,无法提供直接的编辑响应和即时预览。

    2024年02月13日
    浏览(32)
  • 【计算机图形学】二维图形裁剪算法

    Cohen-Sutherland算法 Cohen-Sutherland是最早最流行的算法。 核心思想:通过 编码测试 来减少计算交点的次数。(编码算法) 1. 区域码: 线段端点以区域赋值以四位二进制码。 编码顺序:四位从右到左分别为:左边界、右边界、下边界、上边界。 编码值:落在相应位置为1,否则

    2024年02月02日
    浏览(37)
  • 初识计算机图形学

    笔记来源:【老奇】阴差阳错 撼动世界的游戏引擎 详见本人博客: 1.Transformation 2.梳理从MVP变换到光栅化的过程 MVP变换将空间中3D物体投影到2D屏幕 详见本人博客: 1.Rasterization(光栅化) 2.梳理从MVP变换到光栅化的过程 场景是一个个由三角面组成的模型 将模型投射到像素就

    2024年01月21日
    浏览(39)
  • 计算机图形与图像技术

    可以使用Python、Java等语言。 下图中,图中各事物比例失调 如何使用代码去掉某个人(不允许使用抠图工具)?         像素(Pixel)是“图像元素”的缩写, 指的是图像的最小单位 。 它是构成数码图像或屏幕显示图像的基本单元,代表了图像中的一个小点或一个小方块

    2024年02月07日
    浏览(39)
  • 计算机图形学——大作业

    绘制一个简单的三维场景,可以是室内:卧室,办公室,教室,也可以是室外:运动场,公园等,加上光照效果,简单的纹理映射,透视投影;不能过于简单;可以加动画、鼠标和键盘交互。     上交材料: project和word文档(具体内容展示,思路和心得) 首先初始化窗口,

    2024年02月11日
    浏览(37)
  • 计算机图形学(三) -- 3D 变换

    同样引入齐次坐标: 3D 点 = ( x , y , z , 1 ) T (x, y, z, 1)^T ( x , y , z , 1 ) T 3D 向量 = ( x , y , z , 0 ) T (x, y, z, 0)^T ( x , y , z , 0 ) T 通常, ( x , y , z , w ) (x, y, z, w) ( x , y , z , w ) (w != 0) 表示一个坐标为 ( x / w , y / w , z / w ) (x/w, y/w, z/w) ( x / w , y / w , z / w ) 的 3D 点 用一个 4x4 的矩阵来表示

    2024年02月08日
    浏览(28)
  • 【计算机图形学】曲线和曲面

    模块5 曲线和曲面 一 实验目的 编写曲线和曲面的算法 二 实验内容 1 :绘制Bezier曲线,并采用自行设计输入和交互修改数据点的方式。 实验结果如下图所示: 第一步:输入特征多边形的顶点个数,并按照顺序输入顶点的坐标。 第二步:点击左键生成bezier曲线(白色部分)和

    2024年02月06日
    浏览(34)
  • 计算机图形学 期末复习笔记

    目录 第一章-导论 1. 计算机图形学的定义 2. 计算机图形学的应用领域 2.1 计算机图形学与其他学科的关系 3. 图形显示器的发展及其工作原理 3.1 阴极射线管(CRT) 3.2 随机扫描显示器 3.3 直视存储管显示器 3.4 光栅扫描显示器 4. 图形软件标准的形成 5. 三维图形渲染管线 第二章

    2024年02月12日
    浏览(35)
  • 计算机图形学 | 变换与观察

    华中科技大学《计算机图形学》课程 MOOC地址:计算机图形学(HUST) 回顾几何阶段 整体流程: 这其中存在3种变换: 坐标系的变换 模型本身的运动 观察者的运动 几何变换 以上各种变换都可以通过以下变换的复合来计算: 平移 比例 旋转 对称 错切 图形的几何变换是指对图

    2023年04月27日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包