import{_ as n,c as a,a as m,b as Q,d as l,o as t}from"./app-BfM5Jnrn.js";const s="/assets/ibl_02-M9fcYT_u.svg",d="/assets/ibl_specular_lobe-B1VhXs6g.png",e="/assets/ibl_prefilter_map-DNm9qyCg.png",o="/assets/ibl_03-HvKFbkIi.svg",r="/assets/env_brdf-HRbq0kY7.png",g={},p={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"},h={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},c={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"},i={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"},u={class:"MathJax",jax:"SVG",style:{position:"relative"}},f={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"}},w={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"}},v={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"},b={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},j={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"},k={class:"MathJax",jax:"SVG",style:{position:"relative"}},O={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"},R={class:"MathJax",jax:"SVG",style:{position:"relative"}},C={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"},A={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"},B={class:"MathJax",jax:"SVG",style:{position:"relative"}},N={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"}},F={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"}},n1={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"},s1={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"}},o1={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"},r1={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"},p1={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"},h1={class:"MathJax",jax:"SVG",style:{position:"relative"}},c1={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"},i1={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"},u1={class:"MathJax",jax:"SVG",style:{position:"relative"}},f1={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"}},w1={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"}},v1={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"},b1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},j1={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"},k1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},O1={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"},R1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},C1={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"},A1={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},X1={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"},B1={class:"MathJax",jax:"SVG",style:{position:"relative"}},N1={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"}},F1={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[114]||(T[114]=m('

环境光渲染(二)


3. 高光部分

3.1 原理

光照方程中的高光部分

',5)),Q("mjx-container",p,[(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[115]||(T[115]=Q("p",null,"同样使用蒙特卡洛进行近似积分",-1)),Q("mjx-container",h,[(t(),a("svg",c,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[116]||(T[116]=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",i,[(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[117]||(T[117]=Q("p",null,"这种方法的好处是可以通过分开预计算,尽量减少实际渲染时的计算量,这个公式可以理解为“Env. lighting x BRDF”,左边的第一部分是小平面受到的所有环境光的采样值,第二部分只跟材质的BRDF属性相关。",-1)),T[118]||(T[118]=Q("figure",null,[Q("img",{src:s,alt:"",tabindex:"0",loading:"lazy"}),Q("figcaption")],-1)),T[119]||(T[119]=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("第一个拆分项只和环境光照以及采样点有关,首先采样点集中在")),Q("mjx-container",u,[(t(),a("svg",f,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("周围(")),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("是")),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("相对于法线")),Q("mjx-container",D,[(t(),a("svg",w,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("的反射向量),并且粗糙度越大,采样点越分散。 ")),T[21]||(T[21]=Q("img",{src:d,alt:"",loading:"lazy"},null,-1)),T[22]||(T[22]=l(' 实际应用中,这个拆分项是通过把环境光贴图预先渲染到一个环境贴图中实现的,称为为"pre-filter map"或者"radiance map",最终渲染时根据')),Q("mjx-container",y,[(t(),a("svg",v,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[23]||(T[23]=l(",以及把粗糙度(0~1)转换为mip获得该方向的数值"))]),Q("mjx-container",b,[(t(),a("svg",j,T[24]||(T[24]=[m('',1)]))),T[25]||(T[25]=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[120]||(T[120]=Q("figure",null,[Q("img",{src:e,alt:"",tabindex:"0",loading:"lazy"}),Q("figcaption")],-1)),T[121]||(T[121]=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[28]||(T[28]=l("生成这张贴图时,首先假定")),Q("mjx-container",k,[(t(),a("svg",O,T[26]||(T[26]=[m('',1)]))),T[27]||(T[27]=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[29]||(T[29]=l(",也就是摄像机从法线方向垂直观察小平面,然后开始采样"))]),T[122]||(T[122]=Q("figure",null,[Q("img",{src:o,alt:"",tabindex:"0",loading:"lazy"}),Q("figcaption")],-1)),Q("p",null,[T[34]||(T[34]=l("再最终渲染时,当")),Q("mjx-container",R,[(t(),a("svg",C,T[30]||(T[30]=[m('',1)]))),T[31]||(T[31]=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[35]||(T[35]=l("和")),Q("mjx-container",A,[(t(),a("svg",X,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("msub",null,[Q("mi",null,"ω"),Q("mi",null,"o")]),Q("mo",{stretchy:"false"},"→")])])])],-1))]),T[36]||(T[36]=l("不等时,采样点的分布会有一定差异,但基本上可以忽略"))]),T[123]||(T[123]=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[39]||(T[39]=l("根据前面章节的分析,微表面的法线分布可以用法线分布函数")),Q("mjx-container",B,[(t(),a("svg",N,T[37]||(T[37]=[m('',1)]))),T[38]||(T[38]=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[40]||(T[40]=l("描述,并且符合"))]),Q("mjx-container",E,[(t(),a("svg",F,T[41]||(T[41]=[m('',1)]))),T[42]||(T[42]=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[45]||(T[45]=l("由于微表面法线的概率密度函数")),Q("mjx-container",S,[(t(),a("svg",G,T[43]||(T[43]=[m('',1)]))),T[44]||(T[44]=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[46]||(T[46]=l("符合以下公式"))]),Q("mjx-container",J,[(t(),a("svg",P,T[47]||(T[47]=[m('',1)]))),T[48]||(T[48]=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[124]||(T[124]=Q("p",null,"所以",-1)),Q("mjx-container",z,[(t(),a("svg",I,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("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[125]||(T[125]=Q("p",null,"用极坐标表示",-1)),Q("mjx-container",U,[(t(),a("svg",q,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,"θ"),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[57]||(T[57]=l("对于各向同性系统,")),Q("mjx-container",W,[(t(),a("svg",Y,T[53]||(T[53]=[m('',1)]))),T[54]||(T[54]=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[58]||(T[58]=l("和")),Q("mjx-container",K,[(t(),a("svg",$,T[55]||(T[55]=[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[56]||(T[56]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mi",null,"ϕ")])],-1))]),T[59]||(T[59]=l("无关,所以"))]),Q("mjx-container",_,[(t(),a("svg",Q1,T[60]||(T[60]=[m('',1)]))),T[61]||(T[61]=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[126]||(T[126]=Q("p",null,"D函数使用GGX函数,也就是",-1)),Q("mjx-container",T1,[(t(),a("svg",a1,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("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[66]||(T[66]=l("其中")),Q("mjx-container",t1,[(t(),a("svg",m1,T[64]||(T[64]=[m('',1)]))),T[65]||(T[65]=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[67]||(T[67]=l(",此时"))]),Q("mjx-container",l1,[(t(),a("svg",n1,T[68]||(T[68]=[m('',1)]))),T[69]||(T[69]=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[72]||(T[72]=l("计算")),Q("mjx-container",s1,[(t(),a("svg",d1,T[70]||(T[70]=[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[71]||(T[71]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mi",null,"θ")])],-1))]),T[73]||(T[73]=l("的概率分布函数"))]),Q("mjx-container",e1,[(t(),a("svg",o1,T[74]||(T[74]=[m('',1)]))),T[75]||(T[75]=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[127]||(T[127]=Q("p",null,"使用Mathmatica计算可得",-1)),Q("mjx-container",r1,[(t(),a("svg",g1,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("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[82]||(T[82]=l("根据前面的概率知识,可以得到微表面的法线的球坐标")),Q("mjx-container",p1,[(t(),a("svg",H1,T[78]||(T[78]=[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[79]||(T[79]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mi",null,"θ")])],-1))]),T[83]||(T[83]=l("和")),Q("mjx-container",h1,[(t(),a("svg",c1,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":"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[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[84]||(T[84]=l("的采样函数为"))]),Q("mjx-container",i1,[(t(),a("svg",L1,T[85]||(T[85]=[m('',1)]))),T[86]||(T[86]=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[89]||(T[89]=l("然后即可计算出光线采样点的入射向量")),Q("mjx-container",u1,[(t(),a("svg",f1,T[87]||(T[87]=[m('',1)]))),T[88]||(T[88]=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[128]||(T[128]=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[129]||(T[129]=Q("p",null,"实际运算时,每个采样点的权重是不一样的,采用和宏法线的点积作为权重",-1)),Q("mjx-container",V1,[(t(),a("svg",M1,T[90]||(T[90]=[m('',1)]))),T[91]||(T[91]=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[130]||(T[130]=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[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("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[131]||(T[131]=Q("p",null,"其中",-1)),Q("mjx-container",D1,[(t(),a("svg",w1,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("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[98]||(T[98]=l("设")),Q("mjx-container",y1,[(t(),a("svg",v1,T[96]||(T[96]=[m('',1)]))),T[97]||(T[97]=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[99]||(T[99]=l(",那么"))]),Q("mjx-container",b1,[(t(),a("svg",j1,T[100]||(T[100]=[m('',1)]))),T[101]||(T[101]=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[132]||(T[132]=Q("p",null,"带入上面的式中,可得",-1)),Q("mjx-container",k1,[(t(),a("svg",O1,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("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[133]||(T[133]=Q("p",null,"设",-1)),Q("mjx-container",R1,[(t(),a("svg",C1,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("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[134]||(T[134]=Q("p",null,"那么可得",-1)),Q("mjx-container",A1,[(t(),a("svg",X1,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("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[135]||(T[135]=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[110]||(T[110]=l("上面的公式中,除了")),Q("mjx-container",B1,[(t(),a("svg",N1,T[108]||(T[108]=[m('',1)]))),T[109]||(T[109]=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[111]||(T[111]=l("和运行时的材质相关,其他数值都只取决于所使用的微表面的函数类型,所以可以预先计算在一张二维贴图中"))]),T[136]||(T[136]=Q("figure",null,[Q("img",{src:r,alt:"",tabindex:"0",loading:"lazy"}),Q("figcaption")],-1)),T[137]||(T[137]=Q("p",null,"在运行时可以使用查表得方式从这张贴图上获取数据",-1)),Q("mjx-container",E1,[(t(),a("svg",F1,T[112]||(T[112]=[m('',1)]))),T[113]||(T[113]=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[138]||(T[138]=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 P1=n(g,[["render",S1],["__file","ibl_02.html.vue"]]),z1=JSON.parse('{"path":"/note/graphics/image_based_lighting/ibl_02.html","title":"环境光渲染(二)","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"3. 高光部分","slug":"_3-高光部分","link":"#_3-高光部分","children":[{"level":3,"title":"3.1 原理","slug":"_3-1-原理","link":"#_3-1-原理","children":[]},{"level":3,"title":"3.2 预渲染环境光贴图(pre-filtered environment map)","slug":"_3-2-预渲染环境光贴图-pre-filtered-environment-map","link":"#_3-2-预渲染环境光贴图-pre-filtered-environment-map","children":[]},{"level":3,"title":"3.3 预渲染贴图的生成","slug":"_3-3-预渲染贴图的生成","link":"#_3-3-预渲染贴图的生成","children":[]}]},{"level":2,"title":"3.3 BRDF部分","slug":"_3-3-brdf部分","link":"#_3-3-brdf部分","children":[]},{"level":2,"title":"3.4 BRDF查找贴图","slug":"_3-4-brdf查找贴图","link":"#_3-4-brdf查找贴图","children":[{"level":3,"title":"3.4.1 BRDF贴图的生成","slug":"_3-4-1-brdf贴图的生成","link":"#_3-4-1-brdf贴图的生成","children":[]}]}],"git":{},"filePathRelative":"note/graphics/image_based_lighting/ibl_02.md"}');export{P1 as comp,z1 as data};