import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,a as m,b as Q,e as l,o as t}from"./app-zNUiodpH.js";const n="/assets/ibl_02-M9fcYT_u.svg",d="/assets/ibl_specular_lobe-B1VhXs6g.png",e="/assets/ibl_prefilter_map-DNm9qyCg.png",r="/assets/ibl_03-HvKFbkIi.svg",o="/assets/env_brdf-HRbq0kY7.png",g={},h={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},H={style:{"vertical-align":"-2.028ex"},xmlns:"http://www.w3.org/2000/svg",width:"39.122ex",height:"5.107ex",role:"img",focusable:"false",viewBox:"0 -1361 17291.7 2257.4","aria-hidden":"true"},i={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},p={style:{"vertical-align":"-5.719ex"},xmlns:"http://www.w3.org/2000/svg",width:"33.043ex",height:"12.57ex",role:"img",focusable:"false",viewBox:"0 -3028 14605.2 5556","aria-hidden":"true"},c={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},L={style:{"vertical-align":"-6.577ex"},xmlns:"http://www.w3.org/2000/svg",width:"47.614ex",height:"14.285ex",role:"img",focusable:"false",viewBox:"0 -3406.9 21045.2 6313.9","aria-hidden":"true"},f={class:"MathJax",jax:"SVG",style:{position:"relative"}},u={style:{"vertical-align":"-0.357ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.317ex",height:"2.271ex",role:"img",focusable:"false",viewBox:"0 -846 1023.9 1003.8","aria-hidden":"true"},V={class:"MathJax",jax:"SVG",style:{position:"relative"}},M={style:{"vertical-align":"-0.357ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.317ex",height:"2.271ex",role:"img",focusable:"false",viewBox:"0 -846 1023.9 1003.8","aria-hidden":"true"},Z={class:"MathJax",jax:"SVG",style:{position:"relative"}},x={style:{"vertical-align":"-0.357ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.371ex",height:"2.271ex",role:"img",focusable:"false",viewBox:"0 -846 1047.9 1003.8","aria-hidden":"true"},D={class:"MathJax",jax:"SVG",style:{position:"relative"}},k={style:{"vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.937ex",role:"img",focusable:"false",viewBox:"0 -845 600 856","aria-hidden":"true"},y={class:"MathJax",jax:"SVG",style:{position:"relative"}},w={style:{"vertical-align":"-0.357ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.317ex",height:"2.271ex",role:"img",focusable:"false",viewBox:"0 -846 1023.9 1003.8","aria-hidden":"true"},A={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},v={style:{"vertical-align":"-2.864ex"},xmlns:"http://www.w3.org/2000/svg",width:"51.779ex",height:"6.784ex",role:"img",focusable:"false",viewBox:"0 -1733 22886.5 2998.7","aria-hidden":"true"},b={class:"MathJax",jax:"SVG",style:{position:"relative"}},j={style:{"vertical-align":"-0.357ex"},xmlns:"http://www.w3.org/2000/svg",width:"12.079ex",height:"2.271ex",role:"img",focusable:"false",viewBox:"0 -846 5339 1003.8","aria-hidden":"true"},B={class:"MathJax",jax:"SVG",style:{position:"relative"}},O={style:{"vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.937ex",role:"img",focusable:"false",viewBox:"0 -845 600 856","aria-hidden":"true"},R={class:"MathJax",jax:"SVG",style:{position:"relative"}},C={style:{"vertical-align":"-0.357ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.371ex",height:"2.271ex",role:"img",focusable:"false",viewBox:"0 -846 1047.9 1003.8","aria-hidden":"true"},F={class:"MathJax",jax:"SVG",style:{position:"relative"}},X={style:{"vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"4.937ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2182 1000","aria-hidden":"true"},E={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},N={style:{"vertical-align":"-2.028ex"},xmlns:"http://www.w3.org/2000/svg",width:"20.598ex",height:"5.107ex",role:"img",focusable:"false",viewBox:"0 -1361 9104.4 2257.4","aria-hidden":"true"},S={class:"MathJax",jax:"SVG",style:{position:"relative"}},G={style:{"vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"6.271ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2772 1000","aria-hidden":"true"},J={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},P={style:{"vertical-align":"-2.028ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.398ex",height:"5.107ex",role:"img",focusable:"false",viewBox:"0 -1361 5921.8 2257.4","aria-hidden":"true"},z={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},I={style:{"vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"20.177ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 8918.2 1000","aria-hidden":"true"},U={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},q={style:{"vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"25.774ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 11391.9 1000","aria-hidden":"true"},W={class:"MathJax",jax:"SVG",style:{position:"relative"}},Y={style:{"vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"8.384ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 3705.7 1000","aria-hidden":"true"},K={class:"MathJax",jax:"SVG",style:{position:"relative"}},$={style:{"vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.348ex",height:"2.034ex",role:"img",focusable:"false",viewBox:"0 -694 596 899","aria-hidden":"true"},_={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},Q1={style:{"vertical-align":"-4.875ex"},xmlns:"http://www.w3.org/2000/svg",width:"40.268ex",height:"10.882ex",role:"img",focusable:"false",viewBox:"0 -2655 17798.6 4809.9","aria-hidden":"true"},T1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},a1={style:{"vertical-align":"-2.194ex"},xmlns:"http://www.w3.org/2000/svg",width:"30.429ex",height:"5.611ex",role:"img",focusable:"false",viewBox:"0 -1509.9 13449.8 2479.9","aria-hidden":"true"},t1={class:"MathJax",jax:"SVG",style:{position:"relative"}},m1={style:{"vertical-align":"-0.466ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.163ex",height:"2.484ex",role:"img",focusable:"false",viewBox:"0 -892 6702.1 1098","aria-hidden":"true"},l1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},s1={style:{"vertical-align":"-2.194ex"},xmlns:"http://www.w3.org/2000/svg",width:"45.689ex",height:"5.611ex",role:"img",focusable:"false",viewBox:"0 -1509.9 20194.4 2479.9","aria-hidden":"true"},n1={class:"MathJax",jax:"SVG",style:{position:"relative"}},d1={style:{"vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.618ex",role:"img",focusable:"false",viewBox:"0 -705 469 715","aria-hidden":"true"},e1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},r1={style:{"vertical-align":"-5.492ex"},xmlns:"http://www.w3.org/2000/svg",width:"37.718ex",height:"12.115ex",role:"img",focusable:"false",viewBox:"0 -2927.5 16671.5 5355","aria-hidden":"true"},o1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},g1={style:{"vertical-align":"-5.422ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.231ex",height:"11.975ex",role:"img",focusable:"false",viewBox:"0 -2896.4 12036.2 5292.8","aria-hidden":"true"},h1={class:"MathJax",jax:"SVG",style:{position:"relative"}},H1={style:{"vertical-align":"-0.023ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.618ex",role:"img",focusable:"false",viewBox:"0 -705 469 715","aria-hidden":"true"},i1={class:"MathJax",jax:"SVG",style:{position:"relative"}},p1={style:{"vertical-align":"-0.464ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.348ex",height:"2.034ex",role:"img",focusable:"false",viewBox:"0 -694 596 899","aria-hidden":"true"},c1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},L1={style:{"vertical-align":"-4.496ex"},xmlns:"http://www.w3.org/2000/svg",width:"43.491ex",height:"10.124ex",role:"img",focusable:"false",viewBox:"0 -2487.4 19223.2 4474.7","aria-hidden":"true"},f1={class:"MathJax",jax:"SVG",style:{position:"relative"}},u1={style:{"vertical-align":"-0.357ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.429ex",height:"2.271ex",role:"img",focusable:"false",viewBox:"0 -846 1073.4 1003.8","aria-hidden":"true"},V1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},M1={style:{"vertical-align":"-2.864ex"},xmlns:"http://www.w3.org/2000/svg",width:"47.814ex",height:"6.784ex",role:"img",focusable:"false",viewBox:"0 -1733 21133.7 2998.7","aria-hidden":"true"},Z1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},x1={style:{"vertical-align":"-2.864ex"},xmlns:"http://www.w3.org/2000/svg",width:"24.814ex",height:"6.784ex",role:"img",focusable:"false",viewBox:"0 -1733 10967.8 2998.7","aria-hidden":"true"},D1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},k1={style:{"vertical-align":"-7.305ex"},xmlns:"http://www.w3.org/2000/svg",width:"40.469ex",height:"15.742ex",role:"img",focusable:"false",viewBox:"0 -3729 17887.5 6957.9","aria-hidden":"true"},y1={class:"MathJax",jax:"SVG",style:{position:"relative"}},w1={style:{"vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"18.519ex",height:"2.48ex",role:"img",focusable:"false",viewBox:"0 -846 8185.4 1096","aria-hidden":"true"},A1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},v1={style:{"vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.959ex",height:"2.48ex",role:"img",focusable:"false",viewBox:"0 -846 12357.7 1096","aria-hidden":"true"},b1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},j1={style:{"vertical-align":"-5.683ex"},xmlns:"http://www.w3.org/2000/svg",width:"86.299ex",height:"12.498ex",role:"img",focusable:"false",viewBox:"0 -3012 38144.1 5524","aria-hidden":"true"},B1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},O1={style:{"vertical-align":"-2.389ex"},xmlns:"http://www.w3.org/2000/svg",width:"24.381ex",height:"5.91ex",role:"img",focusable:"false",viewBox:"0 -1556 10776.2 2612","aria-hidden":"true"},R1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},C1={style:{"vertical-align":"-2.864ex"},xmlns:"http://www.w3.org/2000/svg",width:"66.61ex",height:"6.784ex",role:"img",focusable:"false",viewBox:"0 -1733 29441.4 2998.7","aria-hidden":"true"},F1={class:"MathJax",jax:"SVG",style:{position:"relative"}},X1={style:{"vertical-align":"-0.375ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.442ex",height:"1.913ex",role:"img",focusable:"false",viewBox:"0 -680 1079.6 845.6","aria-hidden":"true"},E1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},N1={style:{"vertical-align":"-2.864ex"},xmlns:"http://www.w3.org/2000/svg",width:"89.908ex",height:"6.784ex",role:"img",focusable:"false",viewBox:"0 -1733 39739.3 2998.7","aria-hidden":"true"};function S1(G1,T){return t(),a("div",null,[T[116]||(T[116]=m('

环境光渲染(二)


3. 高光部分

3.1 原理

光照方程中的高光部分

',5)),Q("mjx-container",h,[(t(),a("svg",H,[...T[0]||(T[0]=[m('',1)])])),T[1]||(T[1]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("msub",null,[Q("mi",null,"L"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"o"),Q("mi",null,"s")])]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",null,"="),Q("msub",null,[Q("mo",{"data-mjx-texclass":"OP"},"∫"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"Ω")])]),Q("msub",null,[Q("mi",null,"f"),Q("mi",null,"s")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"i")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,","),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"i")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"i")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"i")]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mi",null,"d"),Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"i")])])],-1))]),T[117]||(T[117]=Q("p",null,"同样使用蒙特卡洛进行近似积分",-1)),Q("mjx-container",i,[(t(),a("svg",p,[...T[2]||(T[2]=[m('',1)])])),T[3]||(T[3]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mtable",{displaystyle:"true",columnalign:"right left",columnspacing:"0em",rowspacing:"3pt"},[Q("mtr",null,[Q("mtd"),Q("mtd",null,[Q("mi"),Q("msub",null,[Q("mo",{"data-mjx-texclass":"OP"},"∫"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"Ω")])]),Q("msub",null,[Q("mi",null,"f"),Q("mi",null,"s")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"i")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,","),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"i")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"i")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"i")]),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mi",null,"d"),Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"i")])])]),Q("mtr",null,[Q("mtd",null,[Q("mo",null,"≈")]),Q("mtd",null,[Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mn",null,"1"),Q("mi",null,"N")])]),Q("munderover",null,[Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"k"),Q("mo",null,"="),Q("mn",null,"1")]),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"N")])]),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("msub",null,[Q("mi",null,"f"),Q("mi",null,"s")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,","),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"i")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])])])])])])],-1))]),T[118]||(T[118]=Q("p",null,[l("EPIC在此基础上提出了一种近似"),Q("a",{href:"http://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_notes_v2.pdf",target:"_blank",rel:"noopener noreferrer"},"计算方法")],-1)),Q("mjx-container",c,[(t(),a("svg",L,[...T[4]||(T[4]=[m('',1)])])),T[5]||(T[5]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mtable",{displaystyle:"true",columnalign:"right left",columnspacing:"0em",rowspacing:"3pt"},[Q("mtr",null,[Q("mtd"),Q("mtd",null,[Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mn",null,"1"),Q("mi",null,"N")])]),Q("munderover",null,[Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"k"),Q("mo",null,"="),Q("mn",null,"1")]),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"N")])]),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("msub",null,[Q("mi",null,"f"),Q("mi",null,"s")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,","),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"i")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,","),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])])])]),Q("mtr",null,[Q("mtd",null,[Q("mo",null,"≈")]),Q("mtd",null,[Q("mrow",{"data-mjx-texclass":"INNER"},[Q("mo",{"data-mjx-texclass":"OPEN"},"("),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mn",null,"1"),Q("mi",null,"N")])]),Q("munderover",null,[Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"k"),Q("mo",null,"="),Q("mn",null,"1")]),Q("mi",null,"N")]),Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"i")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{"data-mjx-texclass":"CLOSE"},")")]),Q("mrow",{"data-mjx-texclass":"INNER"},[Q("mo",{"data-mjx-texclass":"OPEN"},"("),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mn",null,"1"),Q("mi",null,"N")])]),Q("munderover",null,[Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"k"),Q("mo",null,"="),Q("mn",null,"1")]),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"N")])]),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("msub",null,[Q("mi",null,"f"),Q("mi",null,"s")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,","),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])]),Q("mo",{"data-mjx-texclass":"CLOSE"},")")])])])])])],-1))]),T[119]||(T[119]=Q("p",null,"这种方法的好处是可以通过分开预计算,尽量减少实际渲染时的计算量,这个公式可以理解为“Env. lighting x BRDF”,左边的第一部分是小平面受到的所有环境光的采样值,第二部分只跟材质的BRDF属性相关。",-1)),T[120]||(T[120]=Q("figure",null,[Q("img",{src:n,alt:"",tabindex:"0",loading:"lazy"}),Q("figcaption")],-1)),T[121]||(T[121]=Q("h3",{id:"_3-2-预渲染环境光贴图-pre-filtered-environment-map",tabindex:"-1"},[Q("a",{class:"header-anchor",href:"#_3-2-预渲染环境光贴图-pre-filtered-environment-map"},[Q("span",null,"3.2 预渲染环境光贴图(pre-filtered environment map)")])],-1)),Q("p",null,[T[16]||(T[16]=l("第一个拆分项只和环境光照以及采样点有关,首先采样点集中在",-1)),Q("mjx-container",f,[(t(),a("svg",u,[...T[6]||(T[6]=[m('',1)])])),T[7]||(T[7]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"r")])])],-1))]),T[17]||(T[17]=l("周围(",-1)),Q("mjx-container",V,[(t(),a("svg",M,[...T[8]||(T[8]=[m('',1)])])),T[9]||(T[9]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"r")])])],-1))]),T[18]||(T[18]=l("是",-1)),Q("mjx-container",Z,[(t(),a("svg",x,[...T[10]||(T[10]=[m('',1)])])),T[11]||(T[11]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"o")])])],-1))]),T[19]||(T[19]=l("相对于法线",-1)),Q("mjx-container",D,[(t(),a("svg",k,[...T[12]||(T[12]=[m('',1)])])),T[13]||(T[13]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])])])],-1))]),T[20]||(T[20]=l("的反射向量),并且粗糙度越大,采样点越分散。",-1)),T[21]||(T[21]=Q("br",null,null,-1)),T[22]||(T[22]=Q("img",{src:d,alt:"",loading:"lazy"},null,-1)),T[23]||(T[23]=Q("br",null,null,-1)),T[24]||(T[24]=l(' 实际应用中,这个拆分项是通过把环境光贴图预先渲染到一个环境贴图中实现的,称为为"pre-filter map"或者"radiance map",最终渲染时根据',-1)),Q("mjx-container",y,[(t(),a("svg",w,[...T[14]||(T[14]=[m('',1)])])),T[15]||(T[15]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"r")])])],-1))]),T[25]||(T[25]=l(",以及把粗糙度(0~1)转换为mip获得该方向的数值",-1))]),Q("mjx-container",A,[(t(),a("svg",v,[...T[26]||(T[26]=[m('',1)])])),T[27]||(T[27]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mn",null,"1"),Q("mi",null,"N")])]),Q("munderover",null,[Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"k"),Q("mo",null,"="),Q("mn",null,"1")]),Q("mi",null,"N")]),Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"i")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",null,"="),Q("mtext",null,"TexCubeLod"),Q("mo",{stretchy:"false"},"("),Q("mtext",null,"PrefilterMap"),Q("mo",null,","),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"r")]),Q("mo",null,","),Q("mtext",null,"mip"),Q("mo",{stretchy:"false"},")")])],-1))]),T[122]||(T[122]=Q("figure",null,[Q("img",{src:e,alt:"",tabindex:"0",loading:"lazy"}),Q("figcaption")],-1)),T[123]||(T[123]=Q("h3",{id:"_3-3-预渲染贴图的生成",tabindex:"-1"},[Q("a",{class:"header-anchor",href:"#_3-3-预渲染贴图的生成"},[Q("span",null,"3.3 预渲染贴图的生成")])],-1)),Q("p",null,[T[30]||(T[30]=l("生成这张贴图时,首先假定",-1)),Q("mjx-container",b,[(t(),a("svg",j,[...T[28]||(T[28]=[m('',1)])])),T[29]||(T[29]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"="),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"="),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"r")]),Q("mo",{stretchy:"false"},"→")])])])],-1))]),T[31]||(T[31]=l(",也就是摄像机从法线方向垂直观察小平面,然后开始采样",-1))]),T[124]||(T[124]=Q("figure",null,[Q("img",{src:r,alt:"",tabindex:"0",loading:"lazy"}),Q("figcaption")],-1)),Q("p",null,[T[36]||(T[36]=l("再最终渲染时,当",-1)),Q("mjx-container",B,[(t(),a("svg",O,[...T[32]||(T[32]=[m('',1)])])),T[33]||(T[33]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])])])],-1))]),T[37]||(T[37]=l("和",-1)),Q("mjx-container",R,[(t(),a("svg",C,[...T[34]||(T[34]=[m('',1)])])),T[35]||(T[35]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])])])],-1))]),T[38]||(T[38]=l("不等时,采样点的分布会有一定差异,但基本上可以忽略",-1))]),T[125]||(T[125]=Q("h4",{id:"_3-3-1-采样点的生成",tabindex:"-1"},[Q("a",{class:"header-anchor",href:"#_3-3-1-采样点的生成"},[Q("span",null,"3.3.1 采样点的生成")])],-1)),Q("p",null,[T[41]||(T[41]=l("根据前面章节的分析,微表面的法线分布可以用法线分布函数",-1)),Q("mjx-container",F,[(t(),a("svg",X,[...T[39]||(T[39]=[m('',1)])])),T[40]||(T[40]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mi",null,"D"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"h"),Q("mo",{stretchy:"false"},")")])],-1))]),T[42]||(T[42]=l("描述,并且符合",-1))]),Q("mjx-container",E,[(t(),a("svg",N,[...T[43]||(T[43]=[m('',1)])])),T[44]||(T[44]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("msub",null,[Q("mo",{"data-mjx-texclass":"OP"},"∫"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"Ω")])]),Q("mi",null,"D"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"h"),Q("mo",{stretchy:"false"},")"),Q("mi",null,"cos"),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("msub",null,[Q("mi",null,"θ"),Q("mi",null,"h")]),Q("mi",null,"d"),Q("mi",null,"ω"),Q("mo",null,"="),Q("mn",null,"1")])],-1))]),Q("p",null,[T[47]||(T[47]=l("由于微表面法线的概率密度函数",-1)),Q("mjx-container",S,[(t(),a("svg",G,[...T[45]||(T[45]=[m('',1)])])),T[46]||(T[46]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"h"),Q("mo",{stretchy:"false"},")")])],-1))]),T[48]||(T[48]=l("符合以下公式",-1))]),Q("mjx-container",J,[(t(),a("svg",P,[...T[49]||(T[49]=[m('',1)])])),T[50]||(T[50]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("msub",null,[Q("mo",{"data-mjx-texclass":"OP"},"∫"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"Ω")])]),Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"h"),Q("mo",{stretchy:"false"},")"),Q("mo",null,"="),Q("mn",null,"1")])],-1))]),T[126]||(T[126]=Q("p",null,"所以",-1)),Q("mjx-container",z,[(t(),a("svg",I,[...T[51]||(T[51]=[m('',1)])])),T[52]||(T[52]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"h"),Q("mo",{stretchy:"false"},")"),Q("mo",null,"="),Q("mi",null,"D"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"h"),Q("mo",{stretchy:"false"},")"),Q("mi",null,"cos"),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("msub",null,[Q("mi",null,"θ"),Q("mi",null,"h")])])],-1))]),T[127]||(T[127]=Q("p",null,"用极坐标表示",-1)),Q("mjx-container",U,[(t(),a("svg",q,[...T[53]||(T[53]=[m('',1)])])),T[54]||(T[54]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"θ"),Q("mo",null,","),Q("mi",null,"ϕ"),Q("mo",{stretchy:"false"},")"),Q("mo",null,"="),Q("mi",null,"D"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"h"),Q("mo",{stretchy:"false"},")"),Q("mi",null,"cos"),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("mi",null,"θ"),Q("mi",null,"sin"),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("mi",null,"θ")])],-1))]),Q("p",null,[T[59]||(T[59]=l("对于各向同性系统,",-1)),Q("mjx-container",W,[(t(),a("svg",Y,[...T[55]||(T[55]=[m('',1)])])),T[56]||(T[56]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"θ"),Q("mo",null,","),Q("mi",null,"ϕ"),Q("mo",{stretchy:"false"},")")])],-1))]),T[60]||(T[60]=l("和",-1)),Q("mjx-container",K,[(t(),a("svg",$,[...T[57]||(T[57]=[Q("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[Q("g",{"data-mml-node":"math"},[Q("g",{"data-mml-node":"mi"},[Q("path",{"data-c":"1D719",d:"M409 688Q413 694 421 694H429H442Q448 688 448 686Q448 679 418 563Q411 535 404 504T392 458L388 442Q388 441 397 441T429 435T477 418Q521 397 550 357T579 260T548 151T471 65T374 11T279 -10H275L251 -105Q245 -128 238 -160Q230 -192 227 -198T215 -205H209Q189 -205 189 -198Q189 -193 211 -103L234 -11Q234 -10 226 -10Q221 -10 206 -8T161 6T107 36T62 89T43 171Q43 231 76 284T157 370T254 422T342 441Q347 441 348 445L378 567Q409 686 409 688ZM122 150Q122 116 134 91T167 53T203 35T237 27H244L337 404Q333 404 326 403T297 395T255 379T211 350T170 304Q152 276 137 237Q122 191 122 150ZM500 282Q500 320 484 347T444 385T405 400T381 404H378L332 217L284 29Q284 27 285 27Q293 27 317 33T357 47Q400 66 431 100T475 170T494 234T500 282Z"})])])],-1)])])),T[58]||(T[58]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mi",null,"ϕ")])],-1))]),T[61]||(T[61]=l("无关,所以",-1))]),Q("mjx-container",_,[(t(),a("svg",Q1,[...T[62]||(T[62]=[m('',1)])])),T[63]||(T[63]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mtable",{displaystyle:"true",columnalign:"right left",columnspacing:"0em",rowspacing:"3pt"},[Q("mtr",null,[Q("mtd",null,[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"ϕ"),Q("mo",{stretchy:"false"},")")]),Q("mtd",null,[Q("mi"),Q("mo",null,"="),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mn",null,"1"),Q("mrow",null,[Q("mn",null,"2"),Q("mi",null,"π")])])])])]),Q("mtr",null,[Q("mtd",null,[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"θ"),Q("mo",{stretchy:"false"},")")]),Q("mtd",null,[Q("mi"),Q("mo",null,"="),Q("msubsup",null,[Q("mo",{"data-mjx-texclass":"OP"},"∫"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mn",null,"0")]),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mn",null,"2"),Q("mi",null,"π")])]),Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"θ"),Q("mo",null,","),Q("mi",null,"ϕ"),Q("mo",{stretchy:"false"},")"),Q("mi",null,"d"),Q("mi",null,"ϕ"),Q("mo",null,"="),Q("mn",null,"2"),Q("mi",null,"π"),Q("mo",null,"⋅"),Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"θ"),Q("mo",null,","),Q("mi",null,"ϕ"),Q("mo",{stretchy:"false"},")")])])])])],-1))]),T[128]||(T[128]=Q("p",null,"D函数使用GGX函数,也就是",-1)),Q("mjx-container",T1,[(t(),a("svg",a1,[...T[64]||(T[64]=[m('',1)])])),T[65]||(T[65]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mi",null,"D"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"h"),Q("mo",{stretchy:"false"},")"),Q("mo",null,"="),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("msup",null,[Q("mi",null,"α"),Q("mn",null,"2")]),Q("mrow",null,[Q("mi",null,"π"),Q("mo",{stretchy:"false"},"("),Q("msup",null,[Q("mi",null,"cos"),Q("mn",null,"2")]),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("mi",null,"θ"),Q("mo",{stretchy:"false"},"("),Q("msup",null,[Q("mi",null,"α"),Q("mn",null,"2")]),Q("mo",null,"−"),Q("mn",null,"1"),Q("mo",{stretchy:"false"},")"),Q("mo",null,"+"),Q("mn",null,"1"),Q("msup",null,[Q("mo",{stretchy:"false"},")"),Q("mn",null,"2")])])])])])],-1))]),Q("p",null,[T[68]||(T[68]=l("其中",-1)),Q("mjx-container",t1,[(t(),a("svg",m1,[...T[66]||(T[66]=[m('',1)])])),T[67]||(T[67]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mi",null,"α"),Q("mo",null,"="),Q("msup",null,[Q("mtext",null,"roughness"),Q("mn",null,"2")])])],-1))]),T[69]||(T[69]=l(",此时",-1))]),Q("mjx-container",l1,[(t(),a("svg",s1,[...T[70]||(T[70]=[m('',1)])])),T[71]||(T[71]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"θ"),Q("mo",{stretchy:"false"},")"),Q("mo",null,"="),Q("mn",null,"2"),Q("mi",null,"π"),Q("mo",null,"⋅"),Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"θ"),Q("mo",null,","),Q("mi",null,"ϕ"),Q("mo",{stretchy:"false"},")"),Q("mo",null,"="),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("mn",null,"2"),Q("msup",null,[Q("mi",null,"α"),Q("mn",null,"2")]),Q("mi",null,"cos"),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("mi",null,"θ"),Q("mi",null,"sin"),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("mi",null,"θ")]),Q("mrow",null,[Q("mo",{stretchy:"false"},"("),Q("msup",null,[Q("mi",null,"cos"),Q("mn",null,"2")]),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("mi",null,"θ"),Q("mo",{stretchy:"false"},"("),Q("msup",null,[Q("mi",null,"α"),Q("mn",null,"2")]),Q("mo",null,"−"),Q("mn",null,"1"),Q("mo",{stretchy:"false"},")"),Q("mo",null,"+"),Q("mn",null,"1"),Q("msup",null,[Q("mo",{stretchy:"false"},")"),Q("mn",null,"2")])])])])])],-1))]),Q("p",null,[T[74]||(T[74]=l("计算",-1)),Q("mjx-container",n1,[(t(),a("svg",d1,[...T[72]||(T[72]=[Q("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[Q("g",{"data-mml-node":"math"},[Q("g",{"data-mml-node":"mi"},[Q("path",{"data-c":"1D703",d:"M35 200Q35 302 74 415T180 610T319 704Q320 704 327 704T339 705Q393 701 423 656Q462 596 462 495Q462 380 417 261T302 66T168 -10H161Q125 -10 99 10T60 63T41 130T35 200ZM383 566Q383 668 330 668Q294 668 260 623T204 521T170 421T157 371Q206 370 254 370L351 371Q352 372 359 404T375 484T383 566ZM113 132Q113 26 166 26Q181 26 198 36T239 74T287 161T335 307L340 324H145Q145 321 136 286T120 208T113 132Z"})])])],-1)])])),T[73]||(T[73]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mi",null,"θ")])],-1))]),T[75]||(T[75]=l("的概率分布函数",-1))]),Q("mjx-container",e1,[(t(),a("svg",r1,[...T[76]||(T[76]=[m('',1)])])),T[77]||(T[77]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mtable",{displaystyle:"true",columnalign:"right left",columnspacing:"0em",rowspacing:"3pt"},[Q("mtr",null,[Q("mtd",null,[Q("mtext",null,"cdf"),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mi",null,"θ"),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},")")]),Q("mtd",null,[Q("mi"),Q("mo",null,"="),Q("msubsup",null,[Q("mo",{"data-mjx-texclass":"OP"},"∫"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mn",null,"0")]),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("msub",null,[Q("mi",null,"θ"),Q("mi",null,"h")])])]),Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"θ"),Q("mo",{stretchy:"false"},")"),Q("mi",null,"d"),Q("mi",null,"θ")])]),Q("mtr",null,[Q("mtd"),Q("mtd",null,[Q("mi"),Q("mo",null,"="),Q("msubsup",null,[Q("mo",{"data-mjx-texclass":"OP"},"∫"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mn",null,"0")]),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("msub",null,[Q("mi",null,"θ"),Q("mi",null,"h")])])]),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("mn",null,"2"),Q("msup",null,[Q("mi",null,"α"),Q("mn",null,"2")]),Q("mi",null,"cos"),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("mi",null,"θ"),Q("mi",null,"sin"),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("mi",null,"θ")]),Q("mrow",null,[Q("mo",{stretchy:"false"},"("),Q("msup",null,[Q("mi",null,"cos"),Q("mn",null,"2")]),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("mi",null,"θ"),Q("mo",{stretchy:"false"},"("),Q("msup",null,[Q("mi",null,"α"),Q("mn",null,"2")]),Q("mo",null,"−"),Q("mn",null,"1"),Q("mo",{stretchy:"false"},")"),Q("mo",null,"+"),Q("mn",null,"1"),Q("msup",null,[Q("mo",{stretchy:"false"},")"),Q("mn",null,"2")])])])]),Q("mi",null,"d"),Q("mi",null,"θ")])])])])],-1))]),T[129]||(T[129]=Q("p",null,"使用Mathmatica计算可得",-1)),Q("mjx-container",o1,[(t(),a("svg",g1,[...T[78]||(T[78]=[m('',1)])])),T[79]||(T[79]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mtable",{displaystyle:"true",columnalign:"right left",columnspacing:"0em",rowspacing:"3pt"},[Q("mtr",null,[Q("mtd",null,[Q("mtext",null,"cdf"),Q("mo",{stretchy:"false"},"("),Q("mi",null,"θ"),Q("mo",{stretchy:"false"},")")]),Q("mtd",null,[Q("mi"),Q("mo",null,"="),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("msup",null,[Q("mi",null,"sin"),Q("mn",null,"2")]),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("mi",null,"θ")]),Q("mrow",null,[Q("msup",null,[Q("mi",null,"cos"),Q("mn",null,"2")]),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("mi",null,"θ"),Q("mo",{stretchy:"false"},"("),Q("msup",null,[Q("mi",null,"α"),Q("mn",null,"2")]),Q("mo",null,"−"),Q("mn",null,"1"),Q("mo",{stretchy:"false"},")"),Q("mo",null,"+"),Q("mn",null,"1")])])])])]),Q("mtr",null,[Q("mtd"),Q("mtd",null,[Q("mi"),Q("mo",null,"="),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("mn",null,"1"),Q("mo",null,"−"),Q("msup",null,[Q("mi",null,"cos"),Q("mn",null,"2")]),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("mi",null,"θ")]),Q("mrow",null,[Q("msup",null,[Q("mi",null,"cos"),Q("mn",null,"2")]),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("mi",null,"θ"),Q("mo",{stretchy:"false"},"("),Q("msup",null,[Q("mi",null,"α"),Q("mn",null,"2")]),Q("mo",null,"−"),Q("mn",null,"1"),Q("mo",{stretchy:"false"},")"),Q("mo",null,"+"),Q("mn",null,"1")])])])])])])])],-1))]),Q("p",null,[T[84]||(T[84]=l("根据前面的概率知识,可以得到微表面的法线的球坐标",-1)),Q("mjx-container",h1,[(t(),a("svg",H1,[...T[80]||(T[80]=[Q("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[Q("g",{"data-mml-node":"math"},[Q("g",{"data-mml-node":"mi"},[Q("path",{"data-c":"1D703",d:"M35 200Q35 302 74 415T180 610T319 704Q320 704 327 704T339 705Q393 701 423 656Q462 596 462 495Q462 380 417 261T302 66T168 -10H161Q125 -10 99 10T60 63T41 130T35 200ZM383 566Q383 668 330 668Q294 668 260 623T204 521T170 421T157 371Q206 370 254 370L351 371Q352 372 359 404T375 484T383 566ZM113 132Q113 26 166 26Q181 26 198 36T239 74T287 161T335 307L340 324H145Q145 321 136 286T120 208T113 132Z"})])])],-1)])])),T[81]||(T[81]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mi",null,"θ")])],-1))]),T[85]||(T[85]=l("和",-1)),Q("mjx-container",i1,[(t(),a("svg",p1,[...T[82]||(T[82]=[Q("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[Q("g",{"data-mml-node":"math"},[Q("g",{"data-mml-node":"mi"},[Q("path",{"data-c":"1D719",d:"M409 688Q413 694 421 694H429H442Q448 688 448 686Q448 679 418 563Q411 535 404 504T392 458L388 442Q388 441 397 441T429 435T477 418Q521 397 550 357T579 260T548 151T471 65T374 11T279 -10H275L251 -105Q245 -128 238 -160Q230 -192 227 -198T215 -205H209Q189 -205 189 -198Q189 -193 211 -103L234 -11Q234 -10 226 -10Q221 -10 206 -8T161 6T107 36T62 89T43 171Q43 231 76 284T157 370T254 422T342 441Q347 441 348 445L378 567Q409 686 409 688ZM122 150Q122 116 134 91T167 53T203 35T237 27H244L337 404Q333 404 326 403T297 395T255 379T211 350T170 304Q152 276 137 237Q122 191 122 150ZM500 282Q500 320 484 347T444 385T405 400T381 404H378L332 217L284 29Q284 27 285 27Q293 27 317 33T357 47Q400 66 431 100T475 170T494 234T500 282Z"})])])],-1)])])),T[83]||(T[83]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mi",null,"ϕ")])],-1))]),T[86]||(T[86]=l("的采样函数为",-1))]),Q("mjx-container",c1,[(t(),a("svg",L1,[...T[87]||(T[87]=[m('',1)])])),T[88]||(T[88]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mtable",{displaystyle:"true",columnalign:"right left",columnspacing:"0em",rowspacing:"3pt"},[Q("mtr",null,[Q("mtd",null,[Q("mi",null,"θ")]),Q("mtd",null,[Q("mi"),Q("mo",null,"="),Q("msup",null,[Q("mtext",null,"cdf"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mo",null,"−"),Q("mn",null,"1")])]),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mi",null,"ξ"),Q("mi",null,"θ")]),Q("mo",{stretchy:"false"},")"),Q("mo",null,"="),Q("mi",null,"arccos"),Q("mo",{"data-mjx-texclass":"NONE"},"⁡"),Q("mrow",{"data-mjx-texclass":"INNER"},[Q("mo",{"data-mjx-texclass":"OPEN"},"("),Q("msqrt",null,[Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("mn",null,"1"),Q("mo",null,"−"),Q("msub",null,[Q("mi",null,"ξ"),Q("mi",null,"θ")])]),Q("mrow",null,[Q("mo",{stretchy:"false"},"("),Q("msup",null,[Q("mi",null,"α"),Q("mn",null,"2")]),Q("mo",null,"−"),Q("mn",null,"1"),Q("mo",{stretchy:"false"},")"),Q("msub",null,[Q("mi",null,"ξ"),Q("mi",null,"θ")]),Q("mo",null,"+"),Q("mn",null,"1")])])])]),Q("mo",{"data-mjx-texclass":"CLOSE"},")")])])]),Q("mtr",null,[Q("mtd",null,[Q("mi",null,"ϕ")]),Q("mtd",null,[Q("mi"),Q("mo",null,"="),Q("mn",null,"2"),Q("mi",null,"π"),Q("msub",null,[Q("mi",null,"ξ"),Q("mi",null,"ϕ")])])])])])],-1))]),Q("p",null,[T[91]||(T[91]=l("然后即可计算出光线采样点的入射向量",-1)),Q("mjx-container",f1,[(t(),a("svg",u1,[...T[89]||(T[89]=[m('',1)])])),T[90]||(T[90]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])])])],-1))])]),T[130]||(T[130]=Q("h4",{id:"_3-3-2-代码",tabindex:"-1"},[Q("a",{class:"header-anchor",href:"#_3-3-2-代码"},[Q("span",null,"3.3.2 代码")])],-1)),T[131]||(T[131]=Q("p",null,"实际运算时,每个采样点的权重是不一样的,采用和宏法线的点积作为权重",-1)),Q("mjx-container",V1,[(t(),a("svg",M1,[...T[92]||(T[92]=[m('',1)])])),T[93]||(T[93]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mn",null,"1"),Q("mi",null,"N")])]),Q("munderover",null,[Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"k"),Q("mo",null,"="),Q("mn",null,"1")]),Q("mi",null,"N")]),Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"i")]),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},")"),Q("mo",null,"≈"),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mn",null,"1"),Q("mrow",null,[Q("munderover",null,[Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"k"),Q("mo",null,"="),Q("mn",null,"1")]),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"N")])]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},")")])])]),Q("munderover",null,[Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"k"),Q("mo",null,"="),Q("mn",null,"1")]),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"N")])]),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"i")]),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},")")])])],-1))]),T[132]||(T[132]=m(`
// make the simplyfying assumption that V equals R equals the normal 
vec3 R = N;
vec3 V = R;

const uint SAMPLE_COUNT = 1024u;
vec3 prefilteredColor = vec3_splat(0.0);
float totalWeight = 0.0;

for(uint i = 0u; i < SAMPLE_COUNT; ++i)
{
    // generates a sample vector that's biased towards the preferred 
    //alignment direction (importance sampling).
    vec2 Xi = Hammersley(i, SAMPLE_COUNT);
    vec3 H = ImportanceSampleGGX(Xi, N, roughness);
    vec3 L  = normalize(2.0 * dot(V, H) * H - V);

    float NdotL = max(dot(N, L), 0.0);
    if(NdotL > 0.0)
    {
        prefilteredColor += texture2D(s_texSkybox, SampleSphericalMap(L)).rgb * NdotL;
        totalWeight      += NdotL;
    }
}

prefilteredColor = prefilteredColor / totalWeight;

3.3 BRDF部分

观察公式的第二个拆分项

`,3)),Q("mjx-container",Z1,[(t(),a("svg",x1,[...T[94]||(T[94]=[m('',1)])])),T[95]||(T[95]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mn",null,"1"),Q("mi",null,"N")])]),Q("munderover",null,[Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"k"),Q("mo",null,"="),Q("mn",null,"1")]),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"N")])]),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("msub",null,[Q("mi",null,"f"),Q("mi",null,"s")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,","),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])])])],-1))]),T[133]||(T[133]=Q("p",null,"其中",-1)),Q("mjx-container",D1,[(t(),a("svg",k1,[...T[96]||(T[96]=[m('',1)])])),T[97]||(T[97]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mtable",{displaystyle:"true",columnalign:"right left",columnspacing:"0em",rowspacing:"3pt"},[Q("mtr",null,[Q("mtd",null,[Q("msub",null,[Q("mi",null,"f"),Q("mi",null,"s")]),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"k")]),Q("mo",null,","),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},")")]),Q("mtd",null,[Q("mi"),Q("mo",null,"="),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("mi",null,"F"),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"k")]),Q("mo",null,","),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},")"),Q("mi",null,"D"),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},")"),Q("mi",null,"G"),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"k")]),Q("mo",null,","),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mn",null,"4"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])])])]),Q("mtr",null,[Q("mtd",null,[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mtd",null,[Q("mi"),Q("mo",null,"="),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mn",null,"4"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])]),Q("mo",null,"="),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("mi",null,"D"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mn",null,"4"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])])])]),Q("mtr",null,[Q("mtd",null,[Q("mi",null,"F"),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"k")]),Q("mo",null,","),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},")")]),Q("mtd",null,[Q("mi"),Q("mo",null,"="),Q("msub",null,[Q("mi",null,"F"),Q("mn",null,"0")]),Q("mo",null,"+"),Q("mo",{stretchy:"false"},"("),Q("mn",null,"1"),Q("mo",null,"−"),Q("msub",null,[Q("mi",null,"F"),Q("mn",null,"0")]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mn",null,"1"),Q("mo",null,"−"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("msup",null,[Q("mo",{stretchy:"false"},")"),Q("mn",null,"5")])])])])])],-1))]),Q("p",null,[T[100]||(T[100]=l("设",-1)),Q("mjx-container",y1,[(t(),a("svg",w1,[...T[98]||(T[98]=[m('',1)])])),T[99]||(T[99]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("msub",null,[Q("mi",null,"F"),Q("mi",null,"c")]),Q("mo",null,"="),Q("mo",{stretchy:"false"},"("),Q("mn",null,"1"),Q("mo",null,"−"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("msup",null,[Q("mo",{stretchy:"false"},")"),Q("mn",null,"5")])])],-1))]),T[101]||(T[101]=l(",那么",-1))]),Q("mjx-container",A1,[(t(),a("svg",v1,[...T[102]||(T[102]=[m('',1)])])),T[103]||(T[103]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mi",null,"F"),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"k")]),Q("mo",null,","),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},")"),Q("mo",null,"="),Q("msub",null,[Q("mi",null,"F"),Q("mn",null,"0")]),Q("mo",{stretchy:"false"},"("),Q("mn",null,"1"),Q("mo",null,"−"),Q("msub",null,[Q("mi",null,"F"),Q("mi",null,"c")]),Q("mo",{stretchy:"false"},")"),Q("mo",null,"+"),Q("msub",null,[Q("mi",null,"F"),Q("mi",null,"c")])])],-1))]),T[134]||(T[134]=Q("p",null,"带入上面的式中,可得",-1)),Q("mjx-container",b1,[(t(),a("svg",j1,[...T[104]||(T[104]=[m('',1)])])),T[105]||(T[105]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mtable",{displaystyle:"true",columnalign:"right left",columnspacing:"0em",rowspacing:"3pt"},[Q("mtr",null,[Q("mtd",null,[Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("msub",null,[Q("mi",null,"f"),Q("mi",null,"s")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,","),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])])]),Q("mtd",null,[Q("mi"),Q("mo",null,"="),Q("msub",null,[Q("mi",null,"F"),Q("mn",null,"0")]),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("msub",null,[Q("mi",null,"f"),Q("mi",null,"s")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,","),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mi",null,"F"),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"k")]),Q("mo",null,","),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},")"),Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])]),Q("mo",{stretchy:"false"},"("),Q("mn",null,"1"),Q("mo",null,"−"),Q("msub",null,[Q("mi",null,"F"),Q("mi",null,"c")]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",null,"+"),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("msub",null,[Q("mi",null,"f"),Q("mi",null,"s")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,","),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mi",null,"F"),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"k")]),Q("mo",null,","),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},")"),Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])]),Q("msub",null,[Q("mi",null,"F"),Q("mi",null,"c")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])]),Q("mtr",null,[Q("mtd"),Q("mtd",null,[Q("mi"),Q("mo",null,"="),Q("msub",null,[Q("mi",null,"F"),Q("mn",null,"0")]),Q("mo",{stretchy:"false"},"("),Q("mn",null,"1"),Q("mo",null,"−"),Q("msub",null,[Q("mi",null,"F"),Q("mi",null,"c")]),Q("mo",{stretchy:"false"},")"),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("mi",null,"G"),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"k")]),Q("mo",null,","),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])]),Q("mo",null,"+"),Q("msub",null,[Q("mi",null,"F"),Q("mi",null,"c")]),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("mi",null,"G"),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"k")]),Q("mo",null,","),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])])])])])])],-1))]),T[135]||(T[135]=Q("p",null,"设",-1)),Q("mjx-container",B1,[(t(),a("svg",O1,[...T[106]||(T[106]=[m('',1)])])),T[107]||(T[107]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("msub",null,[Q("mi",null,"G"),Q("mi",null,"v")]),Q("mo",null,"="),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("mi",null,"G"),Q("mo",{stretchy:"false"},"("),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"k")]),Q("mo",null,","),Q("msub",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"ω"),Q("mo",{stretchy:"false"},"→")])]),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"h")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])])])],-1))]),T[136]||(T[136]=Q("p",null,"那么可得",-1)),Q("mjx-container",R1,[(t(),a("svg",C1,[...T[108]||(T[108]=[m('',1)])])),T[109]||(T[109]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mn",null,"1"),Q("mi",null,"N")])]),Q("munderover",null,[Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"k"),Q("mo",null,"="),Q("mn",null,"1")]),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"N")])]),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("msub",null,[Q("mi",null,"f"),Q("mi",null,"s")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,","),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])]),Q("mo",null,"="),Q("msub",null,[Q("mi",null,"F"),Q("mn",null,"0")]),Q("mrow",{"data-mjx-texclass":"INNER"},[Q("mo",{"data-mjx-texclass":"OPEN"},"("),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mn",null,"1"),Q("mi",null,"N")])]),Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mo",{stretchy:"false"},"("),Q("mn",null,"1"),Q("mo",null,"−"),Q("msub",null,[Q("mi",null,"F"),Q("mi",null,"c")]),Q("mo",{stretchy:"false"},")"),Q("msub",null,[Q("mi",null,"G"),Q("mi",null,"v")])]),Q("mo",{"data-mjx-texclass":"CLOSE"},")")]),Q("mo",null,"+"),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mn",null,"1"),Q("mi",null,"N")])]),Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("msub",null,[Q("mi",null,"F"),Q("mi",null,"c")]),Q("msub",null,[Q("mi",null,"G"),Q("mi",null,"v")])])],-1))]),T[137]||(T[137]=Q("h2",{id:"_3-4-brdf查找贴图",tabindex:"-1"},[Q("a",{class:"header-anchor",href:"#_3-4-brdf查找贴图"},[Q("span",null,"3.4 BRDF查找贴图")])],-1)),Q("p",null,[T[112]||(T[112]=l("上面的公式中,除了",-1)),Q("mjx-container",F1,[(t(),a("svg",X1,[...T[110]||(T[110]=[m('',1)])])),T[111]||(T[111]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("msub",null,[Q("mi",null,"F"),Q("mn",null,"0")])])],-1))]),T[113]||(T[113]=l("和运行时的材质相关,其他数值都只取决于所使用的微表面的函数类型,所以可以预先计算在一张二维贴图中",-1))]),T[138]||(T[138]=Q("figure",null,[Q("img",{src:o,alt:"",tabindex:"0",loading:"lazy"}),Q("figcaption")],-1)),T[139]||(T[139]=Q("p",null,"在运行时可以使用查表得方式从这张贴图上获取数据",-1)),Q("mjx-container",E1,[(t(),a("svg",N1,[...T[114]||(T[114]=[m('',1)])])),T[115]||(T[115]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mn",null,"1"),Q("mi",null,"N")])]),Q("munderover",null,[Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"k"),Q("mo",null,"="),Q("mn",null,"1")]),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",null,"N")])]),Q("mstyle",{displaystyle:"true",scriptlevel:"0"},[Q("mfrac",null,[Q("mrow",null,[Q("msub",null,[Q("mi",null,"f"),Q("mi",null,"s")]),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,","),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")]),Q("mrow",null,[Q("mtext",null,"pdf"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"k")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")")])])]),Q("mo",null,"="),Q("msub",null,[Q("mi",null,"F"),Q("mn",null,"0")]),Q("mo",null,"∗"),Q("mtext",null,"Tex2D"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,","),Q("mtext",null,"Roughness"),Q("mo",{stretchy:"false"},")"),Q("mo",null,"."),Q("mi",null,"r"),Q("mo",null,"+"),Q("mtext",null,"Tex2D"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"n"),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,","),Q("mtext",null,"Roughness"),Q("mo",{stretchy:"false"},")"),Q("mo",null,"."),Q("mi",null,"g")])],-1))]),T[140]||(T[140]=m(`

3.4.1 BRDF贴图的生成

vec2 IntegrateBRDF(float NdotV, float roughness)
{
    vec3 V;
    V.x = sqrt(1.0 - NdotV*NdotV);
    V.y = 0.0;
    V.z = NdotV;

    float A = 0.0;
    float B = 0.0; 

    vec3 N = vec3(0.0, 0.0, 1.0);
    
    const uint SAMPLE_COUNT = 1024u;
    for(uint i = 0u; i < SAMPLE_COUNT; ++i)
    {
        // generates a sample vector that's biased towards the
        // preferred alignment direction (importance sampling).
        vec2 Xi = Hammersley(i, SAMPLE_COUNT);
        vec3 H = ImportanceSampleGGX(Xi, N, roughness);
        vec3 L = normalize(2.0 * dot(V, H) * H - V);

        float NdotL = max(L.z, 0.0);
        float NdotH = max(H.z, 0.0);
        float VdotH = max(dot(V, H), 0.0);

        if(NdotL > 0.0)
        {
            float G = GeometrySmith(N, V, L, roughness);
            float G_Vis = (G * VdotH) / (NdotH * NdotV);
            float Fc = pow(1.0 - VdotH, 5.0);

            A += (1.0 - Fc) * G_Vis;
            B += Fc * G_Vis;
        }
    }
    A /= float(SAMPLE_COUNT);
    B /= float(SAMPLE_COUNT);
    return vec2(A, B);
}
`,2))])}const z1=s(g,[["render",S1]]),I1=JSON.parse('{"path":"/note/graphics/image_based_lighting/ibl_02.html","title":"环境光渲染(二)","lang":"zh-CN","frontmatter":{"description":"环境光渲染(二) 3. 高光部分 3.1 原理 光照方程中的高光部分 同样使用蒙特卡洛进行近似积分 EPIC在此基础上提出了一种近似计算方法 这种方法的好处是可以通过分开预计算,尽量减少实际渲染时的计算量,这个公式可以理解为“Env. lighting x BRDF”,左边的第一部分是小平面受到的所有环境光的采样值,第二部分只跟材质的BRDF属性相关。...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"环境光渲染(二)\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-02-23T12:51:53.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"JinChao\\",\\"url\\":\\"https://thecodeway.com\\"}]}"],["meta",{"property":"og:url","content":"https://thejinchao.github.io/note/graphics/image_based_lighting/ibl_02.html"}],["meta",{"property":"og:site_name","content":"我的博客和笔记"}],["meta",{"property":"og:title","content":"环境光渲染(二)"}],["meta",{"property":"og:description","content":"环境光渲染(二) 3. 高光部分 3.1 原理 光照方程中的高光部分 同样使用蒙特卡洛进行近似积分 EPIC在此基础上提出了一种近似计算方法 这种方法的好处是可以通过分开预计算,尽量减少实际渲染时的计算量,这个公式可以理解为“Env. lighting x BRDF”,左边的第一部分是小平面受到的所有环境光的采样值,第二部分只跟材质的BRDF属性相关。..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-02-23T12:51:53.000Z"}],["meta",{"property":"article:modified_time","content":"2025-02-23T12:51:53.000Z"}]]},"git":{"createdTime":1740235322000,"updatedTime":1740315113000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":2,"url":"https://github.com/thejinchao"}]},"readingTime":{"minutes":5.65,"words":1696},"filePathRelative":"note/graphics/image_based_lighting/ibl_02.md","autoDesc":true}');export{z1 as comp,I1 as data};