From c57d084a98b75f99abf2758260a381017b8e86ea Mon Sep 17 00:00:00 2001 From: Marius Horga Date: Thu, 2 Mar 2017 00:03:04 -0600 Subject: [PATCH] added shadows --- README.md | 3 ++- .../UserInterfaceState.xcuserstate | Bin 10523 -> 11389 bytes 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 57bc338..563835a 100644 --- a/README.md +++ b/README.md @@ -21,4 +21,5 @@ Repository to accompany the following blog posts: - [Using MetalKit part 17](http://metalkit.org/2016/09/24/using-metalkit-part-17.html) - [Using MetalKit part 18](http://metalkit.org/2016/10/01/using-metalkit-part-2-3-2.html) - [Raymarching in Metal](http://metalkit.org/2016/12/30/raymarching-in-metal.html) -- [Shadows in Metal part 1](http://metalkit.org/2017/01/31/shadows-in-metal-part-1.html) \ No newline at end of file +- [Shadows in Metal part 1](http://metalkit.org/2017/01/31/shadows-in-metal-part-1.html) +- [Shadows in Metal part 2](http://metalkit.org/2017/02/28/shadows-in-metal-part-2.html) \ No newline at end of file diff --git a/shadows/shadows2.playground/playground.xcworkspace/xcuserdata/marius.xcuserdatad/UserInterfaceState.xcuserstate b/shadows/shadows2.playground/playground.xcworkspace/xcuserdata/marius.xcuserdatad/UserInterfaceState.xcuserstate index 6414c11e2311742e3166080ddf2a4398e4536a9e..58b9efb2ceeca14a02750a8929153bd4832186bf 100644 GIT binary patch literal 11389 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

USj>r-4`M!!`6T9a z%*B|?Qi)V5l}Qy+qtq(3NgdLD(iG_c>9x|K((%#>(sHR&+9;hRoiAM|T`XN9y-RwJ zbh&h;be(jgbcb}8bf5Hu^b_eh>37l#(u>kd(qE;QV_~czHaE5~wm7ylwmh~Xwkmc? zY)$OU*rr%-?5tRSY)fowY+LN|*k@utl_41`OO&O{vSit^T-h+$^|FbwYFUkJnygO7 z%Nk_OvJTlI*=@3=vO8oeWUFMWWou>k%erJi*%sMW*)G|OvX^ChW&33ZW$((4$d1b1 zlYK3_B>PPcp<;|;tYVy^M$xKR zu6S6nQ?WM7L$)hX3wwNl+rovFS-JwlzQE>IV$$Eb_drRs8Z zg}O>TMO~wAQ{SuJt$tPgt@>vT)~GZ(O@GaGnwvCJHEo)9O^0TIrc<*}vs3eu<`vC8 z%>m6jnvXP}YCh9^q4`qto#s-UCC(lB$dW+U?ivyFL<+0DGjyv)4EoM1j@&NAni^UMY2BJ(5j zGb>}&tcA6+eb_{{KYI;3kWFKA*+OZ?+r)a=S?qlFZgv^F zf?dU~X4kU!v+LL=*e&c|*zN4o>@)0N+2`0@>|ypJ_G9)Wdy2it{>c8!{=)vI1zNdQ zqh+*OtzO$lo1{(F4$xk!P1WXW>$J^UzqUm?M>|(LPrF3BMY~hGSG!+(PT9pRBLc*XntFgWj#5t)HWxtDmP|tiMOUPXCbp5q+2b3H?_6 zHvLojSM|sAC-tZFpXxu;f1&?I|DFDV{-XXz{m%w$P#a8!bi)mX(S{ohHyOqoCK@Ii zDh<_!sRpOPWmsT%(D1V1xZ#xHwBd~5Tf+szMZ-^qONL)Lma}nvxI`|Q>(5=oWpTOO zFz$M8I5&qnoxrN+fZV7igw~~8=ThDcI8@TP<4sIv+ z9Jh;mfjhvx#=XwH$sOiC;!bmCxX-z>+&S(%_bqqHC^51|&S)}PjCNxmW1_L2F~>O4 zc(ZZ3kr>w*A2L2->@sdJzF<6HeBF55c*zuNlADw!wJFY&WJ)&mH(g^IXi78Xn1-3I zHw`z9Gfgl}GTm&dGS!)yO+Hh=G~2Yyw8FH?wA!@RwBEGI^r-1^)03wCrh}$Krq@ib zn~s`}o8C8lX!^nQFVjz^OQv53 zICF)$+C0@f&0K4)H#eDQo7bB+ncp%WH~(hAmI0O_mOM*=rO-0QGS)KAQf{fRR9U82 zYAh~Gon^jdxn-+mzvYbOoaJZBFP7ipK|G3=#7pC4@rHO~yg5ETetNt=z9qgjzAb)V z{Nea_;*Z21voh8MtKHhinrJPzI<2+Vdh2wn-#W)S*E-MIXXTkYHJJM7QdciUgG@3FsOf6M;1{fNWnxYm*C z805%wbU5yCEOV@Mtad!$c*wEd5p+D}*yec7alrAK;|<4Q$5F>|#|Ms&9G^PAa(wUj brH`hMu8%oX0|11?pIDqeiNDbAed7NI?cD$(