From 0c48d53d5c12b8a0f5f4665539fd6458a21816ad Mon Sep 17 00:00:00 2001 From: ternaryop8479 Date: Thu, 5 Mar 2026 21:57:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=E5=AE=8C=E6=95=B4PBR?= =?UTF-8?q?=E6=9D=90=E8=B4=A8=E7=B3=BB=E7=BB=9F=E5=8F=8A=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 扩展Material类,添加PBR纹理槽(Albedo/Normal/Metallic/Roughness/AO/Emission) - 添加Mesh::compute_tangents()方法用于法线贴图计算 - 扩展RayTracer材质上传,支持纹理句柄传递 - 更新raytracing compute shader,添加PBR纹理采样和法线贴图TBN变换 - 修复GLSL/C++结构体内存对齐问题 - 添加ACES色调映射解决自发光过曝问题 - 修复累积缓冲区应在色调映射前存储HDR值 - 修复G-Buffer材质类型未传递给光线追踪的问题 - 添加玻璃材质折射逻辑(折射比例、法线翻转、全内反射) - Cornell Box示例添加玻璃球(折射)、发光球(自发光)和金属球测试 --- AGENTS.md | 133 ++++++ examples/cornell_box | Bin 778312 -> 882936 bytes examples/cornell_box.cpp | 948 +++++++++++++++++++++------------------ include/scene/material.h | 100 ++++- include/scene/mesh.h | 15 + shaders/raytracing.comp | 146 +++++- src/core/raytracer.cpp | 47 +- src/scene/material.cpp | 56 ++- src/scene/mesh.cpp | 233 ++++++---- 9 files changed, 1107 insertions(+), 571 deletions(-) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..07f98a4 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,133 @@ +# AGENTS.md - Aurora Rendering Engine + +## Project Overview +Aurora Rendering Engine (ARE) is a high-performance path tracing library in C++ developed by NanoEra Studio. It provides a rendering framework using OpenGL 4.3 with support for GPU-accelerated ray tracing, BVH acceleration, and denoising. + +## Build Commands + +### Standard Build +```bash +mkdir build && cd build +cmake .. +cmake --build . +``` + +### Build Types +- **Debug**: `cmake -DCMAKE_BUILD_TYPE=Debug ..` +- **Release**: `cmake -DCMAKE_BUILD_TYPE=Release ..` (default) + +### Running Examples +The main example is the Cornell Box demo: +```bash +./examples/cornell_box +``` + +### Testing +This project currently has **no built-in unit tests**. Testing is performed manually by running the example executables. There are no test-specific build targets or test frameworks configured. + +### Linting/Code Formatting +- **Format**: Use `.clang-format` configuration in project root + ```bash + clang-format -i src/*.cpp include/**/*.h + ``` +- **Clangd**: IDE integration via `.clangd` file (C++20, includes paths configured) + +## Code Style Guidelines + +### General Conventions +- **C++ Standard**: C++17 (project CMake), C++20 (clangd for IDE) +- **Indentation**: Tabs (see `.clang-format`: `UseTab: Always`) +- **Line Length**: Unlimited (`ColumnLimit: 0`) +- **Brace Style**: Attach (see `.clang-format`: `BreakBeforeBraces: Attach`) + +### File Organization +- **Headers**: `include/` - Public API +- **Source**: `src/` - Implementation +- **Include format**: `#include "path/to/header.h"` (quotes for project headers) + +### Naming Conventions +- **Classes**: `PascalCase` (e.g., `Renderer`, `Scene`) +- **Functions**: `PascalCase` (e.g., `initialize()`, `render()`) +- **Member variables**: `snake_case_` with trailing underscore (e.g., `config_`, `frame_count_`) +- **Types (aliases)**: `PascalCase` (e.g., `Vec3`, `Mat4`, `TextureHandle`) +- **Enums**: `PascalCase` with `k` prefix for values (e.g., `LogLevel::ARE_LOG_INFO`) + +### Header Guards +```cpp +#ifndef ARE_INCLUDE_PATH_TO_FILENAME_H +#define ARE_INCLUDE_PATH_TO_FILENAME_H +// ... content ... +#endif // ARE_INCLUDE_PATH_TO_FILENAME_H +``` + +### Namespace +- All code lives in `are` namespace +- Namespace closing comment: `} // namespace are` + +### Imports/Includes Order +1. Corresponding header (for .cpp files) +2. Project headers (alphabetically within group) +3. External library headers (e.g., ``, ``) +4. Standard library headers + +### Comments +- Use Doxygen-style `/** */` or `/* */` for function documentation +- Brief descriptions in header files, implementation details in .cpp +- Avoid unnecessary inline comments + +### Error Handling +- Use `ARE_LOG_ERROR()`, `ARE_LOG_WARN()`, `ARE_LOG_CRITICAL()` macros +- Return `false` on failure, `true` on success +- Check initialization states before operations +- Log with context: `"Failed to initialize X"` + +### Smart Pointers +- Use `std::unique_ptr` for exclusive ownership +- Use `std::shared_ptr` for shared ownership +- Avoid raw `new`/`delete` + +### GLM Types +Use GLM for all math types: +```cpp +using Vec2 = glm::vec2; +using Vec3 = glm::vec3; +using Vec4 = glm::vec4; +using Mat3 = glm::mat3; +using Mat4 = glm::mat4; +``` + +### OpenGL Resources +- Follow OpenGL best practices +- Check OpenGL errors during development (debug builds) +- Clean up resources in destructors or `shutdown()` methods + +## Project Structure +``` +ARE/ +├── include/ # Public headers +│ ├── basic/ # Types, constants, math +│ ├── core/ # Renderer, raytracer, BVH +│ ├── scene/ # Scene objects (mesh, material, camera) +│ ├── resource/ # GPU resources (shader, texture, buffer) +│ └── utils/ # Utilities (logger, config) +├── src/ # Implementation files +├── examples/ # Example applications +├── shaders/ # GLSL shaders +├── lib/ # External libraries (glad, stb, spdlog) +└── build/ # Build output (generated) +``` + +## Key Classes +- `Renderer` - Main rendering engine interface +- `Scene` - Scene container (meshes, materials, lights, camera) +- `RayTracer` - GPU ray tracing implementation +- `BVH` - Acceleration structure +- `GBuffer` - Geometry buffer for deferred rendering + +## Dependencies +- OpenGL 4.3 +- GLFW 3 +- GLAD (OpenGL loader) +- GLM (math library) +- stb-image (image loading) +- spdlog (logging) diff --git a/examples/cornell_box b/examples/cornell_box index 2e4739c940bcbbb65703e6dfd650864a0651b439..53c8894077f7e9612a41f5ec6fa05dbb84aa225b 100644 GIT binary patch delta 314433 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

cvaQP4m?VGA0s|^MDXayBi`G_K44m|maEBMV4 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
1;SxGi+v9{uQR(|IPC6 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 Q`fu-n4`%b&@}^AsUvOjDiU0rr delta 224766 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 z
{q{e>rW4~de^NZr_rnu|`yeNfG<(TpFHFmh4v-N(-X3@B`{gRhoa7gdSD@ zl-AtQ49C>#vN5wyKKc8Ux>sscQ(JRd4K;WytSPy)>3_RrMy-_)R;fv@oWZJ!T0`q{ zRy9acy}z{X=heFgsq3Gl#YMHfwB%2+=%QNHIJ$Gbw)>)bO_I)EBFnC*DaN^7@`=}< zXpKLDBl%A?LpmI+UHMaOBTM4~wCXu(j6w4A*9PBE`^wT*AMNOE6(6y>e3blkM?Ee* zKT3YMi*~!CHJ?1Viro z{UoVy2RZaowHdpZB$D__?QDFfN@Ue5^pUIK*!4>7C4HTx1-(}L;0vz5X|^|NMT4=o zQPNiCt04xdXq&dbK=m>hvkeltT&NB*_JSkstr}u1aFNJ>w`#xOi!PGOEQg_aMw1!# zH?PiAI#Vg%o)KcDw&*?yOn2VGg6I57>bz6ONw12u_3zZulGOU`wqH#hRq4e`t(3`x zPqpsZNc>z)8>G;UWWTFvxpaO5>08R=B`w)N#+5SFuQhqYdn&+y3o3|tkJz3O12&M$ zrA&>blh24xX;V+>lV>EQw5h)ozn)wvZE9xh7@AK4%9zedW7d(pGA18s@H(QpnewIP zYcWg1UyXW^o#0Jh z1GCx_+;Vq90JNpb*W1Z$vuQv?uhqJh(^rSXDp9jOgfRrlH>y26Xk+N*qz*!E%&W;n z4^yi$9agf+@pDK%Iq6}tNHbQE=N=}jaZBZV(#+E|$e0Mn22ayw?!e=d9x%Cj1&I&V|q$8_n(u*7qDF>G2T=6o2IsFFxggj!3cBE2zrqW~y zlCFSufl+%qt||W zkQOh|EdHh|2I)X_M*biU?S-IQUF8h=jKhM7(TOWzvMYmW>s zw+yC`W|^Zej?h;uL5vAnMi$gC`Nf_?L72mSw2Xo;=ux-6(F27R;7RvHR)P-m+N!hd zwBY;4I(aW6uU)R?)-e5!@9s(YWPL4DlJS}`Uwc-|lr2d!muNfdnA#eA2hS{CJP9}eVDx5uCyZ3=fQKZ$AwMPw1`wddyEAmT2(_G`w9JFwaOfk}< z7uxhjCO?C8{yF)&v8kElK0&+M7|NEmkJW0%n9y~c8cn>KnLd(g+qEIhOywjgWek}T zXPPZN9jz(NO|Q{{jwD4bOrJ@!Mv~d_rdCq(k=nUTnpkVdu;N);@J82H;(Np?j2JzPcvwvrrIrrju$s^4blW$GurxI?bAG9^o zaH386ZQ|M30$v|y?Thn7hprdzj$xfo`JJ#pCp|$>GZ*sD| zsiG9UL3`BRbkHE3>8t&JoV^WP6x9O%J?slRBLq~asH?7uhKfpwhPo;$Dj5|i8tSH~ zSY(@$QK3>xYKnzMsU0mcDk>@}Dhn#ET6v3#ip+{zR9044R8*$BurSZ}>@J3T@BjZi zpJzUf-*bNF{bkO~o;hdOKi9&;+@__~KWA7rn+?+ziQGjLd-Ni4&mv1>eDcEXkuf_f z;~99CX!VPonbkWNTPk`O-VoK3udysP^gWr{J*;wqkB^3&V02B}EndvAj0?MYcZl-I z+uVjKcUS+JW0^pHc2+;O={5T$kABID4&QG*?hkB%e7kw6j~7}l5Btya9-R+d>}k$@zPhu}!XNOQJX$=y(ej(2@gX3LvK!??9VE22L>bz}AXBFl?mhQC)zU}qn4vg=okB(M}=3fDYw)Z442KT9{!}IM~Lz99wF7^ zD=g<2j7ec3)w7(U{5|s;OJk2U zFUn#@^}p#w@%gKk;XU$a$;A>;=j6>2JzldcHGXodM>t=zl=p7Gy#~W$r-c2W zCDU;DWcB?AEmJ}a-<+)e?2skK(DQ-u+>c&4bmpfSHM8PRVSLMyX#D#IPxZvNEaQy> z9jiP%%>4dqQ~;TqZx~?^@u0mrE7hX z?WuOYXDKink7s$rFCSUf8{ff@(_netu<0Ao=VMEz@%5$D?#Gs5t$vBG_ni2?T03G% zpo4tZt#~KQpEI`DuJ%-4@rh-w*?4!Rr@Fk+5^jtrW@3_u54k+Pe{qR8@TKKlbsgO&xRPyS9-+6uPv#==FF9i%*$TM?dGpPULX0v6e@yIMs^$pFIP=j$H(k(w*Dvdob4E@D&!Z5l?M73DniuTO#=-I4` zmb(!6c*SLRo8O5SKebryv(Cfi#C-XK^If*)%1?+iADiw=)AE+s{j23EZHM1F|4lLb zH;ZokahgY5^1Ee*p|(Km_}wzH$2(E}KK53Wc-aaa6 za>WLD^_-GRRg#F2jW2ANiS|tx$|*&0u+@@h=($0R`@^!$xO%Fm`i(y^P}LkLdGbbZ(se>_t$Nz<}b$` z@PCx!f%k-|lX5(Lp}!pGT^J}wo)os5y|0K6-BN1&D8VDjbe=JG*6j{cpEd3uQ989A<)z=%;XPA_U7BOb^L*tea9&y5~?lS&9JmB}GH^eWY_&plu z5f56_eunAKi5iPKV9Jkifs&k}5xDoJ@v`Vli)`a{lKjDXBV>698-3E4`#aMjcO4SZ zs_HThzrZ8zSJkPSxWHF}fzOJsRW;tY{QD4bj;0Pb&cfhpi8%*FhNe~ybPl6RyY-Z5 z8L2By%})*KoR_-2fAtg91AD07nT*#D@(5F;I&#pvPjK%p8WhN>d%1X9;x;o(DN&Qb~~En@21LF`F5$R_w;#H+!?8^3Cpw*3%%#iK*ohgb&7F}%_EYd z)bSJh$@|$F^Y35Ez+d}1rM&L%HvfvkZ#VgFMjmpJV)vMTs}@yJ>N?{PVvIkRVn<_G ze6D(_;nXYq3RlaP#18QIep@r#nG@&~UAuCm-P+9_8CSYI+=8Rk1mn3V1A5{ofodT5k>+>$dPGG}wZxj(*Pr`sldmxv zlz%>tv~BWSqsZu`E}1-wH)wL#sheD8^C#(jn|ab`fM$eCwtdiiqEDddv@=cTyYicp zdwRt0y=b~yKJ_=<5}3BF_N)qC|AL6^t>%YS#rT^pCdSuvy~Tmv>IK?XsWLgTPyE(f zz2xHaJ-V;y=&rs2=zDR!`~@hX)Uxks zdQV^8w>~It>8mDBJlEd?pZ_?x2R@7Pf9ZkGJu6!K(gVMb4)nmI7#{4W-ea7OVU$(9 z$`Dg2yW$M-u2o%QOg!IHJ*mI?pvicDgh%{mkb1e{<|nF$4_4m{G2RjGss3$< zr%ZOk+Yhl0+=nIREoCBem^wLqwnnz^-r(D16`snb=+xnz%@_H^N%8^kJhZ6Ah$s3Z z`fd%21Gk9CICCH3-B!0fyvHTmSoVGUs5c%FKMYfcoO7IB#G3%FfN?)OT;1~mH6cV> zieG}1?Gu;Bsc}6w?(;uvt%iQDL+9YcSm772k|iA2+17S8qvF$A*NwC0-k+jtbc=n#ZZ* zjlX%_V$gW?{2r-O{jVvNd&QLTYH!nNo=L@rlhnSJE6G)J$|mvqB(>MnG>@B}^<^Gg zF?fd}N2ZA=ax)++EqIa2+hMi=HV>8FxEV8_rssvpy9!kv<#F>C&=f7cAFqx*|AsNL zcb%3?GZ>*0W1Am$i{Tfmtv#zp%Uk-f)HjYboDfip4z>RjZ}X6iO2A@|DC8{kM2;qB?A-H4tTz zFP_v_Z?fgBvCU4O&oA#AiARpHo~`2fNosF{QY=PKQiob@oJ>5~w~IxS)N!`kPW!Xu z5C1B^MRtuQRb~mo zi^P#B>Tbi$Tg7!#S<~id73U?Z*BUBr78{b)B*VLj;^ky@)R25RNy>B`1xUL)JXU_N zs;At}cgR;F_Okrvw`%h=b+WdFwqt~gnbqPcCHf}W~nb4s$F8tZ1oevcee{us=D1U@Am4QscNRd@a=K&>m0R@ zb^LL+f72_Q%H^inuYI?0Ho-R69I$Iu_$zWd%Nr?@gr9pZ{{lGJd%YeOz& zTXor6gX~P}pXJVPinHvtAbUcPJvqpp?zfLUlVDbmhuk20;Te1Nu*=j-LtO3O`%7Y6 zMUSE4<>C-ol7>Le+gYR7y<}bXu99`xl|aN@_O6n3*=<4Yfs)NLcX>z-@(?K68TYIp z_pXw4g)cngE@oVzzH-j!YZQeAEjFcD`_3&w)72HRN97G^`{vjL%J!PdZI(;q6&6PL zE^wyen;&g*i|y%Z`S}&xbkeq$$EM>`KG^^ArCX$2spiCH%DWL!l*lN0_@gMuJ`+V; z^HO{^T&d0;xN-Nvg?)pkzwrtgt=}h=3u$9&4 znXc{(xXN6lc5QUc>T63@+52N zhxB};NhagppAcB#_;s!*T%h*u`NIHz4(0U~7^vRN6_pDZVA7W|O8mIoms3M?WA&*8 z>h&Sh!y1W;>wRa0|GIxJz#{?ni}dT~!xN9n|2~udeIJk;xOqO7sctYl_nELQRIfH1 z{8YFWGOW$|Ozc^x4z|P$B-P7~iZ>Rj<%VlN71u6O6Akx%A|6_#jy9b8srX=#>M$5T z5hE9?@rEBh5epZq{VY2d5oqTTv0<^g)bQsgqG_=@#4!025#k``!=H%04z<7KK`Wjb zKCYhPP~S8@7F7~{f0k-W?9t+yYCh#U$T@Xf+YUy?7pHT+$!9MZVCyg^a@wXTv3Zx! zn#r7pL`;@y6FJYQN#erg>R^$)T-C(l=|{UC2V%utgCD@*REZ&)+WBqR(pw;veZ#w*R8%TZ|SYqti%Ww z#RFD2S1wz9bFOmJ%DkI%*($kq^-8C6>GC!C$_>k|TP^O89?O=i7E!lcy|~wmHLLU1 zu5sQpQL)*snl>-RHp+I{np;H93N=CezDiA~PP|@yBBc5kr+V|`or8@%#T!qBj}Z^A zQU~oEVT=-4tJLXY$kDJ=G3HzK+?@$Vvnabxy+hbO2pj2>#8)}$3K6wmZE($6cAax& zw!Bfvj9<4b0Oxh9ijwzVr)XRlm4$~H5fWY5@b&KdrivaMKiL#}gW9#?kPQ8-l; z)X-3KYgFs}!h>BhE77`{yHu$aP7Rzv?oyY>83x=7#hMzmH}$0s>k97o_)k=4>;x%1 zxO0%PujrMdMj6Ok;kD|0JUP+BjQ(^XP|u#SQcMZjat}+M`?l@aT2$dCqS+?d=|Y2&cEzqyN$7 z(Hl8?U{}|)={bS3g7p<$=KsYmzeCovx%8N|e$U5XUGD$;*%e`2AQ4I1P5wCY34g3x zMxwB%ayG2~?+oqnrR(}{hpq&ISwTd>nzVOiM4Dar`3bg?sYcG;*stLH{C{M?7nduL z+d^3yc?Rrtfm-RZOFrK%1G1*1mPE<-wzcU|zqaYW|JA0?@wDlWo@&!)w)-`ycb)Ta z?=pAM)n)kq%O~ADBLCf{KS+Wdf41qHNbpLu-vgO?@MN3*E1Bwwf7$6aef;l!d&wWP z|BhC_WjcYMBBF1)bpApFEUaBXJs`~@SJ!Hm&2N_6~NOB69dm*x2k2AFE7Oh=h9>HQ+ z)?{8C<=3R%bzZOjWA4)aCtckF{Z9|w+z+zwvo{I8M1nm@;6dE3L$d@j@DiCa2Qnz* zS{L4~UvBbeq$0Fkf5PlHFJigq8$H_f)A(_9PgDwT6R5i;&EFoF~yvnOLa2Cz?>c|jT`>k{k@_e&;7n# z9s1nee*L`r|J(ft+LRp~`X4(f$jc=3QipDPu|scomJB@Ep(ni3p+{zR>g(nQpS+xs zq8Z1ZuL^cN+y2e}2lqd|>D1T0`@he!k2>`g$Aa804Dy^B?BT!Mh3zMGfN1zjHC4C% zp*EUa%`u8%<$=UL%B@@bD2ij8ThHmMD7V4Jeu^@GyjxG?Y5W&>3|^Ily}zP70&V;t z89KqO?}1e?VW6V?Xm{&HFk`A)kF_bvqG{M+IZPg;D8Iq|@X_gRy?n6ZQr^RmIz&-o zW+3o7w-JU9rJtp^_2OY28MUu0lmQDIK8oYPW8`gOV$_kXbi>VAZoOh73BrU;B(Th_ z$1r0ayMmI!)iCBxMfnc4!uV_=-a-?=3RnP@tuz4)FQR7P9vHpSt-IV9>=@FwF}Dp% zVKEH9OHsVnkN}LmmJB{h26L#1az&}UjvAni9jmDkSPQ+p`t(8*eaO3ps;3Xt=DPLG z^r5DF++kV);pju&jWiu}-s^VhCOT96PPbkU9edq+3Z1FAlqQk<7j_~ng_*DtI$27g>D!R!^xN(+F;rN7dgaGiBKwY469&0JPey)BW!^! zF#aGVq$Eygh4nBI#vfuH3Kqk33ep7gWP#qGq_72+L+hK=q|{+8HCODy(14-xT{;h! ziL;)PK>G(I3|ku9dN!Af^-Juq7M_GH&_0+FHjyA~`icxg``7dV==g>{!By4rE#aZ{ zdolvO$K86g4EF<_7rLw%>|AzEm=4oU&}(7+ue3FnVN0u9PvSC6YolghsgY-NE<-D` zE5{^x^>LJl<6$$jLoZB&QN-hbv9K0yCcaYMwv<69?`m3ya{bry@+gjo?7aR;;d)Ms z_2^Zw7#@c9p*+aLN*FbqhC4!3rk@=tb$GOFtn!=4@`qC&;gYMG7eqQ7>Y5(!&;aO>tP0L zf;rH7rAIG-4p;)6upAb^8rZ^8l15mXK@(g^%`KqKp%W%a`&Ay@0gE%qC~R5i(f32| zLXS(Y!w|p7qc=e(%VFXeioGxe)@D&NuwXfz4BE4)0fy)_m;jyEPy?{wTH0E26&c|x z%>~zc^pn^fP6~wGegpA9>uNGIgLq*v3}54-Bp95zv}FnbZ}jN7Fl{Zpc@|X*tF9o& zH_>)i5v9K5>!BUt8D`6I_g?X?Z7QrT13R_?m^uoh1 zyq=nZE-Qu>4DnF8m<+&ZmpuoVJVHFQ!(^BSGoS$6MP0$NlVfd%?f$8%4#}G4} z48VA3hsiJvWhUKsn*1$?w4{PBu*aT0)_|Iq>hIl))$)O&mL+j`G zo8clL1}kH}qme3twQ#?@2mFVe!b+&lB*|!Yb&6_0ahh{#~;XFjys7MV=}7EdeCIr?bJ@~f6E1`7!EwTHmK#^V_#wE%QfR##_Y2zeOjsJ% zrnkV_5zMj0b9;5hx9M5XKDtdm44cNZ=`rcF^@VM^1KP);!_sj?#BDf!e4CyKOJSX~ zPar~Qor?dt)Le3#UIwkx+w^>H*Vaqh^mjY?{X$TP+6rRm`K!C&EQ- zdN%Z4O$ni6S(_fdfShKNL1@is)AvLB^^^=cR+EvdsJR>4^gQTfYV;6nf^JxFGwzx6 ze&~epx3uX+&~a;~QW+GlnIHosqq5U*X1+7eFDp?c&#=}aO z1`C*rErn?vOo3)`{nuhJEhE7Y=F*^-IksJrOwL)C6Csmxo1uf5#71d9j|saKxWgn^ z%kF*$EM>EMB`jb!zM4%N_aZ)M<+L>-%BtZl*9{{T>3` zKthkU>&3ACNiwjSa8HwA$(P&pldy@I#*8)C54P(SlJ7C~3B4avL%9^>YibClwcsBX zoMMi(c`Z40lYyHE&_+VAvV#)CTAc)-J>09e!r}qUDCSWU30^(?W)hs})eB%fUo>ri zRz9wK5>_(BnS2WcVrsJp7Bj6`Bgu58ax398`QQSqT;z4>B^a6(!&ylkp9>!}!~oFNI#0S3e5V z?(phvSh~@xTQ`v2CLEG6*zaTx6qarw$I@Y|SFe=%HcAF-@AB%=1thfHt0%(xonAcy z#_#p&d9bCFj7ah+iT%*d_biS=$3Z4=Z{sRD#GERuhYr~ErdQ8}cGp{8eKQ6p+#@}} zN|<)os~>_6coY`EW?1`gGJHG!-=>COJuHNdcd0=rKe&BTy4QR4csh3}OorYMh#!W3 zNCu@HDurDCX`hf248^br791r(X@||yevF#Ag8<*s6tL+Bs%|6vk*R0c0<&S|PhR~n zjQ@?A*+c<;Cn4zUq~x3N2a6yR)p|WFHFoH1r{wy_kbWl~U^aA`I`l$V3QM8Y(xFFh zA?N%RA}6%>=+F;CCmU0(Tk!`IU<*ux;o;2ULOaZZ^{@nbVWrd~@n3{~Ziil5L{-?& zCxLBLZ8QnMmYyAY4NSA*@h)nhKU2c67?#2&xF4ns=+Nt6Ej$V9p?Wv&gUA?c8A5!} z8B2j+=}^MMdRPm+u*rqNI*bUQGme18L_EAhPlnEsBn+*i2nY*ib?Bz;xL@9($H0Os zI`kx157S_6Mu)x`+S%*62gWnOeq6f4s2#*}D>Va)VIHhs*P*)(VJIkI7XKb{D2NC) z?IB@U`4CkNy{{2L2?@O3p~pjSZHJx@9S6vm)DL#(hoJpU;<*?5Tf_syKgJyv{L-Pf zK*w(#dhC5?8rDQ%{5T@J_uHTF>p&>tI^nPCa@T zRolN)PluJ0I`zY_*50YNLMMMSHheb;UD~M^L+9L1y%84QNPPDb-yNO$erVm;se57R z03EOdI$=31hBYwU z+o`J$;NH=xr^3q4PQ3`mE4tnY>)}b*LD_4F1!C=!Fjr#FYV{+da1O-Dp(8;!%El)>tPFYl}77& z+&&zj9TxP|^+FiliwIynY=Dm51b|McJd8gW4NGAhtc7-H?W60((9xH0u(F@7o62x! zi%k+t>rX+UV*sBDE93h24%YSk2-cyxejFAB*03EOt z=E4?O0v&uYpw84lP^LvhO^;Bgg(+0NQb?GVzHWVx3=@&O$+X2-Y`_@JS?ZDzKE~X?bX*l- z%Z^Zex!jMgl6d!;s6#UaY3!5Wwa3~1TG713*%ekM#NS_4+-MidbkZVhnWQ6imlX$D zMZpey6Gcfy@18LkAPv3bf9TohjX}CqCdLu6K0R%&5|STfdGPNa6s2FkaEn?(Cevj_ z%MO=7mD*Htd9X+f+@cLOwHjGe_icq1L;EN;&V0^?`tXJTn&h`oBU+7{EL%d0&D%{o zjQ1E4(MvfSdDFDUh@U(0^Ir{=WxOM#dkf77lUY2<*@p&VxKvCVW!zb38tGCQv6Bc} zm-5;o6w7}_S`uQMYwRBD^f0_pHYJ`i=J1ATO#~5NR3xS@)`pl&#(kOyd0gw=RW#W@ zj3m#_Z^dMj$saOxFIqe?mE)F`=jJPW_!)p7de|1jRS_|pjOh`%#`Tm+cDiY@)5YMQ z9THTtTc3m3WR!8{ZZd8$C^qalCayfXf-41!jA)Z#S&s;HR@iL*zl6NYW-i847M^aF zeheuQwiOYo)XUN9(0Ob*qsyzR7F`YngQU(OwFWdtH%(Rv9~V_JZ{~GjsA5t~H*FR7 z9M*b?%O22rSms1jX~xgZ;*Ynqo}#KjGl?-vHS^d*gjh%QY$mj63XeB<>s~!F*5mkz z+Cb{EVKFibJ=XcbM)mCgA5J zZs~K}`cu@bN#Mtqu~gX&QX&dNjN9mkXZivDWmn+uy(kO%yLG-NtC;#+BKtyNi0llq zIcw?BRlG)CfLTe2h%(HIP@^y&Mc?zNTOTEL4q3^$M6@5x#$Cbm#a3}}o;GvrVZ^wB zZavf&yNtXnqq^DVAt88$b3XcrCWbY*3sUr;++g_VdOC>cEyywRg9Uh^^7!8fWqh9 z`e+70Q=%`ky~J%-YdyqG^R+=EGH||#F#BcfVKVh&XALK^;#yViWUq*D?e+OSZS5~aK@-dvy!j;tY^y_Rc3 z*6bH|ioX_Ug9bMvt|zj~Wn_o%^hGAG{aEY;1TH)v#$TlkI6nn@JY_68=+@btq?n5C z6xUv*T`0#T-}T#q=j6Z7E~-LrwWEUOWo zKyN(c*01n|X87^d6*-IMo$?p5sXy8*ds{CtIa3=mHifjE1Kj#SyqoUbO!?04a>?j9 z_$fH-)(hx*rj47$!aB|K*lq2|3E{m`kRz|1`B5X<;)?|u(61T&$3g6o#`t8=HMV27uopS3}$%eUm zlem7j)?XZ7s97T$ajAUItJ{3QP7);nZupKOxV+fN)>to0pp7?-9Y zfqUrz8Ty|(mL2Xm?yYXOZj`YkRN+7SOvQJ@y(A*Ru&77ihONkosUsc-e)`FZ8M9Ha zbZ^4QCX1Ctcpn>V5N*)^N1Bov{8{c1PG7u=p8bam+lY`FQGHmAlfxv zUPy809pd*T+RTyRl=6P^?YoK=-68AztWFb4)D`rLjBt-wx>OrvX~5#Z^88Y*f0%T2 zBV_x9K`z_*^x$xhJ{$*s5qV~C$lnesv+!IcxEJ6a-`#ytMAW4L_bl9t|1a)^xR?GP z+{uipl;NS0++3AKUhA;z$KuM;hDR1sK}Tg!MqkrummEoK;`1ynoTIqx806N!mu;sr z?nRWT-PpaexVGsR|YBx>3YtjF_ie8^k&*F8M8d3mWJg^Q%Ei>EjV=mTNtS z9L3U%2l-UVQ$ntB70;XMbYCxM#jTP($WJb(-eY=k5weZ>BSKjcvE*aZgl35iKqA@&_@JRsb!+&;g>PScSy~NmK&6K zA(|8ILS_Wcc-)1!$0z=yRiGV4>&lRfuomqQn#u3YcS$v%)uLs~Dq9{_vklbR_4gxGKS?5YRX$OG6!x|@g5O&tu}mMvGhnJ+<%B5c@wt+Uy9}E zaiasCj$%>%ho=_wGCtZMV;XPm>wk>s9+NDOTn`v?;Xge%87&np8m*r}?0Z4$EzZr+ zhFFRbTlqA_q#Uh}r4q}rv3zbIM_XtK@5jBB?~1&hqs_ErVu|MSAwEkvmWqHSGN0^} zj^pJoDVRF)#go@*lU;`qtE~PTr0H-zg=9`5Fx4Ql=b)Jrc6)T5mVJlp=ecO{XjxL3 z8)3UCF#Ax1o`=q(hVPK!OVM(Jv???w8a>S4sinumh&g`oOyEYe>>#ZLEh|V<`jgQh zEgCH|NQ*1a3 z6Pj#-?qgglnrwpZnrQ%iGDwR-iw)A^(QENUK0Q+NHTDsH}du=Cz?q3}|xsYkiP*9IY-$ zbE6#&(!yEDB*e{UM8B4XRv4sZp%nya zd1(1TS`k`akXDM88>Cga5S>BdVYHkeO)hcH4$@lCvVt^aFe71*CYLp525EAMa|W6# zMDZW86Uued=|LXl8tSwlEgLO0NXth{3DSzul7qA|H2XiA%h&t&BPRVL`m{Q<#2~E+ zEg?vgi@M{3G!qZBacFWFk%ugtT=X3rU;Gf-Uq;ydDJ&U}!4YNzBIH-N?~oDZpv4ll zyH(Qcuv}0)DLE1?)HAqu=L^1_wR{7Y}O>@bT zBp`Zso?Vg@Gt=^{v>R;AEB4S;TNBLI_4+m)uv_nB!E?RAnCKvVB1ZjKF_IKB0 z`jv=P-9@xRXq7?QQM8I6tr@L6Nb{nV1!+;k7+Hg~STxt3AW?2<*cGIup_K$_S!l&U zS{_<$@q{W~m1~gy&%j%CuObGIrj20iHWuV0cX*p=IL0SQtEl4Xtv!1QFlybzF zvqhx_Ejmc6M~e#5j-iDIX(!RtAWda{$rPkn(UhG$|8*a~6A-=kovo#yxr4M!w39)a z6RkB!D@1Dv(srRWcWJWzW%XAe9`6zZS}oeKAguwdDM&kx))=I@(T<|=>&|z`pKamH zKgjrIN+rYpGWT+scq|UG37GKn9ny0WnrwoRQn@t3wm9(SHyyocgh#(u>W0fBY|aQZ z31g1Wzvz{(jUQN!Ic}s!zf}4mq3Z~1!&r-+HPR!l&)517IEH0T#M!^BWkhcD#GPXO zI_;t!(w;~Tigx-V&cz(g&vsQlwHRKEu;u$_5Q@-Eqdel`b=uGY`?1uJ^Gy77y)Tdv z)uSuBWW?hyQ2C)RAAh?0k-zUJCh|kw)gF@4BsofaEZo^dnCSNFbmw9074F9#P!mW6|iF9toEFl+w_6Uhq;x&lHXj*a(=0R`Il z&|J)=d;I1~%vlfk&CQtkgW~r~Ke0^GRg{V&(wv3axlcsghFNaIN+|Q2<<_f{kNC}U zw^hw!esenJg2zRt^k0lQ`AISHc5O;%17_<};`ZCMIiWVDL+hUwA4+pB=7LHwz@;q- zJ&HN=MX}MP&Cy~nVkCIkqYo9!3bkl)!lm`=eVjC-USY!7Oy$)q_q~_D$1q)td7QcZ zafRBD&?-W;ye5_uY9m6AVGgeqI|{Y&n%rJha=@eS6?fdBjny)-M!&&FfyBLqnpOPg z4y|{D+-cSL7W)zm)L5E`KoiUOFSG%N(znI!cMwlFy}|Y_E9n0TsHLJEX9H4qZ8KU0 zJ7WIP&KC*A^s+-ZI6fAuH)^v&!^csbpNiKuYJ(#ZG3S5k(Ki_XNj+o}smuLUwT)uH zCT-Q&9CGr0xLdyxKc+cLeVuBH;S%{OnAIrUKhTTuQ}G`*1yBsrMN7rf0$w;C-K51t z*5gvdYW`=r{!FKqi1tm|&`A0I#KcPd_oevx5;118Hf>1Vc-od(#0m0B=52=<{W^ zKD*lgp6#hSwXri2>7n`T1-MhD6j*g2dvqFlE4r_z^J2kpCDV>9uaTK)CAM8;a0r){ zY2MXx{m9G_Ddc)q2w&loNlYeK#Idtx_H6`|TdC@giyd3E0imV|Tpd4&7q@7uLh~@! zw1~l5>8UlCGkz1-Y}J-TmS0SdyNvmC3vsqD7Gp|zkMP%4ZP3`0xEv?7MZ{`)eKDyu zoV9{OW|N&@N-5hHyj+K-hZoD&cm2c^mu3;y6=_2voj9kSX1t=!O^(Il!6IJV)FNiK z1w?B=3@1yO>~Cn7Rob*jOxlJ|2V#uw(dWtFrHjNj+qzZV%E8Bx+W7c zEfkyX<~8Fk#N_CJcr?>59!0eEZqtWLpXHgtSgc)WDP{f0tJ6>BrKMl9uh+w_(G z_i&}fn$;3Dm75kG4i;>=^k;B*%^TpJAw8;@i@!7~mkeS5MHT*nskJdXbdt(FqJYC&!;J6+$rCwB-V2!a&y|qs+nHed!LLI-eO>dKN-?u=xc4}8g z)*|L_YvU~|;$;hbtIotZySP@ONNMwZZTcwLB5@1E)Lq)l(56`oSwid+Jj=w9_n6t- zH1>+OcWJ}Mq+pKQ+oqFtpv$dibeb8)Vl3YRffgdn#ND?*;M)2A1p@Y&G};4g{;~Fg z`Er54gitRrWtEDjcWZq^t@PNcQt{qy?uCVzy$_4g_wzVXi8<>LvFLtnV?^R5MDk>t zKEgoCbHwPKJdOB<6isN8ddCu5)l+SHUlRqncHY@{$eRUs$X3D^JS$5zJ~Vy~*W>fz z3&CiZj=A=E(J9S&m@})y;62)$9)~eESGDP%DB_FfxL4k{hk&+A>F_Uz5BF$`LJKiF zUKFGEY70V}FsHvH?%KWevQnuX;dB zi)SC#~q>&b8&|l{jfI2 z(tx?t&@NmLYwIlOa~Z1mBab?k$V_69pV?VsA_ ze^mDC-gCsm4{(#Z;8AU8L_GOvPHfjNm8ta>s~_W;X76WOxVY_6ZA@e_uBj6|`iKZz z8!r*BKdOxyTZg#nr_*`~RcU&O&JwgFjr_9%h6`yzyPicKG(C8UTwGuilOE%7BAG6? ze-fVvk`1}|60znnO0o+vi)}}RvLwluh_@cou8cg1Sa?~xe{o7kAdVU3#F3gIN0N43 zE=4lEkt*XDEcTXjnU>;`xrmPq$%vjvl}rAv43!(y_AC>FAJ^tYrp;$8U_;WE=is4t zs@U+jHlg<}#PkjA`T!Z9yxdsLd5>Y1So1dPbDAI5Y?00Qu%__pURKjjv;70ZgeSB~ zkr@m45Xte=dO-*-2WN{-Psn>4;;~e=JBA}ZHv6CDjN#JlNJwtla zf);mDgYro&ii{`D=g~{n;zzT^)F+8M9Wk@{w1250al4+>hKDMPXy8raxhJ_cV=>3w zDULkJxR8$7x>a;aa{=b$yTphJZG2b_=ICO+mldwa+Uq6msL;lQsf!tm*>pAiJjGwa zuPP{^JCkVwwp=xxOD+b^@?TlApVICOjdgILRf4F(t=X0QV;u)=PWEn1-ziIa`G%QXLAIUhH5!1d6h^qr)0=bC( zzFi+GQ%g?~ODpl2kLW!f@Oe?d=OM(yKl0fw=`%VYs${&lxn1WkR`O^(LtOkU!P61* ze&$UnLlr3H)4>=g%}XN5)7a_S;9U`fQ1ZwXj3v6QP`aYYs03a~V2 zUNKTy%CLlo`CUdH#*)N7xY-n^YY9&wf03S_@hsTAzR>AAO3bxni`5)UK&vil}~38#P2$`Jt~)`%*SN$&({1&sqQKTdJA4 zk`m1J3d>8{pbHAIcxUs4G8yBd2-~$(bs|O^m6MXn7C?$_y<#^0; za%vtC$776>b%oxF+4QDeT=g<*NMvm$cI8xl!9lJep{8ZKwh&R-JnxzL!*sMF{FkEr z7DgobcK;yvpO?AuG~v?tR?PBaJ+Mtn%h)uM^ z1u`S@>k+bbS%{m0Jsr1{EU*5R(I3C-6>Y+ZJ&0ul_+AFM*`G<@GRW;Rt6USDiPv$_ ztq|Y6qKzJsgL!i{AI?LUM>400!W5#_O7nT-q*@y{GF4U;5%-khSChy|g0J*B*yYCG zV+6Q86t{OLiK!oG{bHv@ByFr;NYhti^;5bmuAto>k(mYHh*!S=cj3yySYX-ZPRgeJ1&8 z*i>dPP8HMM)nex4MN}Br5nxycr$v;>;@dcD2-QkEM$6hCCsQgrYx%zH08RLbTkrMf zrtc*2S2c|hPF+=f9k?h?P4rg*jgd@%INTfr2$8M#-9$09M!WF*R2-Z*#Ie)1RJPKS z6UBqCve2dm@p59y!-MG#8I$kw^0g3>uS;b(xks`!x3?5HWH-w}%SIdGQy5C1iApI% zyHT1a6Bk=^49g-^>1M<2IBtWa+fdwC-ZWS4!jS#bj-wmLb+R7Lnb_^Q>3wHpL>}n2rRBj!XAD-k5go6OhA@=c3T`wRBW1Oa+6KiD`h1=d9k?rUsUoQ z#OSW!YP}5TA39`!{kYlKt(_+WTywGbUIu7IJkF@(YsLxx1c)a3A~0(2K>S z16&Vw#6w*Hj52_KK$M*;6Sw$cKFTSFgx|-Dtp`{aUWu4bfLs~N#|*j=g=cM?qoI_xF$Z=hMX|NgXGAYph^07j; zeLcEuClw`i4%yzv&db{tLidW9znW8V;8542+4kDHqv@gp$%A35gwe(TGdnsh&kyZV6F z|FXsRNU{X?X<>31v@F|6++%Q;ez_S&MqPzNEN1y}0^0-PwL{wA(TSK-*>3-d^u*A6 zD^W}jbMk*mm~V9>awdLE4|(;0zJ-NWG3*U(a9{Z)gQk66{dt*l4%sjFqve;0Ya$oi8Z&`fKz8oi@#lIoGenacqHyyK`efzWg&c6G8Hd_9h;=DJti~5#gPI$-b z-xP))IYd^WmA)gEyvgroFXrU$#M5u`8zk;#(*90-_NF$cf4(#~^S#zUyfR!dTGR=z zK3RPGAk!A}-_k~gHlmq+5nJBUCWgguFUkAWtM}@s$lsKM#jkH^1GQ|_RF!@8;t|1w zLDoLaEJhvH`dP|wNYgsR6^EInYr=BuoDOmKVQuD+xLaw?5gqz#GVxnjcfXd3Obzp8 zJ_Wa;ksabMJX+*u8Vce&#MFOl{YUM`Qp2wFrLrnh2z3deW`r5O@WIoB0TbMG8mIj2fMICUnd5Aj5g{CeqjHKLs&KrITv;4GtLS8;+pWbHY9AnRHyP; zfW85B8)~R&9obqaUVNK(Q+CV=4)HVQQF)l_mUQSp%S>gHsU75IR@mkIKPL=H_U=9S z*_Flaboo{yMl5@WUlq+#TQ2T@hc_WH>$%FV6>qibdm z;kob$7DVz z`?$Q`R{(M(k6jqK}$0un+EIzfDxZyo|LMv)< zt=RXTwz^05Z9GVR*`ZfNiqWOo5HaC>ZBl4GV&TtX{rlSVu;|;lsMvt-8sdw>CVqNf z8#*K#H8rAB_dPnucLuNeo34ti$nQziM|FxZ_1d#N5?$27yiPvIEbjV18zXvtpbZQy zMoeEICVoJ{8!?wJ6k9%E_9~%}j5);DA82zH6k@K=>OAw@CJ{54x#SA1BT^LJ#}n zW9|G<2bwKU^f-dw63pH_G3AIhV8MRObvJjOwUD?D?QoFRgmwrmM%D#~thQFP`fgeh zn(0n1yPL&}N3`*MlQBDQ={$4qNX9(_E$0?t_(YpBcn{{2xEG^yA1SjL^5_B6!xFIW zm;P=Q%RkXZyPBoHTf6(a5q~qoWFAag@Rxsf)5V}=2WjzWS!i9&DZ?hCIlF1Hi8Ijh z(XI}`;+uP#E=E#;V(?LIL|8elMe92C#1KV3c=Qu%k7@(7X4K8=JN22}>RWymq-=wD z?)#7X1BTZC5!+msMl?HxdfPd(l|G73~L?$lThfnKnLYN*L zz@y69zhiRHPZE<_BOd)+yCyX2E{gxEh-j2oCgzsC;_^o39`nhKGsD><2>3hpfuCAq?mX4%9z{W$;YV%FXyD~$6hnU+! zlxGa)Dud$s&frh%+*RhMjmplDJ>>2WgZV|H3}@;$)R%*P6Y;dv%+||d&AcmI`Aahw zhbwo5**1s!yd_@h_cjx6tIT^tmCZ);y`joslX+XHa;G_VbEwbT#aH;eeQX$pzYEQ8 zCo3ylnC=fTpGsD$Ln1#+R$4>M&rMU_HJCAb4dx${mA%HuAEzltjOHEFlxIw4%wL<# z2c{|QrpT|SDf`Xl-=-?tL(P~Eg_?hxrhFAT=EteZD;D#qsmeX78S|T}`Ln6YH|j;d zB`dFM=FgIqXT!{x8^g?RyQV64g`1yCR=zpM{Pt93V}zN%K=N9I`Tk^OQ(2(zt2!I}}~=_C2~`$rb+9v(9{b}YD?>eP|`Fe^G0Y#CvG?sO*oUf!i(#R&6u z7v|S=E!Y?`w|1TR(QtEDpy2M1iI*18@3%_}ehZlmgYIf#4cquavL-d#ro8U-V^qPW zLUT6#_)Ebzh2~~%`AvBR|1Km~>SUeZ<3e*~j2}JUlwa^}p?Qxz;fwr&2MSG1Ba--M zqk=1n%#V$Tu4!EGbD?>pG5vh4aly_)^BMnKUQn>D(A>d}yS<>`<|6YZ|NOR~;MyW{ zE&K2TO$y#9G+UZIrlZw)&X+eo;UC`Zhp;2x?!C>msGng-% zR$_(;D^rUcOEp}_7(iv+1$?AeqLPgd1rHD^R>lvO4Fg>tIp<$Bd1d@?pSa` z7xPdjlDNBb!6TH8Y}D=DM)WP_qHeX9|4=k5zc%|*QMO>SKXFE*Smtj$SkdINQ^F*| zIJi*CVN{X*ndH~6(2+t|hcMAnc(|2>R*3%d^V8mRBp{bX7!diGNh4uOB`ib2I1*$K z`kg#Nf9u=~Lr52ed>WyFd=g>MhBTDAqY??}HGdWb5c&}Y5rz=DbP1%(_Q|&>9F#D# zw~-UEVGZPhkV|sN`A0fS0w-NKMobn82v6{Z5IUktE&w?Lg;9iAe)UVeqa1RXuEK-R zmmz)i>QC!s2xcJ|f?!r<2dA!Wr#;;);4y|lpCJT?Ah4`?9@gcb;PeVR%g~X??lrV6$$fa+HNlC&nC_=f?C{XBlBxpFDU#UYo4T(Y*l9Ob_Yf(Z!LK`_1jkeAy0vye+dj&8`Z zJh47k?f~Rckn=+>^j7_hX=EHnO~>_5Lofir%ze2E%UF<(4CI24i{76r7lK?Cav>+j zZ=0!iR6?$fjxs{OfLoN!r^kcblNyr5t7e6Xr+CQ@? zS8yu?gAhzWVRm1x2{VujK`!a!zRs1~54kYpQckWQmOEgW3NdvAf@xQiFLM=^KrRZo z4CGQ9a^-@Mi$gB!GTw{|OZ{o11A++%)?Df za+&hcr6A{rTymhA|93$! z4Z(mD9F&`J7IGQL1tFI{J6G-i$m+_E8f;PSka;8*x z#K{fKl?y@654ot58=fmyIX)&C2Ot=Cf+KPTqfi)xTmo{D=X1N$O2~yEmxNqkZ?0St za^V;RQxFWz&CPf#1S613JGpJS3Nw(4LM{Wj_`A7s`ym&HTr3O0?3=lQ<`l6^0)lmr z3%;EzR|2^tnfG$#f{;r=&M$H?6MrXHumXZ<2nL+OJ-Kob$YmfGgk1d7Tnko1 zE(^I3266_A)d=K5vvcLrkn=+>>N4g_lkVXB_d+lL z!MGDtZCnSrAmkE|3w)4knZgOubRozkAs18&ngGe!`iCKyf}sD6T!rOO7=c_Ga`AKO z)r2Y%hFlbK8OSBy&6TTyT%sH1|2hb!$K?vfA((_h<4z#n$dy|QxfJBW?u27Zu3QRo zX~_A@Vj>WVjS(EfbvSFz+z_;TICE5b$)^&xD9umoWM zVGo485cWkl5aCG(M1dc|9bOsIZWCOeoT*^%yD$qj|r`#R} zY7_x?n=8O34Xz7rj``yPh8o~;<~*TkMd=0-n6d^kXn@BX;OTnYPN=SCre^~gG{EBx z@N@&*9Q*(DOa7t%A7RTBZ-A#8;O4mhmx0w2YJkU&i~VtebOQnDS0PsQn``&*femEP0FO7o(}y@t zsJWE(C~qKx26(&yo^F7fK}x@C|B#MAdEyQ5Yy&(rSY-e`$p(1L4Ef^(@dh|Ot!q{4 zCW|+~%}~heg^uu}j9vj%V?^}#l%;>5XTJB(ZwlMS#?p=3e7Ngplhofc)ZYu$-%His zSL1KG9w|p$0(Wm{C?#t@y0Xg$EoXZddB1dS*11s${pi@G+40?ittE~wP1~ayYhJq4 zYme*v-uy1j`uI1 z(rQO{iT?R_`-p;hIDb`MVq>GKiAB7yi=7yk=&=Z=BAknG3BnZ!*C5=8a0|j05bi;^ z58;mpn_OY+(GFn`31j9&fUyXtBAknG3BnZ!*C5=8a0|j05bi;^58;mpn_P(kAnaj7 z>PRO7j72yV;ar4E5UxPD2H{48TM)j0a1X+L2!BM_Pi*O0T6$sZL+=y@s!WR(k zLAVd$j|iJwjRGL-!JnPt<3xb52&W>Pi*O0T6$sZL+=y@s!WR(kLAVd$j|iKrKmic; zSRwhF69M?8_Iyl5I2Yj(gewrPLAVj&7KAS#+=Fl*!XFVfxkmK2L)asRA15Lli*PE! zxd@jaT!C;6!i@;GAbbJg9)$Z4{)n*2N-2Q*zwE$d8Ds=p5^`Z4{dnzF{+4Ti*b{&A z>bf`U;@!Blu-N;ed$ZzI$2Dr^g^p?#Z~1B)Q4o-nrnR^3sAlcyCRchjhG|Y8ArQU; z(RA;$SuYzXBh0t$;P)d@~E{e;wT2uFyd^O;Fc~MqAfnB~;J1SF2QT>G&)aauFW)48FU*(lO>nuz#790P+4ZBsiD=)t$pZQ9~&j)`K{0U@p4e`e2o8R&0p}-UQm|3w}*fEIWD^Q%lqu{54 z|JHz_mSg~yKM46}A%7A04m6F^?}2}2IdwFy5g+{4cUBa*P5ySAzxcv@`W?b=A~`

_M_!jWSlFr-${!}to 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 WR|M=kivNWRU(hrYDs2x)`@aBTNFIX# diff --git a/examples/cornell_box.cpp b/examples/cornell_box.cpp index d784b5f..f762c30 100644 --- a/examples/cornell_box.cpp +++ b/examples/cornell_box.cpp @@ -1,17 +1,17 @@ #include -#include -#include -#include -#include -#include -#include #include #include -#include -#include #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include using namespace are; @@ -20,7 +20,7 @@ const uint WINDOW_WIDTH = 800; const uint WINDOW_HEIGHT = 800; // Global state -GLFWwindow* g_window = nullptr; +GLFWwindow *g_window = nullptr; std::unique_ptr g_renderer = nullptr; std::unique_ptr g_scene = nullptr; std::shared_ptr g_camera = nullptr; // Keep a direct reference to camera @@ -47,466 +47,534 @@ float g_deltaTime = 0.0f; float g_lastFrame = 0.0f; // GLFW error callback -void glfw_error_callback(int error, const char* description) { - ARE_LOG_ERROR("GLFW Error " + std::to_string(error) + ": " + std::string(description)); +void glfw_error_callback(int error, const char *description) { + ARE_LOG_ERROR("GLFW Error " + std::to_string(error) + ": " + std::string(description)); } /// @brief Create a quad mesh -std::shared_ptr create_quad(const Vec3& v0, const Vec3& v1, const Vec3& v2, const Vec3& v3, - const Vec3& normal, uint material_id) { - auto mesh = std::make_shared(); - - std::vector vertices = { - {v0, normal, Vec2(0.0f, 0.0f), Vec3(1.0f, 0.0f, 0.0f)}, - {v1, normal, Vec2(1.0f, 0.0f), Vec3(1.0f, 0.0f, 0.0f)}, - {v2, normal, Vec2(1.0f, 1.0f), Vec3(1.0f, 0.0f, 0.0f)}, - {v3, normal, Vec2(0.0f, 1.0f), Vec3(1.0f, 0.0f, 0.0f)} - }; - - std::vector indices = {0, 1, 2, 0, 2, 3}; - - mesh->set_vertices(vertices); - mesh->set_indices(indices); - mesh->set_material(material_id); - - return mesh; +std::shared_ptr create_quad(const Vec3 &v0, const Vec3 &v1, const Vec3 &v2, const Vec3 &v3, + const Vec3 &normal, uint material_id) { + auto mesh = std::make_shared(); + + std::vector vertices = { + { v0, normal, Vec2(0.0f, 0.0f), Vec3(1.0f, 0.0f, 0.0f) }, + { v1, normal, Vec2(1.0f, 0.0f), Vec3(1.0f, 0.0f, 0.0f) }, + { v2, normal, Vec2(1.0f, 1.0f), Vec3(1.0f, 0.0f, 0.0f) }, + { v3, normal, Vec2(0.0f, 1.0f), Vec3(1.0f, 0.0f, 0.0f) } + }; + + std::vector indices = { 0, 1, 2, 0, 2, 3 }; + + mesh->set_vertices(vertices); + mesh->set_indices(indices); + mesh->set_material(material_id); + + return mesh; } /// @brief Create a box mesh -std::shared_ptr create_box(const Vec3& min, const Vec3& max, uint material_id) { - auto mesh = std::make_shared(); - - std::vector vertices = { - // Front face - {{min.x, min.y, max.z}, {0.0f, 0.0f, 1.0f}, {0.0f, 0.0f}, {1.0f, 0.0f, 0.0f}}, - {{max.x, min.y, max.z}, {0.0f, 0.0f, 1.0f}, {1.0f, 0.0f}, {1.0f, 0.0f, 0.0f}}, - {{max.x, max.y, max.z}, {0.0f, 0.0f, 1.0f}, {1.0f, 1.0f}, {1.0f, 0.0f, 0.0f}}, - {{min.x, max.y, max.z}, {0.0f, 0.0f, 1.0f}, {0.0f, 1.0f}, {1.0f, 0.0f, 0.0f}}, - - // Back face - {{max.x, min.y, min.z}, {0.0f, 0.0f, -1.0f}, {0.0f, 0.0f}, {-1.0f, 0.0f, 0.0f}}, - {{min.x, min.y, min.z}, {0.0f, 0.0f, -1.0f}, {1.0f, 0.0f}, {-1.0f, 0.0f, 0.0f}}, - {{min.x, max.y, min.z}, {0.0f, 0.0f, -1.0f}, {1.0f, 1.0f}, {-1.0f, 0.0f, 0.0f}}, - {{max.x, max.y, min.z}, {0.0f, 0.0f, -1.0f}, {0.0f, 1.0f}, {-1.0f, 0.0f, 0.0f}}, - - // Top face - {{min.x, max.y, max.z}, {0.0f, 1.0f, 0.0f}, {0.0f, 0.0f}, {1.0f, 0.0f, 0.0f}}, - {{max.x, max.y, max.z}, {0.0f, 1.0f, 0.0f}, {1.0f, 0.0f}, {1.0f, 0.0f, 0.0f}}, - {{max.x, max.y, min.z}, {0.0f, 1.0f, 0.0f}, {1.0f, 1.0f}, {1.0f, 0.0f, 0.0f}}, - {{min.x, max.y, min.z}, {0.0f, 1.0f, 0.0f}, {0.0f, 1.0f}, {1.0f, 0.0f, 0.0f}}, - - // Bottom face - {{min.x, min.y, min.z}, {0.0f, -1.0f, 0.0f}, {0.0f, 0.0f}, {1.0f, 0.0f, 0.0f}}, - {{max.x, min.y, min.z}, {0.0f, -1.0f, 0.0f}, {1.0f, 0.0f}, {1.0f, 0.0f, 0.0f}}, - {{max.x, min.y, max.z}, {0.0f, -1.0f, 0.0f}, {1.0f, 1.0f}, {1.0f, 0.0f, 0.0f}}, - {{min.x, min.y, max.z}, {0.0f, -1.0f, 0.0f}, {0.0f, 1.0f}, {1.0f, 0.0f, 0.0f}}, - - // Right face - {{max.x, min.y, max.z}, {1.0f, 0.0f, 0.0f}, {0.0f, 0.0f}, {0.0f, 0.0f, -1.0f}}, - {{max.x, min.y, min.z}, {1.0f, 0.0f, 0.0f}, {1.0f, 0.0f}, {0.0f, 0.0f, -1.0f}}, - {{max.x, max.y, min.z}, {1.0f, 0.0f, 0.0f}, {1.0f, 1.0f}, {0.0f, 0.0f, -1.0f}}, - {{max.x, max.y, max.z}, {1.0f, 0.0f, 0.0f}, {0.0f, 1.0f}, {0.0f, 0.0f, -1.0f}}, - - // Left face - {{min.x, min.y, min.z}, {-1.0f, 0.0f, 0.0f}, {0.0f, 0.0f}, {0.0f, 0.0f, 1.0f}}, - {{min.x, min.y, max.z}, {-1.0f, 0.0f, 0.0f}, {1.0f, 0.0f}, {0.0f, 0.0f, 1.0f}}, - {{min.x, max.y, max.z}, {-1.0f, 0.0f, 0.0f}, {1.0f, 1.0f}, {0.0f, 0.0f, 1.0f}}, - {{min.x, max.y, min.z}, {-1.0f, 0.0f, 0.0f}, {0.0f, 1.0f}, {0.0f, 0.0f, 1.0f}} - }; - - std::vector indices = { - 0, 1, 2, 0, 2, 3, // Front - 4, 5, 6, 4, 6, 7, // Back - 8, 9, 10, 8, 10, 11, // Top - 12, 13, 14, 12, 14, 15, // Bottom - 16, 17, 18, 16, 18, 19, // Right - 20, 21, 22, 20, 22, 23 // Left - }; - - mesh->set_vertices(vertices); - mesh->set_indices(indices); - mesh->set_material(material_id); - - return mesh; +std::shared_ptr create_box(const Vec3 &min, const Vec3 &max, uint material_id) { + auto mesh = std::make_shared(); + + std::vector vertices = { + // Front face + { { min.x, min.y, max.z }, { 0.0f, 0.0f, 1.0f }, { 0.0f, 0.0f }, { 1.0f, 0.0f, 0.0f } }, + { { max.x, min.y, max.z }, { 0.0f, 0.0f, 1.0f }, { 1.0f, 0.0f }, { 1.0f, 0.0f, 0.0f } }, + { { max.x, max.y, max.z }, { 0.0f, 0.0f, 1.0f }, { 1.0f, 1.0f }, { 1.0f, 0.0f, 0.0f } }, + { { min.x, max.y, max.z }, { 0.0f, 0.0f, 1.0f }, { 0.0f, 1.0f }, { 1.0f, 0.0f, 0.0f } }, + + // Back face + { { max.x, min.y, min.z }, { 0.0f, 0.0f, -1.0f }, { 0.0f, 0.0f }, { -1.0f, 0.0f, 0.0f } }, + { { min.x, min.y, min.z }, { 0.0f, 0.0f, -1.0f }, { 1.0f, 0.0f }, { -1.0f, 0.0f, 0.0f } }, + { { min.x, max.y, min.z }, { 0.0f, 0.0f, -1.0f }, { 1.0f, 1.0f }, { -1.0f, 0.0f, 0.0f } }, + { { max.x, max.y, min.z }, { 0.0f, 0.0f, -1.0f }, { 0.0f, 1.0f }, { -1.0f, 0.0f, 0.0f } }, + + // Top face + { { min.x, max.y, max.z }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f }, { 1.0f, 0.0f, 0.0f } }, + { { max.x, max.y, max.z }, { 0.0f, 1.0f, 0.0f }, { 1.0f, 0.0f }, { 1.0f, 0.0f, 0.0f } }, + { { max.x, max.y, min.z }, { 0.0f, 1.0f, 0.0f }, { 1.0f, 1.0f }, { 1.0f, 0.0f, 0.0f } }, + { { min.x, max.y, min.z }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 1.0f }, { 1.0f, 0.0f, 0.0f } }, + + // Bottom face + { { min.x, min.y, min.z }, { 0.0f, -1.0f, 0.0f }, { 0.0f, 0.0f }, { 1.0f, 0.0f, 0.0f } }, + { { max.x, min.y, min.z }, { 0.0f, -1.0f, 0.0f }, { 1.0f, 0.0f }, { 1.0f, 0.0f, 0.0f } }, + { { max.x, min.y, max.z }, { 0.0f, -1.0f, 0.0f }, { 1.0f, 1.0f }, { 1.0f, 0.0f, 0.0f } }, + { { min.x, min.y, max.z }, { 0.0f, -1.0f, 0.0f }, { 0.0f, 1.0f }, { 1.0f, 0.0f, 0.0f } }, + + // Right face + { { max.x, min.y, max.z }, { 1.0f, 0.0f, 0.0f }, { 0.0f, 0.0f }, { 0.0f, 0.0f, -1.0f } }, + { { max.x, min.y, min.z }, { 1.0f, 0.0f, 0.0f }, { 1.0f, 0.0f }, { 0.0f, 0.0f, -1.0f } }, + { { max.x, max.y, min.z }, { 1.0f, 0.0f, 0.0f }, { 1.0f, 1.0f }, { 0.0f, 0.0f, -1.0f } }, + { { max.x, max.y, max.z }, { 1.0f, 0.0f, 0.0f }, { 0.0f, 1.0f }, { 0.0f, 0.0f, -1.0f } }, + + // Left face + { { min.x, min.y, min.z }, { -1.0f, 0.0f, 0.0f }, { 0.0f, 0.0f }, { 0.0f, 0.0f, 1.0f } }, + { { min.x, min.y, max.z }, { -1.0f, 0.0f, 0.0f }, { 1.0f, 0.0f }, { 0.0f, 0.0f, 1.0f } }, + { { min.x, max.y, max.z }, { -1.0f, 0.0f, 0.0f }, { 1.0f, 1.0f }, { 0.0f, 0.0f, 1.0f } }, + { { min.x, max.y, min.z }, { -1.0f, 0.0f, 0.0f }, { 0.0f, 1.0f }, { 0.0f, 0.0f, 1.0f } } + }; + + std::vector indices = { + 0, 1, 2, 0, 2, 3, // Front + 4, 5, 6, 4, 6, 7, // Back + 8, 9, 10, 8, 10, 11, // Top + 12, 13, 14, 12, 14, 15, // Bottom + 16, 17, 18, 16, 18, 19, // Right + 20, 21, 22, 20, 22, 23 // Left + }; + + mesh->set_vertices(vertices); + mesh->set_indices(indices); + mesh->set_material(material_id); + + return mesh; +} + +/// @brief Create a sphere mesh +std::shared_ptr create_sphere(float radius, uint segments, uint rings, uint material_id) { + auto mesh = std::make_shared(); + + std::vector vertices; + std::vector indices; + + for (uint ring = 0; ring <= rings; ++ring) { + float theta = ring * glm::pi() / rings; + float sin_theta = sin(theta); + float cos_theta = cos(theta); + + for (uint seg = 0; seg <= segments; ++seg) { + float phi = seg * 2.0f * glm::pi() / segments; + float x = cos(phi) * sin_theta; + float y = cos_theta; + float z = sin(phi) * sin_theta; + + Vec3 pos = Vec3(x, y, z) * radius; + Vec3 normal = Vec3(x, y, z); + Vec2 uv = Vec2((float)seg / segments, (float)ring / rings); + Vec3 tangent = Vec3(-sin(phi), 0.0f, cos(phi)); + + vertices.push_back({ pos, normal, uv, tangent }); + } + } + + for (uint ring = 0; ring < rings; ++ring) { + for (uint seg = 0; seg < segments; ++seg) { + uint current = ring * (segments + 1) + seg; + indices.push_back(current); + indices.push_back(current + segments + 1); + indices.push_back(current + 1); + indices.push_back(current + 1); + indices.push_back(current + segments + 1); + indices.push_back(current + segments + 2); + } + } + + mesh->set_vertices(vertices); + mesh->set_indices(indices); + mesh->set_material(material_id); + mesh->compute_tangents(); + + return mesh; } /// @brief Setup Cornell Box scene void setup_cornell_box() { - g_scene = std::make_unique(); - - // Create materials - // 0: White diffuse - auto white_material = std::make_shared(); - white_material->set_albedo(Vec3(0.73f, 0.73f, 0.73f)); - white_material->set_type(MaterialType::DIFFUSE); - uint white_id = g_scene->add_material(white_material); - - // 1: Red diffuse (left wall) - auto red_material = std::make_shared(); - red_material->set_albedo(Vec3(0.65f, 0.05f, 0.05f)); - red_material->set_type(MaterialType::DIFFUSE); - uint red_id = g_scene->add_material(red_material); - - // 2: Green diffuse (right wall) - auto green_material = std::make_shared(); - green_material->set_albedo(Vec3(0.12f, 0.45f, 0.15f)); - green_material->set_type(MaterialType::DIFFUSE); - uint green_id = g_scene->add_material(green_material); - - // 3: Light emissive - auto light_material = std::make_shared(); - light_material->set_albedo(Vec3(1.0f, 1.0f, 1.0f)); - light_material->set_emission(Vec3(15.0f, 15.0f, 15.0f)); - light_material->set_type(MaterialType::EMISSIVE); - uint light_id = g_scene->add_material(light_material); - - // 4: Metal (for one box) - auto metal_material = std::make_shared(); - metal_material->set_albedo(Vec3(0.95f, 0.93f, 0.88f)); - metal_material->set_metallic(1.0f); - metal_material->set_roughness(0.1f); - metal_material->set_type(MaterialType::METAL); - uint metal_id = g_scene->add_material(metal_material); - - // Create room (Cornell Box) - float room_size = 2.0f; - - // Floor (white) - auto floor = create_quad( - Vec3(-room_size, -room_size, -room_size), - Vec3(room_size, -room_size, -room_size), - Vec3(room_size, -room_size, room_size), - Vec3(-room_size, -room_size, room_size), - Vec3(0.0f, 1.0f, 0.0f), - white_id - ); - floor->upload_to_gpu(); - g_scene->add_mesh(floor); - - // Ceiling (white) - auto ceiling = create_quad( - Vec3(-room_size, room_size, room_size), - Vec3(room_size, room_size, room_size), - Vec3(room_size, room_size, -room_size), - Vec3(-room_size, room_size, -room_size), - Vec3(0.0f, -1.0f, 0.0f), - white_id - ); - ceiling->upload_to_gpu(); - g_scene->add_mesh(ceiling); - - // Back wall (white) - auto back_wall = create_quad( - Vec3(-room_size, -room_size, -room_size), - Vec3(-room_size, room_size, -room_size), - Vec3(room_size, room_size, -room_size), - Vec3(room_size, -room_size, -room_size), - Vec3(0.0f, 0.0f, 1.0f), - white_id - ); - back_wall->upload_to_gpu(); - g_scene->add_mesh(back_wall); - - // Left wall (red) - auto left_wall = create_quad( - Vec3(-room_size, -room_size, room_size), - Vec3(-room_size, room_size, room_size), - Vec3(-room_size, room_size, -room_size), - Vec3(-room_size, -room_size, -room_size), - Vec3(1.0f, 0.0f, 0.0f), - red_id - ); - left_wall->upload_to_gpu(); - g_scene->add_mesh(left_wall); - - // Right wall (green) - auto right_wall = create_quad( - Vec3(room_size, -room_size, -room_size), - Vec3(room_size, room_size, -room_size), - Vec3(room_size, room_size, room_size), - Vec3(room_size, -room_size, room_size), - Vec3(-1.0f, 0.0f, 0.0f), - green_id - ); - right_wall->upload_to_gpu(); - g_scene->add_mesh(right_wall); - - // Area light on ceiling - float light_size = 0.5f; - auto area_light = create_quad( - Vec3(-light_size, room_size - 0.01f, -light_size), - Vec3(light_size, room_size - 0.01f, -light_size), - Vec3(light_size, room_size - 0.01f, light_size), - Vec3(-light_size, room_size - 0.01f, light_size), - Vec3(0.0f, -1.0f, 0.0f), - light_id - ); - area_light->upload_to_gpu(); - g_scene->add_mesh(area_light); - - // Tall box (white, left side) - auto tall_box = create_box(Vec3(-0.7f, -room_size, -0.7f), Vec3(-0.2f, 0.6f, -0.2f), white_id); - tall_box->upload_to_gpu(); - g_scene->add_mesh(tall_box); - - // Short box (metal, right side) - auto short_box = create_box(Vec3(0.2f, -room_size, 0.2f), Vec3(0.9f, -0.4f, 0.9f), white_id); - short_box->upload_to_gpu(); - g_scene->add_mesh(short_box); - - // Setup camera - g_camera = std::make_shared(); - 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_scene->set_camera(g_camera); - - // Add point light - auto light = std::make_shared(); - light->set_type(LightType::POINT); - light->set_position(Vec3(0.0f, 1.8f, 0.0f)); - light->set_color(Vec3(1.0f, 1.0f, 1.0f)); - light->set_intensity(10.0f); - light->set_range(10.0f); - g_scene->add_light(light); - - ARE_LOG_INFO("Cornell Box scene created"); + g_scene = std::make_unique(); + + // Create materials + // 0: White diffuse + auto white_material = std::make_shared(); + white_material->set_albedo(Vec3(0.73f, 0.73f, 0.73f)); + white_material->set_type(MaterialType::DIFFUSE); + uint white_id = g_scene->add_material(white_material); + + // 1: Red diffuse (left wall) + auto red_material = std::make_shared(); + red_material->set_albedo(Vec3(0.65f, 0.05f, 0.05f)); + red_material->set_type(MaterialType::DIFFUSE); + uint red_id = g_scene->add_material(red_material); + + // 2: Green diffuse (right wall) + auto green_material = std::make_shared(); + green_material->set_albedo(Vec3(0.12f, 0.45f, 0.15f)); + green_material->set_type(MaterialType::DIFFUSE); + uint green_id = g_scene->add_material(green_material); + + // 3: Light emissive + auto light_material = std::make_shared(); + light_material->set_albedo(Vec3(1.0f, 1.0f, 1.0f)); + light_material->set_emission(Vec3(15.0f, 15.0f, 15.0f)); + light_material->set_type(MaterialType::EMISSIVE); + uint light_id = g_scene->add_material(light_material); + + // 4: Metal (for one box) + auto metal_material = std::make_shared(); + metal_material->set_albedo(Vec3(0.95f, 0.93f, 0.88f)); + metal_material->set_metallic(1.0f); + metal_material->set_roughness(0.0f); + metal_material->set_type(MaterialType::METAL); + uint metal_id = g_scene->add_material(metal_material); + + // 5: Glass/Dielectric (refraction) + auto glass_material = std::make_shared(); + glass_material->set_albedo(Vec3(1.0f, 1.0f, 1.0f)); + glass_material->set_ior(0.5f); + glass_material->set_roughness(0.0f); + glass_material->set_type(MaterialType::DIELECTRIC); + uint glass_id = g_scene->add_material(glass_material); + + // 6: Yellow emissive sphere + auto emissive_sphere_mat = std::make_shared(); + emissive_sphere_mat->set_albedo(Vec3(1.0f, 0.8f, 0.2f)); + emissive_sphere_mat->set_emission(Vec3(5.0f, 4.0f, 1.0f)); + emissive_sphere_mat->set_type(MaterialType::EMISSIVE); + uint emissive_sphere_id = g_scene->add_material(emissive_sphere_mat); + + // Create room (Cornell Box) + float room_size = 2.0f; + + // Floor (white) + auto floor = create_quad( + Vec3(-room_size, -room_size, -room_size), + Vec3(room_size, -room_size, -room_size), + Vec3(room_size, -room_size, room_size), + Vec3(-room_size, -room_size, room_size), + Vec3(0.0f, 1.0f, 0.0f), + white_id); + floor->upload_to_gpu(); + g_scene->add_mesh(floor); + + // Ceiling (white) + auto ceiling = create_quad( + Vec3(-room_size, room_size, room_size), + Vec3(room_size, room_size, room_size), + Vec3(room_size, room_size, -room_size), + Vec3(-room_size, room_size, -room_size), + Vec3(0.0f, -1.0f, 0.0f), + white_id); + ceiling->upload_to_gpu(); + g_scene->add_mesh(ceiling); + + // Back wall (white) + auto back_wall = create_quad( + Vec3(-room_size, -room_size, -room_size), + Vec3(-room_size, room_size, -room_size), + Vec3(room_size, room_size, -room_size), + Vec3(room_size, -room_size, -room_size), + Vec3(0.0f, 0.0f, 1.0f), + white_id); + back_wall->upload_to_gpu(); + g_scene->add_mesh(back_wall); + + // Left wall (red) + auto left_wall = create_quad( + Vec3(-room_size, -room_size, room_size), + Vec3(-room_size, room_size, room_size), + Vec3(-room_size, room_size, -room_size), + Vec3(-room_size, -room_size, -room_size), + Vec3(1.0f, 0.0f, 0.0f), + red_id); + left_wall->upload_to_gpu(); + g_scene->add_mesh(left_wall); + + // Right wall (green) + auto right_wall = create_quad( + Vec3(room_size, -room_size, -room_size), + Vec3(room_size, room_size, -room_size), + Vec3(room_size, room_size, room_size), + Vec3(room_size, -room_size, room_size), + Vec3(-1.0f, 0.0f, 0.0f), + green_id); + right_wall->upload_to_gpu(); + g_scene->add_mesh(right_wall); + + // Area light on ceiling + float light_size = 0.5f; + auto area_light = create_quad( + Vec3(-light_size, room_size - 0.01f, -light_size), + Vec3(light_size, room_size - 0.01f, -light_size), + Vec3(light_size, room_size - 0.01f, light_size), + Vec3(-light_size, room_size - 0.01f, light_size), + Vec3(0.0f, -1.0f, 0.0f), + light_id); + area_light->upload_to_gpu(); + g_scene->add_mesh(area_light); + + // Tall box (white, left side) + auto tall_box = create_box(Vec3(-0.7f, -room_size, -0.7f), Vec3(-0.2f, 0.6f, -0.2f), white_id); + tall_box->upload_to_gpu(); + g_scene->add_mesh(tall_box); + + // Short box (metal, right side) + auto short_box = create_box(Vec3(0.2f, -room_size, 0.2f), Vec3(0.9f, -0.4f, 0.9f), glass_id); + short_box->upload_to_gpu(); + g_scene->add_mesh(short_box); + + // // Glass sphere (dielectric/refraction test) + // auto glass_sphere = create_sphere(0.4f, 32, 16, glass_id); + // glass_sphere->set_position(Vec3(-0.5f, -0.6f, 0.0f)); + // glass_sphere->upload_to_gpu(); + // g_scene->add_mesh(glass_sphere); + // + // // Yellow emissive sphere (emission test) + // auto emissive_sphere = create_sphere(0.25f, 32, 16, emissive_sphere_id); + // emissive_sphere->set_position(Vec3(0.5f, -0.75f, 0.3f)); + // emissive_sphere->upload_to_gpu(); + // g_scene->add_mesh(emissive_sphere); + + // Setup camera + g_camera = std::make_shared(); + 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_scene->set_camera(g_camera); + + // Add point light + auto light = std::make_shared(); + light->set_type(LightType::POINT); + light->set_position(Vec3(0.0f, 1.8f, 0.0f)); + light->set_color(Vec3(1.0f, 1.0f, 1.0f)); + light->set_intensity(10.0f); + light->set_range(10.0f); + g_scene->add_light(light); + + ARE_LOG_INFO("Cornell Box scene created"); } /// @brief Initialize GLFW and create window bool init_window() { - glfwSetErrorCallback(glfw_error_callback); - - if (!glfwInit()) { - ARE_LOG_ERROR("Failed to initialize GLFW"); - return false; - } - - ARE_LOG_INFO("GLFW initialized successfully"); - - glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); - glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); - glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); - glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); - glfwWindowHint(GLFW_RESIZABLE, GL_FALSE); - glfwWindowHint(GLFW_SAMPLES, 0); - - g_window = glfwCreateWindow(WINDOW_WIDTH, WINDOW_HEIGHT, "Aurora - Cornell Box", nullptr, nullptr); - - if (!g_window) { - ARE_LOG_ERROR("Failed to create GLFW window"); - glfwTerminate(); - return false; - } - - glfwMakeContextCurrent(g_window); - glfwSwapInterval(1); - - if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { - ARE_LOG_ERROR("Failed to initialize GLAD"); - return false; - } - - return true; + glfwSetErrorCallback(glfw_error_callback); + + if (!glfwInit()) { + ARE_LOG_ERROR("Failed to initialize GLFW"); + return false; + } + + ARE_LOG_INFO("GLFW initialized successfully"); + + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); + glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); + glfwWindowHint(GLFW_RESIZABLE, GL_FALSE); + glfwWindowHint(GLFW_SAMPLES, 0); + + g_window = glfwCreateWindow(WINDOW_WIDTH, WINDOW_HEIGHT, "Aurora - Cornell Box", nullptr, nullptr); + + if (!g_window) { + ARE_LOG_ERROR("Failed to create GLFW window"); + glfwTerminate(); + return false; + } + + glfwMakeContextCurrent(g_window); + glfwSwapInterval(1); + + if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { + ARE_LOG_ERROR("Failed to initialize GLAD"); + return false; + } + + return true; } // --- Input Processing --- void process_input() { - // Calculate delta time - float currentFrame = glfwGetTime(); - g_deltaTime = currentFrame - g_lastFrame; - g_lastFrame = currentFrame; - - float velocity = g_moveSpeed * g_deltaTime; - bool camera_changed = false; + // Calculate delta time + float currentFrame = glfwGetTime(); + g_deltaTime = currentFrame - g_lastFrame; + g_lastFrame = currentFrame; - // 1. Mouse Rotation (Left Button Hold) - if (glfwGetMouseButton(g_window, GLFW_MOUSE_BUTTON_LEFT) == GLFW_PRESS) { - double xpos, ypos; - glfwGetCursorPos(g_window, &xpos, &ypos); - - if (g_firstMouse) { - g_lastX = xpos; - g_lastY = ypos; - g_firstMouse = false; - } - - float xoffset = xpos - g_lastX; - float yoffset = g_lastY - ypos; // Reversed since y-coordinates go from bottom to top - g_lastX = xpos; - g_lastY = ypos; - - // Only update if mouse actually moved - if (xoffset != 0.0f || yoffset != 0.0f) { - xoffset *= g_mouseSensitivity; - yoffset *= g_mouseSensitivity; - - g_yaw += xoffset; - g_pitch += yoffset; - - // Constrain pitch - if (g_pitch > 89.0f) g_pitch = 89.0f; - if (g_pitch < -89.0f) g_pitch = -89.0f; - - camera_changed = true; - } - } - else { - g_firstMouse = true; // Reset when released - } - - // 2. Calculate Direction Vectors - glm::vec3 front; - front.x = cos(glm::radians(g_yaw)) * cos(glm::radians(g_pitch)); - front.y = sin(glm::radians(g_pitch)); - front.z = sin(glm::radians(g_yaw)) * cos(glm::radians(g_pitch)); - glm::vec3 frontNorm = glm::normalize(front); - - glm::vec3 rightNorm = glm::normalize(glm::cross(frontNorm, glm::vec3(g_worldUp.x, g_worldUp.y, g_worldUp.z))); - - // 3. Keyboard Movement (WASD) - glm::vec3 pos = glm::vec3(g_cameraPos.x, g_cameraPos.y, g_cameraPos.z); - - if (glfwGetKey(g_window, GLFW_KEY_W) == GLFW_PRESS) { - pos += frontNorm * velocity; - camera_changed = true; - } - if (glfwGetKey(g_window, GLFW_KEY_S) == GLFW_PRESS) { - pos -= frontNorm * velocity; - camera_changed = true; - } - if (glfwGetKey(g_window, GLFW_KEY_A) == GLFW_PRESS) { - pos -= rightNorm * velocity; - camera_changed = true; - } - if (glfwGetKey(g_window, GLFW_KEY_D) == GLFW_PRESS) { - pos += rightNorm * velocity; - camera_changed = true; - } - - // 4. Apply changes to Scene Camera and Notify Renderer - if (camera_changed) { - g_cameraPos = Vec3(pos.x, pos.y, pos.z); - - // Target = Position + Front - Vec3 newTarget = g_cameraPos + Vec3(frontNorm.x, frontNorm.y, frontNorm.z); - - g_camera->set_position(g_cameraPos); - g_camera->set_target(newTarget); - - // CRITICAL: Notify renderer to reset accumulation - g_renderer->notify_scene_changed(*g_scene); - } + float velocity = g_moveSpeed * g_deltaTime; + bool camera_changed = false; + + // 1. Mouse Rotation (Left Button Hold) + if (glfwGetMouseButton(g_window, GLFW_MOUSE_BUTTON_LEFT) == GLFW_PRESS) { + double xpos, ypos; + glfwGetCursorPos(g_window, &xpos, &ypos); + + if (g_firstMouse) { + g_lastX = xpos; + g_lastY = ypos; + g_firstMouse = false; + } + + float xoffset = xpos - g_lastX; + float yoffset = g_lastY - ypos; // Reversed since y-coordinates go from bottom to top + g_lastX = xpos; + g_lastY = ypos; + + // Only update if mouse actually moved + if (xoffset != 0.0f || yoffset != 0.0f) { + xoffset *= g_mouseSensitivity; + yoffset *= g_mouseSensitivity; + + g_yaw += xoffset; + g_pitch += yoffset; + + // Constrain pitch + if (g_pitch > 89.0f) + g_pitch = 89.0f; + if (g_pitch < -89.0f) + g_pitch = -89.0f; + + camera_changed = true; + } + } else { + g_firstMouse = true; // Reset when released + } + + // 2. Calculate Direction Vectors + glm::vec3 front; + front.x = cos(glm::radians(g_yaw)) * cos(glm::radians(g_pitch)); + front.y = sin(glm::radians(g_pitch)); + front.z = sin(glm::radians(g_yaw)) * cos(glm::radians(g_pitch)); + glm::vec3 frontNorm = glm::normalize(front); + + glm::vec3 rightNorm = glm::normalize(glm::cross(frontNorm, glm::vec3(g_worldUp.x, g_worldUp.y, g_worldUp.z))); + + // 3. Keyboard Movement (WASD) + glm::vec3 pos = glm::vec3(g_cameraPos.x, g_cameraPos.y, g_cameraPos.z); + + if (glfwGetKey(g_window, GLFW_KEY_W) == GLFW_PRESS) { + pos += frontNorm * velocity; + camera_changed = true; + } + if (glfwGetKey(g_window, GLFW_KEY_S) == GLFW_PRESS) { + pos -= frontNorm * velocity; + camera_changed = true; + } + if (glfwGetKey(g_window, GLFW_KEY_A) == GLFW_PRESS) { + pos -= rightNorm * velocity; + camera_changed = true; + } + if (glfwGetKey(g_window, GLFW_KEY_D) == GLFW_PRESS) { + pos += rightNorm * velocity; + camera_changed = true; + } + + // 4. Apply changes to Scene Camera and Notify Renderer + if (camera_changed) { + g_cameraPos = Vec3(pos.x, pos.y, pos.z); + + // Target = Position + Front + Vec3 newTarget = g_cameraPos + Vec3(frontNorm.x, frontNorm.y, frontNorm.z); + + g_camera->set_position(g_cameraPos); + g_camera->set_target(newTarget); + + // CRITICAL: Notify renderer to reset accumulation + g_renderer->notify_scene_changed(*g_scene); + } } /// @brief Main render loop void render_loop() { - ARE_LOG_INFO("Entering render loop..."); - - int frame_count = 0; - double fps_time = glfwGetTime(); - g_lastFrame = glfwGetTime(); // Initialize for delta time - - while (!glfwWindowShouldClose(g_window)) { - // Process input at the start of the frame - process_input(); - - // Render - RenderStats stats = g_renderer->render(*g_scene); - - // Swap buffers - glfwSwapBuffers(g_window); - glfwPollEvents(); - - // Calculate FPS - frame_count++; - double current_time = glfwGetTime(); - double delta = current_time - fps_time; - - if (delta >= 1.0) { - double fps = frame_count / delta; - std::string title = "Aurora - Cornell Box | FPS: " + std::to_string((int)fps) + - " | Frame: " + std::to_string((int)stats.frame_time_ms_) + "ms"; - glfwSetWindowTitle(g_window, title.c_str()); - - frame_count = 0; - fps_time = current_time; - } - - // ESC to exit - if (glfwGetKey(g_window, GLFW_KEY_ESCAPE) == GLFW_PRESS) { - glfwSetWindowShouldClose(g_window, true); - } - } - - ARE_LOG_INFO("Exiting render loop"); + ARE_LOG_INFO("Entering render loop..."); + + int frame_count = 0; + double fps_time = glfwGetTime(); + g_lastFrame = glfwGetTime(); // Initialize for delta time + + while (!glfwWindowShouldClose(g_window)) { + // Process input at the start of the frame + process_input(); + + // Render + RenderStats stats = g_renderer->render(*g_scene); + + // Swap buffers + glfwSwapBuffers(g_window); + glfwPollEvents(); + + // Calculate FPS + frame_count++; + double current_time = glfwGetTime(); + double delta = current_time - fps_time; + + if (delta >= 1.0) { + double fps = frame_count / delta; + std::string title = "Aurora - Cornell Box | FPS: " + std::to_string((int)fps) + " | Frame: " + std::to_string((int)stats.frame_time_ms_) + "ms"; + glfwSetWindowTitle(g_window, title.c_str()); + + frame_count = 0; + fps_time = current_time; + } + + // ESC to exit + if (glfwGetKey(g_window, GLFW_KEY_ESCAPE) == GLFW_PRESS) { + glfwSetWindowShouldClose(g_window, true); + } + } + + ARE_LOG_INFO("Exiting render loop"); } /// @brief Cleanup void cleanup() { - ARE_LOG_INFO("Cleaning up..."); - - if (g_renderer) { - g_renderer->shutdown(); - g_renderer.reset(); - } - - g_scene.reset(); - - if (g_window) { - glfwDestroyWindow(g_window); - glfwTerminate(); - } - - ARE_LOG_INFO("Cleanup complete"); + ARE_LOG_INFO("Cleaning up..."); + + if (g_renderer) { + g_renderer->shutdown(); + g_renderer.reset(); + } + + g_scene.reset(); + + if (g_window) { + glfwDestroyWindow(g_window); + glfwTerminate(); + } + + ARE_LOG_INFO("Cleanup complete"); } int main() { - ARE_LOG_INFO("==========================================="); - ARE_LOG_INFO("Aurora Rendering Engine - Cornell Box Demo"); - ARE_LOG_INFO("==========================================="); + ARE_LOG_INFO("==========================================="); + ARE_LOG_INFO("Aurora Rendering Engine - Cornell Box Demo"); + ARE_LOG_INFO("==========================================="); - if (!init_window()) { - cleanup(); - ARE_LOG_ERROR("Failed to initialize window"); - Logger::shutdown(); - return -1; - } - - ARE_LOG_INFO("Setting up Cornell Box scene..."); - setup_cornell_box(); - - ARE_LOG_INFO("Initializing renderer..."); - RendererConfig config; - config.width_ = WINDOW_WIDTH; - config.height_ = WINDOW_HEIGHT; - config.samples_per_pixel_ = 1; - config.max_ray_depth_ = 4; - config.enable_accumulation_ = true; - config.enable_denoising_ = false; - - g_renderer = std::make_unique(config); - if (!g_renderer->initialize()) { - ARE_LOG_ERROR("Failed to initialize renderer"); - cleanup(); - Logger::shutdown(); - return -1; - } - - ARE_LOG_INFO("==========================================="); - ARE_LOG_INFO("Renderer initialized successfully!"); - ARE_LOG_INFO("Controls:"); - ARE_LOG_INFO(" WASD - Move Camera"); - ARE_LOG_INFO(" Hold Left Mouse Button - Rotate Camera"); - ARE_LOG_INFO(" ESC - Exit"); - ARE_LOG_INFO("==========================================="); - - render_loop(); - cleanup(); - - ARE_LOG_INFO("Cornell Box demo finished"); - Logger::shutdown(); - - return 0; + if (!init_window()) { + cleanup(); + ARE_LOG_ERROR("Failed to initialize window"); + Logger::shutdown(); + return -1; + } + + ARE_LOG_INFO("Setting up Cornell Box scene..."); + setup_cornell_box(); + + ARE_LOG_INFO("Initializing renderer..."); + RendererConfig config; + config.width_ = WINDOW_WIDTH; + config.height_ = WINDOW_HEIGHT; + config.samples_per_pixel_ = 1; + config.max_ray_depth_ = 4; + config.enable_accumulation_ = true; + config.enable_denoising_ = false; + + g_renderer = std::make_unique(config); + if (!g_renderer->initialize()) { + ARE_LOG_ERROR("Failed to initialize renderer"); + cleanup(); + Logger::shutdown(); + return -1; + } + + ARE_LOG_INFO("==========================================="); + ARE_LOG_INFO("Renderer initialized successfully!"); + ARE_LOG_INFO("Controls:"); + ARE_LOG_INFO(" WASD - Move Camera"); + ARE_LOG_INFO(" Hold Left Mouse Button - Rotate Camera"); + ARE_LOG_INFO(" ESC - Exit"); + ARE_LOG_INFO("==========================================="); + + render_loop(); + cleanup(); + + ARE_LOG_INFO("Cornell Box demo finished"); + Logger::shutdown(); + + return 0; } diff --git a/include/scene/material.h b/include/scene/material.h index caca8fc..810465b 100644 --- a/include/scene/material.h +++ b/include/scene/material.h @@ -3,10 +3,22 @@ #include "basic/types.h" #include "resource/texture.h" +#include #include namespace are { +// Texture slot enumeration for PBR materials +enum class TextureSlot { + ALBEDO = 0, + NORMAL = 1, + METALLIC = 2, + ROUGHNESS = 3, + AO = 4, + EMISSION = 5, + COUNT = 6 +}; + // Material type enumeration enum class MaterialType { DIFFUSE = 0, @@ -72,6 +84,37 @@ public: */ void set_normal_texture(std::shared_ptr texture); + /* + * @brief Set metallic map + * @param texture Metallic texture (R channel) + */ + void set_metallic_texture(std::shared_ptr texture); + + /* + * @brief Set roughness map + * @param texture Roughness texture (G channel) + */ + void set_roughness_texture(std::shared_ptr texture); + + /* + * @brief Set ambient occlusion map + * @param texture AO texture (R channel) + */ + void set_ao_texture(std::shared_ptr texture); + + /* + * @brief Set emission map + * @param texture Emission texture (RGB) + */ + void set_emission_texture(std::shared_ptr texture); + + /* + * @brief Set texture for a specific slot + * @param slot Texture slot + * @param texture Texture to set + */ + void set_texture(TextureSlot slot, std::shared_ptr texture); + /* * @brief Get albedo color * @return Albedo color @@ -125,7 +168,7 @@ public: * @return Albedo texture (nullptr if none) */ std::shared_ptr get_albedo_texture() const { - return albedo_texture_; + return textures_[static_cast(TextureSlot::ALBEDO)]; } /* @@ -133,7 +176,57 @@ public: * @return Normal texture (nullptr if none) */ std::shared_ptr get_normal_texture() const { - return normal_texture_; + return textures_[static_cast(TextureSlot::NORMAL)]; + } + + /* + * @brief Get metallic texture + * @return Metallic texture (nullptr if none) + */ + std::shared_ptr get_metallic_texture() const { + return textures_[static_cast(TextureSlot::METALLIC)]; + } + + /* + * @brief Get roughness texture + * @return Roughness texture (nullptr if none) + */ + std::shared_ptr get_roughness_texture() const { + return textures_[static_cast(TextureSlot::ROUGHNESS)]; + } + + /* + * @brief Get AO texture + * @return AO texture (nullptr if none) + */ + std::shared_ptr get_ao_texture() const { + return textures_[static_cast(TextureSlot::AO)]; + } + + /* + * @brief Get emission texture + * @return Emission texture (nullptr if none) + */ + std::shared_ptr get_emission_texture() const { + return textures_[static_cast(TextureSlot::EMISSION)]; + } + + /* + * @brief Get texture for a specific slot + * @param slot Texture slot + * @return Texture (nullptr if none) + */ + std::shared_ptr get_texture(TextureSlot slot) const { + return textures_[static_cast(slot)]; + } + + /* + * @brief Check if material has texture for slot + * @param slot Texture slot + * @return True if texture exists + */ + bool has_texture(TextureSlot slot) const { + return textures_[static_cast(slot)] != nullptr; } private: @@ -144,8 +237,7 @@ private: float ior_; MaterialType type_; - std::shared_ptr albedo_texture_; - std::shared_ptr normal_texture_; + std::array, static_cast(TextureSlot::COUNT)> textures_; }; } // namespace are diff --git a/include/scene/mesh.h b/include/scene/mesh.h index 12223dc..9cc238d 100644 --- a/include/scene/mesh.h +++ b/include/scene/mesh.h @@ -2,6 +2,7 @@ #define ARE_INCLUDE_SCENE_MESH_H #include "basic/types.h" +#include #include namespace are { @@ -39,6 +40,14 @@ public: */ void set_transform(const Mat4 &transform); + /* + * @brief Set position (sugar for transform) + * @param position Position vector + */ + void set_position(const Vec3 &position) { + transform_ = glm::translate(Mat4(1.0f), position); + } + /* * @brief Get vertices * @return Vertex array @@ -77,6 +86,12 @@ public: */ bool upload_to_gpu(); + /* + * @brief Compute tangents from positions, normals and texcoords + * Should be called after set_vertices and set_indices + */ + void compute_tangents(); + // Release GPU resources void release_gpu_resources(); diff --git a/shaders/raytracing.comp b/shaders/raytracing.comp index a34c5eb..fe0f9c8 100644 --- a/shaders/raytracing.comp +++ b/shaders/raytracing.comp @@ -32,12 +32,14 @@ layout(binding = 4, rgba32f) uniform image2D accumulation_image; struct Material { vec3 albedo; - float metallic; vec3 emission; + float metallic; float roughness; int type; float ior; - vec2 padding; + float padding1; + float padding2; + uint texture_handles[6]; }; struct Light { @@ -63,6 +65,7 @@ struct HitInfo { vec3 normal; vec2 texcoord; uint material_id; + int material_type; // material type from G-Buffer }; struct ScatterResult { @@ -100,6 +103,15 @@ uniform mat4 u_inv_view_projection; uniform bool u_enable_accumulation; uniform bool u_use_bvh; uniform uint u_bvh_node_count; +uniform bool u_enable_textures; + +// Texture samplers for PBR +layout(binding = 10) uniform sampler2D u_texture_albedo; +layout(binding = 11) uniform sampler2D u_texture_normal; +layout(binding = 12) uniform sampler2D u_texture_metallic; +layout(binding = 13) uniform sampler2D u_texture_roughness; +layout(binding = 14) uniform sampler2D u_texture_ao; +layout(binding = 15) uniform sampler2D u_texture_emission; // ============================================================================ // Utility @@ -353,6 +365,7 @@ HitInfo trace_primary_gbuffer(Ray ray, ivec2 pixel_coords) { hit.normal = vec3(0.0, 1.0, 0.0); hit.texcoord = vec2(0.0); hit.material_id = 0u; + hit.material_type = 0; vec4 pos = imageLoad(g_position, pixel_coords); if (pos.w <= 0.5) { @@ -364,11 +377,16 @@ HitInfo trace_primary_gbuffer(Ray ray, ivec2 pixel_coords) { // integer material id uint mid = imageLoad(g_material_id, pixel_coords).r; + + // material type stored in g_material.w + vec4 mat = imageLoad(g_material, pixel_coords); + int mtype = int(mat.w); hit.hit = true; hit.position = p; hit.normal = n; hit.material_id = mid; + hit.material_type = mtype; // For RR/any debug usage; path tracing uses this as starting point only. hit.t = length(p - ray.origin); @@ -380,6 +398,54 @@ HitInfo trace_primary_gbuffer(Ray ray, ivec2 pixel_coords) { // Material + scattering // ============================================================================ +// Apply normal map in world space +vec3 apply_normal_map(vec3 normal, vec2 texcoord, vec3 tangent, uint normal_handle) { + if (normal_handle == 0 || !u_enable_textures) return normal; + + vec3 T = normalize(tangent - normal * dot(tangent, normal)); + vec3 B = cross(normal, T); + mat3 TBN = mat3(T, B, normal); + + vec3 map_n = texture(u_texture_normal, texcoord).xyz * 2.0 - 1.0; + return normalize(TBN * map_n); +} + +// Apply material textures to get final PBR values +void apply_material_textures(inout Material mat, vec2 texcoord, vec3 normal, vec3 tangent) { + if (!u_enable_textures) return; + + // Albedo texture + if (mat.texture_handles[0] != 0) { + mat.albedo *= texture(u_texture_albedo, texcoord).rgb; + } + + // Normal map + if (mat.texture_handles[1] != 0) { + normal = apply_normal_map(normal, texcoord, tangent, mat.texture_handles[1]); + } + + // Metallic texture + if (mat.texture_handles[2] != 0) { + mat.metallic *= texture(u_texture_metallic, texcoord).r; + } + + // Roughness texture + if (mat.texture_handles[3] != 0) { + mat.roughness *= texture(u_texture_roughness, texcoord).r; + } + + // AO texture (multiply) + if (mat.texture_handles[4] != 0) { + float ao = texture(u_texture_ao, texcoord).r; + mat.albedo *= ao; + } + + // Emission texture (add) + if (mat.texture_handles[5] != 0) { + mat.emission += texture(u_texture_emission, texcoord).rgb; + } +} + vec3 fresnel_schlick(float cos_theta, vec3 f0) { return f0 + (1.0 - f0) * pow(1.0 - cos_theta, 5.0); } @@ -423,18 +489,37 @@ ScatterResult scatter_dielectric(Ray ray_in, HitInfo hit, Material mat, inout ui r.attenuation = vec3(1.0); vec3 unit_dir = normalize(ray_in.direction); - float cos_theta = min(dot(-unit_dir, hit.normal), 1.0); + float cos_theta = dot(-unit_dir, hit.normal); float sin_theta = sqrt(max(0.0, 1.0 - cos_theta * cos_theta)); - - float refraction_ratio = dot(unit_dir, hit.normal) < 0.0 ? (1.0 / mat.ior) : mat.ior; - bool cannot_refract = refraction_ratio * sin_theta > 1.0; - float reflect_prob = fresnel_dielectric(cos_theta, refraction_ratio); - + + // Determine if ray is entering or exiting the material + // If dot(dir, normal) < 0, ray is entering (from air into material) + bool entering = cos_theta > 0.0; + + // eta: ratio of indices (etai/etat) + // Entering: eta = 1.0/ior (air to material) + // Exiting: eta = ior/1.0 (material to air) + float eta = entering ? (1.0 / mat.ior) : mat.ior; + + // Use correct normal for refraction calculation + // When exiting, we need to use -normal + vec3 normal = entering ? hit.normal : -hit.normal; + + // Check for total internal reflection + float sin_theta_t = eta * sin_theta; + bool total_internal_reflection = sin_theta_t >= 1.0; + + // Fresnel reflectance (Schlick approximation) + float f0 = pow((1.0 - mat.ior) / (1.0 + mat.ior), 2.0); + float f = f0 + (1.0 - f0) * pow(1.0 - abs(cos_theta), 5.0); + vec3 dir; - if (cannot_refract || random_float(seed) < reflect_prob) { - dir = reflect_vector(unit_dir, hit.normal); + if (total_internal_reflection || random_float(seed) < f) { + // Reflect + dir = reflect_vector(unit_dir, normal); } else { - dir = refract_vector(unit_dir, hit.normal, refraction_ratio); + // Refract + dir = refract_vector(unit_dir, normal, eta); } r.scattered_ray.origin = hit.position + dir * EPSILON; @@ -547,6 +632,16 @@ vec3 trace_path_primary_gbuffer(ivec2 pixel_coords, ivec2 image_size, inout uint HitInfo hit0 = trace_primary_gbuffer(ray, pixel_coords); if (hit0.hit) { Material mat0 = fetch_material(hit0.material_id); + + // Override material type from G-Buffer if available + if (hit0.material_type >= 0) { + 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); radiance += throughput * mat0.emission; if (mat0.type == MATERIAL_DIFFUSE) { @@ -569,6 +664,11 @@ 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); radiance += throughput * mat.emission; if (mat.type == MATERIAL_DIFFUSE) { @@ -595,6 +695,16 @@ vec3 trace_path_primary_gbuffer(ivec2 pixel_coords, ivec2 image_size, inout uint return radiance; } +// ACES Filmic Tone Mapping +vec3 aces_tonemap(vec3 x) { + float a = 2.51; + float b = 0.03; + float c = 2.43; + float d = 0.59; + float e = 0.14; + return clamp((x * (a * x + b)) / (x * (c * x + d) + e), 0.0, 1.0); +} + void main() { ivec2 pixel_coords = ivec2(gl_GlobalInvocationID.xy); ivec2 image_size = imageSize(output_image); @@ -611,14 +721,20 @@ void main() { } color /= float(spp); - color = clamp(color, vec3(0.0), vec3(10.0)); + color = clamp(color, vec3(0.0), vec3(100.0)); + // Store HDR color to accumulation buffer BEFORE tone mapping + vec3 accumulation_color = color; + if (u_enable_accumulation && u_frame_count > 0u) { vec3 accumulated = imageLoad(accumulation_image, pixel_coords).rgb; float w = 1.0 / float(u_frame_count + 1u); - color = mix(accumulated, color, w); + accumulation_color = mix(accumulated, color, w); } + + // Apply ACES tone mapping to output (not accumulation) + vec3 output_color = aces_tonemap(accumulation_color); - imageStore(accumulation_image, pixel_coords, vec4(color, 1.0)); - imageStore(output_image, pixel_coords, vec4(color, 1.0)); + imageStore(accumulation_image, pixel_coords, vec4(accumulation_color, 1.0)); + imageStore(output_image, pixel_coords, vec4(output_color, 1.0)); } diff --git a/src/core/raytracer.cpp b/src/core/raytracer.cpp index b056d77..c9790b7 100644 --- a/src/core/raytracer.cpp +++ b/src/core/raytracer.cpp @@ -175,6 +175,35 @@ void RayTracer::trace(const Scene &scene, const GBuffer &gbuffer, TextureHandle compute_shader_->set_uint("u_light_count", static_cast(scene.get_lights().size())); 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); + + // Bind texture samplers (binding 10-15) + if (has_textures) { + // Bind default textures (0 = no texture) for now + // In full implementation, would bind actual material textures + glActiveTexture(GL_TEXTURE10); + glBindTexture(GL_TEXTURE_2D, 0); + glActiveTexture(GL_TEXTURE11); + glBindTexture(GL_TEXTURE_2D, 0); + glActiveTexture(GL_TEXTURE12); + glBindTexture(GL_TEXTURE_2D, 0); + glActiveTexture(GL_TEXTURE13); + glBindTexture(GL_TEXTURE_2D, 0); + glActiveTexture(GL_TEXTURE14); + glBindTexture(GL_TEXTURE_2D, 0); + glActiveTexture(GL_TEXTURE15); + glBindTexture(GL_TEXTURE_2D, 0); + } + // Set camera data const Camera &camera = scene.get_camera(); compute_shader_->set_vec3("u_camera_position", camera.get_position()); @@ -247,14 +276,17 @@ void RayTracer::upload_scene_data_(const Scene &scene) { // Upload materials (on change only) const auto &materials = scene.get_materials(); if (!materials.empty()) { + // Aligned to match GLSL std430 layout (vec3 = vec4 = 16 bytes) struct MaterialData { - Vec3 albedo; + alignas(16) Vec3 albedo; + alignas(16) Vec3 emission; float metallic; - Vec3 emission; float roughness; int type; float ior; - Vec2 padding; + float padding1; + float padding2; + uint texture_handles[6]; }; std::vector material_data; @@ -268,6 +300,15 @@ void RayTracer::upload_scene_data_(const Scene &scene) { data.roughness = mat->get_roughness(); 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; + material_data.push_back(data); } diff --git a/src/scene/material.cpp b/src/scene/material.cpp index 9e805de..a597f2c 100644 --- a/src/scene/material.cpp +++ b/src/scene/material.cpp @@ -1,51 +1,71 @@ #include "scene/material.h" +#include namespace are { Material::Material() - : albedo_(1.0f, 1.0f, 1.0f) - , emission_(0.0f, 0.0f, 0.0f) - , metallic_(0.0f) - , roughness_(0.5f) - , ior_(1.5f) - , type_(MaterialType::DIFFUSE) - , albedo_texture_(nullptr) - , normal_texture_(nullptr) { + : albedo_(1.0f, 1.0f, 1.0f) + , emission_(0.0f, 0.0f, 0.0f) + , metallic_(0.0f) + , roughness_(0.5f) + , ior_(1.5f) + , type_(MaterialType::DIFFUSE) + , textures_() { } Material::~Material() { } -void Material::set_albedo(const Vec3& albedo) { - albedo_ = albedo; +void Material::set_albedo(const Vec3 &albedo) { + albedo_ = albedo; } -void Material::set_emission(const Vec3& emission) { - emission_ = emission; +void Material::set_emission(const Vec3 &emission) { + emission_ = emission; } void Material::set_metallic(float metallic) { - metallic_ = glm::clamp(metallic, 0.0f, 1.0f); + metallic_ = glm::clamp(metallic, 0.0f, 1.0f); } void Material::set_roughness(float roughness) { - roughness_ = glm::clamp(roughness, 0.0f, 1.0f); + roughness_ = glm::clamp(roughness, 0.0f, 1.0f); } void Material::set_ior(float ior) { - ior_ = ior; + ior_ = ior; } void Material::set_type(MaterialType type) { - type_ = type; + type_ = type; } void Material::set_albedo_texture(std::shared_ptr texture) { - albedo_texture_ = texture; + textures_[static_cast(TextureSlot::ALBEDO)] = texture; } void Material::set_normal_texture(std::shared_ptr texture) { - normal_texture_ = texture; + textures_[static_cast(TextureSlot::NORMAL)] = texture; +} + +void Material::set_metallic_texture(std::shared_ptr texture) { + textures_[static_cast(TextureSlot::METALLIC)] = texture; +} + +void Material::set_roughness_texture(std::shared_ptr texture) { + textures_[static_cast(TextureSlot::ROUGHNESS)] = texture; +} + +void Material::set_ao_texture(std::shared_ptr texture) { + textures_[static_cast(TextureSlot::AO)] = texture; +} + +void Material::set_emission_texture(std::shared_ptr texture) { + textures_[static_cast(TextureSlot::EMISSION)] = texture; +} + +void Material::set_texture(TextureSlot slot, std::shared_ptr texture) { + textures_[static_cast(slot)] = texture; } } // namespace are diff --git a/src/scene/mesh.cpp b/src/scene/mesh.cpp index 51848ea..032fe19 100644 --- a/src/scene/mesh.cpp +++ b/src/scene/mesh.cpp @@ -1,119 +1,170 @@ #include "scene/mesh.h" #include "utils/logger.h" +#include #include namespace are { Mesh::Mesh() - : material_id_(0) - , transform_(1.0f) - , vao_(0) - , vbo_(0) - , ebo_(0) - , uploaded_(false) { + : material_id_(0) + , transform_(1.0f) + , vao_(0) + , vbo_(0) + , ebo_(0) + , uploaded_(false) { } Mesh::~Mesh() { - release_gpu_resources(); + release_gpu_resources(); } -void Mesh::set_vertices(const std::vector& vertices) { - vertices_ = vertices; - uploaded_ = false; +void Mesh::set_vertices(const std::vector &vertices) { + vertices_ = vertices; + uploaded_ = false; } -void Mesh::set_indices(const std::vector& indices) { - indices_ = indices; - uploaded_ = false; +void Mesh::set_indices(const std::vector &indices) { + indices_ = indices; + uploaded_ = false; } void Mesh::set_material(uint material_id) { - material_id_ = material_id; + material_id_ = material_id; } -void Mesh::set_transform(const Mat4& transform) { - transform_ = transform; +void Mesh::set_transform(const Mat4 &transform) { + transform_ = transform; } bool Mesh::upload_to_gpu() { - if (uploaded_) { - ARE_LOG_WARN("Mesh already uploaded to GPU"); - return true; - } - - if (vertices_.empty()) { - ARE_LOG_ERROR("Cannot upload mesh: no vertices"); - return false; - } - - if (indices_.empty()) { - ARE_LOG_ERROR("Cannot upload mesh: no indices"); - return false; - } - - // Generate VAO - glGenVertexArrays(1, &vao_); - glBindVertexArray(vao_); - - // Generate and upload VBO - glGenBuffers(1, &vbo_); - glBindBuffer(GL_ARRAY_BUFFER, vbo_); - glBufferData(GL_ARRAY_BUFFER, vertices_.size() * sizeof(Vertex), - vertices_.data(), GL_STATIC_DRAW); - - // Generate and upload EBO - glGenBuffers(1, &ebo_); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo_); - glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices_.size() * sizeof(uint), - indices_.data(), GL_STATIC_DRAW); - - // Set vertex attributes - // Location 0: Position - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), - (void*)offsetof(Vertex, position_)); - - // Location 1: Normal - glEnableVertexAttribArray(1); - glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), - (void*)offsetof(Vertex, normal_)); - - // Location 2: TexCoord - glEnableVertexAttribArray(2); - glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), - (void*)offsetof(Vertex, texcoord_)); - - // Location 3: Tangent - glEnableVertexAttribArray(3); - glVertexAttribPointer(3, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), - (void*)offsetof(Vertex, tangent_)); - - glBindVertexArray(0); - - uploaded_ = true; - ARE_LOG_INFO("Mesh uploaded to GPU successfully"); - return true; + if (uploaded_) { + ARE_LOG_WARN("Mesh already uploaded to GPU"); + return true; + } + + if (vertices_.empty()) { + ARE_LOG_ERROR("Cannot upload mesh: no vertices"); + return false; + } + + if (indices_.empty()) { + ARE_LOG_ERROR("Cannot upload mesh: no indices"); + return false; + } + + // Generate VAO + glGenVertexArrays(1, &vao_); + glBindVertexArray(vao_); + + // Generate and upload VBO + glGenBuffers(1, &vbo_); + glBindBuffer(GL_ARRAY_BUFFER, vbo_); + glBufferData(GL_ARRAY_BUFFER, vertices_.size() * sizeof(Vertex), + vertices_.data(), GL_STATIC_DRAW); + + // Generate and upload EBO + glGenBuffers(1, &ebo_); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo_); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices_.size() * sizeof(uint), + indices_.data(), GL_STATIC_DRAW); + + // Set vertex attributes + // Location 0: Position + glEnableVertexAttribArray(0); + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), + (void *)offsetof(Vertex, position_)); + + // Location 1: Normal + glEnableVertexAttribArray(1); + glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), + (void *)offsetof(Vertex, normal_)); + + // Location 2: TexCoord + glEnableVertexAttribArray(2); + glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), + (void *)offsetof(Vertex, texcoord_)); + + // Location 3: Tangent + glEnableVertexAttribArray(3); + glVertexAttribPointer(3, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), + (void *)offsetof(Vertex, tangent_)); + + glBindVertexArray(0); + + uploaded_ = true; + ARE_LOG_INFO("Mesh uploaded to GPU successfully"); + return true; } void Mesh::release_gpu_resources() { - if (!uploaded_) return; - - if (vao_ != 0) { - glDeleteVertexArrays(1, &vao_); - vao_ = 0; - } - - if (vbo_ != 0) { - glDeleteBuffers(1, &vbo_); - vbo_ = 0; - } - - if (ebo_ != 0) { - glDeleteBuffers(1, &ebo_); - ebo_ = 0; - } - - uploaded_ = false; + if (!uploaded_) + return; + + if (vao_ != 0) { + glDeleteVertexArrays(1, &vao_); + vao_ = 0; + } + + if (vbo_ != 0) { + glDeleteBuffers(1, &vbo_); + vbo_ = 0; + } + + if (ebo_ != 0) { + glDeleteBuffers(1, &ebo_); + ebo_ = 0; + } + + uploaded_ = false; +} + +void Mesh::compute_tangents() { + if (vertices_.empty() || indices_.empty()) { + ARE_LOG_WARN("Cannot compute tangents: mesh is empty"); + return; + } + + std::fill(vertices_.begin(), vertices_.end(), Vertex {}); + + for (size_t i = 0; i < indices_.size(); i += 3) { + uint i0 = indices_[i]; + uint i1 = indices_[i + 1]; + uint i2 = indices_[i + 2]; + + Vertex &v0 = vertices_[i0]; + Vertex &v1 = vertices_[i1]; + Vertex &v2 = vertices_[i2]; + + Vec3 pos0 = v0.position_; + Vec3 pos1 = v1.position_; + Vec3 pos2 = v2.position_; + + Vec2 uv0 = v0.texcoord_; + Vec2 uv1 = v1.texcoord_; + Vec2 uv2 = v2.texcoord_; + + Vec3 edge1 = pos1 - pos0; + Vec3 edge2 = pos2 - pos0; + Vec2 delta_uv1 = uv1 - uv0; + Vec2 delta_uv2 = uv2 - uv0; + + float r = 1.0f / (delta_uv1.x * delta_uv2.y - delta_uv2.x * delta_uv1.y); + if (std::abs(r) < 1e-6f) + r = 1.0f; + + Vec3 tangent = (edge1 * delta_uv2.y - edge2 * delta_uv1.y) * r; + tangent = glm::normalize(tangent - v0.normal_ * glm::dot(tangent, v0.normal_)); + + v0.tangent_ += tangent; + v1.tangent_ += tangent; + v2.tangent_ += tangent; + } + + for (auto &v : vertices_) { + v.tangent_ = glm::normalize(v.tangent_); + } + + ARE_LOG_INFO("Computed tangents for mesh"); } } // namespace are