From c80479d1d22fe98f41b584972affeb43422a23a6 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Sokolov" Date: Sun, 20 Jan 2019 12:17:45 +0100 Subject: [PATCH] reflections --- out.jpg | Bin 50930 -> 41335 bytes tinyraytracer.cpp | 25 +++++++++++++++---------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/out.jpg b/out.jpg index aca662b112489e516f687cc4777273328bbc629c..609e5c612b8cec6131efac21e5c456b9555f1202 100644 GIT binary patch literal 41335 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

(AX06=A#e zx2uTf2J8`^%QdYW)AQJycWx%O`P;vJ4)OoQ)x!ZrK0)Cp9=oI{!dLfq6tDDt(etbM zoHuyYRyN%%XJr~C8t?_gNp?q?6p14_dP>EkE5;v78%ccU&T-rQaNaAMJ!{#tM%qqN z#aoj*{QbGB5_IRBD`YPyaTDd-y^(cu)9wFyp+EPj|FL^VvY5YENIG43lBv=n^E2=j zvfE^m&6(5HrYvJW^20VVe-x&?_j7%Hwca|@Fpjdwo=jPs*7L5KF!L)^wF#Ll)6XBF zw0)>MuLVT)LKh^Y5nP8@0#H}JwZG$2ji5Cm7m-*pLDx>VE-&qBS$75J7(t8RCj#s# zAY5ke4nI#oR3L$?_P0X7m;uYZ_Dk32^xQQO2W{@O*k)j^#hItr(b5(wC0BUeHgwVG zlHVTQ08Z@J#BQvYi88$a#kg3Al22Y4Cbul8k=S0>u1s-?!WF8gD)Cl!Pevu10R?tc z%kWcjJ1y<>%IZ{V_Ae9#Z>%BSRg$=#fr7wpAv0h+w!=WVj~*@x?-&(@nqOtcgOpCz zb`oqv`e~a1+I?%{^Y@*qQM=9&Km`9095*xrHQD*9y?>teo4zL3`U=-T3ED7gJUnxg z1c(NS2w9)6EnWXPL;iF3B;6d>ExSHs-d{gjjuzUAH<8|g0_Q~$ZB5ui;R###~UabN2f#$^~PK{eB zI;a2z51*>f-Lv4#qRYq9RIYd`3{-ag^Kj+J&=PIC4%Ut!JIINUw$tULPBjRl=5zq! zg=5+P6zwy|xP-c0j7#N!%s$!5a{~=z0V+rtPBxONM%KigbocVcqw8BPJNn7Y0Ob7v z%8JC=8ws56+gBLT$pK$urylo57Tnltq0hYx7GH~YVX&ChGgIol^|)B42%;Qc8eg~* zYn&|5tcg`QLWsS&T`+2=H%W{oAfY4jGYDvc8Nx0rc||f4@3?0;PHRcJJGyGGv??VJ z&vw1zkh%>flwYRr%O`v&TCtIo(2gLU<9ChURX=2e+J$%R<)p3NQx@801Ttxk(%AGD z2};cfkQKvu7ASG%fDAtr3MT$!)PK405kjJ_iL5@_`dId`yHwCSguYU?!vf?C4NmXd z%r?LF#v=0;X@-#R|Nb35dS@~;&_GO;bemk6c{Wx+yqTRb-sQL5a+2TzaO**rYeIw! zcxq0=%~drNpas;c+3B**=fzEcnogptrC#h^nkf8DcbvrxBCU|jU_F* z^+M0Wty&dTZC}O1iuw%i=@*QQ3es-aTy4*xy&DpEX*O;vqbsbh-1T&q^?f(Z=aH*3 zxTy(*c_hI`uAG-kAt0@QbVFI8M9sh(c#IrKfjXcEOr79^eryW1xF4lq!6pZKTDNYWvlIJY-O!9T{(qvzTSV& zGbYCbIs*iwgVF>K;uf1k29ZpESAz+3C(BEt*tu_Q=Ttv7RlaO*UwV0hJDAp+Yl&8) zmHXa80y0+j>xiPl*pe{_QkP@H4g8Dotj`xibiIl zm_xKr0!pk_nE13WQXLW8(M8?0zwi2!K;v>_nmgL{E+B*N7%JVw*;Vs>iXs_j0|A|P zj|~Khwsv95g`efzwr(8TS8u9Hx7`>PJ*ycB*#uK8*2K66C# z{eiMtpmIbqZ6o{&;GBT>RfD%4_xJ9l0J`11%Sf)`8=$mXQU~jF#V*}5N;dN{pp+*X z`LQsa3}OxOU}jxjS$eH}93W4&?S(%QA;y$piF2CVL-;FdK^?l-2s#KnqSe6sK-6P4 zz|x=3RPUeYIS^rnF?$2mxY6ngy*gW)7`>j}$R^t|{MA?4Cczrf5g3dNd|`n2O@uy% zWVE(krigXroR&>Iay=QP2Rb#54ar8F0OB+Zk&Q{lv0ty5T$Px#B{3aiY@EotR(+W} zN9afKI*lv_TX(ntHi{idTN7!|b6RQ}L((bkCpa|@rhoa>ou#kSAZxGqBi5cb?$8AP)+GkdvHi+v{1#h2O%feu2W&zzH)Ae(O#(tgV(-^FEc<973z0H)J>D6z=52KTUGySo-v$47s@d(uHfy4c8t6cuasVucWkwG%bce z%CbCv{kL8H53aumba|?Ps0foV>BES1K@Xj_xQS6L)9#eFZqthzCUvXFI68?>as9Es z`f=%3hVS^wgmJc>dx>_3cHSa-fdL3)({p!j4bbBsLhSsqys9VM^u?bg zkNi)4{lEBMJ~TgX-R4;o4AP?eC;byG`hw^8B^$dr$6Cz>0>v@SJ8ev(m)qp%Be{S1 zXGha6AcsYS!>2^sCV=kLk^^k;>}gWIHkMjI;P7^`nhLk|L<<>db(#Vk)rQ$pJvxEeVWPcE0WI{_N8YXp*l@$Ex<7S$ z;E0qK&R;53AiLYDCg}sv$3QA**LlPaRFy}o>X)qf-rw0aE>9V&9bXwVG7Fc(&AYqC zr`^IHyDB+^oGze~x~=M4v9JHD!~dn$;nUqmi-X~%WZvkP&O~VAuC6V!3MfyX>{jr2 zqJn4Xxe0wVEEe68?#=Zpabh@gXpL;%ZrAo&=qNH2_0~*d?+FrwY%4?iyPCmOIt%vKm>Lt31#G}$<%W|Rri}urQJIBen~FB`BIhU zD*}($>-Ey0;S=KBu@kI|0b zN649)k^4YCSfL!-o%w?QT-%%1+4?Y39B!1JTM)AMc54T4_Cf&Ylxk8G#d})wM0SAh z&8Y+=GbWWriB*GTi@yq0_ZHNVAV;;nJ8M>|fW(Nn9NzOr80Yd= z$s-xQCM$Wma>_pDqbPMwaNBK0@XO)e%c1pYD$BK*eESuTdunxvf=th=;m* z6Vt>PIEp-hCatW!3q1JHw8eW8fv~9 zc?q~OIWL0uJT^SijkDr5@$)&w{(6cqU>g`4k1VGv(9L3YNlC$ryH*WywJDzF z^YA?2M_1iQYcH(I)0$7KSroP<`GA462h}nUJ^jTagwl{QL7MEO8&>({|I)|%cQ^mG az`rfD_20E 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%0DqZ%cZJLHsXEhw6t&Y(t2zX&nm4u0E1TCP4g5Bc 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 &spheres, const std::vector &lights) { +Vec3f cast_ray(const Vec3f &orig, const Vec3f &dir, const std::vector &spheres, const std::vector &lights, size_t depth=0) { Vec3f point, N; Material material; - if (!scene_intersect(orig, dir, spheres, point, N, material)) { + if (depth>4 || !scene_intersect(orig, dir, spheres, point, N, material)) { return Vec3f(0.2, 0.7, 0.8); // background color } + Vec3f reflect_dir = reflect(dir, N).normalize(); + Vec3f reflect_orig = reflect_dir*N < 0 ? point - N*1e-3 : point + N*1e-3; // offset the original point to avoid occlusion by the object itself + Vec3f reflect_color = cast_ray(reflect_orig, reflect_dir, spheres, lights, depth + 1); + float diffuse_light_intensity = 0, specular_light_intensity = 0; for (size_t i=0; i &s diffuse_light_intensity += lights[i].intensity * std::max(0.f, light_dir*N); specular_light_intensity += powf(std::max(0.f, -reflect(-light_dir, N)*dir), material.specular_exponent)*lights[i].intensity; } - return material.diffuse_color * diffuse_light_intensity * material.albedo[0] + Vec3f(1., 1., 1.)*specular_light_intensity * material.albedo[1]; + return material.diffuse_color * diffuse_light_intensity * material.albedo[0] + Vec3f(1., 1., 1.)*specular_light_intensity * material.albedo[1] + reflect_color*material.albedo[2]; } void render(const std::vector &spheres, const std::vector &lights) { @@ -114,14 +118,15 @@ void render(const std::vector &spheres, const std::vector &lights } int main() { - Material ivory(Vec2f(0.6, 0.3), Vec3f(0.4, 0.4, 0.3), 50.); - Material red_rubber(Vec2f(0.9, 0.1), Vec3f(0.3, 0.1, 0.1), 10.); + Material ivory(Vec3f(0.6, 0.3, 0.1), Vec3f(0.4, 0.4, 0.3), 50.); + Material red_rubber(Vec3f(0.9, 0.1, 0.0), Vec3f(0.3, 0.1, 0.1), 10.); + Material mirror(Vec3f(0.0, 10.0, 0.8), Vec3f(1.0, 1.0, 1.0), 1425.); std::vector spheres; spheres.push_back(Sphere(Vec3f(-3, 0, -16), 2, ivory)); - spheres.push_back(Sphere(Vec3f(-1.0, -1.5, -12), 2, red_rubber)); + spheres.push_back(Sphere(Vec3f(-1.0, -1.5, -12), 2, mirror)); spheres.push_back(Sphere(Vec3f( 1.5, -0.5, -18), 3, red_rubber)); - spheres.push_back(Sphere(Vec3f( 7, 5, -18), 4, ivory)); + spheres.push_back(Sphere(Vec3f( 7, 5, -18), 4, mirror)); std::vector lights; lights.push_back(Light(Vec3f(-20, 20, 20), 1.5));