From 330fdcf43da5cef9d7258ce90b6511c2bab89f04 Mon Sep 17 00:00:00 2001 From: ternaryop8479 Date: Fri, 6 Mar 2026 23:59:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B3=95=E7=BA=BF?= =?UTF-8?q?=E8=B4=B4=E5=9B=BE=E8=AE=A1=E7=AE=97=E9=97=AE=E9=A2=98=E5=B9=B6?= =?UTF-8?q?=E4=BF=AE=E5=A4=8DG-Buffer=E5=92=8C=E9=9D=9EPrimary=20Ray?= =?UTF-8?q?=E7=9A=84tangent=E6=9C=89=E5=85=B3bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - G-Buffer添加tangent上传 - BVH部分附加tangent到Triangle数据 - 删除原tangent近似计算代码并在代码中使用传入的tangent --- examples/normal_map_cornell_box | Bin 901144 -> 797096 bytes examples/normal_map_cornell_box.cpp | 26 +- include/basic/constants.h | 4 +- include/core/bvh.h | 3 + include/scene/material.h | 19 + shaders/gbuffer.frag | 8 + shaders/raytracing.comp | 46 ++- src/core/bvh.cpp | 541 ++++++++++++++-------------- src/core/gbuffer.cpp | 376 +++++++++---------- src/core/raytracer.cpp | 137 +++++-- src/scene/material.cpp | 3 +- 11 files changed, 653 insertions(+), 510 deletions(-) diff --git a/examples/normal_map_cornell_box b/examples/normal_map_cornell_box index 9e9afad7a927f4add73122debddb3ce6241da230..d06b2984b3e43a8b5e38f298fae4e220d14c546f 100644 GIT binary patch delta 247365 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

(1E)!~czmaX9?6T3ElP4v0-|KqA`gIfA|>^n zh`|wYdiTHSGKcXSsS9XmIH0N`|1Kn&P$*J+*tDG$xTLw<)U>&~W)q0}60mFNZZttl zVYp6~N1y5S#w+-|P&hiW9V#+lgMimbg>=v&;Ynn1dMj2W6_;$FCu@Nt)&nT>BUe?L ziqOY2W=DWkWgrBs1nudIRhAYe6h|n5P@VFb$dzxKSHH3rS5J{Yc41f#&plVlMW7 zV^b}VwTu9+9;W0KX@^;Mg_NC?12`_EP=iUSP(@JrIr4xymHJRjc@Ry*z0kx8fLQ+! z_(Xz?Yd9*4gCUiQx1i-7T#zJY3AC5Tl9`$dYakuY3hQ?hO=v8IS6w1F#)c}&t|Au< zI%Ez`+gml2m}?DBqkKD-#N$vc%76-M0WWY+7a0!`*%sdiRBJ%{-lU3C{tHsTM7Cqt=sE~1Mb4mEfUecIUr`gk-T^*(?H036dp`%eTu z;xS*vV^)w2IDuBe0N&GeT#Z8Vx&*uJWTQ<~3ngBL6#673Q-w{4@f>i4?D|np1i;HF zErcsGY$dCXs|oR6G%VBei7s_3ajmkkT*7NTf#e&6c*8zy2ezYQ=pXrR&~sevMe-J} z$Qhu2fng?wAZVqYpd>8>@@WMwfwr_Ba0FT`{D^RukfO0r0Cs+YZIzm0lm0mYA{QXu zG#jb-{z4=RXqW79VRnMm;#&;yCSMi1T6#EggI9~+e?%?p;e%_%&o-vsg8nTNq<^}R z)B;~_EM4Mrae~vi#4&Ts_8C%U-j|Eig7cDQ=-6`X|@h;b2)kZgst zoQwm!NB&hj(zYC9m5!2U%PtnsC@GRea0pf9h#HbfTXRJ7iQ_k#BXZF)pKp?A1&kG# z7HE*kJ|e{{nH;*29Fd>xl77=gF5w-Hi$xTfuef%;$eb=}OE~#Y7ft&BX}TLp6}iCM z8_g9V&4_&)TAJ~~UeZBts_5Ej#wxRnE-lUY8o*hyO0&f{fO$+6S*6WV$|CtAvr3>? z&ng*`^Gzxp@ZH1e!l0q0nP{e>OI+*K4ehKd%_Np6ZY0HYuroNd>=3E5Hwy~4lnB3e z)MfVGaw>h4^z9!Ea=yEY#)LxIv%)5dOW;*p_Kp%81oG9yP9zN(B`=ZjSRs8fDE3u~ zff3`=w3F?fm%orhxHL$tf2rBR0QI=dClIR%+_h0lA9H|SS{|a$Tr=i!+!2`PiipOD z**~Pmwg)Mkp)3J5xzY-HY6SI)0mM~JpY?Bu5hP$p%UAoE$njX=EfS9;HRQm>@yo)3 z4jrM^+J1i`PT+DERmQ%F*|fYT-iUy@hofi?o$`P;*neIVl}f7N5zVZFS{;FsksH*9 z5;NgaWQFo$Z!wURicGXaAM-C$_CI15A>eiC{&LWDQODw^Tb(CjtM=1{Qf4MU4O8>_ zX_xL_tIYn7CIEUZIT&2aE&r?Rf0qu#f6Jsnc;(6#E}Ta?K3np2$|vgzr@SqgE`f7! zF`V+wwgg=IokL=g1a8a6DZ8Bezf~%E^4cSaA}=VO z-C`&W&$fh&n$^?(J2Z&^Wk$g5bqGd@K5vmldY<^2^B@Hvr6-Y2NX~0pwVE?;w^Eb?0G}-Vg#oav2h?%Z$KqEKZvc!1{;ue7<{kZm5eUv;Z&Ko4c5Z z0odq5CrH98HIR`F(p|J0DPR5hJ)tU;ih-NPSnWMt=HuT*k)O{DOu|45;cLZM_`8l( zWnfDI%z~Qu{{Mz(4HB6M8coc!(vCg@pgH>2rh!%A*a7WG;k5IY#Qt^t;IEbM$e-kF z3Df#5cpQG4VZYQ(xu~8DeMbP2<|hEj#riZ2bBGKuFBj7-F=o|4ZQtlO|H1rMrpG`alH-V6XxHgriZ1k`Ph=5Zr4#_p^v|$NK)>D#G)}8`>=ptlz`$}A zV>kBE0{U6x@EzynN2r#G^06o_bB-Kk^5{M;?IYd)nzT`bnqShq=+kNPRZ!+?dM(ms zixGiRH8(<9X&Vb^zMmg!!9an~PTi!%{_{#6Y%>zz@K%NgYf0%Rw|@^N9oSkx_3ywe zCDG8GLg-EbM1-rOl>85o2elSiM9UQUnU+v)6e5_>Kd}_PR`^vdLX#6(BcqLS;ZbD1 z@%mDARiUx}z2Ekn^Rr>z+IvU%owXaz9(IDC2CZ!6oa|tO> zm{*;oniRW{6{Q`OjLugdpxnJ+I!@gDjKnG8ZRB6bB=M#2tu#;yRzooO`OQMq(Nl}T z88p=B%>!xS(D=TXJYNx7>kzFR2*-US7aawthg_|QmyS{cc(l-P?@Eb?AmRzitza`& zLC`^_qhjgeih$JWgk?#H01WEtYqbnme)Yo|TjBg+O(~|5RJ~%+8L|-@xM(&5PUfqh(hdv3i2}URCFeR#wbK{p1*Eo?@`ZSWHXwmY z8bGqfSm74A-EFe68j#vk2fLWS(rFfy)yB4*tXS|vB=Ujr0nwAxBrsBF(qw|6;S^OM z;!n|^F7Cxb+(_GtIzj_7@G2Y6v_@jgm$Pm*qQE}G^^YrOLVB6-Z%du>+!r&m3u&QV z{8|$1>`jbr8*p`r-w&X{Fa?jIw+HG+7o>hRQtIbvQksz0iIWHWXuGn` zsryh%=o1#^wqkN$TO@VPsef%Jya7tjwyU+tjKqedl&xa5%;mrpsw3Xxx0v0E-t|@5 zL#6#X-v%7JPO}b2p_c=rONI?{A9iH?X>{kI?vmUkI)wKCK|iY)#Nlg40waHzfB?~k z1ML69j)VR!i6WfUcMDEJ?M4sjhh~b;k@}4DZW{$(ORbv)kDB>QseoMZdGu}-Uns*N ziP)dq9R6ve2(DNd(`#jCyYQkA%*Q`+$U*=_huqsr0ynlrY>Xg*YjIVg#r4t{b}Qg$ zpGNz9rwy~mLSev?Za_qJ%B{7~HZkUj`1h#5%4-ytn-c<5mo@~$FM<$D&z0%Mq9FZg z0Z7-NTUM%Q0aN*s#d z5}}`6Cs^#+^&vO{tS%$jizQbt3-K((wGfTHD?62I8#7YsRkRr7Z6V?xCwhPku9;Rl zkFD!+F%32I)ywo)bz05v5;G)axzwh?O+u`qeU1iB?7u$5L5mX6HuJl+Sx!|lVR@TP^$}D$zYzA})&YJQMWIf1oRgqTHXMLjDwX$k1J*_qz zgC{0ZrqwgA&WXM&r`0-Ro4J?jL{g&4JQM>pfLf*9Q*ZcVne(z zT;ezxaRD%f5MhvFh$P_jZ*U$dd5B<&2~t%&c~;=+@-n55!IXc`li;QX!Di6|pXFwJ zEX)!mE}0hnKaAj&2k`zxh&F(KBZ;yO;Nv#K0_6aX@sD;~evWGXM(}~CX&u2^lBJtR za5;cSiPx3^yn#ex14$(YYb$;SaF=BSKl8G61V7W`Feu#Vtj0AJmhD8dIz zkb}B{9dq8So%R*R??@f^6NWup3S&IB z&8q)2x~4Gxf9U^RCYJx?!}1~uU?*-eIIihGnTbD^4@ONZ%RBgId2D5tw=l8XL9EhP zu7~h~<5vAY_o9{MU-`1U9BB@JEPuM8WO*rAuX^a=`uZPDgRTocIXjGnD5DjvxQF zCsfKe6xO8fpoi*V@3x2z)}!;lvG< zRPNM-n(6!$Vuv@R5-XI5B3zOu$Lkw04K1lep)TSgt7XVFZoEdcypP0z**)g{S&kpH zEKm^?A|o%24v-YJmWx`n5-uLY4xo|T|35BOP@Z>-c{ zdRKWL=-~}j>;wH91$wB7_1{DgEA>Pk4_81N8IvgN65IJ&0{^3w_?b<6N{`B12Tf?j z%!$67km(ajs1;%ka8%^e$YUV96!|o|M{Z5z)AF<|NLOly*DjG#Ns;9V|@<>B~v)t}PK%1E7}Smf^YAI;abn!X!c`D=c!G z9Rj3RA>yK)=`l|tD{2lQVd--Xw9KF$UHaj9qDoI%29u{i##%LAw_TE+=?hY0&fxVM zTF(*a+3+gFArJ~zD8F1MZj^~MjEhdRQ)udnyrwx#+{Bridcx6YZ0d?ZrMXxnUaNrYipGRbN3F_k@93;Yy{k4HoNnXldkh{Q*Wy%J~f?_YZ~NJBXE zX6Wqt4$WoypiuK@&(lv;!J}>V>(LI@5V-pFXkWtTWLq3s+D^lvJp}DD4dI$YbAiem z^k@&EXM;l)iC9Yhl|=Tq$U#>gWN@mlCK0n|`@f2WhAtnG(DxT4<7*Exb!eMoR@j)A z{E8%>1f~hkcaU*c63O@P7$P}ayTav1CO0mUndsRN$-iR!T#fILzgWD|wbmhNF&#=M z9O(bi7U;*8d>F6sUHE^)^;a6*IsN)$R@fUa`epowB$g@|A5)3(GbooV2lvUfbX#zV zOx?d8-BZ!?f5-Ud8sjy-8}ZK|Nz4D3@wZgTcunD5RfJXIx8$?J0yg?({BitXQ&o&F zK`>x-LVvwwFuv5TGhX96)_;uMKi-2mst&8>qi2Khi8QwRPLuS(%mWuy#i{Ls1^QHe z(FNnb&bOvt2l{?%YH@zE%^2Na$z;)nT$?z5JK7k;Ea9ORmbofNZCElKsSqb=N|3KU zkDsN`qkLVJ5ps)!5|%^hC*(>2L`8^Mf_=v{pMd#^tF5uU6tKiDaDs^w7x8$0lrTv%JmaTuJhE|PK6R&T) zX4j%;vHn|?TKVt#3{U6bT+{-1x1_TTlrRd=0g9*W7Jt8h#Ow13h2a}h4< z32RA5gs-W5POXSVt&@|xSXHs}WeXdmf?Ac=h^j!pznN*j1$DlUd+M}UQ>{EPUHNO1 z52i)!VA_1~o{I7c_2kuZ>5r!7JuN2M`D$>0*Dd+()F%ftwcu&m{{Z|-H3#rBAerpU zyWhc^z$M2~h&UGP{d!*}dQu&piVB>>Ew_Utxi6?kcWKFV+6sbd^sX~1l{D8kY-lf= zc@TdkxuJg88bubLekjD)bzxYviGOkq=yf(k1$oEZf5or1<>1%LR|LP1|M4>H8x(jo zo8mcmMl3VJmy@mvhFSQPhX#^g*J4oXM|~J{Y`eiAm%*V1s8xwW--baJX$H9hob=Hz*uO==L{+arPDG1qD%eNFpAS~~ z@aO%FmHCr{N|pGt$%VHXgNmWdl^JA=utLGARH^(~H_>0gfyxf+@$cg4FDYEnoIrI4 zSfjT4i}>TxRmx^ksqx_7^;OE-!mLuUXnReL#S_QYuhcl^qPU10REMpVS+)wbDzR)f zUTPfMMLyT;v-}vLFaOAYA~zJ)^C=OmQT#2UH8Q0suUL|avMRzGD%*=_lsut!dIt^? z2NN~3t2Av(`5l$DFYmQ{XnmT|X%~XmqsgkiVkm;%P~~G~Rf}QtFF@KVhOIQsG>HNBpRcw8PyeMD zCI~p!5kvT&=wF<~YZb$RONJO+s`>}X!B-3!f~-nncm}LC#1OUBB8Cm=*A~NFrGCT! z`h_`cezKAn#?$_T>xm&s6NBS&)nb_Nb0snKLU=C3fc%GH4twzOUy9)}E~zAj&lIu$!s?ZV(k%4fIi)PjhOR3Hg`AJC80h@9cj)U9 zO$;YtvX#ZKNRU-Y3{Qg9hBZXUe6jA7_|j{Oq0f&(44~hXP|>|oohK@ZVZ_FNA%>p6 zS1ktiy;%%&{%yYcAVxv6SE6@6(p>A`iQyIj<~mNPJ2@Xi3|N2A2Zt%&iF+|P)Iz1o zVkrBK$f_iUI?K>d9~+*NIbvN54bTC`f-1)b*B|KBYYt{>&^-Qwl?9}gBv)C|waOCg zK=|;D{ zni9scd0uyE`>9$Q>G~PC{Y3j;y1dUaGzEG`=GnIR1Ma)#C|`^q^Lf`!67kS*BXx ztR9f$Ss0Pzo)$59MMY}kBzJ{+$Drx~dvnp49`>SHl4n|k)6*|1$$iP0HPfknF`+tk za0F*;0}1;gsF%!3<-A5G*3LE!H?f_7S$o{v--$)rYT{;HC)WM;*8hQG96W7;>8iv!cX9Y5MMr!_Yu4zhBZ{)JHM^~75u(lch3s99) zpYcYWSycU;9ah}xG~+`$v(WI%4Xo{I06KVAhfg4WjrfeO?abQuiql#fIM8`pq?o&U znsM-fwHdWY4wCn$KIM(Nuy(!PeZwl#+6JutCRl$Usy5RTCt=kQuw27G1+VU_%L0nS z@eRA0S%TSu`(SYh6pyYk+I7Bm9iUyawCg+C^&{>2lXk5IYoYeh+SRFDVIJcBVqB4q z7{)_m*?rEXuUiS3+*C3p0z&?vo?mN?)~xjoQPml-ix$;*bUJIIG(X9|h-FP}TZ+qh zSuBeSnNf^RVP{U*SSR(x1l}`_HL2IPIBNIn~<)odHtiWS#e#`m?w6H`0aES1k^@HY%30stp}eAa zDRFwCDmhW}XL)V;b2&fMm36bdc%ht^qpr<`n}}|#g>x(#>G(Hxx`DI$L81lw9-_wR za5|m#X4)(LV%;wC@W1@>c-Gj~rEU%0KAuI@cw%*O@dngRLo=AD2@1t9&CBYNlc9fL6aifKf1qGUykQL_F!+hZp}uP7H;!Zm~#5n z`#njKcBki^Na9U!+lCZY< zyXqy&4s^2g3OZT(vrd-&tdpfb>tyY!$5VQ<74_R=p+4qMjJeebhI z+?L1^A~t>x@n`jqOxz7-&yr> zdIon?BO)o`lB|Ic1~vAdE$3hNftT2DwtQV*wokctXAU~*q$sCW@n8G1UP0?98$og@ zUjFx*jXyNMrMN$`9O_4B;DMSH0V?!(9InL!wTJpJp2ZF}RoU5zs}2_1E(BGFI^F+> zBP~3x2q%IZyE>{9xgK~^*cE;i3EA-Cd-#9>?EX5_p0x+;n}yZniZJ`@eCGf*tk-J% z;?2Ii40^TYO?yCp_s^P*{jvjwxiF+6>?m$x{uF`2ZloAc@lM!eOhrZ58#}mjAZw$n zc#Y4(b@;gTNNR!mA{v>8&$oBcuuZ&&n?rgHGJr^qlvmfn4irQL*Hg$!Mxu6by}tO7 zfnij+e`NTPY6=7xcE>*c^FWLhYfhE(ASY|qzy^egGiOLLxSsf`oZsdI77MoWNlq5m zboD9ts_dc8ta%~e%go@Yz>RhQkE-Lg^LL%BrE4xdwhf95K9Ywk;eh`VQSV_QII#Yfk7sQl^TqUU(E7`RaAt;PvWEdVTL3sOA24*Lghc9gmvY`+=xMT-tzU zj+kRH$NJ=kpmcW=`ql5f6y8$luTMiH68^kb`HVrVW$QzDMMYx(fS5ML$ZVxmhd5`B zKBzAE96o*!8>oz1%PR&!sXDCX(YLcZx-aCK&nG!V5N9t{C;yHI8Sja(IxFs*f59SjorD<7itp&D!wH!;=P-EpuS_P!3&Du z?Ni?4Pv5~hS1X-TQNcgCgLP59nZj*JtV4q3&qa^5eAIhBIdJS&N{ zZ82brJs`gyaW25qFBJPy8=6G2YzzN9iKR5oegFt2e2~_xBH3O%6;>470uh$_;sdv^ajc8jqNdg*7fZ$9d zAZbMBQ8rluJ~N5ezKf0LA7Vzsm)^y)ZMS_`&Ko4NXOt$3_#4Tr(QQts;ch#yhRRRd zN!&iC_IV1>a{-n9xM(m9PfAdOmp_5yW|Q1MCb`S0R@0|A8^Rhj%)r~-6ix#|OAW%$ zYk0>YETPVC?^Z|ff}QbMaee>bsY6(2+n*nm^KWL>2(x{SoBc!BeYTMwl=Ieivs;x~ zS$yc-EZz3Xv2uRqZr0j1_-Hv-hO*URPk#vi()Lry`%GMmdqe224rMQeB!5s|u{V*r z2TuI}YRoX!HvH71pegM+vD*|s@u#Ghv9#yZf#dn}!&rA)E5Q9?7<;C3`eV`+M2LwC z>0zTQ!~^J|<_f}{yJk;%Xwrl^lO}?QdcW|^DJ)WX?k)ad3e0^c02QaOhm`7We$Q~$ zLV0K$pFf`#&F-=7*oQ7gv$-AT9-yEOKcr5(+lYCd!21Jg1PsnfjSNY0 zUrr*2KL`bItbsR=<^9L7yE{eCBrOYv0y(FnHyoA3>pT+#_kt$!$_4 z@5$tMPGAiaTB0n;{i~*eF<9|3DQW^h1ZO-3UD3zY`(BgH?V0?=2`rqqAInAd9x)@bVU$Gpbl-YUDg7fU84oM1fhNeN}a%d=27$^Cbd`%hwLf~ZASgFgoG^@CSV zKMIiKtbo}A8pxoP68orofqgu^^kP5e0v~lRun&bO1ol_@{O~VaPH{BJKZI;x0k}mk(^B$CW z`Mwp|Zzml?OMeXPLxWeIBM|uFjm`@R;c>fZfOQj9F*6V;(D;SAFjpQ>A$sFNloZ~@%lsf?->0T zhX2S}_oq4@n8S+`*)ZEZJ26~LWYase-epnR5GZYf%hgRv8yl(X?59Kdnn^6#^&LF0 zGdF_B)(DS+&NdHTxd1)yZh@B|{Ctrlyq3#X6QYt5N`se&psv#s8wq}rDtx!ZQVmKR z6`b)1P}h|>bd!X)dkHUp5K8>WWT-*RixzIyD&pHGvyM#<UuT%>>{2x1;fJN{eYk;axD$QjzyA!6;nV#YkKL`hl;Ow&J<9P^R9miHoPnK zI&m&N;nSyatNv!QwW!7H89c3$&7--p9id z`tNo6?=S6j6xEsWemVc^VU`sC)*OO9EHX;V)ZOzPp^b=f*L{$yo~avDNNbk?-h4?7TeC!>M-5$-T?hm{=oiL7Kv$RPIsa_FAh`IpmKFQxBH z-gE}*75e;atz#$Le-sU>6TamS&tLY5pOx7g6goX?gN#6)dBa)_>NJ>ZA&P>vWMf|aaAZgh; zK4BJXdUM3qkc{P@LYBae_{@+t{j=h z`5aJGuuV`Db_+5F0cxG;RTx8o$Y&tuJ$_^)~ER0I}l*YLrqh&*C72z+TO z3+y@TVJn2wUwI)kIEjgjh^Kc=nJ{tEY%NW#3w+O4`~Uz~|7$fu>JUC8l{ISp^s73D zmf%hbJ@tY`=so+}dAl^$Q~7-=pPI%J!iGJhq2P4?jA<|N=JZ*flg5&4&ulH{)#tKt z%H=71@>~|J9G=3To(nb{-(qG%&@?L%2fp+Y@y2n0=43u>0qd-MK8a^8KoHrr2Y+J$ zvh9anmR#Va3s_)3hPj7X#~We!K$`7J6AjONq|vbZp#{(~x#DmIwmjLL9Ko9`W=$d= z&w@ZV=fj0#JV-`jAUIFTLfFr^zc!O*z))$K2Y8izJWZ(d=r%a9J4}M|G6Y> z`=h+;Vs=zH-*w#*meBZBe8?&N^~2alfVh^Zva74R^1GM7T}|l9)0eOpl>Kr178m@+ zvN(P}uC6}#8G+&x*d?Ma+d!WEU~z}-@;X$z&eX0uwd+;w+E%-!Y1cfT@{aId1aE+L zeL%ZrXxGhj9gYeIv=`rL*XbIdGVM9+4GE~5cD+lx&eg7uYuDGb>p{5cxl56kX+J?q z3Cj?LWb(`5Y=|onyTk&EHjO`YSn^lTX+MNoSca(0-`a^KjgMFGh-FZq3D1}FUdvc? z^UU#9pv`rl@Q3XV^T(FKAKFgx*OswXHJYw~mbb~1nSdS7mGjbNY;dn#_gW!zI-#RQ z^9o&~ha9q^)flyaRzx17awudV|%k`~B~va9khat zEa2_ZSw!a-(}C*iI3BEc875Wgr_U144;KduSsX5w!aiI)Kzkmyy__#fXYIQDxt_Ax zlquLt199;W#xq8%n0eIMU(SRhsW=O2iO5_nug({=0Yl@#j?3v7P=iMEAsMVgqvmMo z^i+$~=F9m=7=#zsT+i2LAY8iIiC@S-uI7dHJbDG2*65d~%PVfr3jH2kBC#fx8jq++ zoNs)CwdG%~VBM8fPxD4A+0&tQIJUTDuB9k&P82Pqezd-vA6$tE>zz-nTg4VC^*CR= z3iGD+>-d3H@Pw0|;*B%egSI&%EBMMx7VVsjzR0rTjT};HvN~a1IaaHo-zDt`=<+q% z>qz+mzBL`8YRQti1IU|H{p>mEhGmGahC2Snzg$ zBDiNM6s%awpYX7RwpXUu1Kc)uz9$XYvU3=`Jv}PIE{~_HGiz96=-%ZX%A>WK$ba#$ zyBoEfNLe>p3C4OVX*?}zgl6+mkFkEWMlMA5_oVvBLlu0>V=TT-Cp>F;kehe&i;rOx zSn?!~$YKp^O@0z9y6CC;13WPc`H_ra6**~HtO;xIe73-{c*cwJI_t&qoK26jTUqe& z$H9tt$c6Af@HjvF1mz?i=Snsk9o*Yo*!gk(P&T_+nf@5h&Sw3Uqgnh^HhWB2@8J`l zM9jSVKK|H~Y)J6F$4n6a^BBMQB=}ctC~vnKgY6#^_>k4?w%}lMCFL>x+-hVv`aH_t zU(N1Ro}9qztYOV=dNc)WJXaBR`+dZpVUg|kE(71_P5c->U=8a(a6PuKyU!(MZI3Jh z2}$l^uz9pSVA<6eR7?#|%8Hwb8q2Om;}IG@8xKjr{Y#UwCPpTUWWvPAMD_Vheqs$9 zt~fGz+o#yf;T_^(@wv3)0Dr`kbP8r>O@dc8e-4p*Q@n)pm^+7z<&rv#CYY84*A$W9 zib7pI!F5UPm|VdxJ;fR}ii4%@*4B!9Yakd3Z(7S<4u76(Dr-;VQgo4|T~)_j6})gQ z8(;UP*?JZ^EAHr(~t2i?>(s5uB~I#ZIWm`H8bhO1m#I2-DKy5M*SEC&Ex@80dy;aWm~SDL!N zH;j*dmfhL(yH#5%v)7f_L_htX;B9ow=0neS!5>?pnkvUSN+Xx8B7UZeRml z)jE)*@s$|;5o!?*wXg@Tymd8XijTKREf!CaYH_Q>S1n}T^E;TRS1kfXEpzgNKqC3k zAJz0ZVypydQw#f3CN!Ln*~nVfse!i|PcmNNk8Xq;C|b<-Zp0vXbTL1*kquTxF66CV zWDhGpKEj`R5i|6)3;3=V+2W`_7eSmupODO%k880D{{^>53`iO3{uC<+SQYFr0YUk= zO{{}01~-q>%`g4zeD5X%ndfm+LT?_zP1BcfbEU7H-$6Hz;b!4WEXG!fsCLIo5Qhgh z=U-xJQETR*Lr;g;wv_6}AdnUKVrx6r2QTGKcJGON6E@-W)M?(<&X>K+?yl8#A!=s@ z-q*&?zj~Q9kJ`V0p5KWq!omSL?Oz^2I1TrzC7Je!0=4!6e#>TdbEC_mbw;EUL4&py z7OnQ3%g1bHiMDoaD)@%Ytl@}Pvb;<_b00hd%y~#}U%5F&qGbsDm6m9sYVA;Muv^`A zTu43aEwt7n0rn!V^9pMgHG4i`+%LqL-%q9o-8K+(TPu6O5#;ur?rM>E{Hc|oubB(? z+rSQ|J3~@ZCyn}B6dA4dBU&)fl4A%L^k`Mq6HDmx3RJ@a()P##@W$y0`&Phts+xGr z3hWmt!4^>4{EWy#T6)1B^>)z(UV!!d=T}(AS|L$nvw9s4Wl}w?%m1~L&pkb zS_IgdPN=WV=5KFhNwr##Kh6q#9Qf6Im3139MokK$2A+F>=OizVB5Q?wSOoil_cV z{l62rQPeo62F$_Bx)li0x)LUEM{_dq<_P__4gb*_dZ24h?fSKwo(~rf7uSQuQ?%>D z+VxTG+6PxMTRO!yWhfuMjm;k3u^ajanP9zKf20UAnd0d$knP>o4ru9`+E^r?Fon}r zB#)s2RwQfFR0++&Ds4sb-Lbs+YsdrNKZo~t4FPliIeZj7x0%D|y~cVqng<#Q|CvP8 zFpY?jnf#;I*kt9w**tbT>tox3T*&vA)S=0O-Vzy@GrI_B-=llU)j!@HeWHTydvhO;>#2O*PJam7K3q*IM-qok9!?q z;e8~>>zU{r33f}8YHb9Agn6G@3wQ)T$4Uy`DqCK*g-e7ZvI%&ELHV?~Sb0sQ@ z2#XxYu7{~Za{~mMsWWI$n1k(fh<%$@cx!tq*M5DTQhrOjO(JUaL?&)$HtGK;8j0D4ejf7@nZzxU1O4 z_x*>pQ*MnD+feR08S7^o%KPGFTUyPHf+EQsEL-t%uT6j6%}`tswgxY;hAwLy!9X$O zZMMqQyd&@hzrzQ+OG)0L8)>+tIUXH#tj~ISt)aKxrP^|l^F{iR_M1_&t9XHXdE1?a({sgq5O>r<>sq3ly}dDK5H7=7FCf%Nz~D%XWWZL>JA(D zkarQe-8Yoaco()*e=2_r&!G?X(L{uZRf_1q7QW|Q);4rUjKNV%wjwIRnnT8ay~`fy zo_?zp#aBgUnovATC~8TUm$I!~U4vS3Cz$C>s;ta96GLGj?Gs-wtHj2yLCL7SHkxyWsS0zKieQ1vSZ=$nVW%O=`tX zk{I5!kSn`cm!{`%7K~$J#L0bm$SSe?(xz zPY}`g9nAVj^$tm_yifX-`)S9?czS&nujyeXJ)9E{8IemNYV&ip&+|r~=Qn+x^8!X# z0TlRDDDrtO^?43}hcF`$Vm$Ls@3STK=iVVVWnIRmtSD?(?IAX0#n)?w_ofw`u5NDM z%Q{w@JRZBJzPX)+DtC_O$$QyKS7{xvC$~Ae#UC-9a3c1*hb-`pGRK)Erl}fFR+G9gUc_iWK^0f8i$?5wrxF8UA7A9|MqgJ{)tHm z7kIn9EJ*2bFTZ~ud(XBtsDii5V-4>ah9G5kxa>UFDLX$N>A&-uBB1#~q^U2duc8)( z#A{^dPoc5ydEQ*fAJ1bgm7m7)xANHbK2vLJnjy8JxCJd)?H)^{94tPCptCp*|ItHp zEoM5eJy*kX@uR8yh5guB`D>h=f4m=QwVQGC$9@*w{X`1_45Pzu3`+5Lhb^rlR`DniJ0BhQE))=YNjnRE}aElC(MhPrwXsvq0 z+WA>jw>5~d^D75fx2|WNtR9fdpefG$fe}=9vU}B0T!QP>z-FrtQ5sxtUJqXKA?3T0gAe+OKE~EHAhmek#7srPlW;e4Z_}s&+O#?VRXa35K1QmaR@2T^` z6a3A?*xK_$ELRURRT(oP=j0Lgj-tGh!ZVMt@k;*`{^K#WLs>H{=h+WfH0v;7D3K8r z=ytbH|>z>GKIP5~r5(#FMOvEgbuN$DU*@`46A4a9cGzvEz)} zz6-YVXOFYkkS^aN&ME{VPEQR?4qo8rjw4f9bRKIY$JrR$&8Rn~0Q1#9>e{)xfQ@aj zZVA*Qf1sTh==97ANlG}9_AqXcCkib5uAB#+U|ntbxaoC*J!~teW9M(20Ad?)^YsZf zp7r9rPojsV*lrBG5^N9Q=9!b&7%@Ibs~U})J3j^QKUpYg2*EaCQTGaVGS>VIbxUh$ zb@Onu_cPQT_lT^!@tjuoG2ATp9Cer0)aoYVrsFBp{dvBu8~wFb_a@vFpF-UbyQtey zsev`e)2O;+o~)X8R;#)lHzNz#Wd6oUTP;2_r$$Xa^R{ZWs?ijJ=M}Ohoxfcq1QrX~ zUBE4Pl}fyV4Ey8NdA!OWxJY|53~%Z$;z4Ivmx%Y9(2g}x*E4kfij!i;+I%g@DredQAee{!NLkxw z`th&6gmt#-&r`p^BFWSNeDfE`dxZ7lXTD(XD{~$E=`UHA`uqD@+tuqU+imL0uY8HU zVc+-XZO>vuUUnZo?kqdq_H-yhM*eOixj_i}$9-NFhwp(nD zB#%Ue%c~iiBWr}&dC^xaqV6zyr=UVb*qKl}ulqILwWfE}s3Pn&yt@tW>X+GM2ifT8 zNcvI~@_TP*jT|j;r#@uUT%$4mZxrc%iW2Wd1%05{Jq2<%xyDCP3*QVZ5RqbyCG9Yb zG`L?bkv!X5ERi(gP0z8o#8<@8Gw{7e2anDrP}BjUAS1Z{{Q+wSsi=jBEl94E>}kul z0$PK{m7q1_rRP{!_ya!8Yslu>LQAK%Jgx|7=Dxl7m?D?!i>rL9VhjvXF&TsmL-4gMB z{cG7neb~b{@NZw@X3;n7ty)jap|1);T0I-iyM4>9vZ$Q6@7QXV(CI2Ea%dzWA5Fo? zJF_J6(Yt8*RTtS3WS>Z6iCQT9!mM@QV?arX6^pN%XcM@_J~#qEhpH@-# zzBqncG3q}12R~4Zy1xvTb!Vuo6N{B~kNnR0kEpw;3%~LsJKZ?*w;I@&c*L?V@re2t zwp3m$VGlI6`z>C8;)gB*%45Is6Bk*i?P`8GS1+;y%3Hti?LUExWxw#VKe27LF-OX| z`)A~WN0jpCFJTBcaJZb`atS%r;hnhi5|GThBn#T1;Jr(5GCMnRl?o!X0&I-rqf1fH zup`ebMG9iu&;0FDcERR6Sk9mSg>`D0*Iw`yv!tC5BJj$Zg!zjDS+BqiNBD(bSc1~y zCw}vN6Xl#u>A?7e=E|(vwU}1Y<0k%9bD+B z5}~}zYJYe2swC-rqnv6tD-kxOA~dIUE9D|<(WLBZMe*H48N%tp%ve~xo z(pCOfC&j6});gzOw6caNVPEjV7^Ri+)tQ`%7^S_f*3>rD1AYx26F9X^PF$Q)U{iQ9 zuaTg1QhtlfiBC{QvAVZ^PhI5;Id*1zV|S&at>d>>b53+uHnRphzopVrr~B{XLD*hV zys_dcci*OTsL|>rXjf_%{>=ef172{O(zg4WZ>Z{F=%Tv?+@L3}^QIb@w?m9cS&MZG z{Nd3WSRFt;2WEOv^p!^7!X>;*Po=H0{$)O{r}F;@dk?TGj_>iCJG%>_;zgxd5DSP6 zJN6qzK|w+6*c*zygI%u*1QAh;(WAz06gAdFUAtJZ#NI2YQ5OlKiIpPnnVp#{-fw>Y zm*>$tpP4gf`t0nqb#XplhQ2JJ2)@Yj`P8#zAl^jWtG&ck)D!8bQG1lGXAlN-olejbm5dcp27*I4)`*diPMgBfvuwEhwB{p#;q9RFzOh0=g$?O ze@jw{JX!~HTM`#@)Ot)_qR(vnp{ICzVCwO8GB`2ZQG0-~pcSG5^{J1=5=~c7PP^XP zfEH7W1jp0W>cFPCksfnQGuG*icQY!8Zd1fS4>u}WV~j{pe1BY2GIhiB2FH5^;7?$@ zdt3U0BApb?31#RT?83)1Ri?|R2j!0A57k_Gj;S)!T4R-{bD6(}Ocng{84$uG|KAbse^wdpp;v~4ZyYeho+?9n4;Kq>su5?P94 za7j#$Qb>LMRLb5 z2Habd`EH>YAU-TE8mx=MLi`h&iYNHEfae_@S?ZOJXixX_Z zeY}Hg#}sTBvS14y|MEoh$V`=MWHVRVO-UglWb zmI)Sv@yA{$bQtS1HU;0IrxYyKS6U4erql0{cW9yD-HTRpE!T|mB=n|Fw7k;t)xU9MNb1NcL$U~DXAYIH94Gb_H}ushM&-C6C7j|Brcy-V%a zo{TY&B}?H??Bd9pQffvAGMbPHvmvY_@igzfM)Uo2#?WkR0p0OG3MKgSq!Z^!oNw~q z%I}z*;UDyLm;r4zl<7+?4mg%zhh!OWuyrzA;C3?}P(09y_IB-P&*q(I3PjctuCwlL zHd+QJdKE{zpoG<))o5O)DwTeMN};4e<1sfd+~^s&Wgu3)y!o^k2xrg zjoo=JY7WHLYbX5rxkNjC(=fED_fb3lCx)D0DueOW4=txEgV90vm8yhtqp_s&R#!lK z<#WARk^XR*#<{oY6GlKQg{44ydk>nI38p_#nyN#O>n$D^p+`()DwQYHbAqW2nsvGA zN?kOvZa)I$&MC&laHSJzX*OflP|fwQ=*~%4#b-Eb2{h7JC8ICVD9k9LmBrvQY_R3& zJJc|c3wYC(){R9fW-~o8lxR9j?HnuXopQZI3@y?3ceFy6Oe_a&3sstET1=%5qvDLQ zbP1ybuS$VfJ6zu8tE)PbJjHCAijP>f8;(wSW_&#NJ-@W#J63$oiVs-v7As!IaStnQYsHPMxT+Pqe8*;+4BPK4FbB?B<$x96vEp-9e87sgSn=}0j2o#l zek^Q(JlTpPthmQFu1kxo?Kjqou#pv4wPKe-OgD08*cP(T>%bYS9I)a$-?$=`KWD`U ztaytRFaO47UBQpvEc6siw&DmY?qS7kt+=6M$BNHc z@c}E|V#Uh^n{8NtKMD)ZldU+yihEdbTPtp4#Z|4?g)^2v&jBlekEg71z>4o!@i{9# z@Qw9Ky5$?|Ili2+*V6`)8Z+HU-YKu_7gj` zf@1xM(L52|+0;Q#`jq8U2cuCTeS{y^Em2J$8iHl@AqiiY4o$~iKi)3mB)U-EMj4;& zXvZ!j*@_PI6{*N^M@)mhLD^YXi}{WlW&-0sbPY^^mHkL#b8#98oPcOS-zo7VE&UL4 z^l6MG`xc3ocLLqxN8uY~n{?dZ7-{T-&-Q+PeKVqUg*JWAeEI}kSkUGkN6|#z*JCg? z3C_)D(n!{&Y7>2rkHv>lC9G^obiWSf6uw{P1}At2LTGUyMXEoIuuNfSxcC z+C;0sokieZQuI=a!C>(^m2XjacZ^2Cxi^hMqHl8yRlh9LdBY59O4XKNYLg(TA8BR& z6IJ}b5`L7X=D!l&20dc277Eo*57l=&epLe#o~xG*Pxx$%iS`teN6Tr#FLWfzwwdGY z2l_s9+hm39GoPB059$EY!Tf+G`ad$`1`VZ9ge;lS3q9b&{C_f|^HKDW=zMsTo*BQ; z*wLFqoeg>fQ?+-P5E`wytG-1mFrkPZEtf3{+>gdx8Yl80c_1-0--?06rbLwuOgKhg zNwldnd!o_D9qljG(? zIpwcW-J^HqtI|aB+~D5JN~Q}g{&1NcC^MEkGgNR5`@e;@qtJM&sGGISx4^cFz`Fe3 zGFwn)G9kp}(-us2Vkew_NeMIt;QD-;*6r7PwcJ#q5Gi(MlmG$!^F z*HaJfp$TgEY+^QeUXE96G8>Dw6qL|1h+aniCeVQIt*=AkKWG_i@>Sb8q$~0HbQ<5E z6TPzWC)4*^f$4s-XfJ9=#pACb@qcS0e#wU)=aJ_`S_Pw`$qcfqH)zo$Pzpw64PuB& zq`@eX^&@F+|Ld~+g3J^xAMZ$uBTmwZ26hk_M;eg|0CVDq56NB*yW>bVvT`|0TSUrL znYkS2PiRjcgexU(v~KwX;bfH??VSRn&lxiMEQdDpNffySaCkoHNPfMn7L6xHQoS@# zpU3sa-0o-02Gla1&d$2wJ5mpB;i!%N30fy$+>?{Qdm(8{PAr3Q3rT|(3oxQsrK@3& zUH3S42>7;$J00+0Q#~h8LQUET6ySD22|e7n%xp)k(=vFnkW?hKmn}~ul|5>p9KA>y zwZ(X@Kn>qE6!z4zmVjR(ajPUHVQBPT+(L2m_=!c@QS(j8U%F&@>6&|Jf#)p6SAY5j zi0?wP4=cDfui2p$e+c_^!v+=V!*g|463bO{5_l{kJ&9M6o~w0>U~u2(YKb76 z*km&o=NIVDq2uWo3O)%REQT|S$Otkn59%z&vMH0N#xBMLN^yz#V0dY8hGR>JN9py8 z@(T{p)6dbL!zcR(Cpzr@0@+JQC(`eW>h}|IBGTOjy1WNW`I)pQ4?n``pUE83>myZH ziI6z1Z5EL3i=?0Mw=Tq-dbJ zlD>)Ki}hqEx0N)uZ?B8vDkyy2M#_|~rd8D~u#)Ss)LbV+9LkX=QIN8glrx@;vc&(D zwl4}^QzbLdk}jn>G9_+Wm~Mf4&zX|IDCn_`_>z)QkhqOhE}0d{DrOPp{3H@msB>~8 ze4@_L+_@rij*NsF+eshd8p)EKKdDf%-%f&E+er`7GaYPyBOYW*8hHPP!e!GT<~L#{ zE7MeE2dPiUhw*CDT_i{HkFP^#YjHg)5U&ey)Y{`DKrmgNqEis>^nyXqHVx<2!8k37 zW3iKgHIpxzI&Z114?IGbDK;Sq_9676T?wWUwQxYxa13fpG_64aZT?88`Uk1s z;MOR#!zP|+>P@W!^gv@g4`Q4xJwnudS{I69nsBgja|9&(K>{lr8qFqH&Y`3joy4Lt zItO)Z1ibr$gmoS=f+hiXJL9ZNVDxK4TzR*V_7T_SKYsI^i`%-W=S{A-Q@S?BF9TPg zaf+2CksZgQQPJj60f*60az80sW)KQu4is_@rOppVf&YF|NxF*nl?~rdOyt!FNZwCs zkW0hi=6*7sxK-CzV2jWDitViFr7|K@k;I zv>VP;)EowrR8%q5o2ht~XQiUynsvs|McGGOe;5C^d1D)`m~{s{b)k-(cs} zL9x+#M8mA(gMxAGT3`|ryhI^tzhp3QpR9bFI^xKAx}+k?GjFB8@i}j zmvA^##WxR-8_)jy^fWSW@=dL$_g=L!sb0sbw^TV3gv|X5OIL z-7OTF-5}nE$?D)6_&6kPL2&05*=F1sM1@XgKA}B^O)xCFO&S;`si$sJp@RX?=pNZt zKBR3Sq4k0J1%6?HiS+&o-|+E}dykB*b*CQo42ceZ;!m(KBqJzs49WDtv3)}GAlgsR zkzsKBGdeQtKj`d_W2imbR8HNJ{CL8 z0W{neW7WzJ$v8s#w1TCN$!_E8R!oh4%GT5dIzPdYf@>xWdqQeE+%?gjcMSD-bfmiR z39dDh+!pX}I@w!gKDyBi&^=OWXz{;F?mlNqTpL@I&e4 zPia)i!}?G<6O{}{H%m;8`2Mewut!WuSY3;f7X8%9e^Vth>cFHoWUsLZx>=O;sSgdZ z@!8r-fyJdH57?ef+{xxz>V<6b!a$DKfIaWXe8=~-m>0bswX4I6vEM%=nDpQtFaCob zW2>tf|4@%>z2Vw>^mwa!A&=g*xW`!^a5F{Q>TvJ_sadoued;)Q239`{b8p}Urt(Kp zmUOJDR{Th^3}k>O7(bJEx1XyPQuL~tWhe{l|G_I$y1lf8oPTgn)p2~$)i<_u_JWWv z*o5zR!uc=QqV{@1))yQKj$8r_b1*l`EKy@~a7aj2REFhwq&L}73I53=)f^^P!d#^n zza~0l9|iAxGR>G*u}~kGT@iNYV?Q4A6y6;nuF^jT^5Nfn>`~1X!Q(5gX_ZWb#IM-C z)+|&F1-KVOD(23U-IPdGo!l#6LJ}Ps#VPo*(2rKy%(m(zA{`<|o3e${*tNXcT#>5d zkk*xZpJ^wRAbyIv&`wGx#uTSQ!lhkdMp3B&c{3aK6qRa`9~AXTQ7SdIWFe`OrQx!J z6iC8KsIDcXax%#&4h>65y+|Xy41XZ&?A5EKq$;xgbcIIJchf}3b&+-(=h+p~a@$@# zly;d^{vi(qS}o^^iuB$D`n+hZHJRS8Sk8 zImuP6QBitE94qGK=~Ys%Uz5J(LHR1uFyf^^Y!%7hb?GpyBGKm!fyQGgfh&v$oCr4D z;}L3l73nB(O!{2N@AI5I*ils~LtqG`R+ZY2pTeQIH*#e~_4bz55Xa#k3W*>2ln1w} zOWwpof&A)Hed03+>eZ0Skxm2Ejy0sk#4+@rLgE|W=RsC2%rKY!5a=Vhmv7vUR^Ic0 z&C6emzK7$k9{BD*j+W_@a*8_FM>=;$N4 zmcQHU|4=pCO;MlLrK*-@7E<*xi>W%%09Ew}(^Zvas;2b#KU7t4R#d-+R8<45kg6YF zGgTgqrM~28SD4ipGt9QDx}q_btHB#8t&_@tM>DB5F)9$+Op0(#?t~#&m&lD!_0ML~ z9^$y?X(8p(UwN?5B>6}U((~Y`NoqpKukg_%1vhD*o>!320f)m4@X4NqTlbA>SN)(! zXE)TI+KSFhWA2Wp`B?$?9>)jbDAl3GOm+GX(mMm$<^f|`No^eaKF%vJ9>-hk>4Pxz zaUP_!lA1a#MO&2qlWt>CNSDSF(>wj7 z4${w$^1v}baxK=yOub9mvwL~C>q2U3--rpu&4dB1r4ak{hq}L~Ghjc(1q>TZfnseC z8!|jL9R^W+@<103n*l1t`3(JLf`h*l;#8kuc%cZlf_lLi;RJul%l^@Q-Se8MaL8Zk zCYkT^7$)lSl6Lua9@G!OgjZsMt@Yi#G~tn+17U){i(8b1-Et>d2fburomW5r|Wlg*ZTU7 zUzXeJS#JN`4kJHnef+h4q;yWX4(m#AwbL%dq6QhTYVR2mbYr|63w8A%&-Ef3bV#}w_q zsr&0c0n*!}n&AwmO$46~n1oUci|JczS-$mT`L?A4=G)mDy5~ic;2KKXk7L*=5~>Cx zmSH$?9Lx+x)qh^sh1ZOM3)FQo!%t(uBLrQmGb9sWbO;7~^O`Pv#uD&8&$le^UWZ`b z&0@}9CxTl?)aA|a{CF6P=yd(6?zt@PAQshp4y!ePccdB5oSnu(*-)v2t2d&5{L^|k zX2cZ6r_H~Dxx8uu%nZf;Jn%{$q=rhpq~cfeph_p{j0>yo2bm8tJ;VH%b46{c< z~O! z2NS;Gl&r6N1ymJKj^+i3OPI5i7aDOjtYXQge;Ba3|>B^J3o>dW$ z*B9Gbeu|E@@oKYv82My|Z->JhM5oRSFAn_{dEVAW_s7WRp3ps?849cVqvy>G7lp&y z{@B)fBC@vjH3C`w#wwLQb7y`jTEbbWtJ7Y^wK8wO%q zTY8MAXoQ{vlJ@ja9#j~FDe`549|yv~L8wMMs{1QB7cp1(?F4gNKf9@st(3{ z3t-Mw!=ck)3^e52YD@ zQ1`r}AFLXRZ7mt`f7)8nL6A2T+uC_G586dwTU&TA4>m<$TPuAyPn|hTdLT=Ue$Rtm zqoq1zVF)Z3Elnql7OA#lq}jw{>uwAIU-|HBzqny_re`&L(T}>Bd6z!;{@$CXZW<@e zG)QB1=Bbq@NDc<+cA%|Vf1-5RP-)F}^oiS)=>!EH{);S0rEj3DTXddFq8I$%{x=Hs`^+DN-4! z{;zr9FjWff)1Vu^e&GC3P5jlDV6{rz*C6zW#Aj*_TWAi_OE3P# zuRzf#e#R(T=Di{Vv>99SVBb`!ru(tYG+uNf4(B?y-~lkay*hI(eal_CH4pNpN`0Jt zlk@Z~N5^G6DnWzLs$e`vPm^X!<^62c%xThALk0UyLJyt@)^lYJO6s}tW@8@goq+?F z<7jv~L#iOHK?9j7)s|*%$Wt54l$IF6&Ua)9O~GH5&;!(@CvOKgIcghc;GupR1scK4 z>uHd@0dGmDMbnNM>!{VI6N}&Ji_#Z8YUs&4owP6C~VR8JmI}hG2ks`^Q zYY_31G}-O|TE5$r2hV?!2G~+a*u~!nmg1PZ+i7+BQYk?qar40rr1sv;=hKXc@x+T+ z3RRJ!+UYnN`e{1(lcu>WP^W^loRA8!;J8XkE!{l^pVD-5haYZoc#Bijk#FJkD(q3B zv!UEC(lXbX(RqbdS0j@AdZ5tVEJ*!DI#1TjgC(maSF-O7Y+o%kB1f~}*=ni4rNi99 zo|vEHO!d?f@5(YQVNhY#-v05rsY9o`z-5~6eRE@ZIRp(xk>mLXITEH)W!SP0&K3dN29y;lRH!A7|;3Nb!4?Pk1k-mEP1(B>%>ytsT=)0 zn}JvK6liU_K!?jxd-AC>z-6g2x!DhLr70yGo1uiir#+RiX{M4JQV9cDcmPV>l-iL$nn0hM_`?6I3OP41 zXKpuETilXX8_1dc@Zh#|jr_Au-Ejv6Nz=CQ;hq#}{C6)Ft(ab@x)-M2ml~6P^1PtQ7ur3Lnvq5I)aVD&Q3L6>TlIS+5d-P9OAUC8)sZxA37^t%!XK~3n2;{bBcE%) zhjeV018YFyQ>hP;YQXEKQh&0kI<$X=`MtRXYcuPfVe*I1P)|RTJ`mENs(Sc^RFsh6 zjdf@B(JN_?f$XZRw#<-l7O!7LNXo=c>b(bi$&|X2C-tGz-`H90od8jPOP5QP1sPX+ z{o+3dCwA_F>#G-+sok=qJ_h3O6YPB>btTp6GQH)qrBVixJ4UVh7N2eQYuqsPiO#WZ zYS_P0SpzvzL!I=VwyuT40VS%bsUM^QV((R&ia9uxR*q-24dmfqwNoxt zG|NF(G}J+z@>L2lkkKAAJXdz$c)coD_*t$-_Vw6bL!M(G=Dx7QAZL+(%fp61*;(B~ zDyzws8*laV+?N6Mjq<~ z_73t*65Ji0ILLdPmj8y1_$ppEFp(V+(_(&ujV0t36?Pq?E_68bD>Y$rTFq_hYCj!= zyb^MGDaM!wV}{t3!^IqEVwBxUJ0pY{!T2H4t< zJB4qxcImto)|Qql!N-#FKBwt8Z2I2g@MJh%O8(Pnl|DQxoQC;ZsK;ehdg()7nubtn z!Zfs_zX|%fA|1~)Imi-HqbN^E@uGS{e6sARd}h5A{MaOJ2BQn97gg#NpLyTyf~cr< zDGHCAq08hSmiF&C$)?M%&=AT@6U0Z&D=e^I? zkq=77>|B^rS5B@r^bOS)H`U!PvJ-M-gOs@%h>&xe* zDw(-3vw>Vi%72}!ZfqcX8c29`INwm-MXL6IslM{F;`Q+p2RtvAs}YUlQ3lepD%@-= z&nI&$K))vP0FvHCJ>EoC4AO-cx$3#5vNv&A_Z(xOXX>&f;Xfe>HZ+h+SC4F=m8Q;^ zpT~Hn;uZ{k9;z1?chf?dxP8-mcq*p1kVDArVD&-^8kON8YNH?Ifq2gBF%8g^ zybg<^?BiV6+!BjoTzW2CYbh@vtvjfFTgkT!X%aKP-}- z-)gvr*5#qKWmKkinOb6;&(r86VGspvRju(us8jXR<=ZewW#>ZRcX=Y!-E#Muwx+sjXjSH{-@ zRvK<|)yW-b76g`r=fPMS6YzTlA#zla!zLL&@=)9#Jn9pd#AWdn zjD=n-u``6C88h_9IxQB7I{#;}1aWaUttAuZ#o~EQPYHgcs zM>hh)Zx|00FNqKOV@=ejo#hY%8QVmy+f|M-xJ@}vV`5sd0L!ZwHKRA$GGJFr*{x`N z_I$c!XyBz>Nb4rYk|vGRi0(2WEF%E?qnc6szZ@Ja&L0j zTOHCzZXroO;|OI_f4MHns06qB%bsPW&yo$^Rym&T13Z~-JNKE*TV1tpQ7An?uH=3X zKf`W+%0K?z$)}}^)!Chu(djKQG}Gfx(0PD-nf%}h6$i>4$ll88n1Qrx`{u!eLGlFG z2^C};f8&AjMf{8hP6xz1oK`M4(Y(p#D&~yW{3Vx%`b4-$a$W-2sNmb^CSLf`hR5c8+Lukr^wZ zu_-g+<3ee`jMynFKFo+6vf|B*1JPKC8ONisoNkPpqYna$ft?=Ot>oUg?j9M`o z#HbUaUW^7Z>da_7qaa3e82K?uVr1G3eTT`Zj5u(K9tG13WLV8(Dc!>QVStf7exL7nMvs#7bh8Hz7V9U)hi{^_K^^(eeLVb2IT zR9dqyS0y9mSq91dk6f5HN{*Da{GJP6sG$xT#*aqB!M(ZgiW>aT(0>dXF7C;N+hgRB zQa?1b9xGoUnG?ZboLo*ivnv;Bj*}}Ayw_E?h(U`{)M6C3@JEZ^s6|a~A)`g+IN6K5 zoWQ)C*qIA;$IIo&Z`>jVEk=!}I=F>DTKqO%b~iii%B7p>*6hipQ-(2KIXLBTK(U>m z;1SWt;>H6$5*jl~pf&ao+2gT?*rpqGwFb?`Ua)(DT!Z}4 z8y-%OYfDuy`Nb#74a_0EvFlBoRYddG4RnsJ8JhT%WwvI*1Xzs)meD@TdAGH_F?O0h ziZzkjnA8_EhTn}YjIsFfH=2phZlU{G=58)@S-&y1DHAwF1vdYOf-=l~BXy7c5BD#0 zJeg>kN8N}1hx>izKA5@(pnFg}m?p{Yj?JirJ6g~!lU`VvMoyA@5T`geHAz;TN>fc( zYIsnjtwL|>QG$L{6C-7NgVV>Y=#=Q-iaW?eBavWxlV zQt?uZDcBT?VJNkx$YCz_=&Wx$Ep%_hnPISUioC)!Y72G4F=cSmPi*Xpog$96yP`c! z@I#zbrS5p21Qvhc(QUmgxiEGrwwkr|A!({yU0S*^7miMqmsU1yMxCix;pt&%TnxeA zz(jf_1l|BmAC~)D!Gvk@eplb23O$a#8{NNM3-PWln5N4WrIx?u!ocZrd+El8T-Z5X zo>YA_olc^)F|B>ypzoff$sf3pX3r75U)H^()rQcS_z3$D z3M*&Io-NWg==r4Yqol_ft|DjP)!Z~r+V8)jDta)Es@hLoY_O6B;jqS0TaK~%GE??2 z`>)R}@H;1a;uId*hv25$CfXddqwRhw#)VoJ(Mq7IjJtXjo#m#r3Z+@WbD)6^^tGTm znrKibeW){?mvg0Vg>uK0Mq)6kv7E`k?`Fup#AA_qWtKd_AZ4x7he5RJiNr;j)@Jc;KRV@HM8^j=PI;_ zlUr1eK@P@i!tc)9z4;@uEuaXlDWWir*!_{)EOr&%;vR>Xu);)#+8|0;=^-=Zx2H63p z{n9|%B!`miPoUc-xgRN(27hcq732xzZITC*wGUw6ukx>?+H}=+v;2#JY&r^?w#c=L zd>(?`Xa1^O_3jqAnM{5i1f_q&3is%DX#bl$k~EnJ2Y!=Rl`8+6WV6*^jH!jIa{m|| zorCwl;2rqt?6)1(?2xY!kBKmDr#y}<8Vl(=@b_C6nB>~xa)Ym1E=|`my_~4;HN$EIWoA9+Iz1&gV@_`!tzLTu-O6ccFE-- zWe1-8koV!c$A*onX`h@-%z?wP@#8qWIF`=)pD-DZ7SP^+z5mhWQbmiUBKQ(@u<(0r zlzzr<;1o)jj_YoQ?7nDl<9~nGWr(4h8xni zX;f$RgepHY*!fT`_2;V_4#^${_Z@?1hmu3r7jaGozo|%jVn=;pYQrFSd|2*ex3n{Q zSob3|JR+x&G0EV36dPdYWOc$(dAfmI?5JiPlQRwEaWFhMA-5*i`l%ICu!WV0?;zP^ z?8l`yzoXcl(=44rZIZr1$s@88^gk)vn$P!RdGXznW|T(r0%f(1bNArp>v)8 zbf!7kX+AnT{--m|$!S68{LY+P40}V<*&h*JnBmPyc`NzY4_2JQXV?3saQKwGihS;` z_Bf4`SGE4=OQUim1*?2ny@OuxwX>%|ozmKQfQ2&5IHO=!iUDn0L<4ZDq z#^DNi;R5l9Q7r1cg%33>9~)23$D@5r{yBO6Y5Ln@l3(~ zu;aY^hz#il3oght-R^d$`sj{@_$OLf%mF%jJVo;0@&&o9-DaGD)ar)8n+rG$n~NIt z6i%hKQW%uGD7UWMcot?w*{1sq|(%ef0Uh#GlOCNn+za75#`G ze9=Y)LiBCy^3x;vH1|_$w(IP-kKi%+gI#ZvvSF`aQysM#Jt$GT;w}5Q0J!{`C)Udqk}6AVp9#lt~ON5#XT^HWqj3~$nu z8&;fYvQ~T%gR+c)Y~b2mjQ6nR&*U!XrRy`CEE&-pVxOVD2)N6B^bBbETwd!E+MH|4 z{6ceFUu^%y1phwATpS8@|B{1h;X|)b+HWJ$h+==xJcJ&Lz|Z>OH_l&%#J|^qn!@J4 zFq|Rq=`W0TI4pUA@eYThFEB$|G_{WRg61H<#0&|CRxjm1x53|qa}F`HCOw4>Z{NsH zhQ_e}C8{0_cCX|WhC!?h54=K`L2&7n+_08UV{830FvM^9qOa!bM?M-1f|{EA)xo8* zWP_josE98kMJhw14B3aoH-w=X@^!C|4Vf~1vvv?_wj8^+92}7bK%dvLMz+<5fJ}L< zcTj^uURL`S4mu)9RNHR-)S`dOy$#0m^_a9?ZOb)OCuPaK3=WgZTVgb{JlubSFR~f6 zRV5n>qeSjKoaRfYb&ZatJ!+|;Z!sHO_ur8*3H2)mh2yD3;X1yC`t_ZhWLIXbSD`4q z^UlRf8R*;-T!rK>axJp5vU>ZAyx8E<A7+ryE0+rX@i)9 z-6)!rD?ziwA-&TD?lr1=qS_GEM%0}b+GKEsquDse#QBn-V&Q`UzQ``*%TVAyy zN^^3-MIBm1DT!;Y5=^y6i)qg4etT-sg24HrXi*)nvn)m}{~vIy^fj#*FfFkx|n z2`oT!DzdPR4MTd-#p9S@2fI z14I^XX53EjCdR`abN}lZ+X?=KarPtbZU$y?Rah)zJVo#l#s#7hEoPi5cq!w>g1Npa zf_Vfi?%TM2?rt{m6pRytt>a$Bq%vpptO}d!0|9|C6m#c zUTN`g5v^0nPk9QX8Q0PEVJnK`d{cKfCz=wOMN4LpXyPgI5d0H&7nO*o(9Viqi8{gE zEp=o$^Z!ajfU{X=GscK#c{?HSGxLxp%4{8DRWQ%OG*Lvnj@%XPeixHZ7R)Q%IKe7& z52I|R9m@e`aYEGE!;A|AA7pIlIF2wj3io4-E&a$T?q5{elZ@{QPGNik*{qk@8D=p| z2%KjeD)>*vjRoIf+)^-awyvV%y3E|uM62M$=8&Nd4Vyj`yo%ms!C<_f$8^8jA`$rG@O1sEroN61_78s=^k%oAY# zbcrkA9Yva8p5j!&yl2}jnCB1(-ogSf3+6dGOfYXXp@O&T@@A#6u-L&AcnIcQv7KOE zhS?W+g!eG{yMljbd_pj<1IdE-Gxx=U^;Tt$SEdLHUa1BMKF&O}6U>`Y9l>XryQ|;} zj0-OC2=Z3&O7Kjd9q9^wSwW;{;tUB+R8?=fyE_yJ>Y!H*dm z1*h}p|EKdj#?P5Rn$EQEk4pWYzMo(>Nc;Zw-}-*q-{{Tu9P@8^*l->v`UTFrML&?j zpZ}J}EiZyl@i5ZMC|k! zdB#!@Cmx@fj8lcee;B8U6n$a*>Ku^NpUdie6zbz9OCR#xo#;$_>7@rW_lJPjfCdM9un=`&Diio>g+I=hLt~Yx#ef|e9 zi|lJWi#jmAYsIPJam!P*`~QcNg*#7is?gV-=^ua(FZTQoVHU$gv+K&(@}kj$aXXQv zeHn*}o^J$WRRqA`K?+v52@ky#XoW-@~dh!o6YY-y(Pj6VtaB*tli z*Vdp*5lXh;1b;uud63gSP&n0(sRZvXZ&Itl&h9S4tqB>o1x941l_!z>1f9N+L^HiY={VIdd-%wSF~YJ0ZV`akg;(O=q(*OjMG6 zOkkYgql`lZpJUuk@L9&6gu;uAX|2|C=o(|okn0ZPf|K0+K4pCVr=@U<$4nqqa604N zg8yO+f?qK<3(jObOz<1Vp@RQm+*oinGJXCVg+&$<_;i9t=r!Xs!5ZUK!7mu^7W|ws z2!6)pMbF83x8SF_{QbX>1#LEF!8`|sS#hY~G!{T(EA|k~BV-wn@B~-}B!B0!_kYWX z#)5eru?#S1rNU?wh*t2Cu_{cHWzs9G$*IZ`OeOup<`S=@r^0e?#RHeN_46=0a^bkQQjsiAg>-MF zJn57RU%i!bPF>&U;O?d~xKgDrK7P^$zs~`mYD!r%9j$6M=!~1QiX?QS-)9}0g8y#B zD_3xGA;LKLRD|)4vJ1`8pAE*CkaD- z6MhNT7&Ef0jg2`~scUhqY;l#0F}L*~idh`ng(i|HDgXg1T;$w;lBAVJxPHnh`X+dfTsUwDUQ!(MnSFS!Ni zfCY0x)LqVtMf2zKVXQ7%tw@A+)}t#VceK; zywV6?!Tb|^uVT&w#D3Hxh|~RvCMT5BA3h$;123CIQzgdUqU^jF7l@wKoAE2rk=0;q z=~-(rR)u>V#_I&v;;;LztZd^ITQvA5_|(*6m}QKqOLr6`nw-&}9zl^p@h-`^jwqng zEC4$ZVMoT6IjCZcLHIAiU-!+Yd6sg4IKe!NhY2pu6j&-FXUnS{uZ*hbnPn!QEOLxj zcFU`unOp1@wUc`Qef)q)=gq}3!qN@DKu%0+abfey~Xp2BA! zh8c^6$2NhRK8j!^=IgS^8=BX&{>KUn-g4I*{=R+(h~~yi*CYn`u1w)hk-6@S*NDRM zWV}ppO~$c8-j`2z%@P8BOdv||8~VhFS7wQHzh$h5!WzvupH;tjr7!j*{t52=&^;jb zp{4rLGSoAkSI5nwaBGz}>m!YR!h&b)P{HL{ge)CS1kR><#R*aF!A4GC@6hmhu#Zptr(Vyi){Fjz>Tw zfcF@pj+jln5?N{`&r)|$NjM)9S=IIu*-` z0H1#*W?`v>ZFr1D7Pn&@aFhqIfVJL!B1JzicV`hHUWp%z90_3VX9Wi`zN|AH?glf9 z{X!s=@iD<&8E+OG#(0e2zKpvI9>CaLa5!T{a0Fuq%4Ry5P{N_gRel37*S1KyVCWS_xVIH=kMf3V{U1Cc%ptdkJ33I7{>kD;VDv%-34h z2wunBV+C(yoT!TFt}VW6LhXdT5PlN9l ze2a&7z{~}nFpJAVKx3RJm``(u2>#04V+9vwuRH;QT^M&4T$%BQ{XD$dj1{vGXvQqg z3IRR`>m%H|F!wCs-k)*4;E{~i2%gM%r(ix|I7aY7=5BtmhsTId$l)GPmZhthz_MMO z`Sewk;I+)XyWsVVeFbk~93prNV;{lWbT%sv!eR##$lA#R{Dbjj!3P;zn%yDB?!ui< zk12vvxV{}+ALp}wa6U=hak^`#usF>;EECM<*Am6>^dfVQ5`3QVu_L;|c;!zt_$N5@ z!@fTt_JT1cg}y%|nr1mmEJs(P0eimN;^DLpnLht5Pd7fNIz|YbVIJ~D&&KCqEk!hk zMWDOrDLHQzb%xL7?BB~%Je$d{5xme@(zm;Fw zVS_26byI)X@RfzfqATvk0yrzU2V)13pn;4(h&mR|r@Jg!I*JKgW?7nOn!?yub#(Rv< z3dR{lTIOp6^SPT?!REeBdZkDd7JND@N-&=rc`TYKpWKNR%qMfs?&f7|%Vr)n3zivY ziB@LE_%g4=W>axyG3Ga}pcLc%+c~>2?k>0j;}9Y5#rW|yE?<-J3sHo18C#09@pp{R z{}#-`l0_!Q`$Y;l_Y*_3=FI)9VD5jJ==-_+8sYB82j8lc)_E&KH+~7;}I+YnEqMJqO(ZRY{p-Nf*8h61;;V& zB`V}H#@j^sZ(w{#G|}CR_X{5uMC_?m<+@Q&wDr$&V23 zN11zP!50`$5PX+$FUtD(Pjl1*Y$^n7n8HIM#b=m@4T7&Qwij7?pYb~p;pbMI#W+K_ zzh^uF{j>4kK^_62@EYS@q7FP`9y$xwIEzk7$cs*gC&*9mO(t&;{%LHxCP@0g8doy5**Cf&nzrDF^jz-!0wD!3hu>tuHXTTmk5qvJWcQ@#zBH7 zF@7foH&Kku??f3+VHO#p5=JwwBs?TBJ}KPSFy1D3Gvm2}cUkd4#+Fu+qO(~E5+2Sn zf$O3fUSs@4RGJ5jD+zwV*nSIt@MJT7x0!PepqguIb5j{h=*Kv^bmU9cD9 zLxSru-XORkV|!7{e_(77+@A3l@#yWqxQs|(H)J~gt5nzm*>nkZZ;VWD2JhYXUSsV+%qA;4VMWLCoMd2LA_Cn!2#_vRmd4lc>j%V&C1ux(V zEed{O0vSSJ1><-twkTM}+?O!-c%>rNt^|j{IDCw~pwFepqJTcGs9Idle2-+F)J8hD zRbGicX&h6fGLBb%#HJfRt;S%y=m%eoY4%7mSQ(LH`mI1Dc8{1^b~&Yo$(&J6O-?A0AVj$}zNwO)*!(khbrKnXMHsb91ULUYUt5blEDc-os2Edcs9N*n&${T8)P& zkl@pY3dH+A#(UvU8=AUzLo_bR#=~#%Pk0jMVs@biT#?cy-$y@*!wodP4<4ZzKdQJB zmAIfUdOLMDp~k_mA1bv`%9xL12S68s*fn0M%687F%4#&xzf@(B#WcranrJZ%v6y;T zOo0|tGmEK~#ZA*Yu$yI3|I1>!V=BN3KX!W^znb#&Z9e%jvH6RAn;fRAsou)LWR$O0Y00KX6kPIWbe`e{d|$B7!+FLAQEnu_958QkC3-BAynLix6IdXCkrbA<~3LK1@{#u$SeT5P2t6`P+iH6pG(vLh0Mw zDx<%Srx591sy-Ik+!Vx@}TwFVK2iKr+{TVx~DtlGe zcFGTg3@8m@K}r`=y0rRRkkVTzt6tB+Ygr6feY(HGR|B>CGLIp7hhRA_qjDh)GD zqjJ%o3!+G$)3}UISJBU2%3%i<_0Muc@q=&QSI}j=GLL94;m&xabLV9*(LTU9PD4kp6%>pge3Ixd`f>+u@LGfh ze`EETo-3%m&pIY(isSAM)E#}gFMkPBCn&zI1DM0t=eS4V-a#81gMkKKT|F~Fi6X}E z=T!R33#!Yx$8!jbRBBggq+5RQtxbP1Q9j+7g~`M$J}3=gWu!94{QQ|7md_>qcj9wd zk7^<%Ovn}L_Z_wJJz~{Ny^d{Z-Zl2}Y=L^%5bD+*tC6-j1ryiK9 z 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 CV_|*( diff --git a/examples/normal_map_cornell_box.cpp b/examples/normal_map_cornell_box.cpp index 294fc4b..ee41d70 100644 --- a/examples/normal_map_cornell_box.cpp +++ b/examples/normal_map_cornell_box.cpp @@ -226,18 +226,19 @@ void setup_cornell_box() { // 5: Textured material with normal map (for short box) auto textured_material = std::make_shared(); textured_material->set_albedo(Vec3(1.0f, 1.0f, 1.0f)); - textured_material->set_metallic(0.0f); - textured_material->set_roughness(0.8f); - textured_material->set_type(MaterialType::DIFFUSE); + textured_material->set_metallic(1.0f); + textured_material->set_roughness(1.0f); + // textured_material->set_type(MaterialType::DIFFUSE); + textured_material->set_type(MaterialType::METAL); // Load textures - auto albedo_tex = std::make_shared(); - if (albedo_tex->load_from_file("examples/assets/normal_map_cornell_box/albedo.png")) { - textured_material->set_albedo_texture(albedo_tex); - ARE_LOG_INFO("Loaded albedo texture"); - } else { - ARE_LOG_WARN("Failed to load albedo texture"); - } + // auto albedo_tex = std::make_shared(); + // if (albedo_tex->load_from_file("examples/assets/normal_map_cornell_box/albedo.png")) { + // textured_material->set_albedo_texture(albedo_tex); + // ARE_LOG_INFO("Loaded albedo texture"); + // } else { + // ARE_LOG_WARN("Failed to load albedo texture"); + // } auto normal_tex = std::make_shared(); if (normal_tex->load_from_file("examples/assets/normal_map_cornell_box/normal.png")) { @@ -296,7 +297,8 @@ void setup_cornell_box() { Vec3(room_size, room_size, -room_size), Vec3(room_size, -room_size, -room_size), Vec3(0.0f, 0.0f, 1.0f), - white_id); + metal_id); + // white_id); back_wall->upload_to_gpu(); g_scene->add_mesh(back_wall); @@ -361,7 +363,7 @@ void setup_cornell_box() { g_camera->set_position(g_cameraPos); g_camera->set_target(g_cameraTarget); g_camera->set_up(g_cameraUp); - g_camera->set_perspective(45.0f, static_cast(WINDOW_WIDTH) / WINDOW_HEIGHT, 0.1f, 100.0f); + g_camera->set_perspective(90.0f, static_cast(WINDOW_WIDTH) / WINDOW_HEIGHT, 0.1f, 100.0f); g_scene->set_camera(g_camera); // Add point light diff --git a/include/basic/constants.h b/include/basic/constants.h index e6ee2af..67bda55 100644 --- a/include/basic/constants.h +++ b/include/basic/constants.h @@ -18,7 +18,9 @@ constexpr int GBUFFER_NORMAL = 1; constexpr int GBUFFER_ALBEDO = 2; constexpr int GBUFFER_MATERIAL = 3; constexpr int GBUFFER_MATERIAL_ID = 4; -constexpr int GBUFFER_COUNT = 5; +constexpr int GBUFFER_TEXCOORD = 5; +constexpr int GBUFFER_TANGENT = 6; +constexpr int GBUFFER_COUNT = 7; // Compute shader work group size constexpr int COMPUTE_GROUP_SIZE_X = 16; diff --git a/include/core/bvh.h b/include/core/bvh.h index 34ca074..411fead 100644 --- a/include/core/bvh.h +++ b/include/core/bvh.h @@ -42,6 +42,7 @@ struct Triangle { Vec3 v0_, v1_, v2_; Vec3 n0_, n1_, n2_; Vec2 uv0_, uv1_, uv2_; + Vec3 t0_, t1_, t2_; // Tangents for each vertex uint material_id_; // Get bounding box of triangle @@ -75,6 +76,8 @@ struct TriangleGpu { Vec4 n2_; ///< xyz = n2, w = reserved Vec4 uv0_uv1_; ///< xy = uv0, zw = uv1 Vec4 uv2_; ///< xy = uv2, zw = reserved + Vec4 t0_; ///< xyz = t0 (tangent at v0), w = reserved + Vec4 t1_; ///< xyz = t1 (tangent at v1), w = reserved }; // Bounding Volume Hierarchy for ray tracing acceleration diff --git a/include/scene/material.h b/include/scene/material.h index 810465b..d72bf81 100644 --- a/include/scene/material.h +++ b/include/scene/material.h @@ -229,6 +229,24 @@ public: return textures_[static_cast(slot)] != nullptr; } + /* + * @brief Set texture array index for a slot (used by RayTracer) + * @param slot Texture slot + * @param index Index into the texture array + */ + void set_texture_index(TextureSlot slot, uint32_t index) { + texture_indices_[static_cast(slot)] = index; + } + + /* + * @brief Get texture array index for a slot + * @param slot Texture slot + * @return Index into the texture array (0 = no texture) + */ + uint32_t get_texture_index(TextureSlot slot) const { + return texture_indices_[static_cast(slot)]; + } + private: Vec3 albedo_; Vec3 emission_; @@ -238,6 +256,7 @@ private: MaterialType type_; std::array, static_cast(TextureSlot::COUNT)> textures_; + std::array(TextureSlot::COUNT)> texture_indices_; }; } // namespace are diff --git a/shaders/gbuffer.frag b/shaders/gbuffer.frag index fbed580..3661108 100644 --- a/shaders/gbuffer.frag +++ b/shaders/gbuffer.frag @@ -12,6 +12,8 @@ layout(location = 1) out vec4 g_normal; layout(location = 2) out vec4 g_albedo; layout(location = 3) out vec4 g_material; layout(location = 4) out uint g_material_id; +layout(location = 5) out vec4 g_texcoord; +layout(location = 6) out vec4 g_tangent; uniform vec3 u_albedo; uniform float u_metallic; @@ -38,4 +40,10 @@ void main() { g_material = vec4(u_metallic, u_roughness, u_ior, float(u_material_type)); g_material_id = u_material_id; + + // Store texcoord + g_texcoord = vec4(fs_in.texcoord, 0.0, 0.0); + + // Store tangent (xyz = tangent, w = unused) + g_tangent = vec4(fs_in.tangent, 0.0); } diff --git a/shaders/raytracing.comp b/shaders/raytracing.comp index ea0bf69..3b931b1 100644 --- a/shaders/raytracing.comp +++ b/shaders/raytracing.comp @@ -26,6 +26,12 @@ layout(binding = 2, rgba8) uniform readonly image2D g_albedo; layout(binding = 5, rgba32f) uniform readonly image2D g_material; layout(binding = 6, r32ui) uniform readonly uimage2D g_material_id; +// Texcoord from G-Buffer +layout(binding = 7, rgba32f) uniform readonly image2D g_texcoord; + +// Tangent from G-Buffer +layout(binding = 8, rgba32f) uniform readonly image2D g_tangent; + // Output layout(binding = 3, rgba32f) uniform image2D output_image; layout(binding = 4, rgba32f) uniform image2D accumulation_image; @@ -64,6 +70,7 @@ struct HitInfo { vec3 position; vec3 normal; vec2 texcoord; + vec3 tangent; uint material_id; int material_type; // material type from G-Buffer }; @@ -88,6 +95,8 @@ struct TriangleGpu { vec4 n2; vec4 uv0_uv1; // xy uv0, zw uv1 vec4 uv2; // xy uv2 + vec4 t0; // tangent at v0 + vec4 t1; // tangent at v1 }; layout(std430, binding = 0) readonly buffer MaterialBuffer { Material materials[]; }; @@ -268,11 +277,21 @@ bool intersect_triangle(Ray ray, TriangleGpu tri, inout HitInfo hit) { vec2 uv1 = tri.uv0_uv1.zw; vec2 uv2 = tri.uv2.xy; + // Interpolate tangents + vec3 t0 = tri.t0.xyz; + vec3 t1 = tri.t1.xyz; + // Compute t2 from normal and t0 (t2 = cross(n, t0)) + vec3 t2 = normalize(cross(n0, t0)); // approximate third tangent + hit.hit = true; hit.t = t; hit.position = ray.origin + t * ray.direction; hit.normal = normalize(n0 * w + n1 * u + n2 * v); hit.texcoord = uv0 * w + uv1 * u + uv2 * v; + + // Interpolate tangent using barycentric coordinates + hit.tangent = normalize(t0 * w + t1 * u + t2 * v); + hit.material_id = as_uint(tri.v0_material.w); return true; } @@ -378,6 +397,7 @@ HitInfo trace_primary_gbuffer(Ray ray, ivec2 pixel_coords) { hit.position = vec3(0.0); hit.normal = vec3(0.0, 1.0, 0.0); hit.texcoord = vec2(0.0); + hit.tangent = vec3(0.0); hit.material_id = 0u; hit.material_type = 0; @@ -395,10 +415,20 @@ HitInfo trace_primary_gbuffer(Ray ray, ivec2 pixel_coords) { // material type stored in g_material.w vec4 mat = imageLoad(g_material, pixel_coords); int mtype = int(mat.w); + + // Read texcoord from G-Buffer + vec4 texcoord_tangent = imageLoad(g_texcoord, pixel_coords); + vec2 texcoord = texcoord_tangent.xy; + + // Read tangent from G-Buffer + vec4 tangent_data = imageLoad(g_tangent, pixel_coords); + vec3 tangent = tangent_data.xyz; hit.hit = true; hit.position = p; hit.normal = n; + hit.texcoord = texcoord; + hit.tangent = tangent; hit.material_id = mid; hit.material_type = mtype; @@ -425,7 +455,7 @@ vec3 apply_normal_map(vec3 normal, vec2 texcoord, vec3 tangent, uint normal_hand } // Apply material textures to get final PBR values -void apply_material_textures(inout Material mat, vec2 texcoord, vec3 normal, vec3 tangent) { +void apply_material_textures(inout Material mat, inout vec3 normal, vec2 texcoord, vec3 tangent) { if (!u_enable_textures) return; // Albedo texture @@ -556,7 +586,7 @@ ScatterResult scatter_ray(Ray ray_in, HitInfo hit, Material mat, inout uint seed // Direct lighting (with shadow ray) // ============================================================================ -vec3 eval_direct_lighting(HitInfo hit, Material mat, inout uint seed) { +vec3 eval_direct_lighting(inout HitInfo hit, Material mat, inout uint seed) { if (u_light_count == 0u) return vec3(0.0); uint light_idx = uint(random_float(seed) * float(u_light_count)) % u_light_count; @@ -652,10 +682,8 @@ vec3 trace_path_primary_gbuffer(ivec2 pixel_coords, ivec2 image_size, inout uint mat0.type = hit0.material_type; } - // Apply PBR textures - vec3 tangent0 = normalize(cross(hit0.normal, vec3(0.0, 1.0, 0.0))); - if (length(tangent0) < 0.001) tangent0 = normalize(cross(hit0.normal, vec3(1.0, 0.0, 0.0))); - apply_material_textures(mat0, hit0.texcoord, hit0.normal, tangent0); + // Apply PBR textures (use tangent from G-Buffer if available) + apply_material_textures(mat0, hit0.normal, hit0.texcoord, hit0.tangent); radiance += throughput * mat0.emission; if (mat0.type == MATERIAL_DIFFUSE) { @@ -679,10 +707,8 @@ vec3 trace_path_primary_gbuffer(ivec2 pixel_coords, ivec2 image_size, inout uint Material mat = fetch_material(hit.material_id); - // Apply PBR textures - vec3 tangent = normalize(cross(hit.normal, vec3(0.0, 1.0, 0.0))); - if (length(tangent) < 0.001) tangent = normalize(cross(hit.normal, vec3(1.0, 0.0, 0.0))); - apply_material_textures(mat, hit.texcoord, hit.normal, tangent); + // Apply PBR textures (use tangent from intersection) + apply_material_textures(mat, hit.normal, hit.texcoord, hit.tangent); radiance += throughput * mat.emission; if (mat.type == MATERIAL_DIFFUSE) { diff --git a/src/core/bvh.cpp b/src/core/bvh.cpp index 71560ab..e5f2289 100644 --- a/src/core/bvh.cpp +++ b/src/core/bvh.cpp @@ -1,41 +1,41 @@ #include "core/bvh.h" -#include "utils/logger.h" #include "basic/constants.h" +#include "utils/logger.h" #include #include namespace are { // AABB implementation -void AABB::expand(const Vec3& point) { - min_ = glm::min(min_, point); - max_ = glm::max(max_, point); +void AABB::expand(const Vec3 &point) { + min_ = glm::min(min_, point); + max_ = glm::max(max_, point); } -void AABB::expand(const AABB& other) { - min_ = glm::min(min_, other.min_); - max_ = glm::max(max_, other.max_); +void AABB::expand(const AABB &other) { + min_ = glm::min(min_, other.min_); + max_ = glm::max(max_, other.max_); } float AABB::surface_area() const { - Vec3 extent = max_ - min_; - return 2.0f * (extent.x * extent.y + extent.y * extent.z + extent.z * extent.x); + Vec3 extent = max_ - min_; + return 2.0f * (extent.x * extent.y + extent.y * extent.z + extent.z * extent.x); } bool AABB::is_valid() const { - return min_.x <= max_.x && min_.y <= max_.y && min_.z <= max_.z; + return min_.x <= max_.x && min_.y <= max_.y && min_.z <= max_.z; } // Triangle implementation AABB Triangle::get_bounds() const { - AABB bounds(v0_, v0_); - bounds.expand(v1_); - bounds.expand(v2_); - return bounds; + AABB bounds(v0_, v0_); + bounds.expand(v1_); + bounds.expand(v2_); + return bounds; } Vec3 Triangle::get_centroid() const { - return (v0_ + v1_ + v2_) / 3.0f; + return (v0_ + v1_ + v2_) / 3.0f; } // BVH implementation @@ -43,290 +43,299 @@ BVH::BVH() { } BVH::~BVH() { - clear(); + clear(); } -bool BVH::build(const std::vector>& meshes) { - clear(); - - ARE_LOG_INFO("Building BVH..."); - - // Extract all triangles from meshes - for (const auto& mesh : meshes) { - const auto& vertices = mesh->get_vertices(); - const auto& indices = mesh->get_indices(); - uint material_id = mesh->get_material(); - Mat4 transform = mesh->get_transform(); - - for (size_t i = 0; i < indices.size(); i += 3) { - Triangle tri; - - // Transform vertices - Vec4 v0 = transform * Vec4(vertices[indices[i]].position_, 1.0f); - Vec4 v1 = transform * Vec4(vertices[indices[i + 1]].position_, 1.0f); - Vec4 v2 = transform * Vec4(vertices[indices[i + 2]].position_, 1.0f); - - tri.v0_ = Vec3(v0) / v0.w; - tri.v1_ = Vec3(v1) / v1.w; - tri.v2_ = Vec3(v2) / v2.w; - - // Transform normals - Mat3 normal_matrix = glm::transpose(glm::inverse(Mat3(transform))); - tri.n0_ = glm::normalize(normal_matrix * vertices[indices[i]].normal_); - tri.n1_ = glm::normalize(normal_matrix * vertices[indices[i + 1]].normal_); - tri.n2_ = glm::normalize(normal_matrix * vertices[indices[i + 2]].normal_); - - // Copy UVs - tri.uv0_ = vertices[indices[i]].texcoord_; - tri.uv1_ = vertices[indices[i + 1]].texcoord_; - tri.uv2_ = vertices[indices[i + 2]].texcoord_; - - tri.material_id_ = material_id; - - triangles_.push_back(tri); - } - } - - if (triangles_.empty()) { - ARE_LOG_WARN("No triangles to build BVH"); - return false; - } - - // Initialize triangle indices - triangle_indices_.resize(triangles_.size()); - for (size_t i = 0; i < triangles_.size(); ++i) { - triangle_indices_[i] = static_cast(i); - } - - // Reserve space for nodes (estimate) - nodes_.reserve(triangles_.size() * 2); - - // Create root node - nodes_.emplace_back(); - - // Build BVH recursively - build_recursive_(0, 0, static_cast(triangles_.size())); - - ARE_LOG_INFO("BVH built: " + std::to_string(nodes_.size()) + " nodes, " + - std::to_string(triangles_.size()) + " triangles"); - - return true; +bool BVH::build(const std::vector> &meshes) { + clear(); + + ARE_LOG_INFO("Building BVH..."); + + // Extract all triangles from meshes + for (const auto &mesh : meshes) { + const auto &vertices = mesh->get_vertices(); + const auto &indices = mesh->get_indices(); + uint material_id = mesh->get_material(); + Mat4 transform = mesh->get_transform(); + + for (size_t i = 0; i < indices.size(); i += 3) { + Triangle tri; + + // Transform vertices + Vec4 v0 = transform * Vec4(vertices[indices[i]].position_, 1.0f); + Vec4 v1 = transform * Vec4(vertices[indices[i + 1]].position_, 1.0f); + Vec4 v2 = transform * Vec4(vertices[indices[i + 2]].position_, 1.0f); + + tri.v0_ = Vec3(v0) / v0.w; + tri.v1_ = Vec3(v1) / v1.w; + tri.v2_ = Vec3(v2) / v2.w; + + // Transform normals + Mat3 normal_matrix = glm::transpose(glm::inverse(Mat3(transform))); + tri.n0_ = glm::normalize(normal_matrix * vertices[indices[i]].normal_); + tri.n1_ = glm::normalize(normal_matrix * vertices[indices[i + 1]].normal_); + tri.n2_ = glm::normalize(normal_matrix * vertices[indices[i + 2]].normal_); + + // Transform tangents + tri.t0_ = glm::normalize(normal_matrix * vertices[indices[i]].tangent_); + tri.t1_ = glm::normalize(normal_matrix * vertices[indices[i + 1]].tangent_); + tri.t2_ = glm::normalize(normal_matrix * vertices[indices[i + 2]].tangent_); + + // Copy UVs + tri.uv0_ = vertices[indices[i]].texcoord_; + tri.uv1_ = vertices[indices[i + 1]].texcoord_; + tri.uv2_ = vertices[indices[i + 2]].texcoord_; + + tri.material_id_ = material_id; + + triangles_.push_back(tri); + } + } + + if (triangles_.empty()) { + ARE_LOG_WARN("No triangles to build BVH"); + return false; + } + + // Initialize triangle indices + triangle_indices_.resize(triangles_.size()); + for (size_t i = 0; i < triangles_.size(); ++i) { + triangle_indices_[i] = static_cast(i); + } + + // Reserve space for nodes (estimate) + nodes_.reserve(triangles_.size() * 2); + + // Create root node + nodes_.emplace_back(); + + // Build BVH recursively + build_recursive_(0, 0, static_cast(triangles_.size())); + + ARE_LOG_INFO("BVH built: " + std::to_string(nodes_.size()) + " nodes, " + std::to_string(triangles_.size()) + " triangles"); + + return true; } void BVH::build_recursive_(uint node_idx, uint first_prim, uint prim_count) { - BVHNode& node = nodes_[node_idx]; - - // Calculate bounds - AABB bounds = calculate_bounds_(first_prim, prim_count); - node.aabb_min_ = bounds.min_; - node.aabb_max_ = bounds.max_; - - // Leaf node threshold - const uint LEAF_SIZE = 4; - - if (prim_count <= LEAF_SIZE) { - // Create leaf node - node.left_first_ = first_prim; - node.count_ = prim_count; - return; - } - - // Find best split - int axis; - float split_pos; - float split_cost = find_best_split_(first_prim, prim_count, axis, split_pos); - if(split_cost == std::numeric_limits::max()) { + BVHNode &node = nodes_[node_idx]; + + // Calculate bounds + AABB bounds = calculate_bounds_(first_prim, prim_count); + node.aabb_min_ = bounds.min_; + node.aabb_max_ = bounds.max_; + + // Leaf node threshold + const uint LEAF_SIZE = 4; + + if (prim_count <= LEAF_SIZE) { + // Create leaf node node.left_first_ = first_prim; node.count_ = prim_count; return; } - - // Check if split is beneficial - float no_split_cost = prim_count * bounds.surface_area(); - if (split_cost >= no_split_cost) { - // Create leaf node - node.left_first_ = first_prim; - node.count_ = prim_count; - return; - } - - // Partition primitives - uint mid = first_prim; - for (uint i = first_prim; i < first_prim + prim_count; ++i) { - Triangle& tri = triangles_[triangle_indices_[i]]; - float centroid = tri.get_centroid()[axis]; - - if (centroid < split_pos) { - std::swap(triangle_indices_[i], triangle_indices_[mid]); - mid++; - } - } - - // Ensure we have primitives on both sides - if (mid == first_prim || mid == first_prim + prim_count) { - mid = first_prim + prim_count / 2; - } - - // Create interior node - uint left_count = mid - first_prim; - uint right_count = prim_count - left_count; - - node.left_first_ = static_cast(nodes_.size()); - node.count_ = 0; - - // Create child nodes - nodes_.emplace_back(); - nodes_.emplace_back(); - - // Recursively build children - build_recursive_(node.left_first_, first_prim, left_count); - build_recursive_(node.left_first_ + 1, mid, right_count); + + // Find best split + int axis; + float split_pos; + float split_cost = find_best_split_(first_prim, prim_count, axis, split_pos); + if (split_cost == std::numeric_limits::max()) { + node.left_first_ = first_prim; + node.count_ = prim_count; + return; + } + + // Check if split is beneficial + float no_split_cost = prim_count * bounds.surface_area(); + if (split_cost >= no_split_cost) { + // Create leaf node + node.left_first_ = first_prim; + node.count_ = prim_count; + return; + } + + // Partition primitives + uint mid = first_prim; + for (uint i = first_prim; i < first_prim + prim_count; ++i) { + Triangle &tri = triangles_[triangle_indices_[i]]; + float centroid = tri.get_centroid()[axis]; + + if (centroid < split_pos) { + std::swap(triangle_indices_[i], triangle_indices_[mid]); + mid++; + } + } + + // Ensure we have primitives on both sides + if (mid == first_prim || mid == first_prim + prim_count) { + mid = first_prim + prim_count / 2; + } + + // Create interior node + uint left_count = mid - first_prim; + uint right_count = prim_count - left_count; + + node.left_first_ = static_cast(nodes_.size()); + node.count_ = 0; + + // Create child nodes + nodes_.emplace_back(); + nodes_.emplace_back(); + + // Recursively build children + build_recursive_(node.left_first_, first_prim, left_count); + build_recursive_(node.left_first_ + 1, mid, right_count); } -float BVH::find_best_split_(uint first_prim, uint prim_count, int& axis, float& split_pos) { - float best_cost = std::numeric_limits::max(); +float BVH::find_best_split_(uint first_prim, uint prim_count, int &axis, float &split_pos) { + float best_cost = std::numeric_limits::max(); axis = 0, split_pos = 0.0f; - - AABB centroid_bounds = calculate_centroid_bounds_(first_prim, prim_count); - - // Try each axis - for (int a = 0; a < 3; ++a) { - float extent = centroid_bounds.max_[a] - centroid_bounds.min_[a]; - if (extent < EPSILON) continue; - - // Try multiple split positions - const int NUM_BINS = 16; - for (int i = 1; i < NUM_BINS; ++i) { - float t = static_cast(i) / NUM_BINS; - float pos = centroid_bounds.min_[a] + t * extent; - - // Count primitives and calculate bounds for each side - AABB left_bounds, right_bounds; - uint left_count = 0, right_count = 0; - - for (uint j = first_prim; j < first_prim + prim_count; ++j) { - Triangle& tri = triangles_[triangle_indices_[j]]; - float centroid = tri.get_centroid()[a]; - - if (centroid < pos) { - left_bounds.expand(tri.get_bounds()); - left_count++; - } else { - right_bounds.expand(tri.get_bounds()); - right_count++; - } - } - - // Calculate SAH cost - if (left_count == 0 || right_count == 0) continue; - - float cost = left_count * left_bounds.surface_area() + - right_count * right_bounds.surface_area(); - - if (cost < best_cost) { - best_cost = cost; - axis = a; - split_pos = pos; - } - } - } - - return best_cost; + + AABB centroid_bounds = calculate_centroid_bounds_(first_prim, prim_count); + + // Try each axis + for (int a = 0; a < 3; ++a) { + float extent = centroid_bounds.max_[a] - centroid_bounds.min_[a]; + if (extent < EPSILON) + continue; + + // Try multiple split positions + const int NUM_BINS = 16; + for (int i = 1; i < NUM_BINS; ++i) { + float t = static_cast(i) / NUM_BINS; + float pos = centroid_bounds.min_[a] + t * extent; + + // Count primitives and calculate bounds for each side + AABB left_bounds, right_bounds; + uint left_count = 0, right_count = 0; + + for (uint j = first_prim; j < first_prim + prim_count; ++j) { + Triangle &tri = triangles_[triangle_indices_[j]]; + float centroid = tri.get_centroid()[a]; + + if (centroid < pos) { + left_bounds.expand(tri.get_bounds()); + left_count++; + } else { + right_bounds.expand(tri.get_bounds()); + right_count++; + } + } + + // Calculate SAH cost + if (left_count == 0 || right_count == 0) + continue; + + float cost = left_count * left_bounds.surface_area() + right_count * right_bounds.surface_area(); + + if (cost < best_cost) { + best_cost = cost; + axis = a; + split_pos = pos; + } + } + } + + return best_cost; } AABB BVH::calculate_bounds_(uint first_prim, uint prim_count) { - AABB bounds{Vec3(std::numeric_limits::max()), - Vec3(std::numeric_limits::lowest())}; - - for (uint i = first_prim; i < first_prim + prim_count; ++i) { - Triangle& tri = triangles_[triangle_indices_[i]]; - bounds.expand(tri.get_bounds()); - } - - return bounds; + AABB bounds { Vec3(std::numeric_limits::max()), + Vec3(std::numeric_limits::lowest()) }; + + for (uint i = first_prim; i < first_prim + prim_count; ++i) { + Triangle &tri = triangles_[triangle_indices_[i]]; + bounds.expand(tri.get_bounds()); + } + + return bounds; } AABB BVH::calculate_centroid_bounds_(uint first_prim, uint prim_count) { - AABB bounds{Vec3(std::numeric_limits::max()), - Vec3(std::numeric_limits::lowest())}; - - for (uint i = first_prim; i < first_prim + prim_count; ++i) { - Triangle& tri = triangles_[triangle_indices_[i]]; - bounds.expand(tri.get_centroid()); - } - - return bounds; + AABB bounds { Vec3(std::numeric_limits::max()), + Vec3(std::numeric_limits::lowest()) }; + + for (uint i = first_prim; i < first_prim + prim_count; ++i) { + Triangle &tri = triangles_[triangle_indices_[i]]; + bounds.expand(tri.get_centroid()); + } + + return bounds; } -bool BVH::upload_to_gpu(Buffer& node_buffer, Buffer& triangle_buffer) { - if (nodes_.empty() || triangles_.empty()) { - ARE_LOG_ERROR("Cannot upload empty BVH to GPU"); - return false; - } +bool BVH::upload_to_gpu(Buffer &node_buffer, Buffer &triangle_buffer) { + if (nodes_.empty() || triangles_.empty()) { + ARE_LOG_ERROR("Cannot upload empty BVH to GPU"); + return false; + } - // Reorder triangles according to BVH layout - std::vector ordered_triangles; - ordered_triangles.reserve(triangles_.size()); - for (uint idx : triangle_indices_) { - ordered_triangles.push_back(triangles_[idx]); - } + // Reorder triangles according to BVH layout + std::vector ordered_triangles; + ordered_triangles.reserve(triangles_.size()); + for (uint idx : triangle_indices_) { + ordered_triangles.push_back(triangles_[idx]); + } - // Pack nodes to GPU layout - std::vector node_gpu; - node_gpu.resize(nodes_.size()); - for (size_t i = 0; i < nodes_.size(); ++i) { - const BVHNode& n = nodes_[i]; - BVHNodeGpu g; - g.aabb_min_left_first_ = Vec4(n.aabb_min_, glm::uintBitsToFloat(n.left_first_)); - g.aabb_max_count_ = Vec4(n.aabb_max_, glm::uintBitsToFloat(n.count_)); - node_gpu[i] = g; - } + // Pack nodes to GPU layout + std::vector node_gpu; + node_gpu.resize(nodes_.size()); + for (size_t i = 0; i < nodes_.size(); ++i) { + const BVHNode &n = nodes_[i]; + BVHNodeGpu g; + g.aabb_min_left_first_ = Vec4(n.aabb_min_, glm::uintBitsToFloat(n.left_first_)); + g.aabb_max_count_ = Vec4(n.aabb_max_, glm::uintBitsToFloat(n.count_)); + node_gpu[i] = g; + } - // Pack triangles to GPU layout - std::vector tri_gpu; - tri_gpu.resize(ordered_triangles.size()); - for (size_t i = 0; i < ordered_triangles.size(); ++i) { - const Triangle& t = ordered_triangles[i]; + // Pack triangles to GPU layout + std::vector tri_gpu; + tri_gpu.resize(ordered_triangles.size()); + for (size_t i = 0; i < ordered_triangles.size(); ++i) { + const Triangle &t = ordered_triangles[i]; - TriangleGpu g{}; - g.v0_material_ = Vec4(t.v0_, glm::uintBitsToFloat(t.material_id_)); - g.v1_ = Vec4(t.v1_, 0.0f); - g.v2_ = Vec4(t.v2_, 0.0f); + TriangleGpu g {}; + g.v0_material_ = Vec4(t.v0_, glm::uintBitsToFloat(t.material_id_)); + g.v1_ = Vec4(t.v1_, 0.0f); + g.v2_ = Vec4(t.v2_, 0.0f); - g.n0_ = Vec4(t.n0_, 0.0f); - g.n1_ = Vec4(t.n1_, 0.0f); - g.n2_ = Vec4(t.n2_, 0.0f); + g.n0_ = Vec4(t.n0_, 0.0f); + g.n1_ = Vec4(t.n1_, 0.0f); + g.n2_ = Vec4(t.n2_, 0.0f); - g.uv0_uv1_ = Vec4(t.uv0_.x, t.uv0_.y, t.uv1_.x, t.uv1_.y); - g.uv2_ = Vec4(t.uv2_.x, t.uv2_.y, 0.0f, 0.0f); + g.uv0_uv1_ = Vec4(t.uv0_.x, t.uv0_.y, t.uv1_.x, t.uv1_.y); + g.uv2_ = Vec4(t.uv2_.x, t.uv2_.y, 0.0f, 0.0f); - tri_gpu[i] = g; - } + // Pack tangents + g.t0_ = Vec4(t.t0_, 0.0f); + g.t1_ = Vec4(t.t1_, 0.0f); - if (!node_buffer.create(BufferType::SHADER_STORAGE_BUFFER, - node_gpu.size() * sizeof(BVHNodeGpu), - node_gpu.data(), - BufferUsage::STATIC_DRAW)) { - ARE_LOG_ERROR("Failed to upload BVH nodes to GPU"); - return false; - } + tri_gpu[i] = g; + } - if (!triangle_buffer.create(BufferType::SHADER_STORAGE_BUFFER, - tri_gpu.size() * sizeof(TriangleGpu), - tri_gpu.data(), - BufferUsage::STATIC_DRAW)) { - ARE_LOG_ERROR("Failed to upload BVH triangles to GPU"); - return false; - } + if (!node_buffer.create(BufferType::SHADER_STORAGE_BUFFER, + node_gpu.size() * sizeof(BVHNodeGpu), + node_gpu.data(), + BufferUsage::STATIC_DRAW)) { + ARE_LOG_ERROR("Failed to upload BVH nodes to GPU"); + return false; + } - ARE_LOG_INFO("BVH uploaded to GPU successfully"); - return true; + if (!triangle_buffer.create(BufferType::SHADER_STORAGE_BUFFER, + tri_gpu.size() * sizeof(TriangleGpu), + tri_gpu.data(), + BufferUsage::STATIC_DRAW)) { + ARE_LOG_ERROR("Failed to upload BVH triangles to GPU"); + return false; + } + + ARE_LOG_INFO("BVH uploaded to GPU successfully"); + return true; } void BVH::clear() { - nodes_.clear(); - triangles_.clear(); - triangle_indices_.clear(); + nodes_.clear(); + triangles_.clear(); + triangle_indices_.clear(); } } // namespace are diff --git a/src/core/gbuffer.cpp b/src/core/gbuffer.cpp index 5e4abfa..504f64c 100644 --- a/src/core/gbuffer.cpp +++ b/src/core/gbuffer.cpp @@ -5,226 +5,240 @@ namespace are { GBuffer::GBuffer(uint width, uint height) - : width_(width) - , height_(height) - , fbo_(INVALID_HANDLE) - , depth_texture_(INVALID_HANDLE) - , initialized_(false) { - for (int i = 0; i < GBUFFER_COUNT; ++i) { - textures_[i] = INVALID_HANDLE; - } + : width_(width) + , height_(height) + , fbo_(INVALID_HANDLE) + , depth_texture_(INVALID_HANDLE) + , initialized_(false) { + for (int i = 0; i < GBUFFER_COUNT; ++i) { + textures_[i] = INVALID_HANDLE; + } } GBuffer::~GBuffer() { - release(); + release(); } bool GBuffer::initialize() { - if (initialized_) { - ARE_LOG_WARN("GBuffer already initialized"); - return true; - } + if (initialized_) { + ARE_LOG_WARN("GBuffer already initialized"); + return true; + } - glGenFramebuffers(1, &fbo_); - glBindFramebuffer(GL_FRAMEBUFFER, fbo_); + glGenFramebuffers(1, &fbo_); + glBindFramebuffer(GL_FRAMEBUFFER, fbo_); - textures_[GBUFFER_POSITION] = create_texture_(GL_RGBA32F, GL_RGBA, GL_FLOAT); - textures_[GBUFFER_NORMAL] = create_texture_(GL_RGBA32F, GL_RGBA, GL_FLOAT); - textures_[GBUFFER_ALBEDO] = create_texture_(GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE); + textures_[GBUFFER_POSITION] = create_texture_(GL_RGBA32F, GL_RGBA, GL_FLOAT); + textures_[GBUFFER_NORMAL] = create_texture_(GL_RGBA32F, GL_RGBA, GL_FLOAT); + textures_[GBUFFER_ALBEDO] = create_texture_(GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE); - // New: material params (metallic, roughness, ior, type) - textures_[GBUFFER_MATERIAL] = create_texture_(GL_RGBA32F, GL_RGBA, GL_FLOAT); + // New: material params (metallic, roughness, ior, type) + textures_[GBUFFER_MATERIAL] = create_texture_(GL_RGBA32F, GL_RGBA, GL_FLOAT); - // New: material id (integer) - textures_[GBUFFER_MATERIAL_ID] = create_texture_(GL_R32UI, GL_RED_INTEGER, GL_UNSIGNED_INT); + // New: material id (integer) + textures_[GBUFFER_MATERIAL_ID] = create_texture_(GL_R32UI, GL_RED_INTEGER, GL_UNSIGNED_INT); - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + GBUFFER_POSITION, - GL_TEXTURE_2D, textures_[GBUFFER_POSITION], 0); - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + GBUFFER_NORMAL, - GL_TEXTURE_2D, textures_[GBUFFER_NORMAL], 0); - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + GBUFFER_ALBEDO, - GL_TEXTURE_2D, textures_[GBUFFER_ALBEDO], 0); - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + GBUFFER_MATERIAL, - GL_TEXTURE_2D, textures_[GBUFFER_MATERIAL], 0); - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + GBUFFER_MATERIAL_ID, - GL_TEXTURE_2D, textures_[GBUFFER_MATERIAL_ID], 0); + // New: texcoord + tangent (xy = texcoord, zw = tangent) + textures_[GBUFFER_TEXCOORD] = create_texture_(GL_RGBA32F, GL_RGBA, GL_FLOAT); - glGenTextures(1, &depth_texture_); - glBindTexture(GL_TEXTURE_2D, depth_texture_); - glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8, width_, height_, 0, - GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, nullptr); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, - GL_TEXTURE_2D, depth_texture_, 0); + // New: tangent (xyz = tangent, w = unused) + textures_[GBUFFER_TANGENT] = create_texture_(GL_RGBA32F, GL_RGBA, GL_FLOAT); - GLenum draw_buffers[GBUFFER_COUNT] = { - GL_COLOR_ATTACHMENT0 + GBUFFER_POSITION, - GL_COLOR_ATTACHMENT0 + GBUFFER_NORMAL, - GL_COLOR_ATTACHMENT0 + GBUFFER_ALBEDO, - GL_COLOR_ATTACHMENT0 + GBUFFER_MATERIAL, - GL_COLOR_ATTACHMENT0 + GBUFFER_MATERIAL_ID - }; - glDrawBuffers(GBUFFER_COUNT, draw_buffers); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + GBUFFER_POSITION, + GL_TEXTURE_2D, textures_[GBUFFER_POSITION], 0); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + GBUFFER_NORMAL, + GL_TEXTURE_2D, textures_[GBUFFER_NORMAL], 0); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + GBUFFER_ALBEDO, + GL_TEXTURE_2D, textures_[GBUFFER_ALBEDO], 0); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + GBUFFER_MATERIAL, + GL_TEXTURE_2D, textures_[GBUFFER_MATERIAL], 0); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + GBUFFER_MATERIAL_ID, + GL_TEXTURE_2D, textures_[GBUFFER_MATERIAL_ID], 0); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + GBUFFER_TEXCOORD, + GL_TEXTURE_2D, textures_[GBUFFER_TEXCOORD], 0); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + GBUFFER_TANGENT, + GL_TEXTURE_2D, textures_[GBUFFER_TANGENT], 0); - if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { - ARE_LOG_ERROR("GBuffer framebuffer is not complete"); - glBindFramebuffer(GL_FRAMEBUFFER, 0); - return false; - } + glGenTextures(1, &depth_texture_); + glBindTexture(GL_TEXTURE_2D, depth_texture_); + glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8, width_, height_, 0, + GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, nullptr); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, + GL_TEXTURE_2D, depth_texture_, 0); - glBindFramebuffer(GL_FRAMEBUFFER, 0); + GLenum draw_buffers[GBUFFER_COUNT] = { + GL_COLOR_ATTACHMENT0 + GBUFFER_POSITION, + GL_COLOR_ATTACHMENT0 + GBUFFER_NORMAL, + GL_COLOR_ATTACHMENT0 + GBUFFER_ALBEDO, + GL_COLOR_ATTACHMENT0 + GBUFFER_MATERIAL, + GL_COLOR_ATTACHMENT0 + GBUFFER_MATERIAL_ID, + GL_COLOR_ATTACHMENT0 + GBUFFER_TEXCOORD, + GL_COLOR_ATTACHMENT0 + GBUFFER_TANGENT + }; + glDrawBuffers(GBUFFER_COUNT, draw_buffers); - initialized_ = true; - ARE_LOG_INFO("GBuffer initialized successfully"); - return true; + if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { + ARE_LOG_ERROR("GBuffer framebuffer is not complete"); + glBindFramebuffer(GL_FRAMEBUFFER, 0); + return false; + } + + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + initialized_ = true; + ARE_LOG_INFO("GBuffer initialized successfully"); + return true; } void GBuffer::release() { - if (!initialized_) return; + if (!initialized_) + return; - if (fbo_ != INVALID_HANDLE) { - glDeleteFramebuffers(1, &fbo_); - fbo_ = INVALID_HANDLE; - } + if (fbo_ != INVALID_HANDLE) { + glDeleteFramebuffers(1, &fbo_); + fbo_ = INVALID_HANDLE; + } - for (int i = 0; i < GBUFFER_COUNT; ++i) { - if (textures_[i] != INVALID_HANDLE) { - glDeleteTextures(1, &textures_[i]); - textures_[i] = INVALID_HANDLE; - } - } + for (int i = 0; i < GBUFFER_COUNT; ++i) { + if (textures_[i] != INVALID_HANDLE) { + glDeleteTextures(1, &textures_[i]); + textures_[i] = INVALID_HANDLE; + } + } - if (depth_texture_ != INVALID_HANDLE) { - glDeleteTextures(1, &depth_texture_); - depth_texture_ = INVALID_HANDLE; - } + if (depth_texture_ != INVALID_HANDLE) { + glDeleteTextures(1, &depth_texture_); + depth_texture_ = INVALID_HANDLE; + } - initialized_ = false; - ARE_LOG_INFO("GBuffer released"); + initialized_ = false; + ARE_LOG_INFO("GBuffer released"); } TextureHandle GBuffer::create_texture_(uint internal_format, uint format, uint type) { - TextureHandle texture; - glGenTextures(1, &texture); - glBindTexture(GL_TEXTURE_2D, texture); - glTexImage2D(GL_TEXTURE_2D, 0, internal_format, width_, height_, 0, format, type, nullptr); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - return texture; + TextureHandle texture; + glGenTextures(1, &texture); + glBindTexture(GL_TEXTURE_2D, texture); + glTexImage2D(GL_TEXTURE_2D, 0, internal_format, width_, height_, 0, format, type, nullptr); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + return texture; } -void GBuffer::render(const Scene& scene, const Shader& shader) { - if (!initialized_) { - ARE_LOG_ERROR("GBuffer not initialized"); - return; - } - - // Bind framebuffer - glBindFramebuffer(GL_FRAMEBUFFER, fbo_); - glViewport(0, 0, width_, height_); - - // Clear buffers - glClearColor(0.0f, 0.0f, 0.0f, 0.0f); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - // Enable depth test - glEnable(GL_DEPTH_TEST); - glDepthFunc(GL_LESS); - - // Use shader - shader.use(); - - // Set camera matrices - const Camera& camera = scene.get_camera(); - Mat4 view = camera.get_view_matrix(); - Mat4 projection = camera.get_projection_matrix(); - - shader.set_mat4("u_view", view); - shader.set_mat4("u_projection", projection); - - // Render all meshes - const auto& meshes = scene.get_meshes(); - const auto& materials = scene.get_materials(); - - for (const auto& mesh : meshes) { - if (!mesh->is_uploaded()) { - ARE_LOG_WARN("Mesh not uploaded to GPU, skipping"); - continue; - } - - // Set model matrix - Mat4 model = mesh->get_transform(); - shader.set_mat4("u_model", model); - - // Set material properties - uint material_id = mesh->get_material(); - if (material_id < materials.size()) { - const auto& material = materials[material_id]; - - shader.set_vec3("u_albedo", material->get_albedo()); - shader.set_float("u_metallic", material->get_metallic()); - shader.set_float("u_roughness", material->get_roughness()); - shader.set_uint("u_material_id", material_id); +void GBuffer::render(const Scene &scene, const Shader &shader) { + if (!initialized_) { + ARE_LOG_ERROR("GBuffer not initialized"); + return; + } + + // Bind framebuffer + glBindFramebuffer(GL_FRAMEBUFFER, fbo_); + glViewport(0, 0, width_, height_); + + // Clear buffers + glClearColor(0.0f, 0.0f, 0.0f, 0.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + // Enable depth test + glEnable(GL_DEPTH_TEST); + glDepthFunc(GL_LESS); + + // Use shader + shader.use(); + + // Set camera matrices + const Camera &camera = scene.get_camera(); + Mat4 view = camera.get_view_matrix(); + Mat4 projection = camera.get_projection_matrix(); + + shader.set_mat4("u_view", view); + shader.set_mat4("u_projection", projection); + + // Render all meshes + const auto &meshes = scene.get_meshes(); + const auto &materials = scene.get_materials(); + + for (const auto &mesh : meshes) { + if (!mesh->is_uploaded()) { + ARE_LOG_WARN("Mesh not uploaded to GPU, skipping"); + continue; + } + + // Set model matrix + Mat4 model = mesh->get_transform(); + shader.set_mat4("u_model", model); + + // Set material properties + uint material_id = mesh->get_material(); + if (material_id < materials.size()) { + const auto &material = materials[material_id]; + + shader.set_vec3("u_albedo", material->get_albedo()); + shader.set_float("u_metallic", material->get_metallic()); + shader.set_float("u_roughness", material->get_roughness()); + shader.set_uint("u_material_id", material_id); shader.set_float("u_ior", material->get_ior()); shader.set_vec3("u_emission", material->get_emission()); shader.set_uint("u_material_type", static_cast(material->get_type())); - - // Bind textures - auto albedo_tex = material->get_albedo_texture(); - if (albedo_tex && albedo_tex->is_valid()) { - albedo_tex->bind(0); - shader.set_int("u_albedo_map", 0); - shader.set_int("u_has_albedo_map", 1); - } else { - shader.set_int("u_has_albedo_map", 0); - } - - auto normal_tex = material->get_normal_texture(); - if (normal_tex && normal_tex->is_valid()) { - normal_tex->bind(1); - shader.set_int("u_normal_map", 1); - shader.set_int("u_has_normal_map", 1); - } else { - shader.set_int("u_has_normal_map", 0); - } - } - - // Draw mesh - glBindVertexArray(mesh->get_vao()); - glDrawElements(GL_TRIANGLES, mesh->get_indices().size(), GL_UNSIGNED_INT, 0); - glBindVertexArray(0); - } - - // Unbind framebuffer - glBindFramebuffer(GL_FRAMEBUFFER, 0); + + // Bind textures + auto albedo_tex = material->get_albedo_texture(); + if (albedo_tex && albedo_tex->is_valid()) { + albedo_tex->bind(0); + shader.set_int("u_albedo_map", 0); + shader.set_int("u_has_albedo_map", 1); + } else { + shader.set_int("u_has_albedo_map", 0); + } + + auto normal_tex = material->get_normal_texture(); + if (normal_tex && normal_tex->is_valid()) { + normal_tex->bind(1); + shader.set_int("u_normal_map", 1); + shader.set_int("u_has_normal_map", 1); + } else { + shader.set_int("u_has_normal_map", 0); + } + } + + // Draw mesh + glBindVertexArray(mesh->get_vao()); + glDrawElements(GL_TRIANGLES, mesh->get_indices().size(), GL_UNSIGNED_INT, 0); + glBindVertexArray(0); + } + + // Unbind framebuffer + glBindFramebuffer(GL_FRAMEBUFFER, 0); } void GBuffer::resize(uint width, uint height) { - if (width == width_ && height == height_) return; - - width_ = width; - height_ = height; - - if (initialized_) { - release(); - initialize(); - } + if (width == width_ && height == height_) + return; + + width_ = width; + height_ = height; + + if (initialized_) { + release(); + initialize(); + } } TextureHandle GBuffer::get_texture(int index) const { - if (index < 0 || index >= GBUFFER_COUNT) { - ARE_LOG_ERROR("Invalid G-Buffer texture index"); - return INVALID_HANDLE; - } - return textures_[index]; + if (index < 0 || index >= GBUFFER_COUNT) { + ARE_LOG_ERROR("Invalid G-Buffer texture index"); + return INVALID_HANDLE; + } + return textures_[index]; } -void GBuffer::get_dimensions(uint& width, uint& height) const { - width = width_; - height = height_; +void GBuffer::get_dimensions(uint &width, uint &height) const { + width = width_; + height = height_; } } // namespace are diff --git a/src/core/raytracer.cpp b/src/core/raytracer.cpp index 77f6e88..38cd735 100644 --- a/src/core/raytracer.cpp +++ b/src/core/raytracer.cpp @@ -162,7 +162,34 @@ void RayTracer::trace(const Scene &scene, const GBuffer &gbuffer, TextureHandle rebuild_bvh(scene); } - // Upload scene data + // Build texture arrays BEFORE uploading materials (so indices are available) + const auto &materials = scene.get_materials(); + bool has_textures = false; + for (const auto &mat : materials) { + if (mat->has_texture(TextureSlot::ALBEDO) || mat->has_texture(TextureSlot::NORMAL) || mat->has_texture(TextureSlot::METALLIC) || mat->has_texture(TextureSlot::ROUGHNESS) || mat->has_texture(TextureSlot::AO) || mat->has_texture(TextureSlot::EMISSION)) { + has_textures = true; + break; + } + } + if (has_textures) { + build_texture_arrays_(scene); + + // Bind texture arrays + glActiveTexture(GL_TEXTURE10); + glBindTexture(GL_TEXTURE_2D_ARRAY, texture_arrays_[0]); + glActiveTexture(GL_TEXTURE11); + glBindTexture(GL_TEXTURE_2D_ARRAY, texture_arrays_[1]); + glActiveTexture(GL_TEXTURE12); + glBindTexture(GL_TEXTURE_2D_ARRAY, texture_arrays_[2]); + glActiveTexture(GL_TEXTURE13); + glBindTexture(GL_TEXTURE_2D_ARRAY, texture_arrays_[3]); + glActiveTexture(GL_TEXTURE14); + glBindTexture(GL_TEXTURE_2D_ARRAY, texture_arrays_[4]); + glActiveTexture(GL_TEXTURE15); + glBindTexture(GL_TEXTURE_2D_ARRAY, texture_arrays_[5]); + } + + // Upload scene data (materials now have correct texture indices) upload_scene_data_(scene); // Use compute shader @@ -197,35 +224,8 @@ void RayTracer::trace(const Scene &scene, const GBuffer &gbuffer, TextureHandle compute_shader_->set_bool("u_enable_accumulation", config_.enable_accumulation_); // Enable/disable textures based on material usage - const auto &materials = scene.get_materials(); - bool has_textures = false; - for (const auto &mat : materials) { - if (mat->has_texture(TextureSlot::ALBEDO) || mat->has_texture(TextureSlot::NORMAL) || mat->has_texture(TextureSlot::METALLIC) || mat->has_texture(TextureSlot::ROUGHNESS) || mat->has_texture(TextureSlot::AO) || mat->has_texture(TextureSlot::EMISSION)) { - has_textures = true; - break; - } - } compute_shader_->set_bool("u_enable_textures", has_textures); - // Build texture arrays if needed - if (has_textures) { - build_texture_arrays_(scene); - - // Bind texture arrays - glActiveTexture(GL_TEXTURE10); - glBindTexture(GL_TEXTURE_2D_ARRAY, texture_arrays_[0]); - glActiveTexture(GL_TEXTURE11); - glBindTexture(GL_TEXTURE_2D_ARRAY, texture_arrays_[1]); - glActiveTexture(GL_TEXTURE12); - glBindTexture(GL_TEXTURE_2D_ARRAY, texture_arrays_[2]); - glActiveTexture(GL_TEXTURE13); - glBindTexture(GL_TEXTURE_2D_ARRAY, texture_arrays_[3]); - glActiveTexture(GL_TEXTURE14); - glBindTexture(GL_TEXTURE_2D_ARRAY, texture_arrays_[4]); - glActiveTexture(GL_TEXTURE15); - glBindTexture(GL_TEXTURE_2D_ARRAY, texture_arrays_[5]); - } - // Set camera data const Camera &camera = scene.get_camera(); compute_shader_->set_vec3("u_camera_position", camera.get_position()); @@ -323,13 +323,13 @@ void RayTracer::upload_scene_data_(const Scene &scene) { data.type = static_cast(mat->get_type()); data.ior = mat->get_ior(); - // Texture handles (0 = no texture) - data.texture_handles[0] = mat->get_texture(TextureSlot::ALBEDO) ? mat->get_texture(TextureSlot::ALBEDO)->get_handle() : 0; - data.texture_handles[1] = mat->get_texture(TextureSlot::NORMAL) ? mat->get_texture(TextureSlot::NORMAL)->get_handle() : 0; - data.texture_handles[2] = mat->get_texture(TextureSlot::METALLIC) ? mat->get_texture(TextureSlot::METALLIC)->get_handle() : 0; - data.texture_handles[3] = mat->get_texture(TextureSlot::ROUGHNESS) ? mat->get_texture(TextureSlot::ROUGHNESS)->get_handle() : 0; - data.texture_handles[4] = mat->get_texture(TextureSlot::AO) ? mat->get_texture(TextureSlot::AO)->get_handle() : 0; - data.texture_handles[5] = mat->get_texture(TextureSlot::EMISSION) ? mat->get_texture(TextureSlot::EMISSION)->get_handle() : 0; + // Texture array indices (0 = no texture, 1+ = index into array) + data.texture_handles[0] = mat->get_texture_index(TextureSlot::ALBEDO); + data.texture_handles[1] = mat->get_texture_index(TextureSlot::NORMAL); + data.texture_handles[2] = mat->get_texture_index(TextureSlot::METALLIC); + data.texture_handles[3] = mat->get_texture_index(TextureSlot::ROUGHNESS); + data.texture_handles[4] = mat->get_texture_index(TextureSlot::AO); + data.texture_handles[5] = mat->get_texture_index(TextureSlot::EMISSION); material_data.push_back(data); } @@ -408,6 +408,12 @@ void RayTracer::bind_gbuffer_(const GBuffer &gbuffer) { glBindImageTexture(5, gbuffer.get_texture(GBUFFER_MATERIAL), 0, GL_FALSE, 0, GL_READ_ONLY, GL_RGBA32F); glBindImageTexture(6, gbuffer.get_texture(GBUFFER_MATERIAL_ID), 0, GL_FALSE, 0, GL_READ_ONLY, GL_R32UI); + + // Texcoord + glBindImageTexture(7, gbuffer.get_texture(GBUFFER_TEXCOORD), 0, GL_FALSE, 0, GL_READ_ONLY, GL_RGBA32F); + + // Tangent + glBindImageTexture(8, gbuffer.get_texture(GBUFFER_TANGENT), 0, GL_FALSE, 0, GL_READ_ONLY, GL_RGBA32F); } void RayTracer::build_texture_arrays_(const Scene &scene) { @@ -453,19 +459,72 @@ void RayTracer::build_texture_arrays_(const Scene &scene) { glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA8, width, height, static_cast(textures[slot].size()), 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr); - // Copy each texture to array layer + // Copy each texture to array layer and set indices on materials for (size_t i = 0; i < textures[slot].size(); i++) { auto &tex = textures[slot][i]; GLuint tex_handle = tex->get_handle(); if (tex_handle != 0) { - // Copy texture data using GetTexImage and CopyTexSubImage3D - std::vector pixels(width * height * 4); + // Get original texture format + TextureFormat orig_format = tex->get_format(); + int orig_width = tex->get_width(); + int orig_height = tex->get_height(); + + // Get the correct format for reading + GLenum orig_gl_format = GL_RGBA; + int channels = 4; + switch (orig_format) { + case TextureFormat::R8: + orig_gl_format = GL_RED; + channels = 1; + break; + case TextureFormat::RG8: + orig_gl_format = GL_RG; + channels = 2; + break; + case TextureFormat::RGB8: + orig_gl_format = GL_RGB; + channels = 3; + break; + case TextureFormat::RGBA8: + orig_gl_format = GL_RGBA; + channels = 4; + break; + default: + orig_gl_format = GL_RGBA; + channels = 4; + break; + } + + // Read texture data with correct format + std::vector orig_pixels(orig_width * orig_height * channels); glBindTexture(GL_TEXTURE_2D, tex_handle); - glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels.data()); + glGetTexImage(GL_TEXTURE_2D, 0, orig_gl_format, GL_UNSIGNED_BYTE, orig_pixels.data()); glBindTexture(GL_TEXTURE_2D, 0); + // Convert to RGBA for texture array (always RGBA8) + std::vector pixels(orig_width * orig_height * 4, 255); + for (int y = 0; y < orig_height; y++) { + for (int x = 0; x < orig_width; x++) { + int src_idx = (y * orig_width + x) * channels; + int dst_idx = (y * orig_width + x) * 4; + pixels[dst_idx + 0] = orig_pixels[src_idx + 0]; + pixels[dst_idx + 1] = (channels >= 2) ? orig_pixels[src_idx + 1] : orig_pixels[src_idx + 0]; + pixels[dst_idx + 2] = (channels >= 3) ? orig_pixels[src_idx + 2] : orig_pixels[src_idx + 0]; + pixels[dst_idx + 3] = (channels >= 4) ? orig_pixels[src_idx + 3] : 255; + } + } + glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, static_cast(i), width, height, 1, GL_RGBA, GL_UNSIGNED_BYTE, pixels.data()); + + // Set texture index on all materials using this texture + // Index is i+1 because 0 means "no texture" in the shader + uint32_t array_index = static_cast(i) + 1; + for (const auto &mat : materials) { + if (mat->get_texture(static_cast(slot)).get() == tex.get()) { + mat->set_texture_index(static_cast(slot), array_index); + } + } } } diff --git a/src/scene/material.cpp b/src/scene/material.cpp index a597f2c..86889ba 100644 --- a/src/scene/material.cpp +++ b/src/scene/material.cpp @@ -10,7 +10,8 @@ Material::Material() , roughness_(0.5f) , ior_(1.5f) , type_(MaterialType::DIFFUSE) - , textures_() { + , textures_() + , texture_indices_() { } Material::~Material() {