import{_ as e,c as T,a as t,b as Q,d as l,o as m}from"./app-C2jws1hx.js";const s="/assets/Phong_Vectors-C5SVfFFg.svg",n="/assets/Phong_components_version_4-BdviBq0w.png",o="/assets/Diffuse_Reflection-12CD6lrh.svg",d="/assets/Specular_Reflection-ChZRIJKh.svg",r="/assets/Blinn-Phong_Vectors-B4xRvSRM.svg",H={},g={class:"MathJax",jax:"SVG",style:{position:"relative"}},i={style:{"vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.697ex",height:"2.457ex",role:"img",focusable:"false",viewBox:"0 -1086 750 1086","aria-hidden":"true"},h={class:"MathJax",jax:"SVG",style:{position:"relative"}},V={style:{"vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.414ex",height:"2.457ex",role:"img",focusable:"false",viewBox:"0 -1086 625 1086","aria-hidden":"true"},p={class:"MathJax",jax:"SVG",style:{position:"relative"}},x={style:{"vertical-align":"-0.05ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.665ex",height:"2.507ex",role:"img",focusable:"false",viewBox:"0 -1086 736 1108","aria-hidden":"true"},L={class:"MathJax",jax:"SVG",style:{position:"relative"}},c={style:{"vertical-align":"-0.05ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.697ex",height:"2.507ex",role:"img",focusable:"false",viewBox:"0 -1086 750 1108","aria-hidden":"true"},f={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},u={style:{"vertical-align":"-1.018ex"},xmlns:"http://www.w3.org/2000/svg",width:"38.511ex",height:"3.167ex",role:"img",focusable:"false",viewBox:"0 -950 17021.8 1400","aria-hidden":"true"},M={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},w={style:{"vertical-align":"-0.357ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.419ex",height:"1.902ex",role:"img",focusable:"false",viewBox:"0 -683 6815.1 840.8","aria-hidden":"true"},Z={class:"MathJax",jax:"SVG",style:{position:"relative"}},v={style:{"vertical-align":"-0.355ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.575ex",height:"1.901ex",role:"img",focusable:"false",viewBox:"0 -683 1138.1 840.1","aria-hidden":"true"},D={class:"MathJax",jax:"SVG",style:{position:"relative"}},j={style:{"vertical-align":"-0.355ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.03ex",height:"1.901ex",role:"img",focusable:"false",viewBox:"0 -683 897.1 840.1","aria-hidden":"true"},b={class:"MathJax",jax:"SVG",style:{position:"relative"}},R={style:{"vertical-align":"-0.355ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.252ex",height:"1.901ex",role:"img",focusable:"false",viewBox:"0 -683 4973.2 840.1","aria-hidden":"true"},y={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},O={style:{"vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"21.189ex",height:"3.023ex",role:"img",focusable:"false",viewBox:"0 -1086 9365.6 1336","aria-hidden":"true"},k={class:"MathJax",jax:"SVG",style:{position:"relative"}},C={style:{"vertical-align":"-0.355ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.56ex",height:"1.901ex",role:"img",focusable:"false",viewBox:"0 -683 1131.7 840.1","aria-hidden":"true"},A={class:"MathJax",jax:"SVG",style:{position:"relative"}},X={style:{"vertical-align":"-0.355ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.94ex",height:"1.901ex",role:"img",focusable:"false",viewBox:"0 -683 1299.7 840.1","aria-hidden":"true"},B={class:"MathJax",jax:"SVG",style:{position:"relative"}},S={style:{"vertical-align":"-0.355ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.237ex",height:"1.901ex",role:"img",focusable:"false",viewBox:"0 -683 4966.8 840.1","aria-hidden":"true"},E={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},J={style:{"vertical-align":"-0.65ex"},xmlns:"http://www.w3.org/2000/svg",width:"23.144ex",height:"3.107ex",role:"img",focusable:"false",viewBox:"0 -1086 10229.7 1373.2","aria-hidden":"true"},G={class:"MathJax",jax:"SVG",style:{position:"relative"}},I={style:{"vertical-align":"-0.355ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.479ex",height:"1.901ex",role:"img",focusable:"false",viewBox:"0 -683 1095.6 840.1","aria-hidden":"true"},P={class:"MathJax",jax:"SVG",style:{position:"relative"}},F={style:{"vertical-align":"-0.355ex"},xmlns:"http://www.w3.org/2000/svg",width:"2.859ex",height:"1.901ex",role:"img",focusable:"false",viewBox:"0 -683 1263.6 840.1","aria-hidden":"true"},_={class:"MathJax",jax:"SVG",style:{position:"relative"}},K={style:{"vertical-align":"-0.355ex"},xmlns:"http://www.w3.org/2000/svg",width:"11.156ex",height:"1.901ex",role:"img",focusable:"false",viewBox:"0 -683 4930.7 840.1","aria-hidden":"true"},N={class:"MathJax",jax:"SVG",style:{position:"relative"}},z={style:{"vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},q={class:"MathJax",jax:"SVG",style:{position:"relative"}},U={style:{"vertical-align":"-0.05ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.665ex",height:"2.507ex",role:"img",focusable:"false",viewBox:"0 -1086 736 1108","aria-hidden":"true"},W={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},Y={style:{"vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"18.196ex",height:"3.023ex",role:"img",focusable:"false",viewBox:"0 -1086 8042.4 1336","aria-hidden":"true"},$={class:"MathJax",jax:"SVG",style:{position:"relative"}},Q3={style:{"vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.697ex",height:"2.457ex",role:"img",focusable:"false",viewBox:"0 -1086 750 1086","aria-hidden":"true"},a3={class:"MathJax",jax:"SVG",style:{position:"relative"}},T3={style:{"vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.414ex",height:"2.457ex",role:"img",focusable:"false",viewBox:"0 -1086 625 1086","aria-hidden":"true"},t3={class:"MathJax",jax:"SVG",style:{position:"relative"}},m3={style:{"vertical-align":"-0.05ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.697ex",height:"2.507ex",role:"img",focusable:"false",viewBox:"0 -1086 750 1108","aria-hidden":"true"},l3={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},e3={style:{"vertical-align":"-2.932ex"},xmlns:"http://www.w3.org/2000/svg",width:"13.848ex",height:"6.919ex",role:"img",focusable:"false",viewBox:"0 -1762 6121 3058","aria-hidden":"true"},s3={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},n3={style:{"vertical-align":"-1.018ex"},xmlns:"http://www.w3.org/2000/svg",width:"42.512ex",height:"3.167ex",role:"img",focusable:"false",viewBox:"0 -950 18790.3 1400","aria-hidden":"true"},o3={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},d3={style:{"vertical-align":"-0.65ex"},xmlns:"http://www.w3.org/2000/svg",width:"44.397ex",height:"3.107ex",role:"img",focusable:"false",viewBox:"0 -1086 19623.5 1373.2","aria-hidden":"true"},r3={class:"MathJax",jax:"SVG",style:{position:"relative"}},H3={style:{"vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"5.028ex",height:"2.457ex",role:"img",focusable:"false",viewBox:"0 -1086 2222.4 1086","aria-hidden":"true"},g3={class:"MathJax",jax:"SVG",style:{position:"relative"}},i3={style:{"vertical-align":"-0.05ex"},xmlns:"http://www.w3.org/2000/svg",width:"4.996ex",height:"2.507ex",role:"img",focusable:"false",viewBox:"0 -1086 2208.4 1108","aria-hidden":"true"},h3={class:"MathJax",jax:"SVG",display:"true",style:{position:"relative"}},V3={style:{"vertical-align":"-0.65ex"},xmlns:"http://www.w3.org/2000/svg",width:"23.176ex",height:"3.107ex",role:"img",focusable:"false",viewBox:"0 -1086 10243.7 1373.2","aria-hidden":"true"};function p3(x3,a){return m(),T("div",null,[a[80]||(a[80]=t('

传统光照模型(Illumination Model)

1. Phong模型

1.1 基本定义

',4)),Q("ul",null,[Q("li",null,[Q("mjx-container",g,[(m(),T("svg",i,a[0]||(a[0]=[t('',1)]))),a[1]||(a[1]=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("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"N")]),Q("mo",{stretchy:"false"},"→")])])])],-1))]),a[2]||(a[2]=l("表示表面的单位法线矢量"))]),Q("li",null,[Q("mjx-container",h,[(m(),T("svg",V,a[3]||(a[3]=[t('',1)]))),a[4]||(a[4]=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("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"L")]),Q("mo",{stretchy:"false"},"→")])])])],-1))]),a[5]||(a[5]=l("是指向光源的单位矢量"))]),Q("li",null,[Q("mjx-container",p,[(m(),T("svg",x,a[6]||(a[6]=[t('',1)]))),a[7]||(a[7]=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("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"R")]),Q("mo",{stretchy:"false"},"→")])])])],-1))]),a[8]||(a[8]=l("是反射光线的单位矢量"))]),Q("li",null,[Q("mjx-container",L,[(m(),T("svg",c,a[9]||(a[9]=[t('',1)]))),a[10]||(a[10]=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("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"V")]),Q("mo",{stretchy:"false"},"→")])])])],-1))]),a[11]||(a[11]=l("是指向相机的单位矢量"))])]),a[81]||(a[81]=Q("h3",{id:"_1-2-算法",tabindex:"-1"},[Q("a",{class:"header-anchor",href:"#_1-2-算法"},[Q("span",null,"1.2 算法")])],-1)),a[82]||(a[82]=Q("p",null,[Q("a",{href:"https://en.wikipedia.org/wiki/Phong_reflection_model",target:"_blank",rel:"noopener noreferrer"},"https://en.wikipedia.org/wiki/Phong_reflection_model")],-1)),a[83]||(a[83]=Q("figure",null,[Q("img",{src:n,alt:"",tabindex:"0",loading:"lazy"}),Q("figcaption")],-1)),Q("mjx-container",f,[(m(),T("svg",u,a[12]||(a[12]=[t('',1)]))),a[13]||(a[13]=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,"I"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{"data-mjx-auto-op":"false"},"phong")])]),Q("mo",null,"="),Q("msub",null,[Q("mi",null,"I"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{"data-mjx-auto-op":"false"},"ambient")])]),Q("mo",null,"+"),Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("msub",null,[Q("mi",null,"I"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{"data-mjx-auto-op":"false"},"diffuse")])]),Q("mo",null,"+"),Q("msub",null,[Q("mi",null,"I"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{"data-mjx-auto-op":"false"},"specular")])])]),Q("mo",{stretchy:"false"},")")])],-1))]),a[84]||(a[84]=Q("h3",{id:"_1-2-1-环境光-ambient-reflection",tabindex:"-1"},[Q("a",{class:"header-anchor",href:"#_1-2-1-环境光-ambient-reflection"},[Q("span",null,[l("1.2.1 "),Q("strong",null,"环境光(Ambient Reflection)")])])],-1)),Q("mjx-container",M,[(m(),T("svg",w,a[14]||(a[14]=[t('',1)]))),a[15]||(a[15]=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,"I"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{"data-mjx-auto-op":"false"},"ambient")])]),Q("mo",null,"="),Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"a")]),Q("msub",null,[Q("mi",null,"K"),Q("mi",null,"a")])])],-1))]),Q("p",null,[a[22]||(a[22]=l("其中")),Q("mjx-container",Z,[(m(),T("svg",v,a[16]||(a[16]=[t('',1)]))),a[17]||(a[17]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"a")])])],-1))]),a[23]||(a[23]=l("是环境光亮度,")),Q("mjx-container",D,[(m(),T("svg",j,a[18]||(a[18]=[t('',1)]))),a[19]||(a[19]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("msub",null,[Q("mi",null,"I"),Q("mi",null,"a")])])],-1))]),a[24]||(a[24]=l("是环境光反射系数")),Q("mjx-container",b,[(m(),T("svg",R,a[20]||(a[20]=[t('',1)]))),a[21]||(a[21]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mn",null,"0"),Q("mo",null,"≤"),Q("msub",null,[Q("mi",null,"K"),Q("mi",null,"a")]),Q("mo",null,"≤"),Q("mn",null,"1")])],-1))])]),a[85]||(a[85]=Q("h3",{id:"_1-2-2-漫反射-diffuse-reflection",tabindex:"-1"},[Q("a",{class:"header-anchor",href:"#_1-2-2-漫反射-diffuse-reflection"},[Q("span",null,[l("1.2.2 "),Q("strong",null,"漫反射(Diffuse Reflection)")])])],-1)),a[86]||(a[86]=Q("figure",null,[Q("img",{src:o,alt:"",tabindex:"0",loading:"lazy"}),Q("figcaption")],-1)),a[87]||(a[87]=Q("p",null,"根据Lambert规则,材质的漫反射是均匀发射到周围的,和观察角度无关,只和光源的入射角度有关",-1)),Q("mjx-container",y,[(m(),T("svg",O,a[25]||(a[25]=[t('',1)]))),a[26]||(a[26]=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,"I"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{"data-mjx-auto-op":"false"},"diffuse")])]),Q("mo",null,"="),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"L"),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("msub",null,[Q("mi",null,"L"),Q("mi",null,"d")]),Q("msub",null,[Q("mi",null,"K"),Q("mi",null,"d")])])],-1))]),Q("p",null,[a[33]||(a[33]=l("其中")),Q("mjx-container",k,[(m(),T("svg",C,a[27]||(a[27]=[t('',1)]))),a[28]||(a[28]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"d")])])],-1))]),a[34]||(a[34]=l("是光源的光亮度,")),Q("mjx-container",A,[(m(),T("svg",X,a[29]||(a[29]=[t('',1)]))),a[30]||(a[30]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("msub",null,[Q("mi",null,"K"),Q("mi",null,"d")])])],-1))]),a[35]||(a[35]=l("是漫反射系数")),Q("mjx-container",B,[(m(),T("svg",S,a[31]||(a[31]=[t('',1)]))),a[32]||(a[32]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mn",null,"0"),Q("mo",null,"≤"),Q("msub",null,[Q("mi",null,"K"),Q("mi",null,"d")]),Q("mo",null,"≤"),Q("mn",null,"1")])],-1))])]),a[88]||(a[88]=Q("h3",{id:"_1-2-3-高光反射-specular-reflection",tabindex:"-1"},[Q("a",{class:"header-anchor",href:"#_1-2-3-高光反射-specular-reflection"},[Q("span",null,[l("1.2.3 "),Q("strong",null,"高光反射(Specular Reflection)")])])],-1)),a[89]||(a[89]=Q("figure",null,[Q("img",{src:d,alt:"",tabindex:"0",loading:"lazy"}),Q("figcaption")],-1)),Q("mjx-container",E,[(m(),T("svg",J,a[36]||(a[36]=[t('',1)]))),a[37]||(a[37]=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,"I"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{"data-mjx-auto-op":"false"},"specular")])]),Q("mo",null,"="),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"R")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"V")]),Q("mo",{stretchy:"false"},"→")])]),Q("msup",null,[Q("mo",{stretchy:"false"},")"),Q("mi",null,"n")]),Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"s")]),Q("msub",null,[Q("mi",null,"K"),Q("mi",null,"s")])])],-1))]),Q("p",null,[a[46]||(a[46]=l("其中")),Q("mjx-container",G,[(m(),T("svg",I,a[38]||(a[38]=[t('',1)]))),a[39]||(a[39]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"s")])])],-1))]),a[47]||(a[47]=l("是光源亮度,")),Q("mjx-container",P,[(m(),T("svg",F,a[40]||(a[40]=[t('',1)]))),a[41]||(a[41]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("msub",null,[Q("mi",null,"K"),Q("mi",null,"s")])])],-1))]),a[48]||(a[48]=l("是高光反射系数")),Q("mjx-container",_,[(m(),T("svg",K,a[42]||(a[42]=[t('',1)]))),a[43]||(a[43]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mn",null,"0"),Q("mo",null,"≤"),Q("msub",null,[Q("mi",null,"K"),Q("mi",null,"s")]),Q("mo",null,"≤"),Q("mn",null,"1")])],-1))]),a[49]||(a[49]=l(",")),Q("mjx-container",N,[(m(),T("svg",z,a[44]||(a[44]=[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":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z"})])])],-1)]))),a[45]||(a[45]=Q("mjx-assistive-mml",{unselectable:"on",display:"inline"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[Q("mi",null,"n")])],-1))]),a[50]||(a[50]=l("高光强度"))]),a[90]||(a[90]=Q("h3",{id:"_1-2-3-反射射线",tabindex:"-1"},[Q("a",{class:"header-anchor",href:"#_1-2-3-反射射线"},[Q("span",null,[l("1.2.3 "),Q("strong",null,"反射射线")])])],-1)),Q("p",null,[a[53]||(a[53]=l("在计算高光反射时,需要计算反射射线")),Q("mjx-container",q,[(m(),T("svg",U,a[51]||(a[51]=[t('',1)]))),a[52]||(a[52]=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("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"R")]),Q("mo",{stretchy:"false"},"→")])])])],-1))])]),Q("mjx-container",W,[(m(),T("svg",Y,a[54]||(a[54]=[t('',1)]))),a[55]||(a[55]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"R")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"="),Q("mn",null,"2"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"L")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"N")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{stretchy:"false"},")"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"N")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"−"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"L")]),Q("mo",{stretchy:"false"},"→")])])])],-1))]),a[91]||(a[91]=t('

2. Blinn-Phong模型

2.1 基本定义

',3)),Q("p",null,[a[62]||(a[62]=l("和Phong模型很类似,只不过增加了半角向量")),Q("mjx-container",$,[(m(),T("svg",Q3,a[56]||(a[56]=[t('',1)]))),a[57]||(a[57]=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("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"H")]),Q("mo",{stretchy:"false"},"→")])])])],-1))]),a[63]||(a[63]=l(",也就是指向光源的向量")),Q("mjx-container",a3,[(m(),T("svg",T3,a[58]||(a[58]=[t('',1)]))),a[59]||(a[59]=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("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"L")]),Q("mo",{stretchy:"false"},"→")])])])],-1))]),a[64]||(a[64]=l("和指向相机的向量")),Q("mjx-container",t3,[(m(),T("svg",m3,a[60]||(a[60]=[t('',1)]))),a[61]||(a[61]=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("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"V")]),Q("mo",{stretchy:"false"},"→")])])])],-1))]),a[65]||(a[65]=l("的中间向量"))]),Q("mjx-container",l3,[(m(),T("svg",e3,a[66]||(a[66]=[t('',1)]))),a[67]||(a[67]=Q("mjx-assistive-mml",{unselectable:"on",display:"block"},[Q("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"V")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"="),Q("mfrac",null,[Q("mrow",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"L")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"+"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"V")]),Q("mo",{stretchy:"false"},"→")])])]),Q("mrow",null,[Q("mo",{"data-mjx-texclass":"ORD"},"∥"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"L")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"+"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"V")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",{"data-mjx-texclass":"ORD"},"∥")])])])],-1))]),a[92]||(a[92]=Q("h3",{id:"_2-2-算法",tabindex:"-1"},[Q("a",{class:"header-anchor",href:"#_2-2-算法"},[Q("span",null,"2.2 算法")])],-1)),a[93]||(a[93]=Q("p",null,[Q("a",{href:"https://en.wikipedia.org/wiki/Blinn%E2%80%93Phong_shading_model",target:"_blank",rel:"noopener noreferrer"},"https://en.wikipedia.org/wiki/Blinn%E2%80%93Phong_shading_model")],-1)),Q("mjx-container",s3,[(m(),T("svg",n3,a[68]||(a[68]=[t('',1)]))),a[69]||(a[69]=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,"I"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{"data-mjx-auto-op":"false"},"BlinnPhong")])]),Q("mo",null,"="),Q("msub",null,[Q("mi",null,"I"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{"data-mjx-auto-op":"false"},"ambient")])]),Q("mo",null,"+"),Q("mo",{"data-mjx-texclass":"OP"},"∑"),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("msub",null,[Q("mi",null,"I"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{"data-mjx-auto-op":"false"},"diffuse")])]),Q("mo",null,"+"),Q("msub",null,[Q("mi",null,"I"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{"data-mjx-auto-op":"false"},"specular")])])]),Q("mo",{stretchy:"false"},")")])],-1))]),a[94]||(a[94]=Q("p",null,"其中环境光和漫反射和Phong相同",-1)),Q("mjx-container",o3,[(m(),T("svg",d3,a[70]||(a[70]=[t('',1)]))),a[71]||(a[71]=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,"I"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{"data-mjx-auto-op":"false"},"diffuse")])]),Q("mo",null,"="),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mi",null,"L"),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("msub",null,[Q("mi",null,"L"),Q("mi",null,"d")]),Q("msub",null,[Q("mi",null,"K"),Q("mi",null,"d")]),Q("mspace",{linebreak:"newline"}),Q("msub",null,[Q("mi",null,"I"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{"data-mjx-auto-op":"false"},"specular")])]),Q("mo",null,"="),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"R")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"V")]),Q("mo",{stretchy:"false"},"→")])]),Q("msup",null,[Q("mo",{stretchy:"false"},")"),Q("mi",null,"α")]),Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"s")]),Q("msub",null,[Q("mi",null,"K"),Q("mi",null,"s")])])],-1))]),Q("p",null,[a[76]||(a[76]=l("高光部分使用")),Q("mjx-container",r3,[(m(),T("svg",H3,a[72]||(a[72]=[t('',1)]))),a[73]||(a[73]=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("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"N")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"H")]),Q("mo",{stretchy:"false"},"→")])])])],-1))]),a[77]||(a[77]=l("代替")),Q("mjx-container",g3,[(m(),T("svg",i3,a[74]||(a[74]=[t('',1)]))),a[75]||(a[75]=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("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"R")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"V")]),Q("mo",{stretchy:"false"},"→")])])])],-1))])]),Q("mjx-container",h3,[(m(),T("svg",V3,a[78]||(a[78]=[t('',1)]))),a[79]||(a[79]=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,"I"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{"data-mjx-auto-op":"false"},"specular")])]),Q("mo",null,"="),Q("mo",{stretchy:"false"},"("),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"N")]),Q("mo",{stretchy:"false"},"→")])]),Q("mo",null,"⋅"),Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mover",null,[Q("mrow",{"data-mjx-texclass":"ORD"},[Q("mi",{mathvariant:"normal"},"H")]),Q("mo",{stretchy:"false"},"→")])]),Q("msup",null,[Q("mo",{stretchy:"false"},")"),Q("mi",null,"n")]),Q("msub",null,[Q("mi",null,"L"),Q("mi",null,"s")]),Q("msub",null,[Q("mi",null,"K"),Q("mi",null,"s")])])],-1))])])}const c3=e(H,[["render",p3],["__file","illumination_model_01.html.vue"]]),f3=JSON.parse('{"path":"/note/graphics/illumination_model/classic/illumination_model_01.html","title":"传统光照模型(Illumination Model)","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"1. Phong模型","slug":"_1-phong模型","link":"#_1-phong模型","children":[{"level":3,"title":"1.1 基本定义","slug":"_1-1-基本定义","link":"#_1-1-基本定义","children":[]},{"level":3,"title":"1.2 算法","slug":"_1-2-算法","link":"#_1-2-算法","children":[]},{"level":3,"title":"1.2.1 环境光(Ambient Reflection)","slug":"_1-2-1-环境光-ambient-reflection","link":"#_1-2-1-环境光-ambient-reflection","children":[]},{"level":3,"title":"1.2.2 漫反射(Diffuse Reflection)","slug":"_1-2-2-漫反射-diffuse-reflection","link":"#_1-2-2-漫反射-diffuse-reflection","children":[]},{"level":3,"title":"1.2.3 高光反射(Specular Reflection)","slug":"_1-2-3-高光反射-specular-reflection","link":"#_1-2-3-高光反射-specular-reflection","children":[]},{"level":3,"title":"1.2.3 反射射线","slug":"_1-2-3-反射射线","link":"#_1-2-3-反射射线","children":[]}]},{"level":2,"title":"2. Blinn-Phong模型","slug":"_2-blinn-phong模型","link":"#_2-blinn-phong模型","children":[{"level":3,"title":"2.1 基本定义","slug":"_2-1-基本定义","link":"#_2-1-基本定义","children":[]},{"level":3,"title":"2.2 算法","slug":"_2-2-算法","link":"#_2-2-算法","children":[]}]}],"git":{},"filePathRelative":"note/graphics/illumination_model/classic/illumination_model_01.md"}');export{c3 as comp,f3 as data};