diff --git a/PROJ1_WIN/565Raytracer.opensdf b/PROJ1_WIN/565Raytracer.opensdf
new file mode 100644
index 0000000..126613f
Binary files /dev/null and b/PROJ1_WIN/565Raytracer.opensdf differ
diff --git a/PROJ1_WIN/565Raytracer.sdf b/PROJ1_WIN/565Raytracer.sdf
new file mode 100644
index 0000000..cb44814
Binary files /dev/null and b/PROJ1_WIN/565Raytracer.sdf differ
diff --git a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj
index fcc853d..af3a780 100755
--- a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj
+++ b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj
@@ -36,6 +36,11 @@
+
+
+
+
+
{FF21CA49-522E-4E86-B508-EE515B248FC4}
Win32Proj
@@ -117,6 +122,8 @@
$(ProjectDir)$(Platform)/$(Configuration)/%(Filename)%(Extension).obj
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include;C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc;../shared/glew/includes;../shared/freeglut/includes
+ true
+ true
diff --git a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.filters b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.filters
index d49ad9c..731a659 100755
--- a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.filters
+++ b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.filters
@@ -38,5 +38,19 @@
{011aa553-95e8-4e59-b7ff-1bb89aebe21d}
+
+ {88fd6f2a-aed0-4bdb-8387-6a36a06763e6}
+
+
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.shehzan.nvuser b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.shehzan.nvuser
new file mode 100644
index 0000000..4912041
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.shehzan.nvuser
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.user b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.user
index d7ca222..ada9d68 100755
--- a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.user
+++ b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.user
@@ -1,7 +1,11 @@

- scene="../../scenes/sampleScene.txt"
+ scene="../../scenes/sampleScene2.txt"
+ WindowsLocalDebugger
+
+
+ scene="../../scenes/sampleScene2.txt"
WindowsLocalDebugger
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer.Build.CppClean.log b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.Build.CppClean.log
new file mode 100644
index 0000000..50796b6
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.Build.CppClean.log
@@ -0,0 +1,35 @@
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\565RAYTRACER.EXE.EMBED.MANIFEST
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\565RAYTRACER.EXE.EMBED.MANIFEST.RES
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\565RAYTRACER.EXE.INTERMEDIATE.MANIFEST
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\565Raytracer_manifest.rc
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\cl.command.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\CL.read.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\CL.write.1.tlog
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\GLSLUTILITY.OBJ
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\IMAGE.OBJ
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\link.4856.read.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\link.4856.write.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\link.4856-cvtres.read.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\link.4856-cvtres.write.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\link.command.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\link.read.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\link.write.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\link-cvtres.read.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\link-cvtres.write.1.tlog
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\MAIN.OBJ
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\mt.command.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\mt.read.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\mt.write.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\raytraceKernel.cu.cache
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\rc.command.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\rc.read.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\rc.write.1.tlog
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\SCENE.OBJ
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\STB_IMAGE.OBJ
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\STB_IMAGE_WRITE.OBJ
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\UTILITIES.OBJ
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Debug\vc100.idb
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\VC100.PDB
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\DEBUG\565RAYTRACER.EXE
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\DEBUG\565RAYTRACER.ILK
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\DEBUG\565RAYTRACER.PDB
diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.embed.manifest b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.embed.manifest
new file mode 100644
index 0000000..e693382
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.embed.manifest
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.embed.manifest.res b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.embed.manifest.res
new file mode 100644
index 0000000..9c8df0e
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.embed.manifest.res differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.intermediate.manifest b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.intermediate.manifest
new file mode 100644
index 0000000..1c06b61
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.exe.intermediate.manifest
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer.lastbuildstate b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.lastbuildstate
new file mode 100644
index 0000000..5b473e8
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.lastbuildstate
@@ -0,0 +1,2 @@
+#v4.0:v100:false
+Debug|Win32|C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\|
diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer.log b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.log
new file mode 100644
index 0000000..fcc8bff
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.log
@@ -0,0 +1,208 @@
+<<<<<<< HEAD
+Build started 9/29/2012 12:06:45 AM.
+=======
+Build started 9/26/2012 12:29:53 AM.
+>>>>>>> origin/2.5-Commit
+ 1>Project "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\565Raytracer.vcxproj" on node 2 (build target(s)).
+ 1>InitializeBuildStatus:
+ Creating "Debug\565Raytracer.unsuccessfulbuild" because "AlwaysCreate" was specified.
+ AddCudaCompileDeps:
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cl.exe /E /nologo /showIncludes /TP /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc" /I../shared/glew/includes /I../shared/freeglut/includes /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin" /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /I. /FIcuda_runtime.h /c "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\src\raytraceKernel.cu"
+ AddCudaCompilePropsDeps:
+ Skipping target "AddCudaCompilePropsDeps" because all output files are up-to-date with respect to the input files.
+ CudaBuild:
+ Compiling CUDA source file ..\..\src\raytraceKernel.cu...
+<<<<<<< HEAD
+ cmd.exe /C "C:\Users\Shehzan\AppData\Local\Temp\a05efc51ce26498680f706aec0c54fc7.cmd"
+=======
+ cmd.exe /C "C:\Users\Shehzan\AppData\Local\Temp\205dd16a8dfc4019aca47022ca922a3a.cmd"
+>>>>>>> origin/2.5-Commit
+ "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2010 -ccbin "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc" -I"../shared/glew/includes" -I"../shared/freeglut/includes" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -G0 --keep-dir "Debug" -maxrregcount=0 --machine 32 --compile -D_NEXUS_DEBUG -g -Xcompiler "/EHsc /nologo /Od /Zi /MDd " -o "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32/Debug/raytraceKernel.cu.obj" "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\src\raytraceKernel.cu"
+
+ C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2010 -ccbin "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc" -I"../shared/glew/includes" -I"../shared/freeglut/includes" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -G0 --keep-dir "Debug" -maxrregcount=0 --machine 32 --compile -D_NEXUS_DEBUG -g -Xcompiler "/EHsc /nologo /Od /Zi /MDd " -o "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32/Debug/raytraceKernel.cu.obj" "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\src\raytraceKernel.cu"
+ raytraceKernel.cu
+<<<<<<< HEAD
+ 1>C:/Users/Shehzan/Documents/Visual Studio 2010/Projects/Project1-Raytracer/src/raytraceKernel.cu(225): warning : variable "check2" was set but never used
+
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h(94) (col. 8) : warning : calling a host function("rand") from a __device__/__global__ function("getRandomDirectionInSphere") is not allowed
+
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h(95) (col. 8) : warning : calling a host function("rand") from a __device__/__global__ function("getRandomDirectionInSphere") is not allowed
+
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h(94) (col. 8) : warning : calling a host function("rand") from a __device__/__global__ function("getRandomDirectionInSphere") is not allowed
+
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h(95) (col. 8) : warning : calling a host function("rand") from a __device__/__global__ function("getRandomDirectionInSphere") is not allowed
+
+ tmpxft_000015d0_00000000-0_raytraceKernel.cudafe1.gpu
+ tmpxft_000015d0_00000000-5_raytraceKernel.cudafe2.gpu
+ raytraceKernel.cu
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_swizzle.hpp(194): warning : missing return statement at end of non-void function "glm::detail::_swizzle_base2::operator=(const glm::detail::_swizzle_base2::Stub &)"
+
+ 1>C:/Users/Shehzan/Documents/Visual Studio 2010/Projects/Project1-Raytracer/src/raytraceKernel.cu(225): warning : variable "check2" was set but never used
+
+ 1>ptxas C : /Users/Shehzan/AppData/Local/Temp/tmpxft_000015d0_00000000-1_raytraceKernel.ptx, line 354; warning : Double is not supported. Demoting to float
+ tmpxft_000015d0_00000000-0_raytraceKernel.cudafe1.cpp
+ tmpxft_000015d0_00000000-11_raytraceKernel.ii
+ ClCompile:
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /I"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\inc" /I../shared/glew/include /I../shared/freeglut/include /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt ..\..\src\main.cpp ..\..\src\scene.cpp
+ main.cpp
+ Note: including lib: glut32.lib
+
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(108): warning C4018: '<' : signed/unsigned mismatch
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(117): warning C4018: '<' : signed/unsigned mismatch
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(120): warning C4018: '<' : signed/unsigned mismatch
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(224): warning C4091: '' : ignored on left of 'float' when no variable is declared
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(224): error C2143: syntax error : missing ';' before 'constant'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(269): error C2106: '=' : left operand must be l-value
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(270): error C2668: 'cos' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(559): could be 'long double cos(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(511): or 'float cos(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(115): or 'double cos(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(270): error C2668: 'sin' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(585): could be 'long double sin(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(537): or 'float sin(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(123): or 'double sin(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(270): error C2668: 'sin' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(585): could be 'long double sin(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(537): or 'float sin(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(123): or 'double sin(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(270): error C2668: 'cos' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(559): could be 'long double cos(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(511): or 'float cos(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(115): or 'double cos(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(277): error C2106: '=' : left operand must be l-value
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(278): error C2668: 'cos' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(559): could be 'long double cos(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(511): or 'float cos(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(115): or 'double cos(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(278): error C2668: 'sin' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(585): could be 'long double sin(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(537): or 'float sin(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(123): or 'double sin(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(278): error C2668: 'sin' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(585): could be 'long double sin(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(537): or 'float sin(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(123): or 'double sin(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(278): error C2668: 'cos' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(559): could be 'long double cos(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(511): or 'float cos(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(115): or 'double cos(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(285): error C2106: '=' : left operand must be l-value
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(286): error C2668: 'cos' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(559): could be 'long double cos(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(511): or 'float cos(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(115): or 'double cos(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(286): error C2668: 'sin' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(585): could be 'long double sin(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(537): or 'float sin(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(123): or 'double sin(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(286): error C2668: 'sin' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(585): could be 'long double sin(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(537): or 'float sin(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(123): or 'double sin(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(286): error C2668: 'cos' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(559): could be 'long double cos(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(511): or 'float cos(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(115): or 'double cos(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(293): error C2106: '=' : left operand must be l-value
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(294): error C2668: 'cos' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(559): could be 'long double cos(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(511): or 'float cos(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(115): or 'double cos(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(294): error C2668: 'sin' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(585): could be 'long double sin(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(537): or 'float sin(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(123): or 'double sin(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(294): error C2668: 'sin' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(585): could be 'long double sin(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(537): or 'float sin(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(123): or 'double sin(double)'
+ while trying to match the argument list '(int)'
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\main.cpp(294): error C2668: 'cos' : ambiguous call to overloaded function
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(559): could be 'long double cos(long double)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(511): or 'float cos(float)'
+ c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(115): or 'double cos(double)'
+ while trying to match the argument list '(int)'
+ Generating Code...
+ Compiling...
+ scene.cpp
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\scene.cpp(148): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\scene.cpp(202): warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\scene.cpp(204): warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\scene.cpp(238): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\scene.cpp(243): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\scene.cpp(245): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\scene.cpp(247): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\scene.cpp(249): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\scene.cpp(254): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\scene.cpp(256): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ Generating Code...
+ 1>Done Building Project "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\565Raytracer.vcxproj" (build target(s)) -- FAILED.
+
+Build FAILED.
+
+Time Elapsed 00:00:13.17
+=======
+ 1>C:/Users/Shehzan/Documents/Visual Studio 2010/Projects/Project1-Raytracer/src/raytraceKernel.cu(190): warning : variable "check2" was set but never used
+
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h(95) (col. 8) : warning : calling a host function("rand") from a __device__/__global__ function("getRandomDirectionInSphere") is not allowed
+
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h(96) (col. 8) : warning : calling a host function("rand") from a __device__/__global__ function("getRandomDirectionInSphere") is not allowed
+
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h(95) (col. 8) : warning : calling a host function("rand") from a __device__/__global__ function("getRandomDirectionInSphere") is not allowed
+
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h(96) (col. 8) : warning : calling a host function("rand") from a __device__/__global__ function("getRandomDirectionInSphere") is not allowed
+
+ tmpxft_00001284_00000000-0_raytraceKernel.cudafe1.gpu
+ tmpxft_00001284_00000000-5_raytraceKernel.cudafe2.gpu
+ raytraceKernel.cu
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_swizzle.hpp(194): warning : missing return statement at end of non-void function "glm::detail::_swizzle_base2::operator=(const glm::detail::_swizzle_base2::Stub &)"
+
+ 1>C:/Users/Shehzan/Documents/Visual Studio 2010/Projects/Project1-Raytracer/src/raytraceKernel.cu(190): warning : variable "check2" was set but never used
+
+ 1>ptxas C : /Users/Shehzan/AppData/Local/Temp/tmpxft_00001284_00000000-1_raytraceKernel.ptx, line 259; warning : Double is not supported. Demoting to float
+ tmpxft_00001284_00000000-0_raytraceKernel.cudafe1.cpp
+ tmpxft_00001284_00000000-11_raytraceKernel.ii
+ ClCompile:
+ All outputs are up-to-date.
+ All outputs are up-to-date.
+ ManifestResourceCompile:
+ All outputs are up-to-date.
+ Link:
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\Debug\565Raytracer.exe" /INCREMENTAL /NOLOGO /LIBPATH:../shared/glew/lib /LIBPATH:../shared/freeglut/lib /LIBPATH:"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\lib\Win32" cudart.lib glew32.lib glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Debug\565Raytracer.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\Debug\565Raytracer.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /ENTRY:"mainCRTStartup" /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\Debug\565Raytracer.lib" /MACHINE:X86 "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32/Debug/raytraceKernel.cu.obj"
+ Debug\565Raytracer.exe.embed.manifest.res
+ Debug\glslUtility.obj
+ Debug\image.obj
+ Debug\main.obj
+ Debug\scene.obj
+ Debug\stb_image.obj
+ Debug\stb_image_write.obj
+ Debug\utilities.obj
+ Manifest:
+ C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /out:"Debug\565Raytracer.exe.embed.manifest" /manifest Debug\565Raytracer.exe.intermediate.manifest
+ All outputs are up-to-date.
+ LinkEmbedManifest:
+ All outputs are up-to-date.
+ 565Raytracer.vcxproj -> C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\Debug\565Raytracer.exe
+ FinalizeBuildStatus:
+ Deleting file "Debug\565Raytracer.unsuccessfulbuild".
+ Touching "Debug\565Raytracer.lastbuildstate".
+ 1>Done Building Project "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\565Raytracer.vcxproj" (build target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:10.42
+>>>>>>> origin/2.5-Commit
diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer.unsuccessfulbuild b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.unsuccessfulbuild
new file mode 100644
index 0000000..e69de29
diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer_manifest.rc b/PROJ1_WIN/565Raytracer/Debug/565Raytracer_manifest.rc
new file mode 100644
index 0000000..6745e86
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/565Raytracer_manifest.rc differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/CL.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/CL.read.1.tlog
new file mode 100644
index 0000000..69a0029
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/CL.read.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/CL.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/CL.write.1.tlog
new file mode 100644
index 0000000..54e21f4
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/CL.write.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/cl.command.1.tlog b/PROJ1_WIN/565Raytracer/Debug/cl.command.1.tlog
new file mode 100644
index 0000000..cb7e6f9
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/cl.command.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/glslUtility.obj b/PROJ1_WIN/565Raytracer/Debug/glslUtility.obj
new file mode 100644
index 0000000..bf6d296
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/glslUtility.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/image.obj b/PROJ1_WIN/565Raytracer/Debug/image.obj
new file mode 100644
index 0000000..dd7213c
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/image.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/link-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/link-cvtres.read.1.tlog
@@ -0,0 +1 @@
+ÿþ
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/link-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/link-cvtres.write.1.tlog
@@ -0,0 +1 @@
+ÿþ
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.2752-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.2752-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/link.2752-cvtres.read.1.tlog
@@ -0,0 +1 @@
+ÿþ
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.2752-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.2752-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/link.2752-cvtres.write.1.tlog
@@ -0,0 +1 @@
+ÿþ
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.2752.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.2752.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/link.2752.read.1.tlog
@@ -0,0 +1 @@
+ÿþ
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.2752.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.2752.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/link.2752.write.1.tlog
@@ -0,0 +1 @@
+ÿþ
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.4064-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.4064-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/link.4064-cvtres.read.1.tlog
@@ -0,0 +1 @@
+ÿþ
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.4064-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.4064-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/link.4064-cvtres.write.1.tlog
@@ -0,0 +1 @@
+ÿþ
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.4064.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.4064.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/link.4064.read.1.tlog
@@ -0,0 +1 @@
+ÿþ
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.4064.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.4064.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/link.4064.write.1.tlog
@@ -0,0 +1 @@
+ÿþ
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6000-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6000-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/link.6000-cvtres.read.1.tlog
@@ -0,0 +1 @@
+ÿþ
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6000-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6000-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/link.6000-cvtres.write.1.tlog
@@ -0,0 +1 @@
+ÿþ
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6000.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6000.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/link.6000.read.1.tlog
@@ -0,0 +1 @@
+ÿþ
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6000.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6000.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/link.6000.write.1.tlog
@@ -0,0 +1 @@
+ÿþ
\ No newline at end of file
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.command.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.command.1.tlog
new file mode 100644
index 0000000..cf04cb2
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/link.command.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.read.1.tlog
new file mode 100644
index 0000000..94c0f5e
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/link.read.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/link.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.write.1.tlog
new file mode 100644
index 0000000..f87ea0f
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/link.write.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/main.obj b/PROJ1_WIN/565Raytracer/Debug/main.obj
new file mode 100644
index 0000000..ec800ad
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/main.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/mt.command.1.tlog b/PROJ1_WIN/565Raytracer/Debug/mt.command.1.tlog
new file mode 100644
index 0000000..41d2bdc
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/mt.command.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/mt.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/mt.read.1.tlog
new file mode 100644
index 0000000..b42008f
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/mt.read.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/mt.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/mt.write.1.tlog
new file mode 100644
index 0000000..b42008f
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/mt.write.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/raytraceKernel.cu.cache b/PROJ1_WIN/565Raytracer/Debug/raytraceKernel.cu.cache
new file mode 100644
index 0000000..918959d
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/raytraceKernel.cu.cache
@@ -0,0 +1,26 @@
+Identity=..\..\src\raytraceKernel.cu
+AdditionalDeps=
+AdditionalOptions=
+CInterleavedPTX=false
+CodeGeneration=compute_10,sm_10
+CompileOut=C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32/Debug/raytraceKernel.cu.obj
+CudaToolkitCustomDir=
+Defines=
+Emulation=false
+FastMath=false
+GPUDebugInfo=true
+HostDebugInfo=true
+Include=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include;C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc;../shared/glew/includes;../shared/freeglut/includes
+Keep=false
+KeepDir=Debug
+MaxRegCount=0
+NvccCompilation=compile
+NvccPath=
+Optimization=Od
+PtxAsOptionV=false
+RequiredIncludes=
+Runtime=MDd
+RuntimeChecks=Default
+TargetMachinePlatform=32
+TypeInfo=false
+Warning=W3
diff --git a/PROJ1_WIN/565Raytracer/Debug/raytraceKernel.cu.deps b/PROJ1_WIN/565Raytracer/Debug/raytraceKernel.cu.deps
new file mode 100644
index 0000000..c9f774d
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/raytraceKernel.cu.deps
@@ -0,0 +1,410 @@
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_config.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h
+c:\program files (x86)\microsoft visual studio 10.0\vc\include\codeanalysis\sourceannotations.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vadefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stddef.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\channel_descriptor.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\cuda_runtime_api.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\cuda_runtime_api.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\swprintf.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdlib.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cmath
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\yvals.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\use_ansi.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\sceneStructs.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm/glm.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core/_fixes.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\climits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cfloat
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\float.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtwrn.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ymath.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wchar.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wtime.inl
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstddef
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstddef
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core/setup.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\immintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\nmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\smmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\tmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\pmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\emmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\malloc.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/_detail.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\setup.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cassert
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\assert.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/type.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_half.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdlib
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_half.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_detail.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_float.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_half.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\setup.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_int.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\setup.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_detail.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_gentype.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_size.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec1.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_gentype.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_float.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_int.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_size.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_swizzle.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_swizzle_func.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec1.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec2.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_float.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_int.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_size.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_swizzle.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec2.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec3.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_float.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_int.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_size.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_swizzle.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec3.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec4.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_float.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_int.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_size.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_swizzle.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec4.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat2x2.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_gentype.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat2x2.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat2x3.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat2x3.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat2x4.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat2x4.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat3x2.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat3x2.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat3x3.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat3x3.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat3x4.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat3x4.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat4x2.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat4x2.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat4x3.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat4x3.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat4x4.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat4x4.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_trigonometric.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_trigonometric.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_vectorize.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_exponential.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_exponential.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_vectorize.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_common.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_fixes.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_common.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_vectorize.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_packing.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_packing.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_geometric.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_geometric.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_vectorize.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_matrix.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_matrix.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_vectorize.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_vector_relational.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_detail.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_vector_relational.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_integer.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_integer.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_vectorize.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\setjmp.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ammintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mm3dnow.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_noise.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_noise.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/_swizzle.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\cudaMat4.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm/glm.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core/_fixes.hpp
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\istream
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ios
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocnum
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\streambuf
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xiosbase
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdexcept
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\exception
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\eh.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstring
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmemory
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\new
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\utility
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iosfwd
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdbg.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\type_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xtr1common
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\typeinfo
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ctype.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\locale.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xdebug
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\system_error
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cerrno
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\errno.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\share.h
+C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_math.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm/glm.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core/_fixes.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\utilities.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm/glm.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core/_fixes.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\algorithm
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\memory
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iterator
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sstream
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfunctional
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\cudaMat4.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\raytraceKernel.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/config.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/simple_defines.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/compiler.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/device_backend.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/host_device.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\host_defines.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/debug.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/cstdint.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/discard_block_engine.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/random_core_access.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/discard_block_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/linear_congruential_engine.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_congruential_engine_discard.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/mod.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_congruential_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/linear_feedback_shift_engine.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_feedback_shift_engine_wordmask.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_feedback_shift_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/subtract_with_carry_engine.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/subtract_with_carry_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/xor_combine_engine.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/type_traits.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/type_traits/has_trivial_assign.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/xor_combine_engine_max.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/mpl/math.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/xor_combine_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/uniform_int_distribution.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/pair.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/pair.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/integer_traits.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/uniform_int_distribution.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/uniform_real_distribution.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/uniform_real_distribution.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/normal_distribution.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/normal_distribution.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\sceneStructs.h
+C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_math.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\intersections.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\sceneStructs.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\cudaMat4.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm/glm.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core/_fixes.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\utilities.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\intersections.h
diff --git a/PROJ1_WIN/565Raytracer/Debug/rc.command.1.tlog b/PROJ1_WIN/565Raytracer/Debug/rc.command.1.tlog
new file mode 100644
index 0000000..e08bed3
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/rc.command.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/rc.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/rc.read.1.tlog
new file mode 100644
index 0000000..d727a46
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/rc.read.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/rc.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/rc.write.1.tlog
new file mode 100644
index 0000000..9e9de09
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/rc.write.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/scene.obj b/PROJ1_WIN/565Raytracer/Debug/scene.obj
new file mode 100644
index 0000000..ef1806e
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/scene.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/stb_image.obj b/PROJ1_WIN/565Raytracer/Debug/stb_image.obj
new file mode 100644
index 0000000..1962ff1
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/stb_image.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/stb_image_write.obj b/PROJ1_WIN/565Raytracer/Debug/stb_image_write.obj
new file mode 100644
index 0000000..9711e0a
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/stb_image_write.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/utilities.obj b/PROJ1_WIN/565Raytracer/Debug/utilities.obj
new file mode 100644
index 0000000..975e36c
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/utilities.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/vc100.idb b/PROJ1_WIN/565Raytracer/Debug/vc100.idb
new file mode 100644
index 0000000..eeef674
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/vc100.idb differ
diff --git a/PROJ1_WIN/565Raytracer/Debug/vc100.pdb b/PROJ1_WIN/565Raytracer/Debug/vc100.pdb
new file mode 100644
index 0000000..b298d61
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/vc100.pdb differ
diff --git a/PROJ1_WIN/565Raytracer/Release/565Raytracer.Build.CppClean.log b/PROJ1_WIN/565Raytracer/Release/565Raytracer.Build.CppClean.log
new file mode 100644
index 0000000..9678251
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Release/565Raytracer.Build.CppClean.log
@@ -0,0 +1,21 @@
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\565RAYTRACER.EXE.INTERMEDIATE.MANIFEST
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Release\cl.command.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Release\CL.read.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Release\CL.write.1.tlog
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\GLSLUTILITY.OBJ
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\IMAGE.OBJ
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Release\link.command.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Release\link.read.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Release\link.write.1.tlog
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\MAIN.OBJ
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Release\mt.command.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Release\mt.read.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Release\mt.write.1.tlog
+C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Release\raytraceKernel.cu.cache
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\SCENE.OBJ
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\STB_IMAGE.OBJ
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\STB_IMAGE_WRITE.OBJ
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\UTILITIES.OBJ
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\VC100.PDB
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\RELEASE\565RAYTRACER.EXE
+C:\USERS\SHEHZAN\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\PROJECT1-RAYTRACER\PROJ1_WIN\RELEASE\565RAYTRACER.PDB
diff --git a/PROJ1_WIN/565Raytracer/Release/565Raytracer.exe.intermediate.manifest b/PROJ1_WIN/565Raytracer/Release/565Raytracer.exe.intermediate.manifest
new file mode 100644
index 0000000..1c06b61
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Release/565Raytracer.exe.intermediate.manifest
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/PROJ1_WIN/565Raytracer/Release/565Raytracer.lastbuildstate b/PROJ1_WIN/565Raytracer/Release/565Raytracer.lastbuildstate
new file mode 100644
index 0000000..127b3b8
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Release/565Raytracer.lastbuildstate
@@ -0,0 +1,2 @@
+#v4.0:v100:false
+Release|Win32|C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\|
diff --git a/PROJ1_WIN/565Raytracer/Release/565Raytracer.log b/PROJ1_WIN/565Raytracer/Release/565Raytracer.log
new file mode 100644
index 0000000..668ed1a
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Release/565Raytracer.log
@@ -0,0 +1,129 @@
+<<<<<<< HEAD
+Build started 9/29/2012 12:07:41 AM.
+=======
+Build started 9/27/2012 9:23:50 PM.
+>>>>>>> origin/2.5-Commit
+ 1>Project "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\565Raytracer.vcxproj" on node 2 (build target(s)).
+ 1>InitializeBuildStatus:
+ Creating "Release\565Raytracer.unsuccessfulbuild" because "AlwaysCreate" was specified.
+ AddCudaCompileDeps:
+<<<<<<< HEAD
+ Skipping target "AddCudaCompileDeps" because all output files are up-to-date with respect to the input files.
+ AddCudaCompilePropsDeps:
+ Skipping target "AddCudaCompilePropsDeps" because all output files are up-to-date with respect to the input files.
+ CudaBuild:
+ Skipping target "CudaBuild" because all output files are up-to-date with respect to the input files.
+ ClCompile:
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /I"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\inc" /I../shared/glew/include /I../shared/freeglut/include /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D WIN32 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt ..\..\src\main.cpp
+=======
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cl.exe /E /nologo /showIncludes /TP /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc" /I../shared/glew/includes /I../shared/freeglut/includes /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin" /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /I. /FIcuda_runtime.h /c "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\src\raytraceKernel.cu"
+ AddCudaCompilePropsDeps:
+ Found "CudaToolkitCustomDir".
+ Found "AdditionalDeps".
+ Found "CompileOut".
+ Found "Include".
+ Found "Keep".
+ Found "KeepDir".
+ Found "NvccCompilation".
+ Found "NvccPath".
+ Found "RequiredIncludes".
+ Found "TargetMachinePlatform".
+ Found "CInterleavedPTX".
+ Found "CodeGeneration".
+ Found "GPUDebugInfo".
+ Found "MaxRegCount".
+ Found "PtxAsOptionV".
+ Found "Defines".
+ Found "Emulation".
+ Found "HostDebugInfo".
+ Found "FastMath".
+ Found "Optimization".
+ Found "Runtime".
+ Found "RuntimeChecks".
+ Found "TypeInfo".
+ Found "Warning".
+ Found "AdditionalOptions".
+ Found "CommandLineTemplate".
+ CudaBuild:
+ Compiling CUDA source file ..\..\src\raytraceKernel.cu...
+ cmd.exe /C "C:\Users\Shehzan\AppData\Local\Temp\082c3991136948d7a5a9589e5223f610.cmd"
+ "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2010 -ccbin "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc" -I"../shared/glew/includes" -I"../shared/freeglut/includes" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -G0 --keep-dir "Release" -maxrregcount=0 --machine 32 --compile -D_NEXUS_DEBUG -g -Xcompiler "/EHsc /nologo /Od /Zi /MD " -o "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32/Release/raytraceKernel.cu.obj" "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\src\raytraceKernel.cu"
+
+ C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2010 -ccbin "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc" -I"../shared/glew/includes" -I"../shared/freeglut/includes" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -G0 --keep-dir "Release" -maxrregcount=0 --machine 32 --compile -D_NEXUS_DEBUG -g -Xcompiler "/EHsc /nologo /Od /Zi /MD " -o "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32/Release/raytraceKernel.cu.obj" "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\src\raytraceKernel.cu"
+ raytraceKernel.cu
+ 1>C:/Users/Shehzan/Documents/Visual Studio 2010/Projects/Project1-Raytracer/src/raytraceKernel.cu(202): warning : variable "check2" was set but never used
+
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h(94) (col. 8) : warning : calling a host function("rand") from a __device__/__global__ function("getRandomDirectionInSphere") is not allowed
+
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h(95) (col. 8) : warning : calling a host function("rand") from a __device__/__global__ function("getRandomDirectionInSphere") is not allowed
+
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h(94) (col. 8) : warning : calling a host function("rand") from a __device__/__global__ function("getRandomDirectionInSphere") is not allowed
+
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h(95) (col. 8) : warning : calling a host function("rand") from a __device__/__global__ function("getRandomDirectionInSphere") is not allowed
+
+ tmpxft_00000e14_00000000-0_raytraceKernel.cudafe1.gpu
+ tmpxft_00000e14_00000000-5_raytraceKernel.cudafe2.gpu
+ raytraceKernel.cu
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_swizzle.hpp(194): warning : missing return statement at end of non-void function "glm::detail::_swizzle_base2::operator=(const glm::detail::_swizzle_base2::Stub &)"
+
+ 1>C:/Users/Shehzan/Documents/Visual Studio 2010/Projects/Project1-Raytracer/src/raytraceKernel.cu(202): warning : variable "check2" was set but never used
+
+ 1>ptxas C : /Users/Shehzan/AppData/Local/Temp/tmpxft_00000e14_00000000-1_raytraceKernel.ptx, line 354; warning : Double is not supported. Demoting to float
+ tmpxft_00000e14_00000000-0_raytraceKernel.cudafe1.cpp
+ tmpxft_00000e14_00000000-11_raytraceKernel.ii
+ ClCompile:
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /I"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\inc" /I../shared/glew/include /I../shared/freeglut/include /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D WIN32 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt ..\..\src\glslUtility.cpp ..\..\src\image.cpp ..\..\src\main.cpp ..\..\src\scene.cpp ..\..\src\utilities.cpp
+ glslUtility.cpp
+ image.cpp
+>>>>>>> origin/2.5-Commit
+ main.cpp
+ Note: including lib: glut32.lib
+
+ 1>..\..\src\main.cpp(108): warning C4018: '<' : signed/unsigned mismatch
+ 1>..\..\src\main.cpp(117): warning C4018: '<' : signed/unsigned mismatch
+ 1>..\..\src\main.cpp(120): warning C4018: '<' : signed/unsigned mismatch
+<<<<<<< HEAD
+ All outputs are up-to-date.
+=======
+ scene.cpp
+ 1>..\..\src\scene.cpp(148): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ 1>..\..\src\scene.cpp(202): warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
+ 1>..\..\src\scene.cpp(204): warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
+ 1>..\..\src\scene.cpp(238): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ 1>..\..\src\scene.cpp(243): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ 1>..\..\src\scene.cpp(245): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ 1>..\..\src\scene.cpp(247): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ 1>..\..\src\scene.cpp(249): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ 1>..\..\src\scene.cpp(254): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ 1>..\..\src\scene.cpp(256): warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
+ utilities.cpp
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /I"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\inc" /I../shared/glew/include /I../shared/freeglut/include /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D WIN32 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TC /analyze- /errorReport:prompt ..\..\src\stb_image\stb_image.c ..\..\src\stb_image\stb_image_write.c
+ stb_image.c
+ stb_image_write.c
+>>>>>>> origin/2.5-Commit
+ Link:
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\Release\565Raytracer.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:../shared/glew/lib /LIBPATH:../shared/freeglut/lib /LIBPATH:"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\lib\Win32" cudart.lib glew32.lib glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Release\565Raytracer.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\Release\565Raytracer.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /TLBID:1 /ENTRY:"mainCRTStartup" /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\Release\565Raytracer.lib" /MACHINE:X86 "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32/Release/raytraceKernel.cu.obj"
+ Release\glslUtility.obj
+ Release\image.obj
+ Release\main.obj
+ Release\scene.obj
+ Release\stb_image.obj
+ Release\stb_image_write.obj
+ Release\utilities.obj
+ Generating code
+ Finished generating code
+ 565Raytracer.vcxproj -> C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\Release\565Raytracer.exe
+ Manifest:
+ C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /outputresource:"C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\Release\565Raytracer.exe;#1" /manifest Release\565Raytracer.exe.intermediate.manifest
+ FinalizeBuildStatus:
+ Deleting file "Release\565Raytracer.unsuccessfulbuild".
+ Touching "Release\565Raytracer.lastbuildstate".
+ 1>Done Building Project "C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\565Raytracer.vcxproj" (build target(s)).
+
+Build succeeded.
+
+<<<<<<< HEAD
+Time Elapsed 00:00:02.48
+=======
+Time Elapsed 00:00:14.60
+>>>>>>> origin/2.5-Commit
diff --git a/PROJ1_WIN/565Raytracer/Release/CL.read.1.tlog b/PROJ1_WIN/565Raytracer/Release/CL.read.1.tlog
new file mode 100644
index 0000000..0260e03
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/CL.read.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Release/CL.write.1.tlog b/PROJ1_WIN/565Raytracer/Release/CL.write.1.tlog
new file mode 100644
index 0000000..2df1f2a
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/CL.write.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Release/cl.command.1.tlog b/PROJ1_WIN/565Raytracer/Release/cl.command.1.tlog
new file mode 100644
index 0000000..aa087c9
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/cl.command.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Release/glslUtility.obj b/PROJ1_WIN/565Raytracer/Release/glslUtility.obj
new file mode 100644
index 0000000..7066c59
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/glslUtility.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Release/image.obj b/PROJ1_WIN/565Raytracer/Release/image.obj
new file mode 100644
index 0000000..7663e8c
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/image.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Release/link.command.1.tlog b/PROJ1_WIN/565Raytracer/Release/link.command.1.tlog
new file mode 100644
index 0000000..148bad2
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/link.command.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Release/link.read.1.tlog b/PROJ1_WIN/565Raytracer/Release/link.read.1.tlog
new file mode 100644
index 0000000..bc4d4b3
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/link.read.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Release/link.write.1.tlog b/PROJ1_WIN/565Raytracer/Release/link.write.1.tlog
new file mode 100644
index 0000000..887f548
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/link.write.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Release/main.obj b/PROJ1_WIN/565Raytracer/Release/main.obj
new file mode 100644
index 0000000..cd86885
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/main.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Release/mt.command.1.tlog b/PROJ1_WIN/565Raytracer/Release/mt.command.1.tlog
new file mode 100644
index 0000000..7f8c1b7
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/mt.command.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Release/mt.read.1.tlog b/PROJ1_WIN/565Raytracer/Release/mt.read.1.tlog
new file mode 100644
index 0000000..a891b17
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/mt.read.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Release/mt.write.1.tlog b/PROJ1_WIN/565Raytracer/Release/mt.write.1.tlog
new file mode 100644
index 0000000..f177763
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/mt.write.1.tlog differ
diff --git a/PROJ1_WIN/565Raytracer/Release/raytraceKernel.cu.cache b/PROJ1_WIN/565Raytracer/Release/raytraceKernel.cu.cache
new file mode 100644
index 0000000..38cc48d
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Release/raytraceKernel.cu.cache
@@ -0,0 +1,26 @@
+Identity=..\..\src\raytraceKernel.cu
+AdditionalDeps=
+AdditionalOptions=
+CInterleavedPTX=false
+CodeGeneration=compute_10,sm_10
+CompileOut=C:\Users\Shehzan\Documents\Visual Studio 2010\Projects\Project1-Raytracer\PROJ1_WIN\565Raytracer\Win32/Release/raytraceKernel.cu.obj
+CudaToolkitCustomDir=
+Defines=
+Emulation=false
+FastMath=false
+GPUDebugInfo=true
+HostDebugInfo=true
+Include=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include;C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc;../shared/glew/includes;../shared/freeglut/includes
+Keep=false
+KeepDir=Release
+MaxRegCount=0
+NvccCompilation=compile
+NvccPath=
+Optimization=Od
+PtxAsOptionV=false
+RequiredIncludes=
+Runtime=MD
+RuntimeChecks=Default
+TargetMachinePlatform=32
+TypeInfo=false
+Warning=W3
diff --git a/PROJ1_WIN/565Raytracer/Release/raytraceKernel.cu.deps b/PROJ1_WIN/565Raytracer/Release/raytraceKernel.cu.deps
new file mode 100644
index 0000000..c9f774d
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Release/raytraceKernel.cu.deps
@@ -0,0 +1,410 @@
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_config.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h
+c:\program files (x86)\microsoft visual studio 10.0\vc\include\codeanalysis\sourceannotations.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vadefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stddef.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\channel_descriptor.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\cuda_runtime_api.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\cuda_runtime_api.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_functions.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\builtin_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\device_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\driver_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\surface_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\texture_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\host_defines.h
+c:\program files\nvidia gpu computing toolkit\cuda\v4.0\include\vector_types.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\swprintf.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdlib.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cmath
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\yvals.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\use_ansi.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\sceneStructs.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm/glm.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core/_fixes.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\climits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cfloat
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\float.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtwrn.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ymath.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wchar.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wtime.inl
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstddef
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstddef
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core/setup.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\immintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\nmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\smmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\tmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\pmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\emmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\malloc.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/_detail.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\setup.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cassert
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\assert.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/type.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_half.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdlib
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_half.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_detail.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_float.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_half.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\setup.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_int.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\setup.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_detail.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_gentype.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_size.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec1.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_gentype.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_float.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_int.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_size.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_swizzle.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_swizzle_func.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec1.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec2.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_float.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_int.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_size.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_swizzle.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec2.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec3.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_float.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_int.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_size.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_swizzle.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec3.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec4.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_float.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_int.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_size.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_swizzle.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_vec4.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat2x2.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_gentype.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat2x2.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat2x3.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat2x3.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat2x4.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat2x4.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat3x2.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat3x2.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat3x3.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat3x3.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat3x4.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat3x4.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat4x2.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat4x2.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat4x3.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat4x3.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat4x4.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\type_mat4x4.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_trigonometric.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_trigonometric.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_vectorize.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_exponential.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_exponential.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_vectorize.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_common.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_fixes.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_common.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_vectorize.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_packing.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_packing.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_geometric.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_geometric.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_vectorize.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_matrix.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_matrix.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_vectorize.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_vector_relational.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_detail.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_vector_relational.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_integer.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_integer.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\_vectorize.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\setjmp.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ammintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mm3dnow.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/func_noise.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core\func_noise.inl
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\./core/_swizzle.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\cudaMat4.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm/glm.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core/_fixes.hpp
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\istream
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ios
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocnum
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\streambuf
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xiosbase
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdexcept
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\exception
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\eh.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstring
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmemory
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\new
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\utility
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iosfwd
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdbg.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\type_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xtr1common
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\typeinfo
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ctype.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\locale.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xdebug
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\system_error
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cerrno
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\errno.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\share.h
+C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_math.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda_runtime.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm/glm.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core/_fixes.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\utilities.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm/glm.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core/_fixes.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\algorithm
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\memory
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iterator
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sstream
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfunctional
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\cudaMat4.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\raytraceKernel.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/config.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/simple_defines.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/compiler.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/device_backend.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/host_device.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\host_defines.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/config/debug.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/cstdint.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/discard_block_engine.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/random_core_access.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/discard_block_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/linear_congruential_engine.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_congruential_engine_discard.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/mod.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_congruential_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/linear_feedback_shift_engine.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_feedback_shift_engine_wordmask.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/linear_feedback_shift_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/subtract_with_carry_engine.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/subtract_with_carry_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/xor_combine_engine.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/type_traits.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/type_traits/has_trivial_assign.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/xor_combine_engine_max.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/mpl/math.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/xor_combine_engine.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/uniform_int_distribution.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/pair.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/pair.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/integer_traits.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/uniform_int_distribution.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/uniform_real_distribution.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/uniform_real_distribution.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/normal_distribution.h
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/random/detail/normal_distribution.inl
+C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\cuda.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\sceneStructs.h
+C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc\cutil_math.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\intersections.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\sceneStructs.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\cudaMat4.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm/glm.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\glm\core/_fixes.hpp
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\utilities.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h
+c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\intersections.h
diff --git a/PROJ1_WIN/565Raytracer/Release/scene.obj b/PROJ1_WIN/565Raytracer/Release/scene.obj
new file mode 100644
index 0000000..4a752b9
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/scene.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Release/stb_image.obj b/PROJ1_WIN/565Raytracer/Release/stb_image.obj
new file mode 100644
index 0000000..5aa4a9f
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/stb_image.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Release/stb_image_write.obj b/PROJ1_WIN/565Raytracer/Release/stb_image_write.obj
new file mode 100644
index 0000000..c2bff1c
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/stb_image_write.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Release/utilities.obj b/PROJ1_WIN/565Raytracer/Release/utilities.obj
new file mode 100644
index 0000000..3b51a5c
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/utilities.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Release/vc100.pdb b/PROJ1_WIN/565Raytracer/Release/vc100.pdb
new file mode 100644
index 0000000..29dd761
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/vc100.pdb differ
diff --git a/PROJ1_WIN/565Raytracer/Render.bmp b/PROJ1_WIN/565Raytracer/Render.bmp
new file mode 100644
index 0000000..b11e638
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Render.bmp differ
diff --git a/PROJ1_WIN/565Raytracer/Win32/Debug/raytraceKernel.cu.obj b/PROJ1_WIN/565Raytracer/Win32/Debug/raytraceKernel.cu.obj
new file mode 100644
index 0000000..f1a5efe
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Win32/Debug/raytraceKernel.cu.obj differ
diff --git a/PROJ1_WIN/565Raytracer/Win32/Release/raytraceKernel.cu.obj b/PROJ1_WIN/565Raytracer/Win32/Release/raytraceKernel.cu.obj
new file mode 100644
index 0000000..cfd26a9
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Win32/Release/raytraceKernel.cu.obj differ
diff --git a/PROJ1_WIN/565Raytracer/sampleScene_0.bmp b/PROJ1_WIN/565Raytracer/sampleScene_0.bmp
new file mode 100644
index 0000000..1b796f2
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/sampleScene_0.bmp differ
diff --git a/PROJ1_WIN/565Raytracer/vc100.pdb b/PROJ1_WIN/565Raytracer/vc100.pdb
new file mode 100644
index 0000000..a3868cb
Binary files /dev/null and b/PROJ1_WIN/565Raytracer/vc100.pdb differ
diff --git a/PROJ1_WIN/Debug/565Raytracer.exe b/PROJ1_WIN/Debug/565Raytracer.exe
new file mode 100644
index 0000000..6a2bf9e
Binary files /dev/null and b/PROJ1_WIN/Debug/565Raytracer.exe differ
diff --git a/PROJ1_WIN/Debug/565Raytracer.ilk b/PROJ1_WIN/Debug/565Raytracer.ilk
new file mode 100644
index 0000000..05d0729
Binary files /dev/null and b/PROJ1_WIN/Debug/565Raytracer.ilk differ
diff --git a/PROJ1_WIN/Debug/565Raytracer.pdb b/PROJ1_WIN/Debug/565Raytracer.pdb
new file mode 100644
index 0000000..2a484c0
Binary files /dev/null and b/PROJ1_WIN/Debug/565Raytracer.pdb differ
diff --git a/PROJ1_WIN/Release/565Raytracer.exe b/PROJ1_WIN/Release/565Raytracer.exe
new file mode 100644
index 0000000..17bbd11
Binary files /dev/null and b/PROJ1_WIN/Release/565Raytracer.exe differ
diff --git a/PROJ1_WIN/Release/565Raytracer.pdb b/PROJ1_WIN/Release/565Raytracer.pdb
new file mode 100644
index 0000000..cadc7bd
Binary files /dev/null and b/PROJ1_WIN/Release/565Raytracer.pdb differ
diff --git a/PROJ1_WIN/ipch/565raytracer-692796a0/565raytracer-19509b53.ipch b/PROJ1_WIN/ipch/565raytracer-692796a0/565raytracer-19509b53.ipch
new file mode 100644
index 0000000..0fb7432
Binary files /dev/null and b/PROJ1_WIN/ipch/565raytracer-692796a0/565raytracer-19509b53.ipch differ
diff --git a/PROJ1_WIN/ipch/565raytracer-71e2ed16/565raytracer-19509b53.ipch b/PROJ1_WIN/ipch/565raytracer-71e2ed16/565raytracer-19509b53.ipch
new file mode 100644
index 0000000..d962acc
Binary files /dev/null and b/PROJ1_WIN/ipch/565raytracer-71e2ed16/565raytracer-19509b53.ipch differ
diff --git a/PROJ1_WIN/ipch/565raytracer-71e2ed16/565raytracer-6cd7f319.ipch b/PROJ1_WIN/ipch/565raytracer-71e2ed16/565raytracer-6cd7f319.ipch
new file mode 100644
index 0000000..eee50dc
Binary files /dev/null and b/PROJ1_WIN/ipch/565raytracer-71e2ed16/565raytracer-6cd7f319.ipch differ
diff --git a/renders/Image 1.jpg b/renders/Image 1.jpg
new file mode 100644
index 0000000..908ee78
Binary files /dev/null and b/renders/Image 1.jpg differ
diff --git a/renders/Image 2.jpg b/renders/Image 2.jpg
new file mode 100644
index 0000000..4193f84
Binary files /dev/null and b/renders/Image 2.jpg differ
diff --git a/renders/Image 3.jpg b/renders/Image 3.jpg
new file mode 100644
index 0000000..35f8220
Binary files /dev/null and b/renders/Image 3.jpg differ
diff --git a/renders/Image 4.jpg b/renders/Image 4.jpg
new file mode 100644
index 0000000..d669b2f
Binary files /dev/null and b/renders/Image 4.jpg differ
diff --git a/renders/Image 5.jpg b/renders/Image 5.jpg
new file mode 100644
index 0000000..1a43ebc
Binary files /dev/null and b/renders/Image 5.jpg differ
diff --git a/renders/Image 6.JPG b/renders/Image 6.JPG
new file mode 100644
index 0000000..ab335d3
Binary files /dev/null and b/renders/Image 6.JPG differ
diff --git a/renders/Image 7.JPG b/renders/Image 7.JPG
new file mode 100644
index 0000000..a5c8ead
Binary files /dev/null and b/renders/Image 7.JPG differ
diff --git a/renders/sampleScene_0.bmp b/renders/sampleScene_0.bmp
new file mode 100644
index 0000000..1b796f2
Binary files /dev/null and b/renders/sampleScene_0.bmp differ
diff --git a/scenes/sampleScene.txt b/scenes/sampleScene.txt
index 936135b..da0b0cd 100755
--- a/scenes/sampleScene.txt
+++ b/scenes/sampleScene.txt
@@ -1,229 +1,229 @@
-MATERIAL 0 //white diffuse
-RGB 1 1 1
-SPECEX 0
-SPECRGB 1 1 1
-REFL 0
-REFR 0
-REFRIOR 0
-SCATTER 0
-ABSCOEFF 0 0 0
-RSCTCOEFF 0
-EMITTANCE 0
-
-MATERIAL 1 //red diffuse
-RGB .63 .06 .04
-SPECEX 0
-SPECRGB 1 1 1
-REFL 0
-REFR 0
-REFRIOR 0
-SCATTER 0
-ABSCOEFF 0 0 0
-RSCTCOEFF 0
-EMITTANCE 0
-
-MATERIAL 2 //green diffuse
-RGB .15 .48 .09
-SPECEX 0
-SPECRGB 1 1 1
-REFL 0
-REFR 0
-REFRIOR 0
-SCATTER 0
-ABSCOEFF 0 0 0
-RSCTCOEFF 0
-EMITTANCE 0
-
-MATERIAL 3 //red glossy
-RGB .63 .06 .04
-SPECEX 0
-SPECRGB 1 1 1
-REFL 0
-REFR 0
-REFRIOR 2
-SCATTER 0
-ABSCOEFF 0 0 0
-RSCTCOEFF 0
-EMITTANCE 0
-
-MATERIAL 4 //white glossy
-RGB 1 1 1
-SPECEX 0
-SPECRGB 1 1 1
-REFL 0
-REFR 0
-REFRIOR 2
-SCATTER 0
-ABSCOEFF 0 0 0
-RSCTCOEFF 0
-EMITTANCE 0
-
-MATERIAL 5 //glass
-RGB 0 0 0
-SPECEX 0
-SPECRGB 1 1 1
-REFL 0
-REFR 1
-REFRIOR 2.2
-SCATTER 0
-ABSCOEFF .02 5.1 5.7
-RSCTCOEFF 13
-EMITTANCE 0
-
-MATERIAL 6 //green glossy
-RGB .15 .48 .09
-SPECEX 0
-SPECRGB 1 1 1
-REFL 0
-REFR 0
-REFRIOR 2.6
-SCATTER 0
-ABSCOEFF 0 0 0
-RSCTCOEFF 0
-EMITTANCE 0
-
-MATERIAL 7 //light
-RGB 1 1 1
-SPECEX 0
-SPECRGB 0 0 0
-REFL 0
-REFR 0
-REFRIOR 0
-SCATTER 0
-ABSCOEFF 0 0 0
-RSCTCOEFF 0
-EMITTANCE 1
-
-MATERIAL 8 //light
-RGB 1 1 1
-SPECEX 0
-SPECRGB 0 0 0
-REFL 0
-REFR 0
-REFRIOR 0
-SCATTER 0
-ABSCOEFF 0 0 0
-RSCTCOEFF 0
-EMITTANCE 15
-
-CAMERA
-RES 800 800
-FOVY 25
-ITERATIONS 5000
-FILE renders/sampleScene.bmp
-frame 0
-EYE 0 4.5 12
-VIEW 0 0 -1
-UP 0 1 0
-frame 1
-EYE 0 4.5 12
-VIEW 0 0 -1
-UP 0 1 0
-
-OBJECT 0
-cube
-material 0
-frame 0
-TRANS 0 0 0
-ROTAT 0 0 90
-SCALE .01 10 10
-frame 1
-TRANS 0 0 0
-ROTAT 0 0 90
-SCALE .01 10 10
-
-OBJECT 1
-cube
-material 0
-frame 0
-TRANS 0 5 -5
-ROTAT 0 90 0
-SCALE .01 10 10
-frame 1
-TRANS 0 5 -5
-ROTAT 0 90 0
-SCALE .01 10 10
-
-OBJECT 2
-cube
-material 0
-frame 0
-TRANS 0 10 0
-ROTAT 0 0 90
-SCALE .01 10 10
-frame 1
-TRANS 0 10 0
-ROTAT 0 0 90
-SCALE .01 10 10
-
-OBJECT 3
-cube
-material 1
-frame 0
-TRANS -5 5 0
-ROTAT 0 0 0
-SCALE .01 10 10
-frame 1
-TRANS -5 5 0
-ROTAT 0 0 0
-SCALE .01 10 10
-
-OBJECT 4
-cube
-material 2
-frame 0
-TRANS 5 5 0
-ROTAT 0 0 0
-SCALE .01 10 10
-frame 1
-TRANS 5 5 0
-ROTAT 0 0 0
-SCALE .01 10 10
-
-OBJECT 5
-sphere
-material 4
-frame 0
-TRANS 0 2 0
-ROTAT 0 180 0
-SCALE 3 3 3
-frame 1
-TRANS 0 2 0
-ROTAT 0 180 0
-SCALE 3 3 3
-
-OBJECT 6
-sphere
-material 3
-frame 0
-TRANS 2 5 2
-ROTAT 0 180 0
-SCALE 2.5 2.5 2.5
-frame 1
-TRANS 2 5 2
-ROTAT 0 180 0
-SCALE 2.5 2.5 2.5
-
-OBJECT 7
-sphere
-material 6
-frame 0
-TRANS -2 5 -2
-ROTAT 0 180 0
-SCALE 3 3 3
-frame 1
-TRANS -2 5 -2
-ROTAT 0 180 0
-SCALE 3 3 3
-
-OBJECT 8
-cube
-material 8
-frame 0
-TRANS 0 10 0
-ROTAT 0 0 90
-SCALE .3 3 3
-frame 1
-TRANS 0 10 0
-ROTAT 0 0 90
+MATERIAL 0 //white diffuse
+RGB 1 1 1
+SPECEX 0
+SPECRGB 1 1 1
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 1 //red diffuse
+RGB .63 .06 .04
+SPECEX 0
+SPECRGB 1 1 1
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 2 //green diffuse
+RGB .15 .48 .09
+SPECEX 0
+SPECRGB 1 1 1
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 3 //red glossy
+RGB .63 .06 .04
+SPECEX 1.0
+SPECRGB 1 1 1
+REFL 0
+REFR 0
+REFRIOR 2
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 4 //white glossy
+RGB 1 1 1
+SPECEX 0
+SPECRGB 1 1 1
+REFL 0
+REFR 0
+REFRIOR 2
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 5 //glass
+RGB 0 0 0
+SPECEX 0
+SPECRGB 1 1 1
+REFL 0
+REFR 1
+REFRIOR 2.2
+SCATTER 0
+ABSCOEFF .02 5.1 5.7
+RSCTCOEFF 13
+EMITTANCE 0
+
+MATERIAL 6 //green glossy
+RGB .15 .48 .09
+SPECEX 0
+SPECRGB 1 1 1
+REFL 0
+REFR 0
+REFRIOR 2.6
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 7 //light
+RGB 1 1 1
+SPECEX 0
+SPECRGB 0 0 0
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 1
+
+MATERIAL 8 //light
+RGB 1 1 1
+SPECEX 0
+SPECRGB 0 0 0
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 15
+
+CAMERA
+RES 800 800
+FOVY 25
+ITERATIONS 5000
+FILE renders/sampleScene.bmp
+frame 0
+EYE 0 5 43
+VIEW 0 0 -1
+UP 0 1 0
+frame 1
+EYE 0 4.5 12
+VIEW 0 0 -1
+UP 0 1 0
+
+OBJECT 0
+cube
+material 0
+frame 0
+TRANS 0 0 0
+ROTAT 0 0 90
+SCALE .01 10 10
+frame 1
+TRANS 0 0 0
+ROTAT 0 0 90
+SCALE .01 10 10
+
+OBJECT 1
+cube
+material 0
+frame 0
+TRANS 0 5 -5
+ROTAT 0 90 0
+SCALE .01 10 10
+frame 1
+TRANS 0 5 -5
+ROTAT 0 90 0
+SCALE .01 10 10
+
+OBJECT 2
+cube
+material 0
+frame 0
+TRANS 0 10 0
+ROTAT 0 0 90
+SCALE .01 10 10
+frame 1
+TRANS 0 10 0
+ROTAT 0 0 90
+SCALE .01 10 10
+
+OBJECT 3
+cube
+material 1
+frame 0
+TRANS -5 5 0
+ROTAT 0 0 0
+SCALE .01 10 10
+frame 1
+TRANS -5 5 0
+ROTAT 0 0 0
+SCALE .01 10 10
+
+OBJECT 4
+cube
+material 2
+frame 0
+TRANS 5 5 0
+ROTAT 0 0 0
+SCALE .01 10 10
+frame 1
+TRANS 5 5 0
+ROTAT 0 0 0
+SCALE .01 10 10
+
+OBJECT 5
+sphere
+material 4
+frame 0
+TRANS 0 2 0
+ROTAT 0 180 0
+SCALE 3 3 3
+frame 1
+TRANS 0 2 0
+ROTAT 0 180 0
+SCALE 3 3 3
+
+OBJECT 6
+sphere
+material 3
+frame 0
+TRANS 2 5 2
+ROTAT 0 180 0
+SCALE 2.5 2.5 2.5
+frame 1
+TRANS 2 5 2
+ROTAT 0 180 0
+SCALE 2.5 2.5 2.5
+
+OBJECT 7
+sphere
+material 6
+frame 0
+TRANS -2 5 -2
+ROTAT 0 180 0
+SCALE 3 3 3
+frame 1
+TRANS -2 5 -2
+ROTAT 0 180 0
+SCALE 3 3 3
+
+OBJECT 8
+cube
+material 8
+frame 0
+TRANS 0 10 0
+ROTAT 0 0 90
+SCALE .3 3 3
+frame 1
+TRANS 0 10 0
+ROTAT 0 0 90
SCALE .3 3 3
\ No newline at end of file
diff --git a/scenes/sampleScene2.txt b/scenes/sampleScene2.txt
new file mode 100644
index 0000000..bfb4a45
--- /dev/null
+++ b/scenes/sampleScene2.txt
@@ -0,0 +1,343 @@
+MATERIAL 0 //white diffuse
+RGB 1 1 1
+SPECEX 0
+SPECRGB 1 1 1
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 1 //red diffuse
+RGB .63 .06 .04
+SPECEX 0
+SPECRGB 1 1 1
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 2 //green diffuse
+RGB .15 .48 .09
+SPECEX 0
+SPECRGB 1 1 1
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+<<<<<<< HEAD
+MATERIAL 3 //white glossy
+RGB 1 1 1
+SPECEX 6.0
+SPECRGB 1 1 1
+REFL 1.0
+REFR 1.0
+REFRIOR 2
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 4 //red glossy
+RGB .63 .06 .04
+SPECEX 10.0
+SPECRGB 1 1 1
+REFL 0.0
+REFR 1.0
+=======
+MATERIAL 3 //red glossy
+RGB .63 .06 .04
+SPECEX 5.0
+SPECRGB 1 1 1
+REFL 0.0
+REFR 0
+>>>>>>> origin/2.5-Commit
+REFRIOR 2
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+<<<<<<< HEAD
+=======
+MATERIAL 4 //white glossy
+RGB 1 1 1
+SPECEX 6.0
+SPECRGB 1 1 1
+REFL 0.5
+REFR 0
+REFRIOR 2
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+>>>>>>> origin/2.5-Commit
+
+MATERIAL 5 //glass
+RGB 0 0 0
+SPECEX 0
+SPECRGB 1 1 1
+REFL 0
+REFR 1
+REFRIOR 2.2
+SCATTER 0
+ABSCOEFF .02 5.1 5.7
+RSCTCOEFF 13
+EMITTANCE 0
+
+MATERIAL 6 //green glossy
+RGB .15 .48 .09
+<<<<<<< HEAD
+SPECEX 6.0
+SPECRGB 1 1 1
+REFL 0.0
+REFR 0.0
+REFRIOR 2.6
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 7 //blue
+RGB 0 0 1
+SPECEX 6.0
+SPECRGB 1 1 1
+REFL 0.0
+REFR 1.0
+REFRIOR 2
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 8 //yellow
+RGB 0 0 1
+SPECEX 6.0
+SPECRGB 1 1 1
+REFL 0.0
+REFR 1.0
+REFRIOR 2
+=======
+SPECEX 1.0
+SPECRGB 1 1 1
+REFL 0.0
+REFR 0
+REFRIOR 2.6
+>>>>>>> origin/2.5-Commit
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+<<<<<<< HEAD
+MATERIAL 9 //light
+=======
+MATERIAL 7 //light
+>>>>>>> origin/2.5-Commit
+RGB 1 1 1
+SPECEX 0
+SPECRGB 0 0 0
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 1
+
+<<<<<<< HEAD
+MATERIAL 10 //light
+=======
+MATERIAL 8 //light
+>>>>>>> origin/2.5-Commit
+RGB 1 1 1
+SPECEX 0
+SPECRGB 0 0 0
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 15
+
+CAMERA
+RES 800 800
+FOVY 25
+ITERATIONS 5000
+<<<<<<< HEAD
+FILE sampleScene.bmp
+=======
+FILE renders/sampleScene.bmp
+>>>>>>> origin/2.5-Commit
+frame 0
+EYE 0 5 43
+VIEW 0 0 -1
+UP 0 1 0
+frame 1
+EYE 0 4.5 12
+VIEW 0 0 -1
+UP 0 1 0
+
+OBJECT 0
+cube
+material 0
+frame 0
+TRANS 0 0 0
+ROTAT 0 0 90
+SCALE .01 10 10
+frame 1
+TRANS 0 0 0
+ROTAT 0 0 90
+SCALE .01 10 10
+
+OBJECT 1
+cube
+material 0
+frame 0
+TRANS 0 5 -5
+ROTAT 0 90 0
+SCALE .01 10 10
+frame 1
+TRANS 0 5 -5
+ROTAT 0 90 0
+SCALE .01 10 10
+
+OBJECT 2
+cube
+material 0
+frame 0
+TRANS 0 10 0
+ROTAT 0 0 90
+SCALE .01 10 10
+frame 1
+TRANS 0 10 0
+ROTAT 0 0 90
+SCALE .01 10 10
+
+OBJECT 3
+cube
+material 1
+frame 0
+TRANS -5 5 0
+ROTAT 0 0 0
+SCALE .01 10 10
+frame 1
+TRANS -5 5 0
+ROTAT 0 0 0
+SCALE .01 10 10
+
+OBJECT 4
+cube
+material 2
+frame 0
+TRANS 5 5 0
+ROTAT 0 0 0
+SCALE .01 10 10
+frame 1
+TRANS 5 5 0
+ROTAT 0 0 0
+SCALE .01 10 10
+
+OBJECT 5
+sphere
+material 4
+frame 0
+<<<<<<< HEAD
+TRANS 3.5 1 3.5
+ROTAT 0 180 0
+SCALE 2 2 2
+frame 1
+TRANS 3.5 1 3.5
+ROTAT 0 180 0
+SCALE 2 2 2
+=======
+TRANS 0 2 0
+ROTAT 0 180 0
+SCALE 3 3 3
+frame 1
+TRANS 0 2 0
+ROTAT 0 180 0
+SCALE 3 3 3
+>>>>>>> origin/2.5-Commit
+
+OBJECT 6
+sphere
+material 3
+frame 0
+<<<<<<< HEAD
+TRANS 0 1.5 0
+ROTAT 0 0 0
+SCALE 3 3 3
+frame 1
+TRANS 0 1.5 0
+ROTAT 0 0 0
+SCALE 3 3 3
+=======
+TRANS 2 5 2
+ROTAT 0 180 0
+SCALE 2.5 2.5 2.5
+frame 1
+TRANS 2 5 2
+ROTAT 0 180 0
+SCALE 2.5 2.5 2.5
+>>>>>>> origin/2.5-Commit
+
+OBJECT 7
+sphere
+material 6
+frame 0
+<<<<<<< HEAD
+TRANS -3.5 1 3.5
+ROTAT 0 180 0
+SCALE 2 2 2
+frame 1
+TRANS -3.5 1 3.5
+ROTAT 0 180 0
+SCALE 2 2 2
+
+OBJECT 8
+sphere
+material 7
+frame 0
+TRANS -2 5 -2
+ROTAT 0 0 0
+SCALE 2 2 2
+frame 1
+TRANS -2 5 -2
+ROTAT 0 0 0
+SCALE 2 2 2
+
+OBJECT 9
+sphere
+material 10
+=======
+TRANS -2 5 -2
+ROTAT 0 180 0
+SCALE 3 3 3
+frame 1
+TRANS -2 5 -2
+ROTAT 0 180 0
+SCALE 3 3 3
+
+OBJECT 8
+sphere
+material 8
+>>>>>>> origin/2.5-Commit
+frame 0
+TRANS 0 9.5 0
+ROTAT 0 0 0
+SCALE 0.1 0.1 0.1
+frame 1
+TRANS 0 9.5 0
+ROTAT 0 0 0
+SCALE 0.1 0.1 0.1
\ No newline at end of file
diff --git a/scenes/sampleScene3.txt b/scenes/sampleScene3.txt
new file mode 100644
index 0000000..aa6bd49
--- /dev/null
+++ b/scenes/sampleScene3.txt
@@ -0,0 +1,205 @@
+MATERIAL 0 //white diffuse
+RGB 1 1 1
+SPECEX 0
+SPECRGB 1 1 1
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 1 //red diffuse
+RGB .63 .06 .04
+SPECEX 0
+SPECRGB 1 1 1
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 2 //green diffuse
+RGB .15 .48 .09
+SPECEX 0
+SPECRGB 1 1 1
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 3 //red glossy
+RGB .63 .06 .04
+SPECEX 8.0
+SPECRGB 1 1 1
+REFL 1.0
+REFR 0
+REFRIOR 2
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 4 //white glossy
+RGB 1 1 1
+SPECEX 10.0
+SPECRGB 1 1 1
+REFL 0.2
+REFR 0
+REFRIOR 2
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 5 //glass
+RGB 0 0 0
+SPECEX 0
+SPECRGB 1 1 1
+REFL 0
+REFR 1
+REFRIOR 2.2
+SCATTER 0
+ABSCOEFF .02 5.1 5.7
+RSCTCOEFF 13
+EMITTANCE 0
+
+MATERIAL 6 //green glossy
+RGB .15 .48 .09
+SPECEX 1.0
+SPECRGB 1 1 1
+REFL 0.75
+REFR 0
+REFRIOR 2.6
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 7 //light
+RGB 1 1 1
+SPECEX 0
+SPECRGB 0 0 0
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 1
+
+MATERIAL 8 //light
+RGB 1 1 1
+SPECEX 0
+SPECRGB 0 0 0
+REFL 0
+REFR 0
+REFRIOR 0
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 15
+
+CAMERA
+RES 800 800
+FOVY 25
+ITERATIONS 5000
+FILE renders/sampleScene.bmp
+frame 0
+EYE 0 5 43
+VIEW 0 0 -1
+UP 0 1 0
+frame 1
+EYE 0 4.5 12
+VIEW 0 0 -1
+UP 0 1 0
+
+OBJECT 0
+cube
+material 0
+frame 0
+TRANS 0 0 0
+ROTAT 0 0 90
+SCALE .01 10 10
+frame 1
+TRANS 0 0 0
+ROTAT 0 0 90
+SCALE .01 10 10
+
+OBJECT 1
+cube
+material 0
+frame 0
+TRANS 0 5 -5
+ROTAT 0 90 0
+SCALE .01 10 10
+frame 1
+TRANS 0 5 -5
+ROTAT 0 90 0
+SCALE .01 10 10
+
+OBJECT 2
+cube
+material 0
+frame 0
+TRANS 0 10 0
+ROTAT 0 0 90
+SCALE .01 10 10
+frame 1
+TRANS 0 10 0
+ROTAT 0 0 90
+SCALE .01 10 10
+
+OBJECT 3
+cube
+material 1
+frame 0
+TRANS -5 5 0
+ROTAT 0 0 0
+SCALE .01 10 10
+frame 1
+TRANS -5 5 0
+ROTAT 0 0 0
+SCALE .01 10 10
+
+OBJECT 4
+cube
+material 2
+frame 0
+TRANS 5 5 0
+ROTAT 0 0 0
+SCALE .01 10 10
+frame 1
+TRANS 5 5 0
+ROTAT 0 0 0
+SCALE .01 10 10
+
+OBJECT 5
+sphere
+material 3
+frame 0
+TRANS 2 5 2
+ROTAT 0 180 0
+SCALE 2.5 2.5 2.5
+frame 1
+TRANS 2 5 2
+ROTAT 0 180 0
+SCALE 2.5 2.5 2.5
+
+OBJECT 6
+sphere
+material 8
+frame 0
+TRANS 0 9.5 0
+ROTAT 0 0 0
+SCALE 0.1 0.1 0.1
+frame 1
+TRANS 0 9.5 0
+ROTAT 0 0 0
+SCALE 0.1 0.1 0.1
\ No newline at end of file
diff --git a/src/interactions.h b/src/interactions.h
index e18cfff..690e912 100755
--- a/src/interactions.h
+++ b/src/interactions.h
@@ -46,7 +46,8 @@ __host__ __device__ glm::vec3 calculateTransmissionDirection(glm::vec3 normal, g
//TODO (OPTIONAL): IMPLEMENT THIS FUNCTION
__host__ __device__ glm::vec3 calculateReflectionDirection(glm::vec3 normal, glm::vec3 incident) {
//nothing fancy here
- return glm::vec3(0,0,0);
+ //return glm::reflect(incident, normal);
+ return glm::normalize(incident - (normal * (float)glm::dot(normal, incident) * 2.0f));
}
//TODO (OPTIONAL): IMPLEMENT THIS FUNCTION
@@ -90,7 +91,19 @@ __host__ __device__ glm::vec3 calculateRandomDirectionInHemisphere(glm::vec3 nor
//Now that you know how cosine weighted direction generation works, try implementing non-cosine (uniform) weighted random direction generation.
//This should be much easier than if you had to implement calculateRandomDirectionInHemisphere.
__host__ __device__ glm::vec3 getRandomDirectionInSphere(float xi1, float xi2) {
- return glm::vec3(0,0,0);
+ float U = ((float)(rand() % 10001)) / 10000.0;
+ float V = ((float)(rand() % 10001)) / 10000.0;
+ //thrust::default_random_engine rng(hash(randomSeed));
+ //thrust::uniform_real_distribution U(0,1);
+ //thrust::uniform_real_distribution V(0,1);
+ float Theta = TWO_PI * U;
+ float Phi = acos(2*V -1);
+
+ float x = cos(Theta) * sin(Phi);
+ float y = sin(Theta) * sin(Phi);
+ float z = cos(Phi);
+
+ return glm::vec3(x,y,z);
}
//TODO (PARTIALLY OPTIONAL): IMPLEMENT THIS FUNCTION
diff --git a/src/intersections.h b/src/intersections.h
index 2d9dcc8..75908be 100755
--- a/src/intersections.h
+++ b/src/intersections.h
@@ -71,12 +71,135 @@ __host__ __device__ glm::vec3 getSignOfRay(ray r){
//TODO: IMPLEMENT THIS FUNCTION
//Cube intersection test, return -1 if no intersection, otherwise, distance to intersection
__host__ __device__ float boxIntersectionTest(staticGeom box, ray r, glm::vec3& intersectionPoint, glm::vec3& normal){
+
+ glm::vec3 ro = multiplyMV(box.inverseTransform, glm::vec4(r.origin,1.0f));
+ glm::vec3 rd = glm::normalize(multiplyMV(box.inverseTransform, glm::vec4(r.direction,0.0f)));
- return -1;
+ ray rt; rt.origin = ro; rt.direction = rd;
+
+ glm::vec3 vertex1 = glm::vec3(-0.5f, -0.5f, -0.5f);
+ glm::vec3 vertex2 = glm::vec3(+0.5f, +0.5f, +0.5f);
+ glm::vec3 norm = glm::vec3(0.0, 0.0, 0.0);
+ float t, t1, t2;
+ float temp;
+ float tFar = 1000000.0f;
+ float tNear = -10000000.0f;
+
+ if(rd.x == 0)
+ {
+ if(!(ro.x >= vertex1.x && ro.x <= vertex2.x))
+ return -1;
+ }
+ else
+ {
+ t1 = (vertex1.x - ro.x) / rd.x;
+ t2 = (vertex2.x - ro.x) / rd.x;
+
+ if(t1 > t2)
+ {
+ temp = t1;
+ t1 = t2;
+ t2 = temp;
+ }
+ if(t1 > tNear)
+ tNear = t1;
+ if(t2 < tFar)
+ tFar = t2;
+ if(tNear > tFar)
+ return -1;
+ if(tFar < 0)
+ return -1;
+ }
+
+ if(rd.y == 0)
+ {
+ if(!(ro.y >= vertex1.y && ro.y <= vertex2.y))
+ return -1;
+ }
+ else
+ {
+ t1 = (vertex1.y - ro.y) / rd.y;
+ t2 = (vertex2.y - ro.y) / rd.y;
+
+ if(t1 > t2)
+ {
+ temp = t1;
+ t1 = t2;
+ t2 = temp;
+ }
+ if(t1 > tNear)
+ tNear = t1;
+ if(t2 < tFar)
+ tFar = t2;
+ if(tNear > tFar)
+ return -1;
+ if(tFar < 0)
+ return -1;
+ }
+
+ if(rd.z == 0)
+ {
+ if(!(ro.z >= vertex1.z && ro.z <= vertex2.z))
+ return -1;
+ }
+ else
+ {
+ t1 = (vertex1.z - ro.z) / rd.z;
+ t2 = (vertex2.z - ro.z) / rd.z;
+
+ if(t1 > t2)
+ {
+ temp = t1;
+ t1 = t2;
+ t2 = temp;
+ }
+ if(t1 > tNear)
+ tNear = t1;
+ if(t2 < tFar)
+ tFar = t2;
+ if(tNear > tFar)
+ return -1;
+ if(tFar < 0)
+ return -1;
+ }
+
+ if(tNear>= -10000000.0f)
+ t = tNear;
+ else
+ return -1;
+
+ glm::vec3 realIntersectionPoint = multiplyMV(box.transform, glm::vec4(getPointOnRay(rt, t), 1.0));
+ glm::vec3 realOrigin = multiplyMV(box.transform, glm::vec4(0,0,0,1));
+
+ intersectionPoint = realIntersectionPoint;
+
+ glm::vec3 P = glm::vec3(0.0,0.0,0.0);
+ normal = glm::vec3(0.0,0.0,0.0);
+ P = multiplyMV(box.inverseTransform, glm::vec4(realIntersectionPoint, 1.0));
+
+
+ if(P.x >= 0.5 - 0.003 && P.x <= 0.5 + 0.003)
+ normal = glm::vec3(1.0, 0.0, 0.0);
+ else if(P.x >= -0.5 - 0.003 && P.x <= -0.5 + 0.003)
+ normal = glm::vec3(-1.0, 0.0, 0.0);
+ else if(P.y >= 0.5 - 0.003 && P.y <= 0.5 + 0.003)
+ normal = glm::vec3(0.0, 1.0, 0.0);
+ else if(P.y >= -0.5 - 0.003 && P.y <= -0.5 + 0.003)
+ normal = glm::vec3(0.0, -1.0, 0.0);
+ else if(P.z >= 0.5 - 0.003 && P.z <= 0.5 + 0.003)
+ normal = glm::vec3(0.0, 0.0, 1.0);
+ else if(P.z >= -0.5 - 0.003 && P.z <= -0.5 + 0.003)
+ normal = glm::vec3(0.0, 0.0, -1.0);
+
+ normal = glm::normalize(normal);
+ normal = multiplyMV(box.transform, glm::vec4(normal, 0.0f));
+ normal = glm::normalize(normal);
+ return glm::length(r.origin - realIntersectionPoint);
}
//LOOK: Here's an intersection test example from a sphere. Now you just need to figure out cube and, optionally, triangle.
//Sphere intersection test, return -1 if no intersection, otherwise, distance to intersection
+//Returns intersectionPoint and normal - as return by reference and Distance to Instersection as return float
__host__ __device__ float sphereIntersectionTest(staticGeom sphere, ray r, glm::vec3& intersectionPoint, glm::vec3& normal){
float radius = .5;
@@ -86,16 +209,17 @@ __host__ __device__ float sphereIntersectionTest(staticGeom sphere, ray r, glm:
ray rt; rt.origin = ro; rt.direction = rd;
- float vDotDirection = glm::dot(rt.origin, rt.direction);
- float radicand = vDotDirection * vDotDirection - (glm::dot(rt.origin, rt.origin) - pow(radius, 2));
+ //Ax2 + Bx + C = 0
+ float vDotDirection = glm::dot(rt.origin, rt.direction); //Gives B
+ float radicand = vDotDirection * vDotDirection - (glm::dot(rt.origin, rt.origin) - pow(radius, 2)); //B^2 - 4*A*C
if (radicand < 0){
return -1;
}
float squareRoot = sqrt(radicand);
- float firstTerm = -vDotDirection;
- float t1 = firstTerm + squareRoot;
- float t2 = firstTerm - squareRoot;
+ float firstTerm = -vDotDirection; //-B
+ float t1 = firstTerm + squareRoot; //-B + radicand
+ float t2 = firstTerm - squareRoot; //-B - radicand
float t = 0;
if (t1 < 0 && t2 < 0) {
@@ -176,8 +300,18 @@ __host__ __device__ glm::vec3 getRandomPointOnCube(staticGeom cube, float random
//TODO: IMPLEMENT THIS FUNCTION
//Generates a random point on a given sphere
__host__ __device__ glm::vec3 getRandomPointOnSphere(staticGeom sphere, float randomSeed){
-
- return glm::vec3(0,0,0);
+ thrust::default_random_engine rng(hash(randomSeed));
+ thrust::uniform_real_distribution U(0,1);
+ thrust::uniform_real_distribution V(0,1);
+ float Theta = TWO_PI * U(rng);
+ float Phi = acos(2*V(rng) -1);
+
+ float x = cos(Theta) * sin(Phi);
+ float y = sin(Theta) * sin(Phi);
+ float z = cos(Phi);
+
+ glm::vec3 PointOnSphere = sphere.translation + glm::vec3(x,y,z);
+ return PointOnSphere;
}
#endif
\ No newline at end of file
diff --git a/src/main.cpp b/src/main.cpp
index 4e94892..6843178 100755
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -123,7 +123,7 @@ void runCuda(){
// execute the kernel
- cudaRaytraceCore(dptr, renderCam, targetFrame, iterations, materials, renderScene->materials.size(), geoms, renderScene->objects.size() );
+ cudaRaytraceCore(dptr, renderCam, targetFrame, iterations, materials, renderScene->materials.size(), geoms, renderScene->objects.size(), changed );
// unmap buffer object
cudaGLUnmapBufferObject(pbo);
@@ -221,11 +221,168 @@ void runCuda(){
void keyboard(unsigned char key, int x, int y)
{
std::cout << key << std::endl;
+ float rad10;
+ glm::mat3 RotateX;
switch (key)
{
case(27):
exit(1);
break;
+
+ case 'w':
+ renderCam->positions[0].y += 0.5f;
+ renderCam->positions[1].y += 0.5f;
+<<<<<<< HEAD
+ changed = true;
+=======
+>>>>>>> origin/2.5-Commit
+ break;
+
+ case 's':
+ renderCam->positions[0].y -= 0.5f;
+ renderCam->positions[1].y -= 0.5f;
+<<<<<<< HEAD
+ changed = true;
+=======
+>>>>>>> origin/2.5-Commit
+ break;
+
+ case 'a':
+ renderCam->positions[0].x += 0.5f;
+ renderCam->positions[1].x += 0.5f;
+<<<<<<< HEAD
+ changed = true;
+=======
+>>>>>>> origin/2.5-Commit
+ break;
+
+ case 'd':
+ renderCam->positions[0].x -= 0.5f;
+ renderCam->positions[1].x -= 0.5f;
+<<<<<<< HEAD
+ changed = true;
+=======
+>>>>>>> origin/2.5-Commit
+ break;
+
+ case 'q':
+ renderCam->positions[0].z += 0.5f;
+ renderCam->positions[1].z += 0.5f;
+<<<<<<< HEAD
+ changed = true;
+=======
+>>>>>>> origin/2.5-Commit
+ break;
+
+ case 'e':
+ renderCam->positions[0].z -= 0.5f;
+ renderCam->positions[1].z -= 0.5f;
+<<<<<<< HEAD
+ changed = true;
+=======
+>>>>>>> origin/2.5-Commit
+ break;
+
+ case 'x':
+ rad10 = glm::radians(0.2);
+ RotateX = glm::mat3(1.0, 0.0, 0.0, 0.0, cos(rad10), -sin(rad10), 0.0, sin(rad10), cos(rad10));
+ renderCam->views[0] = RotateX * renderCam->views[0];
+ renderCam->views[1] = RotateX * renderCam->views[1];
+<<<<<<< HEAD
+ changed = true;
+=======
+>>>>>>> origin/2.5-Commit
+ break;
+
+ case 'X':
+ rad10 = glm::radians(-0.2);
+ RotateX = glm::mat3(1.0, 0.0, 0.0, 0.0, cos(rad10), -sin(rad10), 0.0, sin(rad10), cos(rad10));
+ renderCam->views[0] = RotateX * renderCam->views[0];
+ renderCam->views[1] = RotateX * renderCam->views[1];
+<<<<<<< HEAD
+ changed = true;
+=======
+>>>>>>> origin/2.5-Commit
+ break;
+
+ case 'y':
+ rad10 = glm::radians(0.2);
+ RotateX = glm::mat3(cos(rad10), 0.0, sin(rad10), 0.0, 1.0, 0.0, -sin(rad10), 0.0, cos(rad10));
+ renderCam->views[0] = RotateX * renderCam->views[0];
+ renderCam->views[1] = RotateX * renderCam->views[1];
+<<<<<<< HEAD
+ changed = true;
+=======
+>>>>>>> origin/2.5-Commit
+ break;
+
+ case 'Y':
+ rad10 = glm::radians(-0.2);
+ RotateX = glm::mat3(cos(rad10), 0.0, sin(rad10), 0.0, 1.0, 0.0, -sin(rad10), 0.0, cos(rad10));
+ renderCam->views[0] = RotateX * renderCam->views[0];
+ renderCam->views[1] = RotateX * renderCam->views[1];
+<<<<<<< HEAD
+ changed = true;
+ break;
+
+ ///*case 'y':
+ // rad10 = glm::radians(0.2);
+ // RotateX = glm::mat3(cos(rad10), -sin(rad10), 0.0, sin(rad10), cos(rad10), 0.0, 0.0, 0.0, 1.0);
+ // renderCam->views[0] = RotateX * renderCam->views[0];
+ // renderCam->views[1] = RotateX * renderCam->views[1];
+ // break;
+
+ //case 'Y':
+ // rad10 = glm::radians(-90.0);
+ // RotateX = glm::mat3(cos(rad10), -sin(rad10), 0.0, sin(rad10), cos(rad10), 0.0, 0.0, 0.0, 1.0);
+ // renderCam->views[0] = RotateX * renderCam->views[0];
+ // renderCam->views[1] = RotateX * renderCam->views[1];
+ // renderCam->ups[0] = RotateX * renderCam->views[0];
+ // renderCam->ups[1] = RotateX * renderCam->views[1];
+ // break;*/
+
+ case 'i': //Write image to file
+ case 'I':
+ image outputImage(renderCam->resolution.x, renderCam->resolution.y);
+
+ for(int x=0; xresolution.x; x++){
+ for(int y=0; yresolution.y; y++){
+ int index = x + (y * renderCam->resolution.x);
+ outputImage.writePixelRGB(x,y,renderCam->image[index]);
+ }
+ }
+
+ string filename = renderCam->imageName;
+ string s;
+ stringstream out;
+ out << targetFrame;
+ s = out.str();
+ utilityCore::replaceString(filename, ".bmp", "_"+s+".bmp");
+ utilityCore::replaceString(filename, ".png", "_"+s+".png");
+ outputImage.saveImageRGB(filename);
+ cout << "Saved frame " << s << " to " << filename << endl;
+ break;
+
+=======
+ break;
+
+ /*case 'y':
+ rad10 = glm::radians(0.2);
+ RotateX = glm::mat3(cos(rad10), -sin(rad10), 0.0, sin(rad10), cos(rad10), 0.0, 0.0, 0.0, 1.0);
+ renderCam->views[0] = RotateX * renderCam->views[0];
+ renderCam->views[1] = RotateX * renderCam->views[1];
+ break;
+
+ case 'Y':
+ rad10 = glm::radians(-90.0);
+ RotateX = glm::mat3(cos(rad10), -sin(rad10), 0.0, sin(rad10), cos(rad10), 0.0, 0.0, 0.0, 1.0);
+ renderCam->views[0] = RotateX * renderCam->views[0];
+ renderCam->views[1] = RotateX * renderCam->views[1];
+ renderCam->ups[0] = RotateX * renderCam->views[0];
+ renderCam->ups[1] = RotateX * renderCam->views[1];
+ break;*/
+
+>>>>>>> origin/2.5-Commit
}
}
diff --git a/src/main.h b/src/main.h
index 55daf50..c2da0f4 100755
--- a/src/main.h
+++ b/src/main.h
@@ -44,7 +44,7 @@ int targetFrame;
int iterations;
bool finishedRender;
bool singleFrameMode;
-
+bool changed = false;
//-------------------------------
//------------GL STUFF-----------
//-------------------------------
diff --git a/src/raytraceKernel.cu b/src/raytraceKernel.cu
index dae7b03..3deb866 100755
--- a/src/raytraceKernel.cu
+++ b/src/raytraceKernel.cu
@@ -16,7 +16,15 @@
#include "intersections.h"
#include "interactions.h"
#include
+//#include
+<<<<<<< HEAD
+=======
+#define MAX_DEPTH 2
+>>>>>>> origin/2.5-Commit
+
+#define MAX_DEPTH 5
+
void checkCUDAError(const char *msg) {
cudaError_t err = cudaGetLastError();
if( cudaSuccess != err) {
@@ -42,9 +50,89 @@ __host__ __device__ ray raycastFromCameraKernel(glm::vec2 resolution, float time
ray r;
r.origin = glm::vec3(0,0,0);
r.direction = glm::vec3(0,0,-1);
+ r.origin = eye;
+ glm::vec3 Avec = glm::cross(view, up);
+ glm::vec3 Bvec = glm::cross(Avec, view);
+ glm::vec3 Mvec = eye + view;
+ glm::vec3 Hvec = (Avec * (float)(view.length() * tan(fov.x))) / (float) Avec.length();
+ glm::vec3 Vvec = (Bvec * (float)(view.length() * tan(fov.y))) / (float) Bvec.length();
+ float sx = (float)x / (float) resolution.x;
+ float sy = (float)y / (float) resolution.y;
+ glm::vec3 P = Mvec + (Hvec * (float)(2.0f*sx -1)) + (Vvec * (float)(2.0 * sy - 1));
+ r.direction = glm::normalize(P - eye);
+
return r;
}
+//Get initial rays using kernels
+__global__ void GetRayCastFromCameraKernel(cameraData cam, glm::vec3* InitCamVecs, float time, ray* InitialRays){
+
+ int x = (blockIdx.x * blockDim.x) + threadIdx.x;
+ int y = (blockIdx.y * blockDim.y) + threadIdx.y;
+ int index = x + (y * cam.resolution.x);
+
+ ray r;
+ r.origin = cam.position;
+ float sx = (float)x / (float) cam.resolution.x;
+ float sy = (float)y / (float) cam.resolution.y;
+ glm::vec3 P = InitCamVecs[2] + (InitCamVecs[3] * (float)(2.0f*sx -1)) + (InitCamVecs[4] * (float)(2.0 * sy - 1));
+ r.direction = glm::normalize(P - r.origin);
+ r.keep = 1;
+ r.newIndex = 0;
+<<<<<<< HEAD
+ r.prevMID = -1;
+ InitialRays[index] = r;
+}
+
+//Store Frame 1 Data
+__global__ void StoreFrame(ray* InitialRays, ray* NewRays, glm::vec2 resolution, glm::vec3* cudaimage, glm::vec3* storedcudaimage){
+
+ int x = (blockIdx.x * blockDim.x) + threadIdx.x;
+ int y = (blockIdx.y * blockDim.y) + threadIdx.y;
+ int index = x + (y * resolution.x);
+
+ NewRays[index] = InitialRays[index];
+ storedcudaimage[index] = cudaimage[index];
+}
+
+//Copy Frame 1 Data
+__global__ void CopyFrame(ray* InitialRays, ray* NewRays, glm::vec2 resolution, glm::vec3* cudaimage, glm::vec3* storedcudaimage){
+
+ int x = (blockIdx.x * blockDim.x) + threadIdx.x;
+ int y = (blockIdx.y * blockDim.y) + threadIdx.y;
+ int index = x + (y * resolution.x);
+
+ InitialRays[index] = NewRays[index];
+ cudaimage[index] = storedcudaimage[index];
+}
+
+=======
+ InitialRays[index] = r;
+}
+
+>>>>>>> origin/2.5-Commit
+//Rays Stream Compaction
+__global__ void CompactRays(ray* InitialRays, ray* NewRays, glm::vec2 resolution){
+
+ int x = (blockIdx.x * blockDim.x) + threadIdx.x;
+ int y = (blockIdx.y * blockDim.y) + threadIdx.y;
+ int index = x + (y * resolution.x);
+ if(InitialRays[index].keep == 1)
+ {
+ NewRays[InitialRays[index].newIndex] = InitialRays[index];
+ }
+}
+
+__global__ void doEScanofRays(ray* InitialRays, glm::vec2 resolution, int d){
+
+ int x = (blockIdx.x * blockDim.x) + threadIdx.x;
+ int y = (blockIdx.y * blockDim.y) + threadIdx.y;
+ int index = x + (y * resolution.x);
+
+ if(index > (int)pow(2.0f, d-1))
+ InitialRays[index].newIndex = InitialRays[index - (int)pow(2.0f, d-1)].newIndex + InitialRays[index].newIndex;
+}
+
//Kernel that blacks out a given image buffer
__global__ void clearImage(glm::vec2 resolution, glm::vec3* image){
int x = (blockIdx.x * blockDim.x) + threadIdx.x;
@@ -66,8 +154,8 @@ __global__ void sendImageToPBO(uchar4* PBOpos, glm::vec2 resolution, glm::vec3*
glm::vec3 color;
color.x = image[index].x*255.0;
- color.y = image[index].x*255.0;
- color.z = image[index].x*255.0;
+ color.y = image[index].y*255.0;
+ color.z = image[index].z*255.0;
if(color.x>255){
color.x = 255;
@@ -89,79 +177,411 @@ __global__ void sendImageToPBO(uchar4* PBOpos, glm::vec2 resolution, glm::vec3*
}
}
+//This function checks intersections. Intersection point is the real world point of intersection. Index is the index of the closest object. Returns true if there is intersections, false if there is none.
+__host__ __device__ bool CheckRayObjectIntersection(staticGeom* geoms, int numberOfGeoms, ray r, glm::vec3 &intersectionPoint, glm::vec3 &normal, int& index)
+{
+ float closestT = 1000000.0, t;
+ int closestIndex = -1;
+ bool check = false;
+ glm::vec3 selectedIntersectionPoint = glm::vec3(0.0, 0.0, 0.0);
+ glm::vec3 selectedNormal = glm::vec3(0.0, 0.0, 0.0);
+ for(int i = 0; i < numberOfGeoms; i++)
+ {
+ if(geoms[i].type == SPHERE)
+ {
+ t = sphereIntersectionTest(geoms[i], r, selectedIntersectionPoint, selectedNormal);
+ }
+ else if (geoms[i].type == CUBE)
+ {
+ t = boxIntersectionTest(geoms[i], r, selectedIntersectionPoint, selectedNormal);
+ }
+
+ if(t >= 0)
+ {
+ if(t < closestT)
+ {
+ closestT = t - 0.001;
+ closestIndex = i;
+ intersectionPoint = selectedIntersectionPoint;
+ normal = selectedNormal;
+ check = true;
+ }
+ }
+ }
+ index = closestIndex;
+ return check;
+}
+
//TODO: IMPLEMENT THIS FUNCTION
//Core raytracer kernel
__global__ void raytraceRay(glm::vec2 resolution, float time, cameraData cam, int rayDepth, glm::vec3* colors,
- staticGeom* geoms, int numberOfGeoms){
+ staticGeom* geoms, int numberOfGeoms, material* cudaMaterials, int numberOfMaterials, ray* InitialRays, int numOfRays)
+{
+ int x = (blockIdx.x * blockDim.x) + threadIdx.x;
+ int y = (blockIdx.y * blockDim.y) + threadIdx.y;
+ int index = x + (y * resolution.x);
+
+ glm::vec3 FinalColor = glm::vec3(0.0, 0.0, 0.0);
+ int LightObjIndex = -1;
+ //if((x<=resolution.x && y<=resolution.y) && InitialRays[index].keep == 1)
+ if(InitialRays[index].keep == 1)
+ {
+ ray r = InitialRays[index];
+ glm::vec3 intersectionPoint = glm::vec3(0.0, 0.0, 0.0);
+ glm::vec3 normal = glm::vec3(0.0, 0.0, 0.0);
+ int closestIndex = -1;
+ glm::vec3 ObjCol = glm::vec3(0.0, 0.0, 0.0);
+ int mID;
+ bool check = CheckRayObjectIntersection(geoms, numberOfGeoms, r, intersectionPoint, normal, closestIndex);
+ bool check2;
+ mID = geoms[closestIndex].materialid;
+ if(check && cudaMaterials[mID].emittance > 0) //If object is light then return light color.
+ {
+ FinalColor = cudaMaterials[mID].color;
+ r.keep = 0;
+ r.newIndex = 0;
+ }
+ else if(!check) //If ray does not hit any object, return black.
+ {
+ FinalColor += glm::vec3(0.0, 0.0, 0.0);
+ r.keep = 0;
+ r.newIndex = 0;
+ }
+ else //Do calculation for color
+ {
+ ObjCol = cudaMaterials[mID].color;
+ ray lightRay;
+ lightRay.origin = intersectionPoint;
+ for(int i = 0; i < numberOfGeoms; i++)
+ {
+ if(cudaMaterials[geoms[i].materialid].emittance > 0.005)
+ {
+ LightObjIndex = i;
+ glm::vec3 IP = glm::vec3(0.0, 0.0, 0.0);
+ glm::vec3 Norm = glm::vec3(0.0, 0.0, 0.0);
+ int cIndex = -1;
+ lightRay.direction = glm::normalize(geoms[i].translation - lightRay.origin);
+ lightRay.origin += lightRay.direction * 0.02f;
+ //Check for intersection of light rays
+ check2 = CheckRayObjectIntersection(geoms, numberOfGeoms, lightRay, IP, Norm, cIndex);
+ if(cIndex == i)
+ { //If light ray only intersects light, then add diffuse component.
+ FinalColor += cudaMaterials[geoms[i].materialid].color * ObjCol * glm::dot(normal, lightRay.direction) + ObjCol * glm::vec3(0.2, 0.2, 0.2);
+<<<<<<< HEAD
- int x = (blockIdx.x * blockDim.x) + threadIdx.x;
- int y = (blockIdx.y * blockDim.y) + threadIdx.y;
- int index = x + (y * resolution.x);
+ if(cudaMaterials[mID].hasRefractive > 0.005) //Using refractive for Ks - Specular Constant
+ {
+ FinalColor += cudaMaterials[mID].hasRefractive *
+ pow(glm::dot(InitialRays[index].direction, calculateReflectionDirection(normal,
+ glm::normalize(-intersectionPoint + geoms[LightObjIndex].translation))),
+ cudaMaterials[mID].specularExponent);
+ }
+ }
+ else
+ { //If it does not intersect light, the color is ambient color
+ FinalColor += ObjCol * glm::vec3(0.15, 0.15, 0.15); //Object Color * Ambience
+ }
- if((x<=resolution.x && y<=resolution.y)){
+ //if(cudaMaterials[mID].hasReflective > 0.005)
+ //{ //If reflective, prepare for next iteration
+ // r.direction = glm::normalize(calculateReflectionDirection(normal, r.direction));
+ // r.origin = intersectionPoint + r.direction * 0.02f;
+ // r.keep = 1;
+ // r.newIndex = 1;
+ // r.prevMID = mID;
+ //}
+ //else
+ //{
+ // r.keep = 0;
+ // r.newIndex = 0;
+ //}
+ }
+ }
- colors[index] = generateRandomNumberFromThread(resolution, time, x, y);
- }
-}
+ if(cudaMaterials[mID].hasReflective > 0.005)
+ { //If reflective, prepare for next iteration
+ r.direction = glm::normalize(calculateReflectionDirection(normal, r.direction));
+ r.origin = intersectionPoint + r.direction * 0.02f;
+ r.keep = 1;
+ r.newIndex = 1;
+ r.prevMID = mID;
+ }
+ else
+ {
+ r.keep = 0;
+ r.newIndex = 0;
+=======
+ }
+ else
+ { //If it does not intersect light, the color is ambient color
+ FinalColor += ObjCol * glm::vec3(0.2, 0.2, 0.2); //Object Color * Ambience
+ }
+ if(cudaMaterials[mID].hasReflective > 0.005)
+ { //If reflective, prepare for next iteration
+ r.direction = glm::normalize(calculateReflectionDirection(normal, r.direction));
+ r.origin = intersectionPoint + r.direction * 0.02f;
+ r.keep = 1;
+ r.newIndex = 1;
+ }
+ else
+ {
+ r.keep = 0;
+ r.newIndex = 0;
+ }
+ }
+>>>>>>> origin/2.5-Commit
+ }
+ }
+//Both branches are same except for the +=. This is done because using += always is leading to color accumalation across frames.
+ if(rayDepth == 1)
+ {
+<<<<<<< HEAD
+ colors[index] = FinalColor; //+
+ //cudaMaterials[mID].hasReflective *
+ //pow(glm::dot(InitialRays[index].direction, calculateReflectionDirection(normal,
+ // glm::normalize(-intersectionPoint + geoms[LightObjIndex].translation))),
+ // cudaMaterials[mID].specularExponent);
+ //;
+ }
+ else
+ {
+ colors[index] += FinalColor;// +
+ //cudaMaterials[InitialRays[index].prevMID].hasReflective *
+ //pow(glm::dot(InitialRays[index].direction, calculateReflectionDirection(normal,
+ //glm::normalize(-intersectionPoint + geoms[LightObjIndex].translation))),
+ //cudaMaterials[mID].specularExponent);
+=======
+ colors[index] = FinalColor +
+ cudaMaterials[mID].hasReflective *
+ pow(glm::dot(InitialRays[index].direction, calculateReflectionDirection(normal,
+ glm::normalize(-intersectionPoint + geoms[LightObjIndex].translation))),
+ cudaMaterials[mID].specularExponent);
+ ;
+ }
+ else
+ {
+ colors[index] += FinalColor +
+ cudaMaterials[mID].hasReflective *
+ pow(glm::dot(InitialRays[index].direction, calculateReflectionDirection(normal,
+ glm::normalize(-intersectionPoint + geoms[LightObjIndex].translation))),
+ cudaMaterials[mID].specularExponent);
+>>>>>>> origin/2.5-Commit
+
+ }
+ InitialRays[index] = r;
+ }
+ __syncthreads();
+}
-//TODO: FINISH THIS FUNCTION
+//TODO: FINISH THIS FUNCTION - Worked on this - Added Materials Data Pasing - ZM
+//All Structures used are in sceneStructs.h
// Wrapper for the __global__ call that sets up the kernel calls and does a ton of memory management
-void cudaRaytraceCore(uchar4* PBOpos, camera* renderCam, int frame, int iterations, material* materials, int numberOfMaterials, geom* geoms, int numberOfGeoms){
+
+//For Frame 0
+ray* storedFrameRays0 = NULL;
+glm::vec3* storedcudaimage0 = NULL;
+//For Frame 1
+ray* storedFrameRays1 = NULL;
+glm::vec3* storedcudaimage1 = NULL;
+
+void cudaRaytraceCore(uchar4* PBOpos, camera* renderCam, int frame, int iterations, material* materials, int numberOfMaterials, geom* geoms, int numberOfGeoms, bool &changed){
- int traceDepth = 1; //determines how many bounces the raytracer traces
+ int traceDepth = 1; //determines how many bounces the raytracer traces
- // set up crucial magic
- int tileSize = 8;
- dim3 threadsPerBlock(tileSize, tileSize);
- dim3 fullBlocksPerGrid((int)ceil(float(renderCam->resolution.x)/float(tileSize)), (int)ceil(float(renderCam->resolution.y)/float(tileSize)));
+ // set up crucial magic
+ int tileSize = 8;
+ dim3 threadsPerBlock(tileSize, tileSize);
+ dim3 fullBlocksPerGrid((int)ceil(float(renderCam->resolution.x)/float(tileSize)), (int)ceil(float(renderCam->resolution.y)/float(tileSize)));
- //send image to GPU
- glm::vec3* cudaimage = NULL;
- cudaMalloc((void**)&cudaimage, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3));
- cudaMemcpy( cudaimage, renderCam->image, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3), cudaMemcpyHostToDevice);
+ //send image to GPU
+ glm::vec3* cudaimage = NULL;
+ cudaMalloc((void**)&cudaimage, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3));
+ cudaMemcpy( cudaimage, renderCam->image, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3), cudaMemcpyHostToDevice);
- //package geometry and materials and sent to GPU
- staticGeom* geomList = new staticGeom[numberOfGeoms];
- for(int i=0; iresolution;
+ cam.position = renderCam->positions[frame];
+ cam.view = renderCam->views[frame];
+ cam.up = renderCam->ups[frame];
+ cam.fov = renderCam->fov;
- staticGeom* cudageoms = NULL;
- cudaMalloc((void**)&cudageoms, numberOfGeoms*sizeof(staticGeom));
- cudaMemcpy( cudageoms, geomList, numberOfGeoms*sizeof(staticGeom), cudaMemcpyHostToDevice);
+ glm::vec3* InitVecs = new glm::vec3[5];
+ InitVecs[0] = glm::cross(cam.view, cam.up); //Avec
+ InitVecs[1] = glm::cross(InitVecs[0], cam.view); //Bvec
+ InitVecs[2] = cam.position + cam.view; //Mvec
+ InitVecs[3] = (InitVecs[0] * (float)(cam.view.length() * tan(cam.fov.x))) / (float) InitVecs[0].length(); //Hvec
+ InitVecs[4] = (InitVecs[1] * (float)(cam.view.length() * tan(cam.fov.y))) / (float) InitVecs[1].length(); //Vvec
+
+ glm::vec3* InitCamVecs = NULL;
+ cudaMalloc((void**)&InitCamVecs, 5*sizeof(glm::vec3));
+ cudaMemcpy( InitCamVecs, InitVecs, 5*sizeof(glm::vec3), cudaMemcpyHostToDevice);
+
+ ////////////////////////////////////////////////
+ //Transfer Data From Here
+
+ //package materials and sent to GPU
+ material* materialsList = new material[numberOfMaterials];
+ for(int i=0; iresolution;
- cam.position = renderCam->positions[frame];
- cam.view = renderCam->views[frame];
- cam.up = renderCam->ups[frame];
- cam.fov = renderCam->fov;
+ //cudaMemcpy Sytax: cudaMalloc(Identifier, Sizeof)
+ //cudaMemcpy Sytax: cudaMemcpy(ArrayOnDestinationDevice, ArrayOnSourceDevice, SizeofArray, D2H or H2D)
- //kernel launches
- raytraceRay<<>>(renderCam->resolution, (float)iterations, cam, traceDepth, cudaimage, cudageoms, numberOfGeoms);
+ material* cudaMaterials = NULL;
+ cudaMalloc((void**)&cudaMaterials, numberOfMaterials*sizeof(material));
+ cudaMemcpy( cudaMaterials, materialsList, numberOfMaterials*sizeof(material), cudaMemcpyHostToDevice);
+
+ int numOfRays = (renderCam->resolution.x * renderCam->resolution.y);
+ ray* InitialRays = NULL;
+ cudaMalloc((void**)&InitialRays, numOfRays * sizeof(ray));
+<<<<<<< HEAD
+
+ ///////////////////////////////////////////////
- sendImageToPBO<<>>(PBOpos, renderCam->resolution, cudaimage);
+ //kernel launches
+ if(iterations <= 2 || changed)
+ {
+ bool c0 = false;
+ bool c1 = true;
+ //Get initial rays
+ GetRayCastFromCameraKernel<<>>(cam, InitCamVecs, (float)iterations, InitialRays);
+ //Do first ray pass and store it
+
+ raytraceRay<<>>(renderCam->resolution, (float)iterations, cam, traceDepth, cudaimage, cudageoms, numberOfGeoms, cudaMaterials, numberOfMaterials, InitialRays, numOfRays);
+
+ traceDepth++;
+ while(traceDepth <= MAX_DEPTH)
+ {
+ //do Ray tracing
+ raytraceRay<<>>(renderCam->resolution, (float)iterations, cam, traceDepth, cudaimage, cudageoms, numberOfGeoms, cudaMaterials, numberOfMaterials, InitialRays, numOfRays);
+ traceDepth++;
+ }
- //retrieve image from GPU
- cudaMemcpy( renderCam->image, cudaimage, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3), cudaMemcpyDeviceToHost);
+ if(frame == 0)
+ {
+ cudaFree(storedFrameRays0);
+ cudaFree(storedcudaimage0);
+ cudaMalloc((void**)&storedFrameRays0, numOfRays * sizeof(ray));
+ cudaMalloc((void**)&storedcudaimage0, numOfRays * sizeof(glm::vec3));
+
+ StoreFrame<<>>(InitialRays, storedFrameRays0, renderCam->resolution, cudaimage, storedcudaimage0);
+ c0 = true;
+ if(c1 && changed)
+ {
+ changed = false;
+ c1 = false;
+ c0 = false;
+ }
+ }
+ if(frame == 1)
+ {
+ cudaFree(storedFrameRays1);
+ cudaFree(storedcudaimage1);
+ cudaMalloc((void**)&storedFrameRays0, numOfRays * sizeof(ray));
+ cudaMalloc((void**)&storedcudaimage0, numOfRays * sizeof(glm::vec3));
+
+ StoreFrame<<>>(InitialRays, storedFrameRays1, renderCam->resolution, cudaimage, storedcudaimage1);
+ c1 = true;
+ if(c0 && changed)
+ {
+ changed = false;
+ c1 = false;
+ c0 = false;
+ }
+ }
+ }
+ else
+ {
+ if(frame == 0)
+ {
+ CopyFrame<<>>(InitialRays, storedFrameRays0, renderCam->resolution, cudaimage, storedcudaimage0);
+ }
+ if(frame == 1)
+ {
+ CopyFrame<<>>(InitialRays, storedFrameRays0, renderCam->resolution, cudaimage, storedcudaimage0);
+ }
+ }
- //free up stuff, or else we'll leak memory like a madman
- cudaFree( cudaimage );
- cudaFree( cudageoms );
- delete geomList;
- // make certain the kernel has completed
- cudaThreadSynchronize();
+ //traceDepth++;
+ //while(traceDepth <= MAX_DEPTH)
+ //{
+ // //do Ray tracing
+ // raytraceRay<<>>(renderCam->resolution, (float)iterations, cam, traceDepth, cudaimage, cudageoms, numberOfGeoms, cudaMaterials, numberOfMaterials, InitialRays, numOfRays);
+ // traceDepth++;
+ //}
+=======
- checkCUDAError("Kernel failed!");
-}
+ ///////////////////////////////////////////////
+
+ //kernel launches
+ //Get initial rays
+ GetRayCastFromCameraKernel<<>>(cam, InitCamVecs, (float)iterations, InitialRays);
+ //Do first ray pass
+ //raytraceRay<<>>(renderCam->resolution, (float)iterations, cam, traceDepth, cudaimage, cudageoms, numberOfGeoms, cudaMaterials, numberOfMaterials, InitialRays, numOfRays);
+
+ //traceDepth++;
+ while(traceDepth <= MAX_DEPTH)
+ {
+ //do Ray tracing
+ raytraceRay<<>>(renderCam->resolution, (float)iterations, cam, traceDepth, cudaimage, cudageoms, numberOfGeoms, cudaMaterials, numberOfMaterials, InitialRays, numOfRays);
+ traceDepth++;
+ }
+>>>>>>> origin/2.5-Commit
+
+ sendImageToPBO<<>>(PBOpos, renderCam->resolution, cudaimage);
+
+ //retrieve image from GPU
+ cudaMemcpy( renderCam->image, cudaimage, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3), cudaMemcpyDeviceToHost);
+
+ //free up stuff, or else we'll leak memory like a madman
+ cudaFree( cudaimage );
+ cudaFree( cudageoms );
+ cudaFree( cudaMaterials );
+ cudaFree( InitialRays );
+ cudaFree( InitCamVecs );
+ delete geomList;
+ delete materialsList;
+ delete InitVecs;
+ //delete renderCam->image;
+
+ // make certain the kernel has completed
+ cudaThreadSynchronize();
+
+ checkCUDAError("Kernel failed!");
+}
\ No newline at end of file
diff --git a/src/raytraceKernel.h b/src/raytraceKernel.h
index 331e5ce..f09809e 100755
--- a/src/raytraceKernel.h
+++ b/src/raytraceKernel.h
@@ -15,6 +15,6 @@
#include "sceneStructs.h"
#include
-void cudaRaytraceCore(uchar4* pos, camera* renderCam, int frame, int iterations, material* materials, int numberOfMaterials, geom* geoms, int numberOfGeoms);
+void cudaRaytraceCore(uchar4* pos, camera* renderCam, int frame, int iterations, material* materials, int numberOfMaterials, geom* geoms, int numberOfGeoms, bool &changed);
#endif
diff --git a/src/scene.cpp b/src/scene.cpp
index f0384b2..5307269 100755
--- a/src/scene.cpp
+++ b/src/scene.cpp
@@ -7,7 +7,7 @@
#include "scene.h"
scene::scene(string filename){
- cout << "Reading scene frome " << filename << "..." << endl;
+ cout << "Reading scene from " << filename << "..." << endl;
cout << " " << endl;
char* fname = (char*)filename.c_str();
fp_in.open(fname);
diff --git a/src/sceneStructs.h b/src/sceneStructs.h
index b10f1cf..71d6b50 100755
--- a/src/sceneStructs.h
+++ b/src/sceneStructs.h
@@ -16,6 +16,12 @@ enum GEOMTYPE{ SPHERE, CUBE, MESH };
struct ray {
glm::vec3 origin;
glm::vec3 direction;
+ int keep;
+ int newIndex;
+<<<<<<< HEAD
+ int prevMID;
+=======
+>>>>>>> origin/2.5-Commit
};
struct geom {
diff --git a/temp file.txt b/temp file.txt
new file mode 100644
index 0000000..c215341
--- /dev/null
+++ b/temp file.txt
@@ -0,0 +1,243 @@
+// CIS565 CUDA Raytracer: A parallel raytracer for Patrick Cozzi's CIS565: GPU Computing at the University of Pennsylvania
+// Written by Yining Karl Li, Copyright (c) 2012 University of Pennsylvania
+// This file includes code from:
+// Rob Farber for CUDA-GL interop, from CUDA Supercomputing For The Masses: http://www.drdobbs.com/architecture-and-design/cuda-supercomputing-for-the-masses-part/222600097
+// Peter Kutz and Yining Karl Li's GPU Pathtracer: http://gpupathtracer.blogspot.com/
+// Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com
+
+#include
+#include
+#include
+#include "sceneStructs.h"
+#include
+#include "glm/glm.hpp"
+#include "utilities.h"
+#include "raytraceKernel.h"
+#include "intersections.h"
+#include "interactions.h"
+#include
+
+void checkCUDAError(const char *msg) {
+ cudaError_t err = cudaGetLastError();
+ if( cudaSuccess != err) {
+ fprintf(stderr, "Cuda error: %s: %s.\n", msg, cudaGetErrorString( err) );
+ exit(EXIT_FAILURE);
+ }
+}
+
+//LOOK: This function demonstrates how to use thrust for random number generation on the GPU!
+//Function that generates static.
+__host__ __device__ glm::vec3 generateRandomNumberFromThread(glm::vec2 resolution, float time, int x, int y){
+ int index = x + (y * resolution.x);
+
+ thrust::default_random_engine rng(hash(index*time));
+ thrust::uniform_real_distribution u01(0,1);
+
+ return glm::vec3((float) u01(rng), (float) u01(rng), (float) u01(rng));
+}
+
+//TODO: IMPLEMENT THIS FUNCTION
+//Function that does the initial raycast from the camera
+__host__ __device__ ray raycastFromCameraKernel(glm::vec2 resolution, float time, int x, int y, glm::vec3 eye, glm::vec3 view, glm::vec3 up, glm::vec2 fov){
+ ray r;
+ r.origin = glm::vec3(0,0,0);
+ r.direction = glm::vec3(0,0,-1);
+ r.origin = eye;
+ glm::vec3 Avec = glm::cross(view, up);
+ glm::vec3 Bvec = glm::cross(Avec, view);
+ glm::vec3 Mvec = eye + view;
+ glm::vec3 Hvec = (Avec * (float)(view.length() * tan(fov.x))) / (float) Avec.length();
+ glm::vec3 Vvec = (Bvec * (float)(view.length() * tan(fov.y))) / (float) Bvec.length();
+ float sx = (float)x / (float) resolution.x;
+ float sy = (float)y / (float) resolution.y;
+ glm::vec3 P = Mvec + (Hvec * (float)(2.0f*sx -1)) + (Vvec * (float)(2.0 * sy - 1));
+ r.direction = glm::normalize(P - eye);
+
+ return r;
+}
+
+//Kernel that blacks out a given image buffer
+__global__ void clearImage(glm::vec2 resolution, glm::vec3* image){
+ int x = (blockIdx.x * blockDim.x) + threadIdx.x;
+ int y = (blockIdx.y * blockDim.y) + threadIdx.y;
+ int index = x + (y * resolution.x);
+ if(x<=resolution.x && y<=resolution.y){
+ image[index] = glm::vec3(0,0,0);
+ }
+}
+
+//Kernel that writes the image to the OpenGL PBO directly.
+__global__ void sendImageToPBO(uchar4* PBOpos, glm::vec2 resolution, glm::vec3* image){
+
+ int x = (blockIdx.x * blockDim.x) + threadIdx.x;
+ int y = (blockIdx.y * blockDim.y) + threadIdx.y;
+ int index = x + (y * resolution.x);
+
+ if(x<=resolution.x && y<=resolution.y){
+
+ glm::vec3 color;
+ color.x = image[index].x*255.0;
+ color.y = image[index].y*255.0;
+ color.z = image[index].z*255.0;
+
+ if(color.x>255){
+ color.x = 255;
+ }
+
+ if(color.y>255){
+ color.y = 255;
+ }
+
+ if(color.z>255){
+ color.z = 255;
+ }
+
+ // Each thread writes one pixel location in the texture (textel)
+ PBOpos[index].w = 0;
+ PBOpos[index].x = color.x;
+ PBOpos[index].y = color.y;
+ PBOpos[index].z = color.z;
+ }
+}
+
+//TODO: IMPLEMENT THIS FUNCTION
+//Core raytracer kernel
+__global__ void raytraceRay(glm::vec2 resolution, float time, cameraData cam, int rayDepth, glm::vec3* colors,
+ staticGeom* geoms, int numberOfGeoms, material* cudaMaterials, int numberOfMaterials){
+
+ int x = (blockIdx.x * blockDim.x) + threadIdx.x;
+ int y = (blockIdx.y * blockDim.y) + threadIdx.y;
+ int index = x + (y * resolution.x);
+
+ if((x<=resolution.x && y<=resolution.y)){
+
+ ray r = raycastFromCameraKernel(resolution, time, x, y, cam.position, cam.view, cam.up, cam.fov);
+ glm::vec3 col = glm::vec3(0.0, 0.0, 0.0);
+ glm::vec3 intersectionPoint;
+ glm::vec3 normal;
+ float closestT = 1000000.0, t;
+ int closestIndex = -1;
+ for(int i = 0; i < numberOfGeoms; i++)
+ {
+ if(geoms[i].type == SPHERE)
+ {
+ t = sphereIntersectionTest(geoms[i], r, intersectionPoint, normal);
+ }
+ else if (geoms[i].type == CUBE)
+ {
+ t = boxIntersectionTest(geoms[i], r, intersectionPoint, normal);
+ }
+
+ if(t >= 0)
+ {
+ if(t < closestT)
+ {
+ closestT = t - 0.001;
+ closestIndex = i;
+ }
+ }
+ }
+
+ // __syncthreads();
+ //colors[index] = generateRandomNumberFromThread(resolution, time, x, y);
+ if(closestIndex != -1)
+ colors[index] = cudaMaterials[geoms[closestIndex].materialid].color;
+ else
+ colors[index] = glm::vec3(0.0, 0.0, 0.0);
+ }
+}
+
+
+//TODO: FINISH THIS FUNCTION - Worked on this - Added Materials Data Pasing - ZM
+//All Structures used are in sceneStructs.h
+// Wrapper for the __global__ call that sets up the kernel calls and does a ton of memory management
+void cudaRaytraceCore(uchar4* PBOpos, camera* renderCam, int frame, int iterations, material* materials, int numberOfMaterials, geom* geoms, int numberOfGeoms){
+
+ int traceDepth = 1; //determines how many bounces the raytracer traces
+
+ // set up crucial magic
+ int tileSize = 8;
+ dim3 threadsPerBlock(tileSize, tileSize);
+ dim3 fullBlocksPerGrid((int)ceil(float(renderCam->resolution.x)/float(tileSize)), (int)ceil(float(renderCam->resolution.y)/float(tileSize)));
+
+ //send image to GPU
+ glm::vec3* cudaimage = NULL;
+ cudaMalloc((void**)&cudaimage, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3));
+ cudaMemcpy( cudaimage, renderCam->image, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3), cudaMemcpyHostToDevice);
+
+ //package geometry and materials and sent to GPU
+ staticGeom* geomList = new staticGeom[numberOfGeoms];
+ for(int i=0; iresolution;
+ cam.position = renderCam->positions[frame];
+ cam.view = renderCam->views[frame];
+ cam.up = renderCam->ups[frame];
+ cam.fov = renderCam->fov;
+
+ ////////////////////////////////////////////////
+ //Transfer Data From Here
+
+ //package materials and sent to GPU
+ material* materialsList = new material[numberOfMaterials];
+ for(int i=0; i>>(renderCam->resolution, (float)iterations, cam, traceDepth, cudaimage, cudageoms, numberOfGeoms, cudaMaterials, numberOfMaterials);
+
+ sendImageToPBO<<>>(PBOpos, renderCam->resolution, cudaimage);
+
+ //retrieve image from GPU
+ cudaMemcpy( renderCam->image, cudaimage, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3), cudaMemcpyDeviceToHost);
+
+ //free up stuff, or else we'll leak memory like a madman
+ cudaFree( cudaimage );
+ cudaFree( cudageoms );
+ delete geomList;
+
+ // make certain the kernel has completed
+ cudaThreadSynchronize();
+
+ checkCUDAError("Kernel failed!");
+}