当前位置: 首页 > wzjs >正文

j2ee 做网站我的百度购物订单

j2ee 做网站,我的百度购物订单,网站怎么做商家定位,如何做高并发网站的架构设计一、简介 本文简单的介绍了 Physical Based Rendering, PBR 中的 Lambertian 材质漫反射BRDF公式 f r l a m b e r t i a n c d i f f π fr_{lambertian}\frac{c_{diff}}{\pi} frlambertian​πcdiff​​的推导。 二、漫反射项 根据 渲染方程: L o ( v ) ∫ …

一、简介

本文简单的介绍了 Physical Based Rendering, PBR 中的 Lambertian 材质漫反射BRDF公式 f r l a m b e r t i a n = c d i f f π fr_{lambertian}=\frac{c_{diff}}{\pi} frlambertian=πcdiff的推导。

二、漫反射项

根据 渲染方程:
L o ( v ) = ∫ Ω f r ( l , v ) L i ( l ) ∗ ( n ⋅ l ) d l (1) Lo(v) = \int_{\Omega}fr(l,v)Li(l)*(n\cdot l) dl \tag{1} Lo(v)=Ωfr(l,v)Li(l)(nl)dl(1)
其中的 BRDF 函数 f r ( l , v ) fr(l,v) fr(l,v) 定义如下:
f r ( l , v ) = k d ∗ f r l a m b e r t ( l , v ) + k s ∗ f r s p e c u l a r ( l , v ) (2) fr(l,v) = k_d * fr_{lambert}(l,v) + k_s*fr_{specular}(l,v)\tag{2} fr(l,v)=kdfrlambert(l,v)+ksfrspecular(l,v)(2)
其中 k d k_d kd 为漫反射的比例, f r l a m b e r t fr_{lambert} frlambert为漫反射中的 BRDF 函数定义如下:
f r l a m b e r t = c d i f f π (3) fr_{lambert} = \frac{c_{diff}}{\pi} \tag{3} frlambert=πcdiff(3)
其中 c d i f f c_{diff} cdiff 为描述材质属性的漫反射颜⾊(diffuse) c d i f f c_{diff} cdiff ,或者反照率(albedo) ρ \rho ρ。本文接下来介绍什么是 Lambertian 表面,为什么 Lambertian 材质的漫反射BRDF 公式如公式(3) 所示。

1. Lambert 表面

Lambertian 材质是指那种理想的完全漫反射表面,从任何观察方向看去,它反射的亮度都是一致的。即,不论外界的光照如何,Lambertian 材质满足以下公式:
L o ( v ) = ∫ Ω f r l a m b e r t i a n ( l , v ) ( n ⋅ l ) d l = L o c (4) Lo(v) = \int_{\Omega}fr_{lambertian}(l,v)(n\cdot l)\ dl = Lo_{c} \tag{4} Lo(v)=Ωfrlambertian(l,v)(nl) dl=Loc(4)
不管视线向量 v v v 如何变化(需要保证在材质的上半球内),其出射的 radiance L o ( v ) Lo(v) Lo(v) 恒等于定值 L o c Lo_{c} Loc

2. 漫反射公式解释

2.1 反照率 albedo

Lambertian BRDF 的恒定反射率通常被称为漫反射颜⾊(diffuse) c d i f f c_{diff} cdiff ,或者反照率(albedo) ρ \rho ρ。反照率 ρ \rho ρ描述了目标表面反射的辐射通量 Φ o u t \Phi_{out} Φout与入射的辐射通量 Φ i n \Phi_{in} Φin 之比。定义如下:
c d i f f = ρ = Φ o u t Φ i n (5) c_{diff} = \rho = \frac{\Phi_{out}}{\Phi_{in}} \tag{5} cdiff=ρ=ΦinΦout(5)

2.2 能量守恒定律

根据能量守恒定理定律,应该有:
c d i f f = ρ = Φ o u t Φ i n ≤ 1.0 (6) c_{diff} = \rho = \frac{\Phi_{out}}{\Phi_{in}} \le 1.0 \tag{6} cdiff=ρ=ΦinΦout1.0(6)

2.3 漫反射 BRDF 函数推导

接下来我们将基于以下假设和定义,推导得到 漫反射 BRDF 的渲染公式(3)。

2.3.1 已知信息
  1. 漫反射BRDF满足渲染方程: L o ( v ) = ∫ f r l a m b e r t i a n ( l , v ) ∗ L i ( l ) ∗ ( n ⋅ l ) d l Lo(v)=\int{fr_{lambertian}(l,v)*Li(l)*(n\cdot l)\ dl} Lo(v)=frlambertian(l,v)Li(l)(nl) dl
  2. 对于 Lambertian 材质, f r l a m b e r t i a n ( l , v ) fr_{lambertian}(l,v) frlambertian(l,v) v v v l l l 无关,即 f r l a m b e r t i a n ( l , v ) fr_{lambertian}(l,v) frlambertian(l,v) 是定值 f r c fr_{c} frc 。那么根据渲染方程,不管如何光照 L i ( l ) Li(l) Li(l) 如何分布,任意出射方向的 L o ( v ) Lo(v) Lo(v) 也都相等。
  3. 对于 Lambertian 材质,假设其没有自发光,满足能量守恒定理,即: c d i f f = ρ = Φ o u t Φ i n ≤ 1.0 c_{diff} = \rho = \frac{\Phi_{out}}{\Phi_{in}} \le 1.0 cdiff=ρ=ΦinΦout1.0
  4. 目标表面的入射/出射辐射通量/功率(Radiant flux/Power) Φ i n \Phi_{in} Φin Φ o u t \Phi_{out} Φout 的计算公式如下:
    Φ i n t = ∫ Ω L i ( l ) ∗ ( n ⋅ l ) d l d A Φ o u t = ∫ Ω L o ( v ) ∗ ( n ⋅ v ) d v d A \Phi_{int} = \int_{\Omega} Li(l)*(n\cdot l) dl\ dA \\ \Phi_{out} = \int_{\Omega} Lo(v)*(n\cdot v) dv\ dA Φint=ΩLi(l)(nl)dl dAΦout=ΩLo(v)(nv)dv dA
  5. 假设目标表面为 Lambertian 材质,即只有漫反射,没有镜面反射也没有自发光。
  6. 假设目标表面的面积为 A A A
  7. 假设目标表面的漫反射颜色(反照率)为 c d i f f c_{diff} cdiff,即 c d i f f = Φ o u t Φ i n c_{diff} = \frac{\Phi_{out}}{\Phi_{in}} cdiff=ΦinΦout

接下来本文将根据以上已知信息推导目标 BRDF 函数 f r l a m b e r t i a n ( l , v ) = f r c = ? fr_{lambertian}(l,v)=fr_{c}=? frlambertian(l,v)=frc=?

2.3.2 推导过程

根据辐射通量/功率(Radiant flux/Power) Φ \Phi Φ 的计算公式
Φ = ∫ Ω L ( w ) ∗ ( n ⋅ w ) d w d A \Phi = \int_{\Omega} L(w)*(n\cdot w) dw\ dA Φ=ΩL(w)(nw)dw dA
可以得到目标表面的总出射辐射通量 Φ o u t \Phi_{out} Φout
Φ o u t = ∫ Ω L o ( v ) ∗ ( n ⋅ v ) d v d A = ∫ 0 2 π ∫ 0 π / 2 L o ( v ) ∗ c o s ( θ ) ∗ s i n ( θ ) d θ d ϕ d A \Phi_{out} = \int_{\Omega} Lo(v)*(n\cdot v) dv\ dA \\ = \int_{0}^{2\pi} \int_{0}^{\pi/2} Lo(v)*cos(\theta)*sin(\theta) d{\theta}d{\phi}\ dA Φout=ΩLo(v)(nv)dv dA=02π0π/2Lo(v)cos(θ)sin(θ)dθdϕ dA
又因为对于 Lambertian 材质,任意出射方向的 L o ( v ) Lo(v) Lo(v) 都相等,并且目标表面的面积为 A A A,因此有:
Φ o u t = ∫ 0 2 π ∫ 0 π / 2 L o ( v ) ∗ c o s ( θ ) ∗ s i n ( θ ) d θ d ϕ d A = ∫ 0 2 π ∫ 0 π / 2 L o c ∗ c o s ( θ ) ∗ s i n ( θ ) d θ d ϕ d A = L o c ∗ ∫ 0 2 π ∫ 0 π / 2 c o s ( θ ) ∗ s i n ( θ ) d θ d ϕ ∗ A = L o c ∗ π ∗ A (7) \Phi_{out} = \int_{0}^{2\pi} \int_{0}^{\pi/2} Lo(v)*cos(\theta)*sin(\theta)\ d{\theta}d{\phi}\ dA \\ = \int_{0}^{2\pi} \int_{0}^{\pi/2} Lo_{c}*cos(\theta)*sin(\theta)\ d{\theta}\ d{\phi}\ dA \\ = Lo_{c} * \int_{0}^{2\pi} \int_{0}^{\pi/2} cos(\theta)*sin(\theta)\ d{\theta}\ d{\phi}\ * A \\ = Lo_{c}*\pi*A \tag{7} Φout=02π0π/2Lo(v)cos(θ)sin(θ) dθdϕ dA=02π0π/2Loccos(θ)sin(θ) dθ dϕ dA=Loc02π0π/2cos(θ)sin(θ) dθ dϕ A=LocπA(7)
那么
L o c = Φ o u t π ∗ A (8) Lo_{c} = \frac{\Phi_{out}}{\pi*A} \tag{8} Loc=πAΦout(8)
同理可以得到目标表面的总入射辐射通量 Φ i n \Phi_{in} Φin为:
Φ i n = ∫ Ω L i ( l ) ∗ ( n ⋅ l ) d l d A = ∫ Ω L i ( l ) ∗ ( n ⋅ l ) d l ∗ A (9) \Phi_{in} = \int_{\Omega} Li(l)*(n\cdot l)\ dl\ dA \\ = \int_{\Omega} Li(l)*(n\cdot l)\ dl * A \tag{9} Φin=ΩLi(l)(nl) dl dA=ΩLi(l)(nl) dlA(9)
那么就有:
Φ i n A = ∫ Ω L i ( l ) ∗ ( n ⋅ l ) d l (10) \frac{\Phi_{in}}{A} = \int_{\Omega} Li(l)*(n\cdot l)\ dl \tag{10} AΦin=ΩLi(l)(nl) dl(10)
根据渲染方程,我们可以得到:
L o c = L o ( v ) = ∫ Ω f r l a m b e r t i a n ( l , v ) ∗ L i ( l ) ∗ ( n ⋅ l ) d l Lo_{c} = Lo(v) = \int_{\Omega} fr_{lambertian}(l,v)*Li(l)*(n\cdot l)\ dl Loc=Lo(v)=Ωfrlambertian(l,v)Li(l)(nl) dl
因为 f r l a m b e r t i a n ( l , v ) fr_{lambertian}(l,v) frlambertian(l,v) 为定值 f r c fr_{c} frc ,那么就有:
L o c = L o ( v ) = ∫ Ω f r l a m b e r t i a n ( l , v ) ∗ L i ( l ) ∗ ( n ⋅ l ) d l = f r c ∗ ∫ Ω L i ( l ) ∗ ( n ⋅ l ) d l (11) Lo_{c} = Lo(v) = \int_{\Omega} fr_{lambertian}(l,v)*Li(l)*(n\cdot l)\ dl \\ = fr_c * \int_{\Omega} Li(l)*(n\cdot l)\ dl \tag{11} Loc=Lo(v)=Ωfrlambertian(l,v)Li(l)(nl) dl=frcΩLi(l)(nl) dl(11)
将公式(10)代入公式(11)可以得到:
L o c = L o ( v ) = f r c ∗ ∫ Ω L i ( l ) ∗ ( n ⋅ l ) d l = f r c ∗ Φ i n A (12) Lo_{c} = Lo(v) = fr_c * \int_{\Omega} Li(l)*(n\cdot l)\ dl \\ = fr_c * \frac{\Phi_{in}}{A} \tag{12} Loc=Lo(v)=frcΩLi(l)(nl) dl=frcAΦin(12)
又因为根据公式(8), L o c = Φ o u t / ( π ∗ A ) Lo_{c} = \Phi_{out}/{(\pi*A)} Loc=Φout/(πA),那么
L o c = f r c ∗ Φ i n A = Φ o u t π ∗ A (13) Lo_c = fr_c * \frac{\Phi_{in}}{A} = \frac{\Phi_{out}}{\pi*A} \tag{13} Loc=frcAΦin=πAΦout(13)
又因为 c d i f f = Φ o u t / Φ i n c_{diff} = \Phi_{out}/\Phi_{in} cdiff=Φout/Φin,那么可以得到:
f r c = Φ o u t π ∗ Φ i n = c d i f f π (14) fr_c = \frac{\Phi_{out}}{\pi*\Phi_{in}} = \frac{c_{diff}}{\pi} \tag{14} frc=πΦinΦout=πcdiff(14)
即:
f r L a m b e r t i a n ( l , v ) = f r c = Φ o u t π ∗ Φ i n = c d i f f π (14) fr_{Lambertian}(l,v) = fr_c = \frac{\Phi_{out}}{\pi*\Phi_{in}} = \frac{c_{diff}}{\pi} \tag{14} frLambertian(l,v)=frc=πΦinΦout=πcdiff(14)
至此,我们得到了 Lambertian 材质的 漫反射 BRDF 公式 f r l a m b e r t i a n ( l , v ) = c d i f f π fr_{lambertian}(l,v)=\frac{c_{diff}}{\pi} frlambertian(l,v)=πcdiff.

三、参考引用

[1].Real-Time Rendering, 4th Edition-Chapter 9 Physically Based Shading
[2].Background: Physics and Math of Shading

http://www.dtcms.com/wzjs/4413.html

相关文章:

  • 广告装饰 技术支持 东莞网站建设厨师培训学校
  • 展示图片的网站模板百度惠生活商家怎么入驻
  • 网站页面打开速度今天的新闻主要内容
  • wordpress主题 商城seo优化关键词放多少合适
  • wap网站域名网页制作学习
  • 金湖企业网站制作网址生成短链接
  • 做免费网站安全吗正规网络推广服务
  • 变态服务器seo外推
  • 阿里巴巴做网站的电话号码京东seo搜索优化
  • 文化传媒网站封面营销软文案例
  • wordpress 图片上传路径官网优化包括什么内容
  • 卓越科技建站无锡做网站百度竞价排名公司
  • 钓鱼网站制作的报告竞价
  • php网站开发意思怎样做网络推广效果好
  • 济宁网站建设哪家好焊工培训内容
  • 自己做社交网站网络管理系统
  • 门户网站域名是什么seo排名官网
  • 怎样把网站打包做百度小程序郴州网站推广
  • 做网站建站18款禁用网站app直播
  • 没网站域名可以做备案吗网络营销的一般流程
  • 网站建设前端和后端的区别福州seo博客
  • 建瓯建设局网站软文营销文章
  • 辽宁教育网站建设费用阿里巴巴国际站关键词推广
  • 商务网站的建设阶段包括六盘水seo
  • 网线制作实训总结厦门seo管理
  • 网站上截小屏幕 怎么做企业网站制作需要多少钱
  • 网站自动生成网页自制网站教程
  • 北京做网站公司排名浩森宇特字节跳动广告代理商加盟
  • 网站系统环境的搭建百度网盘app官网下载
  • 做快消品看那些网站好种子搜索神器 bt 下载