From 8fd17b8d6dd02f38642533134be0aeae3dae6e5d Mon Sep 17 00:00:00 2001 From: Marius Horga Date: Fri, 13 Jul 2018 22:42:07 -0500 Subject: [PATCH] added raytracing --- .../UserInterfaceState.xcuserstate | Bin 107362 -> 70000 bytes raytracing/Renderer.swift | 22 ++++++++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/raytracing/RayTracing.xcodeproj/project.xcworkspace/xcuserdata/marius.xcuserdatad/UserInterfaceState.xcuserstate b/raytracing/RayTracing.xcodeproj/project.xcworkspace/xcuserdata/marius.xcuserdatad/UserInterfaceState.xcuserstate index 2eb67ac20a03e2ae072426dfb60443074c9b69e8..c5e8daf395d230abdcd3b576c28b85d0c13f6cce 100644 GIT binary patch delta 32377 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

d^zzdi zzRos;r-M%`PLG_{oiql zW`1*Vb5(O~^ZT>Q&aOP`ah7xx#-R#GdqHLW$TwXpSO z>x0&RFTe*cSX{8W09=T^5OZPZ!qf#_+qZ4o+IFygAXGdpu=clffU2D38UBO+7uFGAMUE1zn;ck;|v+mgL6Wtlz^W87HU-ww` zV0)Z<5_>Xxa(b@y-0k_hcW>{ZUPP~=7wiq|?d~1w9qE1D`=xJbpM9TOpJ!imUs7Lc z-{ro^K5hT1{*C>c`#t+f{nY;4{?h)6{yY8u_RnA1ed+g0hb{>&$u7w+HC}4F)G@GT zVAH_X0onk}8xRiE51b!p8+bRkba2I>)1cQNelT~ibg*LZ#o))mFPEv8xt9f(8!oqA zZomBO^83r5hTMkyhDbxFhZ={@4!s!qIP~R;+ZDenq$^cdny#F?^7_h`;ibdA!}MY1 zaOLos;pXADBj1cHAEAzLM+75HBkd!dqnk%}j_w%+Mx)`;n9)B*Z;##^Lyp;w*^gz6 z6^s>+8OL6Zy&1O|cN)iyCyr;1=ZqW1Z;s!Y_Uhyr&^{i zOkJGnn(CQ?$EGHxrlxe$%csAe-ZH&yddKvx={?h!Y1e6wY42(Lv~XHI9X%a09XB06 zoiv>~T`=7^-8VfjJv2Qvt((?Q-0)&0x>jA6u3I;*yQaITyQ90Wd!(DwE$E);KIlH_zRWD0@tC2`&}SGk?3wDB^D`G` zx@LN324}9!jLwYD=w`0X+?{zm^J?b(%qRU4{R;hR{W|>y{SW$I^@sEbJyMU-+v#Bk zy^|iNchhV1x%wu3yM91Fq#x0b>!D;IJweuV1H_mUK|6zXn{LcA< z^Ct7A^XBuG^Vaj|dAoW3eEj^``9J6H&(F<2pMN#~*|@^E*0|gFv+U^v~E literal 107362 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 F{tr$zo6-OP diff --git a/raytracing/Renderer.swift b/raytracing/Renderer.swift index 104726a..371ddb4 100644 --- a/raytracing/Renderer.swift +++ b/raytracing/Renderer.swift @@ -99,21 +99,23 @@ class Renderer: NSObject { func createScene() { // light source - var transform = translate(tx: 0, ty: 1, tz: 0) * scale(sx: 0.5, sy: 1.98, sz: 0.5) + var transform = translate(tx: 0, ty: 1, tz: 0.3) * scale(sx: 0.5, sy: 1.98, sz: 0.5) createCube(faceMask: .positiveY, color: float3(1), transform: transform, inwardNormals: true, triangleMask: TRIANGLE_MASK_LIGHT) - // top, bottom and back walls + // top wall transform = translate(tx: 0, ty: 1, tz: 0) * scale(sx: 2, sy: 2, sz: 2) - createCube(faceMask: [.negativeY, .positiveY, .negativeZ], color: float3(0.725, 0.71, 0.68), transform: transform, inwardNormals: true, triangleMask: TRIANGLE_MASK_GEOMETRY) + createCube(faceMask: .positiveY, color: float3(0.02, 0.4, 0.02), transform: transform, inwardNormals: true, triangleMask: TRIANGLE_MASK_GEOMETRY) + // bottom and back walls + createCube(faceMask: [.negativeY, .negativeZ], color: float3(1.0), transform: transform, inwardNormals: true, triangleMask: TRIANGLE_MASK_GEOMETRY) // left wall - createCube(faceMask: .negativeX, color: float3(0.63, 0.065, 0.05), transform: transform, inwardNormals: true, triangleMask: TRIANGLE_MASK_GEOMETRY) + createCube(faceMask: .negativeX, color: float3(1.0, 0.02, 0.02), transform: transform, inwardNormals: true, triangleMask: TRIANGLE_MASK_GEOMETRY) // right wall - createCube(faceMask: .positiveX, color: float3(0.14, 0.45, 0.091), transform: transform, inwardNormals: true, triangleMask: TRIANGLE_MASK_GEOMETRY) + createCube(faceMask: [.positiveX], color: float3(0.02, 0.02, 0.2), transform: transform, inwardNormals: true, triangleMask: TRIANGLE_MASK_GEOMETRY) // short box - transform = translate(tx: 0.3275, ty: 0.3, tz: 0.3725) * rotate(radians: -0.3, axis: float3(0.0, 1.0, 0.0)) * scale(sx: 0.6, sy: 0.6, sz: 0.6) - createCube(faceMask: .all, color: float3(0.725, 0.71, 0.68), transform: transform, inwardNormals: false, triangleMask: TRIANGLE_MASK_GEOMETRY) + transform = translate(tx: 0.35, ty: 0.3, tz: 0.3725) * rotate(radians: -0.3, axis: float3(0.0, 1.0, 0.0)) * scale(sx: 0.6, sy: 0.6, sz: 0.6) + createCube(faceMask: .all, color: float3(1.0, 1.0, 0.3), transform: transform, inwardNormals: false, triangleMask: TRIANGLE_MASK_GEOMETRY) // tall box - transform = translate(tx: -0.335, ty: 0.6, tz: -0.29) * rotate(radians: 0.3, axis: float3(0.0, 1.0, 0.0)) * scale(sx: 0.6, sy: 1.2, sz: 0.6) - createCube(faceMask: .all, color: float3(0.725, 0.71, 0.68), transform: transform, inwardNormals: false, triangleMask: TRIANGLE_MASK_GEOMETRY) + transform = translate(tx: -0.4, ty: 0.6, tz: -0.29) * rotate(radians: 0.3, axis: float3(0.0, 1.0, 0.0)) * scale(sx: 0.6, sy: 1.2, sz: 0.6) + createCube(faceMask: .all, color: float3(1.0, 1.0, 0.3), transform: transform, inwardNormals: false, triangleMask: TRIANGLE_MASK_GEOMETRY) } func createBuffers() { @@ -157,7 +159,7 @@ class Renderer: NSObject { uniforms.pointee.light.forward = float3(0.0, -1.0, 0.0) uniforms.pointee.light.right = float3(0.25, 0.0, 0.0) uniforms.pointee.light.up = float3(0.0, 0.0, 0.25) - uniforms.pointee.light.color = float3(4.0, 4.0, 4.0) + uniforms.pointee.light.color = float3(12.0) let fieldOfView = 45.0 * (Float.pi / 180.0) let aspectRatio = Float(size.width) / Float(size.height)