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..36ea49a
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..438f3a4
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.log
@@ -0,0 +1,148 @@
+Build started 9/29/2012 12:06:45 AM.
+ 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...
+ cmd.exe /C "C:\Users\Shehzan\AppData\Local\Temp\a05efc51ce26498680f706aec0c54fc7.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 "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
+ 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
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.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/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..2255ec6
--- /dev/null
+++ b/PROJ1_WIN/565Raytracer/Release/565Raytracer.log
@@ -0,0 +1,107 @@
+Build started 9/30/2012 9:15:14 PM.
+ 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:
+ 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\036d0da287d84ad5888a9559aac28268.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(226): warning : variable "check2" was set but never used
+
+ 1>c:\users\shehzan\documents\visual studio 2010\projects\project1-raytracer\src\interactions.h(93) (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(93) (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
+
+ tmpxft_00000eac_00000000-0_raytraceKernel.cudafe1.gpu
+ tmpxft_00000eac_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(226): warning : variable "check2" was set but never used
+
+ 1>ptxas C : /Users/Shehzan/AppData/Local/Temp/tmpxft_00000eac_00000000-1_raytraceKernel.ptx, line 353; warning : Double is not supported. Demoting to float
+ tmpxft_00000eac_00000000-0_raytraceKernel.cudafe1.cpp
+ tmpxft_00000eac_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
+ 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
+ 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
+ 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.
+
+Time Elapsed 00:00:14.26
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..ded9e99
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..9e9522d
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..f44d618
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..f59b8b2
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..762ee51
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..12e0454
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..de42c1c
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..e98dc0a
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..1e82993
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..8e32e1e
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..607d4c1
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..f8ecff8
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..478c588
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..9f01d1d
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..3d0d778
Binary files /dev/null and b/PROJ1_WIN/Release/565Raytracer.pdb 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..92a6cfe
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/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..e2895ef
--- /dev/null
+++ b/scenes/sampleScene2.txt
@@ -0,0 +1,266 @@
+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 //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
+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 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
+SCATTER 0
+ABSCOEFF 0 0 0
+RSCTCOEFF 0
+EMITTANCE 0
+
+MATERIAL 9 //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 10 //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 sampleScene.bmp
+frame 0
+EYE 0 5 43
+VIEW 0 0 -1
+UP 0 1 0
+frame 1
+EYE 0 5 43
+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 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 6
+sphere
+material 3
+frame 0
+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
+
+OBJECT 7
+sphere
+material 6
+frame 0
+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
+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..4f5ff1e 100755
--- a/src/interactions.h
+++ b/src/interactions.h
@@ -33,8 +33,7 @@ __host__ __device__ glm::vec3 calculateTransmission(glm::vec3 absorptionCoeffici
}
//TODO (OPTIONAL): IMPLEMENT THIS FUNCTION
-__host__ __device__ bool calculateScatterAndAbsorption(ray& r, float& depth, AbsorptionAndScatteringProperties& currentAbsorptionAndScattering,
- glm::vec3& unabsorbedColor, material m, float randomFloatForScatteringDistance, float randomFloat2, float randomFloat3){
+__host__ __device__ bool calculateScatterAndAbsorption(ray& r, float& depth, AbsorptionAndScatteringProperties& currentAbsorptionAndScattering, glm::vec3& unabsorbedColor, material m, float randomFloatForScatteringDistance, float randomFloat2, float randomFloat3){
return false;
}
@@ -46,7 +45,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 +90,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..d648bb4 100755
--- a/src/intersections.h
+++ b/src/intersections.h
@@ -71,12 +71,133 @@ __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(-0.5f, -0.5f, -0.5f);
+ glm::vec3 vertex2(+0.5f, +0.5f, +0.5f);
+ 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(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 = 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 +207,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 +298,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..e637995 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,120 @@ 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;
+ changed = true;
+ break;
+
+ case 's':
+ renderCam->positions[0].y -= 0.5f;
+ renderCam->positions[1].y -= 0.5f;
+ changed = true;
+ break;
+
+ case 'd':
+ renderCam->positions[0].x += 0.5f;
+ renderCam->positions[1].x += 0.5f;
+ changed = true;
+ break;
+
+ case 'a':
+ renderCam->positions[0].x -= 0.5f;
+ renderCam->positions[1].x -= 0.5f;
+ changed = true;
+ break;
+
+ case 'q':
+ renderCam->positions[0].z += 0.5f;
+ renderCam->positions[1].z += 0.5f;
+ changed = true;
+ break;
+
+ case 'e':
+ renderCam->positions[0].z -= 0.5f;
+ renderCam->positions[1].z -= 0.5f;
+ changed = true;
+ 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];
+ changed = true;
+ 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];
+ changed = true;
+ 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];
+ changed = true;
+ 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];
+ 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;
+
}
}
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..6c67387 100755
--- a/src/raytraceKernel.cu
+++ b/src/raytraceKernel.cu
@@ -16,7 +16,11 @@
#include "intersections.h"
#include "interactions.h"
#include
+//#include
+#define USE_STORING //Comment this line to raytrace in each frame/iteration instead of using a storage mechanism
+#define MAX_DEPTH 2
+
void checkCUDAError(const char *msg) {
cudaError_t err = cudaGetLastError();
if( cudaSuccess != err) {
@@ -40,11 +44,85 @@ __host__ __device__ glm::vec3 generateRandomNumberFromThread(glm::vec2 resolutio
//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 = glm::vec3(0,0,0);
+ //r.direction(0.0f,0.0f,-1.0f);
+ 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[0] + (InitCamVecs[1] * (float)(2.0f*sx -1)) + (InitCamVecs[2] * (float)(2.0 * sy - 1));
+ r.direction = glm::normalize(P - r.origin);
+ r.keep = 1;
+ r.newIndex = 0;
+ 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];
+}
+
+//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 +144,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 +167,325 @@ __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(0.0, 0.0, 0.0);
+ glm::vec3 selectedNormal(0.0, 0.0, 0.0);
+ for(int i = 0; i < numberOfGeoms; i++)
+ {
+ t = -1.0f;
+ 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){
-
- int x = (blockIdx.x * blockDim.x) + threadIdx.x;
- int y = (blockIdx.y * blockDim.y) + threadIdx.y;
- int index = x + (y * resolution.x);
+ 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(0.0f, 0.0f, 0.0f);
+ 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(0.0f, 0.0f, 0.0f);
+ glm::vec3 normal(0.0f, 0.0f, 0.0f);
+ int closestIndex = -1;
+ glm::vec3 ObjCol(0.0f, 0.0f, 0.0f);
+ bool check = CheckRayObjectIntersection(geoms, numberOfGeoms, r, intersectionPoint, normal, closestIndex);
+ bool check2;
+ r.keep = 0;
+ r.newIndex = -1;
+ material CM = cudaMaterials[geoms[closestIndex].materialid]; //Storing the Material of the selected object
+ if(check && CM.emittance > 0) //If object is light then return light color.
+ {
+ FinalColor = CM.color;
+ }
+ else if(check) //Do calculation for color
+ {
+ ObjCol = CM.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(0.0f, 0.0f, 0.0f);
+ glm::vec3 Norm(0.0f, 0.0f, 0.0f);
+ int cIndex = -1;
+ lightRay.direction = glm::normalize(geoms[LightObjIndex].translation - lightRay.origin);
+ lightRay.origin += lightRay.direction * 0.02f;
+ //Check for intersection of light rays
+ check2 = CheckRayObjectIntersection(geoms, numberOfGeoms, lightRay, IP, Norm, cIndex);
+
+ FinalColor += ObjCol * glm::vec3(0.15f, 0.15f, 0.15f); //Ambient Color = Object Color * Ambience
+
+ if(cIndex == LightObjIndex)
+ { //If light ray only intersects light, then add diffuse component.
+ FinalColor += cudaMaterials[geoms[LightObjIndex].materialid].color * ObjCol * glm::dot(normal, lightRay.direction);
- if((x<=resolution.x && y<=resolution.y)){
+ if(CM.hasRefractive > 0.005) //Using refractive for Ks - Specular Constant
+ {
+ FinalColor += CM.hasRefractive *
+ pow(glm::dot(InitialRays[index].direction, calculateReflectionDirection(normal,
+ glm::normalize(-intersectionPoint + geoms[LightObjIndex].translation))),
+ CM.specularExponent);
+ }
+ }
+ }
+ }
- colors[index] = generateRandomNumberFromThread(resolution, time, x, y);
- }
+ if(CM.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 = geoms[closestIndex].materialid;
+ }
+ }
+//Both branches are same except for the +=. This is done because using += always is leading to color accumalation across frames.
+ //if(rayDepth == 1)
+ //{
+ // colors[index] = FinalColor;
+ //}
+ //else
+ //{
+ // colors[index] += FinalColor;
+ //}
+//The above code has been commented as the problem is solved by calling clear image kernel before ray tracing
+ colors[index] += FinalColor;
+ InitialRays[index] = r;
+ }
}
-
-//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;
- //package camera
- cameraData cam;
- cam.resolution = renderCam->resolution;
- cam.position = renderCam->positions[frame];
- cam.view = renderCam->views[frame];
- cam.up = renderCam->ups[frame];
- cam.fov = renderCam->fov;
+ glm::vec3* InitVecs = new glm::vec3[3];
+ glm::vec3 Avec = glm::cross(cam.view, cam.up); //Avec
+ glm::vec3 Bvec = glm::cross(Avec, cam.view); //Bvec
+ InitVecs[0] = cam.position + cam.view; //Mvec
+ InitVecs[1] = (Avec * (float)(cam.view.length() * tan(cam.fov.x))) / (float) Avec.length(); //Hvec
+ InitVecs[2] = (Bvec * (float)(cam.view.length() * tan(cam.fov.y))) / (float) Bvec.length(); //Vvec
- //kernel launches
- raytraceRay<<>>(renderCam->resolution, (float)iterations, cam, traceDepth, cudaimage, cudageoms, numberOfGeoms);
+ glm::vec3* InitCamVecs = NULL;
+ cudaMalloc((void**)&InitCamVecs, 3*sizeof(glm::vec3));
+ cudaMemcpy( InitCamVecs, InitVecs, 3*sizeof(glm::vec3), cudaMemcpyHostToDevice);
- sendImageToPBO<<>>(PBOpos, renderCam->resolution, cudaimage);
+ ////////////////////////////////////////////////
+ //Transfer Data From Here
- //retrieve image from GPU
- cudaMemcpy( renderCam->image, cudaimage, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3), cudaMemcpyDeviceToHost);
+ //package materials and sent to GPU
+ /*material* materialsList = new material[numberOfMaterials];
+ for(int i=0; iresolution.x * renderCam->resolution.y);
+ ray* InitialRays = NULL;
+ cudaMalloc((void**)&InitialRays, numOfRays * sizeof(ray));
+
+ ///////////////////////////////////////////////
+ clearImage<<>>(renderCam->resolution, cudaimage);
+ //kernel launches
+#ifdef USE_STORING
+ if(iterations <= 1 || changed)
+ {
+ bool c0 = false;
+ bool c1 = true; //Should actually be false, but since we are only using Frame 0s, we have to keep it 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++;
+ }
- // make certain the kernel has completed
- cudaThreadSynchronize();
+ 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 = true; //Should actually be false, but since we are only using Frame 0s, we have to keep it true.
+ c0 = false;
+ }
+ }
+ else 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);
+ }
+ else if(frame == 1)
+ {
+ CopyFrame<<>>(InitialRays, storedFrameRays1, renderCam->resolution, cudaimage, storedcudaimage1);
+ }
+ }
+#endif
- checkCUDAError("Kernel failed!");
-}
+#ifndef USE_STORING
+ 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++;
+ }
+#endif
+
+ 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 [] 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..3987373 100755
--- a/src/sceneStructs.h
+++ b/src/sceneStructs.h
@@ -16,6 +16,9 @@ enum GEOMTYPE{ SPHERE, CUBE, MESH };
struct ray {
glm::vec3 origin;
glm::vec3 direction;
+ int keep;
+ int newIndex;
+ int prevMID;
};
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!");
+}