From 2a217a7f4ca1b4fb171747133240887a38367d52 Mon Sep 17 00:00:00 2001 From: Emmett Lalish Date: Fri, 29 Dec 2023 17:14:38 +1300 Subject: [PATCH] Add AgX tone mapping (#4615) * added agx tone mapper * update tone map selector in editor * updated MacbethBalls * use commerce tone mapper in more examples * address feedback --- .../model-viewer/src/features/environment.ts | 2 +- .../src/three-components/Renderer.ts | 5 +- .../assets/ShopifyModels/Chair.webp | Bin 16274 -> 16796 bytes packages/modelviewer.dev/data/docs.json | 12 ++++ packages/modelviewer.dev/data/examples.json | 4 ++ .../examples/annotations/index.html | 2 +- .../examples/augmentedreality/index.html | 4 +- .../examples/lightingandenv/index.html | 53 +++++++++++++++++- .../examples/loading/index.html | 8 +-- .../examples/scenegraph/index.html | 2 +- .../shared-assets/models/MacbethBalls.glb | Bin 43512 -> 44336 bytes .../components/ibl_selector/ibl_selector.ts | 3 +- packages/space-opera/src/types.ts | 3 +- 13 files changed, 84 insertions(+), 14 deletions(-) diff --git a/packages/model-viewer/src/features/environment.ts b/packages/model-viewer/src/features/environment.ts index 96a25d83e4..b8c9f5341e 100644 --- a/packages/model-viewer/src/features/environment.ts +++ b/packages/model-viewer/src/features/environment.ts @@ -24,7 +24,7 @@ const DEFAULT_SHADOW_INTENSITY = 0.0; const DEFAULT_SHADOW_SOFTNESS = 1.0; const DEFAULT_EXPOSURE = 1.0; -export type ToneMappingValue = 'auto'|'aces'|'commerce'; +export type ToneMappingValue = 'auto'|'aces'|'agx'|'commerce'; export const $currentEnvironmentMap = Symbol('currentEnvironmentMap'); export const $currentBackground = Symbol('currentBackground'); diff --git a/packages/model-viewer/src/three-components/Renderer.ts b/packages/model-viewer/src/three-components/Renderer.ts index d1ca9194b8..05a335b181 100644 --- a/packages/model-viewer/src/three-components/Renderer.ts +++ b/packages/model-viewer/src/three-components/Renderer.ts @@ -13,7 +13,7 @@ * limitations under the License. */ -import {ACESFilmicToneMapping, CustomToneMapping, Event, EventDispatcher, ShaderChunk, Vector2, WebGLRenderer} from 'three'; +import {ACESFilmicToneMapping, AgXToneMapping, CustomToneMapping, Event, EventDispatcher, ShaderChunk, Vector2, WebGLRenderer} from 'three'; import {$updateEnvironment} from '../features/environment.js'; import {ModelViewerGlobalConfig} from '../features/loading.js'; @@ -523,7 +523,8 @@ export class Renderer extends true; // this might get reset by the effectRenderer this.threeRenderer.toneMapping = scene.toneMapping === 'commerce' ? CustomToneMapping : - ACESFilmicToneMapping; + scene.toneMapping === 'agx' ? AgXToneMapping : + ACESFilmicToneMapping; this.threeRenderer.render(scene, scene.camera); } if (this.multipleScenesVisible || diff --git a/packages/modelviewer.dev/assets/ShopifyModels/Chair.webp b/packages/modelviewer.dev/assets/ShopifyModels/Chair.webp index effa0714384715c04340737467acc1d1fdb05fca..c29ae42f4c2aa0abbe13761f48f42bb26297caa6 100644 GIT binary patch literal 16796 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 literal 16274 zcmb`ubC4&^@-O@y+qS)9&yH=|wmq|B+qP%Nwr$(CckH{*IlmL<{&C-UBW~R6sOnE= zWp!0%Wo1NlRVzw}ibn7O0BRzF@~ZM2>d*iHfZ=bt0s?#k0VITk$~(EcCF|NmG}#wJcie}!)U zCTGXLjROEc#(y!Y*}t*-KiKf!IO-qlsH`aTS0?W-rZoHCu;KrP-JI>6|H_R1BX4By z_z&Lvi@9yAUH)n7ANr@quqL)DN`LR_e-kdi37`lN0|@@b|4-?^_OvSi05~220Fb!< z@(j}ffR03iqfXr8e*a5VT=XF&hvz^0}Ez@Jh808Rq{K$!&qptb(f z(f`){?^yhQ=t}sv4(?w)?fzb70Be8=fDj-7umu8(6zfQskU=xs*7r(;)+Y%|5 z%?5+SYr}RhA`(jP^4R3vYe-NKWm({z)G zX}px~c$godM8YEYg`bJQ5-Uiz4?kzUjYI;nzaU;ZbZAA*FlM&2lrz~`N{Hi^p!3b0ihlH%DZpQRN0JS=5q1X z0DJVa*inoPdbb6550 z(uSwv(z!9?XPu{b#D$_L_DV1+I?sAA?Y6Q=&6EB_BS)x=wBs#EDbdfV;?|M3N>Vom z%N)amP--+W?-sXE!AC1G-D*tI&~)9-1Yeg(cFy=C!``Ds1oqYqh4m43=`Hn2zk z46t1@1k?lh4_wy-9Nv*Fs12OT0kT+qP6h}6a6HHvjL)_=>wIR z>k#}(3!)WxZsb|ITfy0px}N0`*vE9I@Q%Gj?t>O|5C3~o@+k5*Ns~ZjHZ-B`T0JoF znFwfnQfNliyFL;og_^&^AMu70N8$v39_V5*JmsV-!QYq?&}evF37F=?rVnFRQCdgg z(}jeTkab-q8^WR)`i$guRtPGy<7el_b~kP8rk9@}WsI^F6VP~SBX{C*9z~8>T{`l* z>5_6|u4R#9&qmfirMFiw`uU%Dle%p1xXm8TaxQiB%E<6A&JDNuh@>ryrgt5PB`u?ye?6?iZ0x@Ja4g+sT$AY6_A;9g*U`Zy3ObBQ?b zS7tP~kc3JW)rl+D#Y{>KTBLDvA7UU=AR|R4s!z1h3}GqS@ALm2VjYkql^lo{wwSJ$ zE?^?UBUiu#l1vJ29aJAVW>0zUq|3SSF>~^mv3w5sle4yATF=+eB6CRA1as=ko?@m; z(LKO>FZw58;~4zUq^*Do=K~Yj)%(UIYqb=aQ_w(W$ zg0yuk<^Fqmj_mc|=6k8_Ws2!rV#~Mq<^IMkl*^4|mCw0`wTJ2&vwd?!x_w8!;**s9 z`{KK|Ze!XrA-cc&o07BJyC$g|tEMt3*Rav{q-_=VA^Tb>r^D9F;*IZ{fYs~+F~|Gd zm-Ou*zA^ico!8eD^IUF`VZDb!UG28+rG;1K zjUKDnfhMz#zJ)!W1@?^GQxG~zT$dB9Z}F%=UZNQ+AB(=F=&s~abIc~1 z2ux%jEW_8l7MvR?HwYHBg6FwiI!iu|qINsTt~#zR~*`E%FKslb;$ zQV;O!&Wt=i7jy1bW|RM{`AVudEk}HoE5_osOf>X)4SZl=ilUNoPF!3z%rFkvyp1(O z8CE-A(Q|h5mFnuzu75&6aM85al1fFy&hWHk*fz=yAILc%_Eh;)e;E19obaTwMqW$) znSvV#!!k>l={ipyqeb9*;KrD4SAlZO1Xn{mGdaQ2_u3_J`sMYNe^O}GU9C?rBt2UijcpCCjG|7$4Mm$54UNYZb40S8cK zoZ`la;M-dmn@nNr%x>#^-(lE${ZG6-fWukJ16P8-6 z?AfKgTQIK&YeEU)9UW@W%7Yhz^^y~f@gCtAQT zYOt8#4eT@sA=*%E1#OUY;S9@E?X0pCPmOZ*UtG_&yjmh00og z%ChMo!xt-I92pFV{F5lpspCJE9P*r5rbUEsgP6mXwSnSF z18~z2IR*CtP?*_5flV-tw3&P~|;jerdz8BnQY(oDjNm58YOi(v9GG^o-e$+nM> znl!7cjE)}?%4y{)G}RXI!cp@(T9eHEp~^-Qnj%o?k}|Z_!0|`}rCQ**Zv3@Tl7;hV z3q$V+YkC#@QVD2TipK17DDW)TQzi&^k{KQnYCpjpjSj331R_jZTQ{T21i`FC_0*D( z%aM%=K2%F6_S$l-zIeatov2BPD)<90_Z5pLJ*Nhk(&=Q;%c0zJ0wVBteOBvZP;q?06~cPx83rr%ktL7i-t zAv5m0-h}=3w2u}e0Wu%G!B3k9X-vg_I!R)cFnL49`U@p-2-pd{%{@k-ip8-^Ib|us z@p!9|alKKR+{b(e!JEp&moG2F>&(uRZ^4=p<#PVm%meI520m$oI zoX9e(Blq1h`q9_^3U11DCjs5k+^c#|@dBk1nEF-k{tB$9Uiz};hahDI31LW{JdO1U zN9&g-yxb4^MszD+DSuSdV!usd{y6e)KNiR0;-!9Ym2{Zb zgd0g))t!9xlE@yc>Y4GgF+IHBTQF-fgs`lXRO>3FNb5>aQt#ofI6%V$n*k{XW24BG za}jNg!{=h}fjwt(A%SBqm{b%s?^dsB{xwe&m>tJxQ^-Sd-GQfYdhOm@SF~L4)m$IP z!KVC1Cl-dbzf`KSyY}Efdg;X+&q`ShH#VDODe$m@(xK`Op>85%5d(ED-(m>l+}r{`B87 zAzS7*Ju#m}@0pb*GBRv`9^YZ!xzhBiKw+hJId(S&Z9ANpVE)=S`3_-MS4KnMFAVFA zQ9X_t4M2pn{V|;QSOg4`N)WK zagS!K?J9-9lHqPYT4po>Bf81{!hsQ1eaZn|jcV~7r*BI9GRggs^UH%GnIEgRHMiim zdkh=)O4baq8jC~Y{gCif`h%9dH9D{B;nNjSE zYP|mhGT?c7`mv5_oz@M3#tst=exdv{i=$ci&n%cZnHxUwh0&Ink)CWik|3j4_#kwI z_}R|1tbdbLWBo$%n}p2tW>g*k)dI3?Hn%LEqZK#}jq;-G2t^5Ygk?}D_xdOKGsb5; zZkz0aSVc!_bbkRFLr^)QG_N`aiP;y951~4k!W2~owHu6zdHzb*as0(yp^(NS4J_uW z0Mu|nWAL?Rk*Rkl)Ka)98JU69FmObWfrN}O^1y-Q!}6!W46DvT@?BBZBXwy+44pcx zrK3^QXl1pUA7_+5dB;9E_k}*v41Wc`PTUyA!8uD6$XDhxE5T~+gBi@snZs6UQW&s! zA{)j}7u~!HWG6g{cQ8sVHgtKBQ6vd|C`FMIk9P<;0X$a|X9x>E3XVEVMw zoBVEPP!yH%Su&XEgjN4Iw32B%{E{_uJ+2K@3s2Nv1 z_A7trEJNk{F1)jidmQ*n3pRTW9b9^4_k1SwqbG4v$>{9TpYu^%KgK);rsubT=2aTkG5B+bdh`Jzkw3-MaX= z_+H=d^yA)JL#nUtYu%g4Yabgh#Z0PbmMl(i%lEiYKx(#+KpO>>Bm&Q`S5v78k&eF4 zIrUv4sSgMQl;1R|2)@7H36Wu2Lf$7Ve_8!{XM%_^y|-H#kcfCXUCtl?M&L-)-5MbW ziN3M*Hf}nnv$ctBe^w{&Y*^`VpL88K;Y1$lYE{>V5j(uNNim^rZbs^5e)Tyq z+dGGEWs4TWTX&X=9c7{dgiQZ^9JYF^x6ea|;T%8m{8+k)itL2^aN@)&*rLB${b|iG zA#KNsms%#WGa*GXSklR(_qz`lmEA3M1iHmJW>MTA-|H4QWvNOOsH_fL`B=isB0D}#8qz{4LZl0)AZM?(9T8Zo&CdFb^#Q9h1it5AAJa2Y zEkX=prP|5m!P0ggvPC3$EjA1~%~WOgkFv)JY_7)dOnCK^BBfj$RI?Ath*5-gA)L2GP)-n$7RcC-h3 z%wtN6pit~_J)?yo!2|bLwYf;c@Fn{WguU^<7W{Q2nYhu>tR_rs2>UtW)JT3ph>5s{ zqPgxi{h=w)$Jo{$PmMpg_-p}0MwR`}nGgiTh=blI@Pq=*63TX4YLDA~Ni7{bo~d(g z?NEWo?%fOH0~=u@X~#ojOh-k90g+0h1Vv^vUOZ#&*XE)mY6&@x_6ktO?mCowi0;Gi zGiEIAeuB9!xf{K)XV-iI8u@IIdQUY1Om_k06i7!SUo-4)JCirq;zO~Wgb@Y){Bf}L z!+p<-W$1*^n4Eq@3lNB$wfyMQ!WuTrmNcBd{87jYkAG{Mz%m3tgXVP)>EnaVbAk-r zdEi3WXN&5m2lx6Z>0?3;`)Bd{!6`zG0L`|O0rR6$5C}eU+MZyc%nK((5B(k|bUGYA zIH2ksr!9bV=gHlF>3lQORKJaFkyhFZwC4{9XNWPg8n;64m(urRUiv{CV~6BVW*(Qj zEe_MNc59$GI0tS59o2*Ux=;V896d5jFqaKE!iuoGdVnaav&hDYXnYvpz!9!k`UiPV zHs~;lUu(-i|4=|Zxfg&m#^$xFd8BK@hM1fS*mAWk$ zgm_cnJIw(124-|N4?;8D8TYnJm^Pxy~E}Bet`n<@qXEXT9QSDmCodGvp+Ce zK2!kuUO?cm;J~HfO3i3}4k)CIGADN3P`~gYRD%2GTg8g+2y7P|@7{q$?>Oo7TRLDG zYVHA$#i$E)Kaa<6LA^uEifrDsVm?l05c<@o49-~j0LUYp`P=%aeWrQ6TH%4$$Ve)> zLE14SBKZn;<4_04haSt-##8U(556B(W%4<%L+kJW$bhm(K&z!xpofSNTR`fs^g!GG3f|f1&vsx zT~-Q5LWJy8hQ}lZOcz~&n)?MSzUiy2de*~k#l`?)KUz9UU<5!H_I(>9^Z+0!k+>nE zetLw+e#h;z6}HC4Ot?;_+TXAK<&{O9qM1W5jtM#5csP>gH&auD7=SQZ9FbKM5;RG8 z6P>yl{mkA}6&Nyxpf{muvirF7%XnXe7**M1en`bz5H=%q2R>9 zzNUU5rQbGj(^gDo#X-CrxHUCoPXFy8g@ThjREoS7MLi;?Cp)~6ycfAO6c+mNTr0`g zGB9o*I-4yNFsrC58#L%Pwlq#M&EpTqGw1MV?e-Wyq_A51#A{Vg$u)m02OBhX2w;6= z;5%BZlo7H=L;#q=M!;aa3VETUbJ%*lD8a6{XxJDgO~*B~kQ;*Zw!z&VLz_hf7ij}) zCzdcEmh@Jci9SWCShWmL3>4d&NemVbgck@4cIa0;{0rY!MKwMGPd(@A8#&`;(SY<7 z)u{x0H6Dt}c2heLiyV4{0C7(Pew|sBQs(!#FfPL+f~tHBh`lF78F><3NG(F1{aB7L z>4Undhe>Pk*wAQ~nyJKvigfT`1o)Ef{vfvSgUlo(V^eJta7V1ADCrVWy6}d{DCsXN zo8mcGPY>5fde%WzO>BFT9|Fb`lmR99s2(ezw&^gOXpl{C97M%POuN53sZstQ(io~q zw=<)H^!;GuOf!O>Y_stO?erlhp)lo6R9e}2c%8Wiir*!*&Y6p2jG8%(u|A~c*@fhv z3Ve+VNf1x@p#Jy79XC5sJ}9{Fl$dPL}sX< zl2T;M4+gXcU>suQm1F2S;xva1r;(4UhaEqQZcIkft;^{&sb%o-I`kVEpotd>P*IGo zlom!hco~j(NRHekM#<<4U?65Nb>*cA!!13&cEt3ZT z3mDjYm_du!2N`AkW3Ml;k9rA4W&mgc&w>Ox7w&|nU{XjY2MR-Vz-)A=3?Jz&Z{Rgf z$5g%qdpad0#9ZM#=S~Nq`ieU>74yXg0xB7{g#yz63%5YzorFJFM;F9N7E}Vkg$C+d zR|IM?HM&QaXds>z1sAJt_JlaqMhaZe6@4%VAPx3-G~60JMa#nu0MnW%j4_atni7*3 zkVz&c4xlSyQt%^Y8_ZSQ1_z&svsutEr9_c|<&DD&dB@ z^G7YRAjAz+Qv^i#yYu(^8JjO06$weL9&3#X9dLig)528YjAc^B^OFXx z*8qMDUd&GVnFOD(iXl(&L*1ewa$@J49a#rlGw2Z!N~|KW8Rv;RsHXQYvjG@H8dV&; z@j-6@!j(XH^Vl(?V5$yi@EzJ+;s;`|oQ9B6bGZE*Bt!rb_f+|45sy2L3|a~p(mBW| zykQF%>ybI`0R|bv$azY{bOMGjmJz#? zUZNbN9|)hoe{9gv3L^{FyGH4o;a-JQ7to19xvaj zgS+-?#PdMBUT?hPAtK*EOoF03u$h`8ZM0gvOksGMpHu+7|oTOE&a)xu^H?7bKPqC^4r_gr-XPg&<;!hy=isSsPsB z@5fU77#DZgm#;0C2C1nfh)p7E52l%srtWntd~= zg>;3>Ew?o6y`Xp?k})FTOmbKp02VN@oL|Vz+7HY> zq;<9>CBy&#hYkRM_Elf=$|z=b&tJEIE@7rj86RO;PscD&)5reQv+`bfDU+42Nu8uz z53-jmweHMe3)fluwLGs-rNR&zM3;Yq8%AS?R>gNG!TnXVPA`y@GN>t0(GY!Bac{Gz zdG#tsJWB}<*SgKnjuS`fgGjVHKfca)!ZL30u|A7!i_H2>I-AOQ1Mll-?mvGDj$Wk6 z{weyxI%i!=|5#=RIhDP*>3{c}@Q7+%qW7J^yalf>cwdM_>8Wi(VY7)B_6%Z)GL_d; zXCB8k{j-t&9JAY{anqM{15d-O$)_T&B}NL+j(?N+GJ_)UU3pjU>a^w2wBfmfecdYh zWmJ><{rP=k=10$W?@I;vdrpE-_3y5?{5BvPi251`0L-gE881pwke^TdK$T|?4P{|_ zVXkC%3YZ>Z6o6^H8adG8|4Mcpw8h=FcmSMP^(K9LymVbV&i8O%wD#+bm;?k>2WUv# z6Xb=i!&ds>eD&0_N9!i!3_cWNaW*Hcy##n0cAW2Y0jv;?7#<+=l1e5%@!_09`>a}<=X<32Yc z^g8Z8jScOCA<>9D{@tzLdPlVlE$KUlQt63mZa_t*m=Z@*d%A#x;E<21 zjRYH^u4HO2fYEIwQLDT9Ip8I@ZX-MCTd<*+fv~BY5>Y@_8dLY%AKTz+vkSBA+#%3j z*(Qtg`!hikTayvD5F#ji7N|3&R0XXq6-|BOxr4hxmimMD`|bKgkqWFI!Z_!{GmLFw zu3sHbb={rD7gEHowz9sUvxQ-+dqSGD>;5U;vVU#Ng-hg6xC{RgBVh@eZ;dGyPpURB zSWSeAN`M|1-F=Pz^eGj!$cD(`rTZu`SuWhM$1i%0n$Ws+=d64v&C_v1T3}Z+?U(C= zdC*DtBcp>6(IsIw@&OhIAoA(HHoLdjbzoG8`A=+9iiPb>rXi$spte%CsS+j%0=%av z&4-<&w43-ATb;Pb4=_6YSl&-9j!1}+x1Zcv z31Y!@-xJ6#1JpIP)$6qx0(l5+IilX&a|(YAMYcg_Z5Q!5AQ=X+@Z9r^GR}zgUR{vt zhuzTT!9mTSZZ7()zHKV{_5{3ORb}_$Q8OT+zHf*){yRS)dj0vkNg-C}BMe8vzFY+X zb@UwP=UpdoT3~N9!_(CXbXA#)4B?LKqcoS8yGn_ZiNg2{pfoWBoV=1npYy)yKKwcK zTsi3E$?HJ-IQ9UBRP_}EGmci+Fz`Rom$dXKwLW(v*uOH7!lwr;n$j@Aq58QjY!76B z&fTa&S^*RFUm@aOfyOT*#?vy!m;KPF=S3rObLy)tYynXvz|>RO`3(UTNi3;^|J`iU z9r9mZ_BXPxRt!?0et%yOx`^Dv{9SCveUJMtL(U3f;_2-{_>ubBD{w&XDI=`S<|;C0zWHwir`UD-kIyRerhJ1UQj ztL(E^Ggt@0Y15>aL=+Hrc<&e>+p~dw2htBP#rsHKuwBqmE#qYwVA)YQgBJ2c_C8+t zI22+%K2eL+jXws%0m}95l7?olbMKBT>3_fw<9AkR1OWLSbiTxMZ;Q}1C`9iOg_VZO z*v(|5sj0oh4)K)n0TjJMk0mwDJ=%t>jQ9wDC~{qUT@T=4PPWV_E-AL#li!HjdXe6^D>uVF$t+ znm2%HB!FSs{7HswkH~lRXtj?SuYw=^OoUPs78lTbP*{C8qA>jgXr`BfLs57XS_x*J z!D^QHR>sOT0I68h$Wi0MCbl8{tf*2-a-D}%&=JF$8~)rmsM%hqwg9Eaer;9bkb9GlKVjLWZSZ519N4pStrvNmxwH!^## zxFbzg+7d3x-&&1;o#Kq3eBxFbFhpwY)3{%Zkyw;@G=_w6)T7oRufOxniAIbmBmXr{gDa1HyIfmPWQ{G{O8X^s32h{ zlt(aA;z8$0H?vui;)n@vGXznr1=BJJ>IuSPf`xX9;o)8Pk}f@~NKMLUR%QXw&fDp?S*00D_mPv?~c zUPzDKAR**(TLC$3^GK-59#oH6z5{Iih3u>W?y-h5d6Y-*KDwoj1bYC@*e7{T@k}ll zz2I&;;<{@D!y+=imtcejhJU(yacQ%razHxVYUV4}1LxzL)>I1RM41ZosvhkAe4N44 zNeL?4>4>pob%l>_+Y5)glhT~q?XI=QLkVw+ zyps5h;}ccbj+kw~)3yo+r=$7$50?$#<)))=o->I}nqi4SuT`33b|X>kt5L^tUlrdu zno~^l+)G|_ap--bdOAQ=sT+{#>z%4&CqjiwAsI%=agZkk3oLg}>lZB-(>)DnkDJyL zd2>O^+z@S5cqU)N%_6-X>?cPD*?S`Vo|Gx7=)UL^+gn3e*m&c(h1Hsaw3-S={95mR z^-^bNIUM>#V|Mwd<4Z(IZW|iGyQ8f#s5e{7Oh#>HUXXHFzkc9_t%#duAK_sbq_Fg% z(04Sucl=4Y8Q}j6V;cy-PZ~%$J@P6xv8f+dey0A$5aPPhz0&o#`t%@H>PcwW4iG{% z9HdJN`3jbchHeY;HQw?WeY!X;U)2y08F)4qJSNX9m!WA5@|~h&gzlFuO_l&NgwfxN z01luboFy*dc^;>-b@F?u?G}!v;GgdZ4g|^`3ITb>*ESOzXmOUb>qH5if(j)p8UDQ2 zL?bZ)Dt0s3KE|oS)HEULRc9-8o@SXQZLxHA>b(eN+M_Bm zNvVnt)wh6jkiEogQs{GB+FoIJ&_jc!?HQL^tn%HhKSc^zQUQU6h4%`Fnn9H30MMqR zk=xIvEugHQ9i`?Br04h@Ev1|gEi+%P8)98)*{;?6!h_OSY^6l-Nn?^h^Q-9>ErJ3Q z&|w>PYd>uZvg7qp4<=)J)7LJqNW44A;tlhu5<71)tng^uCXHGog_|pOj|PUTt}E%Y z`PxUCO$i8G7;FME-miP(TfgR|Su)nwJdzFISCdxP8SESiKy0Qr@mwuver_J0JM4*w z9^sGAiyF~l;x7x!%@IZNcJwx_@JS}?VIQ%R9G@X+Eapce{I0_F9o|yPScMW4oRw*i zk{@;PLApG7QeD_Y2;_hfXb8*w&BHW@!zX#FwMU(SRwHIre}1ir#OhRS6&89n?M2df zRvx^QPJNJ7wNRdwpBIb<>=LdClGoAUma7UIwIq017)AUmSy4`l;m>@AOxRMcwZXzD z5%^^L9r?1MNVWGZxjIBe zu6sfZMEV<_qYjbP*oA~%IJ@+Ehv|s5I4SyXv`2sz{bert7_`nF653p&*pb6o)FK@L zdSMZZfIes6LJ2|&1RI>m8;0K7Aj}$pABjJ0+eQOlcfSw$V?o z;}Hv!jM#10W ztGnb{Ge6jO@-x#s@FrTuhDV768zra$YB8ot1azX(0s6Db&6XhB{!P1L9%e_RJCgWf zMc{VBoAP%?+bpubi|@6Mx^&`-jq_dqXSrf4j4tztih|gwMK0i_mB+|-28y}1);u)H zJs7ookM>XDAX}qI-9+uJ0uuh|(1AJ(dhT0!qZ!UJO*u(U9<=F_1@d5XQ;?J-qx zgm1AS~38xtMQLGJ4T`Y8j|Usn)oZ@@vdiwhc%KqI0UR1yhoOK7tJpWDN4xxAVFa+i z!kVW_l<-4W^Omn~@3EhVtdCA>yhD}@d|w|Uh6Lv+7pqez3ldoUNlb?R^Yi*px zkYVW*d6^BE{h|lY1!-%68p}q89B8(JE1*)XdE2Sp&L#+fL+~^AV*+fRcdGLgCm92k zJ}I`4c3yqJZcAoaBnlML+p3g&7^caLb)8ZQ$UMJ{rvSGQZ8H>AiHY*?b7!6s6ZF=M zUg=FHQ)%6^;p`Hw=Yk0%4XNM~a?aL7EfDK5OPCq0Lk*QS7C@wjbAz(<10pyF7|>)FY`d0wWZK5bv@b8l@r$O zhF^SJ_c80oZR>DK+yj(_@gwH_{&^t!u6=cVuD`fcWu4O!B!=5-+9&)1-Rz;aw^^li z9gx9;d^u|8RrI?Gofr?#4_kXftMF{3CzC?qS$m$G1B=EH@}P@jU+rCddI6u z)B%u>74>Rr5v5sAp$>0Yq_B4Awz@!~;5Asa!`ArHZ=<1TI zjrl#c#Zl>KM}mH6%@VYUC7U2mUG$K7D^uzFg&REK6$$6`3mCttVnnX~z}87gQlCEK z#YD?}357}OM9%Eh?d@CGMxkW`?p{{aVZprPrlnsJPQ%F^ISjw96y}@c5Z>r zuRLjN9|Ccoz*PhfDFY6*xuH*HVb7o|*fLde`fQiUnGA(PNPaN49xK6^4D|FASJ$UG zf%3`cEx^O6-+zd_{EL=(mmnpCg9>x1O!r%2Rz2>KjrRcZ-i&!drS`+D=i#?+yPY34 zcS?(#P;qxF!AkEy$ioT9L2VVLX*3u6C-h1{$qWNS6-WQ@b^Z4t6;a2-n8lat-49I2 zs24584(A{YPzfkMysiDo_}D)QQYS)Z4@&&kJ8E^m_$dU+q{UID>n?pqKJtVE_6*_b zgWLrEJYMSptl@DLAa8#jQrXNmJ1%;#ku}DH$TAuKqQ*e1dh-r z)+-K)nOg2U&LfCd@gorMmrf_+<5D<4KYIDrf@=?e+bcc&=Ch`-OaCPuYmeyY?VEY; z0#dXA$&SA>f{b}H6eAL5w>x(I#uHYN;0$L$jQS`rP%FOhKwm?6=E@%Bg=UJ}2nRx$ z7gR(o#@uJyPM#9nYq#}ufbLzkBD-Adg%ey*dLR<+Z@z7DQpBy(;t}>7nbgeoa330o zcO8Fkh?GP|M0<*)#jv!eJV8IIzqG!|Gh<^&`P->7{54x+%BAnX_AsGl8P=&r>xaje zXwJ7pQkqKy`g3?&$?O5x`(Po1m3o0lgDAlKJ1q&l?~Uk<#;sy-Ut3N1?o|16hYt#d zH)r2>u`k2GBs7Mi|I1PszN+vbqnd3EI-Tbu{7q<6=^&{FABdhzD(op=y`bHLiCd+S zkHaVGR}g?Wm_=3f**!qDMrNpkTTmMxHo~A`#E{68A#sGWbvE(s;W&HCM{n*&#raYq z{G$bpwW|NkAaYI3*HqCpG}iw0DKA8VR(=&9TKFvxeBn8YAp}EE#@w5rGWas*`~=sf zE(U8|kzZiMGX;0=B=zyHMR#8Bn{FI(a=4-5fzdr<3JOB0{JO&JW&QjcWuAO0_DhaS zvaHt@TWH~71uS0cZh%t^iTX)qFBcHKks*J7aDzEC4Pewa{ZicvQn|N=EB9Izl&*|gAp z(lnuw*dzujh`V^E_xbd}WrZXm!W8g_=5_hi_twvCIwm-57XD$7F8Uu&7A!JBha}&| zdhf<-I|1Zdq3O)X7vC)6d;>G}3h!Y1Q=AgT7=Di;OQQ-KZYouo2=N@oFLebhzy7Ww?I!z#Cz^R-x?_;=&)!V#v(KR&Cas z=-`B!01B+y&^J$mn`(GBOPq0ZhY7ZVwVmA-s)S>6Ca!$)Y|gsFIvvC8#LNWR7bg`c{1Logqz6ZZG7(Qdwf-|&@F zU6-1~Th+cnu*K{R-d^$W<^7SB`+XOztRMpDUaH+WObtnHH40`osk*dU7xYApDR}k+ zGXd%mcb~|4O|l~MKGqe3FeRn!GfOE);Qgaf7fZAfVAmnV4Zrot{5oBH$(hB1D5YbC zr>M{=Qzks3@X|EkYC|(BJDC2HomoqC7AwA!*dbYfNJ9I(vE2`bsdSr+9e(ILZ=Q>M zz%@<0RS!r?x^V#?A%3EmBT|Ox*;`l$jUd{O>09+_GWF~GnT>ber45DtQ~*H>;nRnsOIx>|EHgUc zg|dpdgZ4Dx)k;*#Wv44Kt^W7Rfw! z{K?N*&M^@Y9A~oB=BToJs=LZF+!iTP?F1^C>Nw|NPzkYVp!dnr!Xexposure example" + ], + "default": { + "default": "aces", + "options": "aces, agx, commerce" + } + }, { "name": "shadow-intensity", "htmlName": "shadowIntensity", diff --git a/packages/modelviewer.dev/data/examples.json b/packages/modelviewer.dev/data/examples.json index 1db541c80d..eaec54bc8c 100644 --- a/packages/modelviewer.dev/data/examples.json +++ b/packages/modelviewer.dev/data/examples.json @@ -175,6 +175,10 @@ "htmlId": "neutralLighting", "name": "Neutral Lighting" }, + { + "htmlId": "toneMapping", + "name": "Tone Mapping" + }, { "htmlId": "renderExposure", "name": "Render Exposure" diff --git a/packages/modelviewer.dev/examples/annotations/index.html b/packages/modelviewer.dev/examples/annotations/index.html index 505eafe8cb..403e626113 100644 --- a/packages/modelviewer.dev/examples/annotations/index.html +++ b/packages/modelviewer.dev/examples/annotations/index.html @@ -289,7 +289,7 @@

Show Dimensions.