diff --git a/PROJ1_WIN/565Raytracer.sdf b/PROJ1_WIN/565Raytracer.sdf new file mode 100644 index 0000000..9fa7759 Binary files /dev/null and b/PROJ1_WIN/565Raytracer.sdf differ diff --git a/PROJ1_WIN/565Raytracer.suo b/PROJ1_WIN/565Raytracer.suo new file mode 100644 index 0000000..7901a85 Binary files /dev/null and b/PROJ1_WIN/565Raytracer.suo differ diff --git a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj index fcc853d..5ae0c54 100755 --- a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj +++ b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj @@ -1,126 +1,135 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {FF21CA49-522E-4E86-B508-EE515B248FC4} - Win32Proj - 565Raytracer - 565Raytracer - - - - Application - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - true - - - false - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - 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/include;../shared/freeglut/include;%(AdditionalIncludeDirectories) - - - Console - true - ../shared/glew/lib;../shared/freeglut/lib;%(AdditionalLibraryDirectories) - 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;%(AdditionalDependencies) - mainCRTStartup - - - - - $(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 - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - 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/include;../shared/freeglut/include;%(AdditionalIncludeDirectories) - - - Console - true - true - true - ../shared/glew/lib;../shared/freeglut/lib;%(AdditionalLibraryDirectories) - 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;%(AdditionalDependencies) - mainCRTStartup - - - $(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 - - - - - - + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {FF21CA49-522E-4E86-B508-EE515B248FC4} + Win32Proj + 565Raytracer + 565Raytracer + + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + true + $(VCInstallDir)bin;$(WindowsSdkDir)bin\NETFX 4.2 Tools;$(WindowsSdkDir)bin;$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(FrameworkSDKDir)\bin;$(MSBuildToolsPath32);$(VSInstallDir);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH); + + + false + $(VCInstallDir)bin;$(WindowsSdkDir)bin\NETFX 4.2 Tools;$(WindowsSdkDir)bin;$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(FrameworkSDKDir)\bin;$(MSBuildToolsPath32);$(VSInstallDir);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH); + $(CUDA_INC_PATH);$(IncludePath) + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include;C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.2\C\common\inc;../shared/glew/include;../shared/freeglut/include;%(AdditionalIncludeDirectories) + + + Console + true + ../shared/glew/lib;../shared/freeglut/lib;%(AdditionalLibraryDirectories) + 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;%(AdditionalDependencies) + mainCRTStartup + + + + + $(ProjectDir)$(Platform)/$(Configuration)/%(Filename)%(Extension).obj + C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include;C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.2/C/common/inc;../shared/glew/includes;../shared/freeglut/includes + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include;C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.2\C\common\inc;../shared/glew/include;../shared/freeglut/include;%(AdditionalIncludeDirectories) + + + Console + true + true + true + ../shared/glew/lib;../shared/freeglut/lib;%(AdditionalLibraryDirectories) + 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;%(AdditionalDependencies) + mainCRTStartup + + + $(ProjectDir)$(Platform)/$(Configuration)/%(Filename)%(Extension).obj + C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include;C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.2/C/common/inc;../shared/glew/includes;../shared/freeglut/includes + compute_20,sm_20 + + + + + + \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.aparajith sairam.nvuser b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.aparajith sairam.nvuser new file mode 100644 index 0000000..7712d8c --- /dev/null +++ b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.aparajith sairam.nvuser @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.filters b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.filters index d49ad9c..f0bc904 100755 --- a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.filters +++ b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.filters @@ -1,42 +1,56 @@ - - - - - - - - - - stb_image - - - stb_image - - - - - - - - - - - - - - - stb_image - - - stb_image - - - - - - - - {011aa553-95e8-4e59-b7ff-1bb89aebe21d} - - + + + + + + + + + + stb_image + + + stb_image + + + + + + + + + + + + + + + stb_image + + + stb_image + + + + + + + + {011aa553-95e8-4e59-b7ff-1bb89aebe21d} + + + {a43f8314-4257-4e46-b34b-d6d20b8a620e} + + + + + Resources + + + Resources + + + Resources + + \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.user b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.user index d7ca222..ad6ed6c 100755 --- a/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.user +++ b/PROJ1_WIN/565Raytracer/565Raytracer.vcxproj.user @@ -1,7 +1,11 @@ - - - - scene="../../scenes/sampleScene.txt" - WindowsLocalDebugger - + + + + scene="../../scenes/sampleScene.txt" + WindowsLocalDebugger + + + scene="../../scenes/PathTracerScene.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..6d6360a --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.Build.CppClean.log @@ -0,0 +1,35 @@ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\565RAYTRACER.EXE.EMBED.MANIFEST +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\565RAYTRACER.EXE.EMBED.MANIFEST.RES +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\565RAYTRACER.EXE.INTERMEDIATE.MANIFEST +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\565Raytracer_manifest.rc +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\cl.command.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\CL.read.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\CL.write.1.tlog +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\GLSLUTILITY.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\IMAGE.OBJ +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\link.3156.read.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\link.3156.write.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\link.3156-cvtres.read.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\link.3156-cvtres.write.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\link.command.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\link.read.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\link.write.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\link-cvtres.read.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\link-cvtres.write.1.tlog +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\MAIN.OBJ +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\mt.command.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\mt.read.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\mt.write.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\raytraceKernel.cu.cache +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\rc.command.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\rc.read.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\rc.write.1.tlog +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\SCENE.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\STB_IMAGE.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\STB_IMAGE_WRITE.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\UTILITIES.OBJ +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Debug\vc100.idb +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\DEBUG\VC100.PDB +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\DEBUG\565RAYTRACER.EXE +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\DEBUG\565RAYTRACER.ILK +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\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..11bb704 --- /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..ecea6f7 --- /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..ebdb8a6 --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Debug|Win32|C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\| diff --git a/PROJ1_WIN/565Raytracer/Debug/565Raytracer.log b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.log new file mode 100644 index 0000000..332fe83 --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/565Raytracer.log @@ -0,0 +1,166 @@ +Build started 10/12/2012 7:21:16 PM. + 1>Project "C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\565Raytracer.vcxproj" on node 2 (build target(s)). + 1>InitializeBuildStatus: + Creating "Debug\565Raytracer.unsuccessfulbuild" because "AlwaysCreate" was specified. + AddCudaCompileDeps: + Skipping target "AddCudaCompileDeps" because all output files are up-to-date with respect to the input files. + AddCudaCompilePropsDeps: + Skipping target "AddCudaCompilePropsDeps" because all output files are up-to-date with respect to the input files. + CudaBuild: + Compiling CUDA source file ..\..\src\raytraceKernel.cu... + cmd.exe /C "C:\Users\Aparajith Sairam\AppData\Local\Temp\20b523b8678a46cdbac28215df9e9982.cmd" + "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\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.2\include" -I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.2/C/common/inc" -I"../shared/glew/includes" -I"../shared/freeglut/includes" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include" -G --keep-dir "Debug" -maxrregcount=0 --machine 32 --compile -g -Xcompiler "/EHsc /nologo /Od /Zi /MDd " -o "C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Win32/Debug/raytraceKernel.cu.obj" "C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\src\raytraceKernel.cu" + + C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\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.2\include" -I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.2/C/common/inc" -I"../shared/glew/includes" -I"../shared/freeglut/includes" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include" -G --keep-dir "Debug" -maxrregcount=0 --machine 32 --compile -g -Xcompiler "/EHsc /nologo /Od /Zi /MDd " -o "C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Win32/Debug/raytraceKernel.cu.obj" "C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\src\raytraceKernel.cu" + raytraceKernel.cu + 1>C:/Users/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(25): warning : type qualifier specified more than once + + 1>C:/Users/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(28): warning : type qualifier specified more than once + + 1>C:/Users/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(334): warning : type qualifier specified more than once + + 1>C:/Users/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(456): warning : type qualifier specified more than once + + tmpxft_00002084_00000000-0_raytraceKernel.cudafe1.gpu + tmpxft_00002084_00000000-5_raytraceKernel.cudafe2.gpu + raytraceKernel.cu + 1>c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\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/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(25): warning : type qualifier specified more than once + + 1>C:/Users/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(28): warning : type qualifier specified more than once + + 1>C:/Users/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(334): warning : type qualifier specified more than once + + 1>C:/Users/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(456): warning : type qualifier specified more than once + + 1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/copy_if.inl(93): warning : Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(16): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(16): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(237): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(237): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(238): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(238): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(239): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(239): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(237): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(237): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(238): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(238): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(239): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(239): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(17): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(17): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(17): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(17): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(16): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(16): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(237): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(237): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(238): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(238): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(239): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(239): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(237): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(237): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(238): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(238): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(239): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(239): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(17): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(17): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(17): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(17): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(16): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(16): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(16): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(16): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(16): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(16): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl(88): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(16): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h(16): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\reduce_intervals.inl(144): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\reduce_intervals.inl(75): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\reduce_intervals.inl(82): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\reduce_intervals.inl(96): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\reduce_intervals.inl(103): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\reduce_intervals.inl(144): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\detail\fast_scan.inl(118): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\detail\fast_scan.inl(118): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\detail\fast_scan.inl(118): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\detail\fast_scan.inl(146): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\detail\fast_scan.inl(159): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\detail\fast_scan.inl(118): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\detail\fast_scan.inl(146): Warning: Cannot tell what pointer points to, assuming global memory space + ./c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\detail\fast_scan.inl(159): Warning: Cannot tell what pointer points to, assuming global memory space + 1>ptxas C : /Users/APARAJ~1/AppData/Local/Temp/tmpxft_00002084_00000000-1_raytraceKernel.ptx, line 5354; warning : Double is not supported. Demoting to float + tmpxft_00002084_00000000-0_raytraceKernel.cudafe1.cpp + tmpxft_00002084_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.2\include" /I"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.2\C\common\inc" /I../shared/glew/include /I../shared/freeglut/include /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\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 + main.cpp + Note: including lib: glut32.lib + + All outputs are up-to-date. + ManifestResourceCompile: + All outputs are up-to-date. + Link: + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\Debug\565Raytracer.exe" /INCREMENTAL /NOLOGO /LIBPATH:../shared/glew/lib /LIBPATH:../shared/freeglut/lib /LIBPATH:"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\lib\Win32" cudart.lib glew32.lib glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Debug\565Raytracer.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\Debug\565Raytracer.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /ENTRY:"mainCRTStartup" /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\Debug\565Raytracer.lib" /MACHINE:X86 "C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Win32/Debug/raytraceKernel.cu.obj" + Debug\565Raytracer.exe.embed.manifest.res + Debug\glslUtility.obj + Debug\image.obj + Debug\main.obj + Debug\scene.obj + Debug\stb_image.obj + Debug\stb_image_write.obj + Debug\utilities.obj + Manifest: + C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /out:"Debug\565Raytracer.exe.embed.manifest" /manifest Debug\565Raytracer.exe.intermediate.manifest + All outputs are up-to-date. + LinkEmbedManifest: + All outputs are up-to-date. + 565Raytracer.vcxproj -> C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\Debug\565Raytracer.exe + FinalizeBuildStatus: + Deleting file "Debug\565Raytracer.unsuccessfulbuild". + Touching "Debug\565Raytracer.lastbuildstate". + 1>Done Building Project "C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\565Raytracer.vcxproj" (build target(s)). + +Build succeeded. + +Time Elapsed 00:00:20.25 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..cdc1a5c 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..1c3897c 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..22ed358 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..8c46b18 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..455af6e 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.10164-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.10164-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.10164-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.10164-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.10164-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.10164-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.10164.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.10164.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.10164.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.10164.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.10164.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.10164.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5548-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5548-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5548-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5548-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5548-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5548-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5548.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5548.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5548.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.5548.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.5548.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.5548.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6716-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6716-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6716-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6716-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6716-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6716-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6716.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6716.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6716.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.6716.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.6716.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.6716.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7628-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7628-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7628-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7628-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7628-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7628-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7628.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7628.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7628.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.7628.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.7628.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.7628.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.8012-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.8012-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.8012-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.8012-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.8012-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.8012-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.8012.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.8012.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.8012.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.8012.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.8012.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.8012.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.8820-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.8820-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.8820-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.8820-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.8820-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.8820-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.8820.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.8820.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.8820.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.8820.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.8820.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.8820.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.9688-cvtres.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.9688-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.9688-cvtres.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.9688-cvtres.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.9688-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.9688-cvtres.write.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.9688.read.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.9688.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.9688.read.1.tlog @@ -0,0 +1 @@ +ÿþ \ No newline at end of file diff --git a/PROJ1_WIN/565Raytracer/Debug/link.9688.write.1.tlog b/PROJ1_WIN/565Raytracer/Debug/link.9688.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/link.9688.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..6b6ed23 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..a139a86 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..513fc5e Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/link.write.1.tlog differ diff --git a/PROJ1_WIN/565Raytracer/Debug/main.obj b/PROJ1_WIN/565Raytracer/Debug/main.obj new file mode 100644 index 0000000..9095f84 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Debug/main.obj differ diff --git a/PROJ1_WIN/565Raytracer/Debug/mt.command.1.tlog b/PROJ1_WIN/565Raytracer/Debug/mt.command.1.tlog new file mode 100644 index 0000000..3972d0f 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..537c557 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..a23a9c9 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..c7cebc4 --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Debug/raytraceKernel.cu.cache @@ -0,0 +1,27 @@ +Identity=..\..\src\raytraceKernel.cu +AdditionalCompilerOptions= +AdditionalDeps= +AdditionalOptions= +CInterleavedPTX=false +CodeGeneration=compute_10,sm_10 +CompileOut=C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\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.2\include;C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.2/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/rc.command.1.tlog b/PROJ1_WIN/565Raytracer/Debug/rc.command.1.tlog new file mode 100644 index 0000000..0d211fb 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..dc804b9 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..7be20dc 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..0580b9c 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..2ead849 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..70dbe52 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..e082012 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..e301d5c 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..a8df105 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..fbd40ef --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Release/565Raytracer.Build.CppClean.log @@ -0,0 +1,32 @@ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\565RAYTRACER.EXE.INTERMEDIATE.MANIFEST +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\GLSLUTILITY.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\IMAGE.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\MAIN.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\SCENE.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\STB_IMAGE.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\STB_IMAGE_WRITE.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\UTILITIES.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT1-RAYTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\VC100.PDB +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT1-RAYTRACER\PROJ1_WIN\RELEASE\565RAYTRACER.EXE +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT1-RAYTRACER\PROJ1_WIN\RELEASE\565RAYTRACER.PDB +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\565RAYTRACER.EXE.INTERMEDIATE.MANIFEST +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Release\cl.command.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Release\CL.read.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Release\CL.write.1.tlog +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\GLSLUTILITY.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\IMAGE.OBJ +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Release\link.command.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Release\link.read.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Release\link.write.1.tlog +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\MAIN.OBJ +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Release\mt.command.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Release\mt.read.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Release\mt.write.1.tlog +C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Release\raytraceKernel.cu.cache +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\SCENE.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\STB_IMAGE.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\STB_IMAGE_WRITE.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\UTILITIES.OBJ +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\565RAYTRACER\RELEASE\VC100.PDB +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\PROJ1_WIN\RELEASE\565RAYTRACER.EXE +C:\USERS\APARAJITH SAIRAM\DOCUMENTS\MS CGGT\GPU FALL 2012\PROJECT2-PATHTRACER\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..ecea6f7 --- /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..1994842 --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Release/565Raytracer.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Release|Win32|C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\| diff --git a/PROJ1_WIN/565Raytracer/Release/565Raytracer.log b/PROJ1_WIN/565Raytracer/Release/565Raytracer.log new file mode 100644 index 0000000..cf86fd3 --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Release/565Raytracer.log @@ -0,0 +1,63 @@ +Build started 10/12/2012 10:36:54 PM. + 1>Project "C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\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 /D__CUDACC__ /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include" /I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.2/C/common/inc" /I../shared/glew/includes /I../shared/freeglut/includes /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin" /I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include" /I. /FIcuda_runtime.h /c "C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\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\Aparajith Sairam\AppData\Local\Temp\909d6515e4a240078746b2b3f81dc2d8.cmd" + "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe" -gencode=arch=compute_20,code=\"sm_20,compute_20\" --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.2\include" -I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.2/C/common/inc" -I"../shared/glew/includes" -I"../shared/freeglut/includes" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include" --keep-dir "Release" -maxrregcount=0 --machine 32 --compile -Xcompiler "/EHsc /nologo /Od /Zi /MD " -o "C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Win32/Release/raytraceKernel.cu.obj" "C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\src\raytraceKernel.cu" + + C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe" -gencode=arch=compute_20,code=\"sm_20,compute_20\" --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.2\include" -I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.2/C/common/inc" -I"../shared/glew/includes" -I"../shared/freeglut/includes" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include" --keep-dir "Release" -maxrregcount=0 --machine 32 --compile -Xcompiler "/EHsc /nologo /Od /Zi /MD " -o "C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Win32/Release/raytraceKernel.cu.obj" "C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\src\raytraceKernel.cu" + raytraceKernel.cu + 1>C:/Users/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(28): warning : type qualifier specified more than once + + 1>C:/Users/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(31): warning : type qualifier specified more than once + + 1>C:/Users/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(374): warning : type qualifier specified more than once + + 1>C:/Users/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(590): warning : type qualifier specified more than once + + tmpxft_000024c8_00000000-0_raytraceKernel.cudafe1.gpu + tmpxft_000024c8_00000000-5_raytraceKernel.cudafe2.gpu + raytraceKernel.cu + 1>c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\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/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(28): warning : type qualifier specified more than once + + 1>C:/Users/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(31): warning : type qualifier specified more than once + + 1>C:/Users/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(374): warning : type qualifier specified more than once + + 1>C:/Users/Aparajith Sairam/Documents/MS CGGT/GPU Fall 2012/Project2-Pathtracer/src/raytraceKernel.cu(590): warning : type qualifier specified more than once + + tmpxft_000024c8_00000000-0_raytraceKernel.cudafe1.cpp + tmpxft_000024c8_00000000-11_raytraceKernel.ii + ClCompile: + All outputs are up-to-date. + All outputs are up-to-date. + Link: + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\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.2\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\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\Release\565Raytracer.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /TLBID:1 /ENTRY:"mainCRTStartup" /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\Release\565Raytracer.lib" /MACHINE:X86 "C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\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\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\Release\565Raytracer.exe + Manifest: + C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /outputresource:"C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\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\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\565Raytracer.vcxproj" (build target(s)). + +Build succeeded. + +Time Elapsed 00:00:16.55 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..7df97e3 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..0131336 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..7013b3e 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..a742ae7 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..a3938e7 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..c149fe7 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..11c567f 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..2800f8f 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..28100df 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..7505d9e 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..d3e642f 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..ae79ccf 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..ff78838 --- /dev/null +++ b/PROJ1_WIN/565Raytracer/Release/raytraceKernel.cu.cache @@ -0,0 +1,27 @@ +Identity=..\..\src\raytraceKernel.cu +AdditionalCompilerOptions= +AdditionalDeps= +AdditionalOptions= +CInterleavedPTX=false +CodeGeneration=compute_20,sm_20 +CompileOut=C:\Users\Aparajith Sairam\Documents\MS CGGT\GPU Fall 2012\Project2-Pathtracer\PROJ1_WIN\565Raytracer\Win32/Release/raytraceKernel.cu.obj +CudaToolkitCustomDir= +Defines= +Emulation=false +FastMath=false +GPUDebugInfo=false +HostDebugInfo=false +Include=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include;C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.2/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/scene.obj b/PROJ1_WIN/565Raytracer/Release/scene.obj new file mode 100644 index 0000000..57eed44 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..292015e 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..1c55edf 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..e363092 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..75383f7 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Release/vc100.pdb 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..b1c655a 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..1f3ded1 Binary files /dev/null and b/PROJ1_WIN/565Raytracer/Win32/Release/raytraceKernel.cu.obj differ diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000194_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000194_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000022c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000022c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000364_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000364_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000003a4_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000003a4_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000003c0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000003c0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000430_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000430_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000468_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000468_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000004c4_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000004c4_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000004e8_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000004e8_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000005ac_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000005ac_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000069c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000069c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000006cc_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000006cc_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000007b0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000007b0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000884_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000884_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000924_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000924_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000968_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000968_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000a40_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000a40_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000a74_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000a74_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000b18_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000b18_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000b38_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000b38_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000b5c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000b5c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000b68_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000b68_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000bf4_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000bf4_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000cb8_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000cb8_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000d44_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000d44_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000d60_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000d60_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000e24_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000e24_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000eb0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000eb0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00000fd4_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00000fd4_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001054_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001054_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001084_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001084_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000010a8_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000010a8_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000114c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000114c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000115c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000115c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001224_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001224_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001264_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001264_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000012d8_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000012d8_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000012e8_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000012e8_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001304_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001304_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000130c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000130c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001318_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001318_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000132c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000132c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001374_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001374_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000013cc_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000013cc_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000013f4_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000013f4_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000141c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000141c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000014dc_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000014dc_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000014e0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000014e0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001544_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001544_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001674_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001674_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001744_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001744_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001780_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001780_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000017d8_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000017d8_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001894_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001894_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000018d0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000018d0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001918_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001918_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001940_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001940_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000194c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000194c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000019d4_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000019d4_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001a34_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001a34_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001a58_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001a58_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001ae8_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001ae8_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001b00_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001b00_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001ba8_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001ba8_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001bec_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001bec_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001c60_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001c60_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001d18_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001d18_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001d50_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001d50_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001d7c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001d7c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001da4_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001da4_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001dcc_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001dcc_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001ddc_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001ddc_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001de4_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001de4_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001e1c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001e1c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001e4c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001e4c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001ea0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001ea0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001eac_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001eac_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001ec8_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001ec8_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001f34_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001f34_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001f38_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001f38_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001f60_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001f60_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001f84_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001f84_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001fbc_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001fbc_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001fd0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001fd0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001fdc_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001fdc_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00001ff4_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00001ff4_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002038_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002038_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002040_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002040_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002054_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002054_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002068_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002068_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002084_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002084_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002120_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002120_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000212c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000212c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002138_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002138_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000213c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000213c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002188_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002188_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002198_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002198_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000021e0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000021e0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000021f8_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000021f8_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002200_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002200_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002228_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002228_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002278_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002278_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002284_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002284_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002288_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002288_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000022a4_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000022a4_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000022ac_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000022ac_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000022e4_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000022e4_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000022e8_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000022e8_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000023b0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000023b0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002420_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002420_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002430_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002430_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002438_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002438_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002460_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002460_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000024a8_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000024a8_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000024b0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000024b0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000024bc_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000024bc_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000024d0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000024d0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000252c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000252c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000253c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000253c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000254c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000254c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002570_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002570_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002574_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002574_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002588_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002588_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000025a0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000025a0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002600_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002600_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002618_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002618_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002620_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002620_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002634_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002634_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002674_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002674_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000268c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000268c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000026a0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000026a0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000026a8_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000026a8_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000026d0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000026d0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000026e0_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000026e0_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_000026e4_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_000026e4_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002718_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002718_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_0000274c_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_0000274c_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002a28_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002a28_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002a80_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002a80_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002bc4_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002bc4_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002d24_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002d24_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002df8_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002df8_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/tmpxft_00002f88_00000000-6_raytraceKernel.cpp3.o b/PROJ1_WIN/565Raytracer/tmpxft_00002f88_00000000-6_raytraceKernel.cpp3.o new file mode 100644 index 0000000..e69de29 diff --git a/PROJ1_WIN/565Raytracer/vc100.pdb b/PROJ1_WIN/565Raytracer/vc100.pdb new file mode 100644 index 0000000..192fe23 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..d2a896f 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..b27e8d2 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..ef9441c 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..e143d20 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..ca96c7a Binary files /dev/null and b/PROJ1_WIN/Release/565Raytracer.pdb differ diff --git a/PROJ1_WIN/ipch/565raytracer-4ffec334/565raytracer-19509b53.ipch b/PROJ1_WIN/ipch/565raytracer-4ffec334/565raytracer-19509b53.ipch new file mode 100644 index 0000000..9a48678 Binary files /dev/null and b/PROJ1_WIN/ipch/565raytracer-4ffec334/565raytracer-19509b53.ipch differ diff --git a/PROJ1_WIN/src/raytraceKernel.cu.deps b/PROJ1_WIN/src/raytraceKernel.cu.deps new file mode 100644 index 0000000..111929e --- /dev/null +++ b/PROJ1_WIN/src/raytraceKernel.cu.deps @@ -0,0 +1,1065 @@ +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\cuda_runtime.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_config.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\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.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\stddef.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\channel_descriptor.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\cuda_runtime_api.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\cuda_runtime_api.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\common_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +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\time.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\time.inl +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\math_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.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:\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\cstdlib +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\cuda_surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\channel_descriptor.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\cuda_texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\channel_descriptor.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\sm_11_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\sm_12_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\sm_13_double_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\sm_20_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\sm_20_intrinsics.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\sm_30_intrinsics.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\cuda_surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_fetch_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\cuda_texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\device_launch_parameters.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\vector_types.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust\remove.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/config.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/config/config.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/config/simple_defines.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/config/compiler.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\cuda.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/config/device_backend.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/config/host_device.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\host_defines.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/config/debug.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/config/compiler_fence.h +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\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:\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:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/remove.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/remove.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/remove.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\generic\remove.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/iterator_traits.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iterator +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\climits +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio +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 (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\stdexcept +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\exception +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\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\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\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\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\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\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:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/any_space_tag.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/backend_iterator_spaces.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/iterator_traits.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/iterator_categories.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/universal_categories.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/backend_iterator_categories.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/iterator_category_to_traversal.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/iterator_category_to_space.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/type_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/type_traits/has_trivial_assign.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/device_iterator_category_to_backend_space.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/copy_if.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/minimum_space.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/type_traits/minimum_type.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/copy_if.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/copy_if.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/functional.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\functional +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfunctional +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xrefwrap +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\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +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\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +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\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +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\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +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\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xawrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +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\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +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\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +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\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xawrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +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\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/placeholder.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/actor.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/tuple.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/tuple.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/pair.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/pair.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/value.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/composite.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/operators/assignment_operator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/operators/operator_adaptors.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/type_traits/result_of.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/type_traits/function_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/type_traits/has_nested_type.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/actor.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/argument.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/operators.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/operators/arithmetic_operators.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/operators/relational_operators.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/operators/logical_operators.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/operators/bitwise_operators.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/operators/compound_assignment_operators.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/functional/operators/comma_operator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/distance.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/distance.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/dispatch/distance.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/transform.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/transform.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/zip_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/zip_iterator_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/iterator_facade.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/iterator_facade.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/is_iterator_category.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/distance_from_result.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/minimum_category.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/tuple_meta_transform.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/tuple_transform.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/dereference.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/zip_iterator.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/for_each.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/for_each.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/for_each.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/for_each.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/for_each.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/for_each.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/for_each.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/for_each.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/minmax.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/static_assert.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/detail/launch_closure.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/arch.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/arch.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\cuda_runtime_api.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\map +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xtree +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\string +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\algorithm +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/system_error.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/system/error_code.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/system/detail/errno.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/system/detail/error_category.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/system/detail/error_code.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/system/detail/error_condition.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/system/system_error.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/system/detail/system_error.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/system/cuda_error.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\driver_types.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/system/detail/cuda_error.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\cuda_runtime_api.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/util/blocking.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/detail/launch_closure.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/malloc.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/device_ptr.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/pointer_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/iterator_adaptor.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/iterator_adaptor.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/pointer_base.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/type_traits/pointer_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/device_ptr.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/device_reference.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/reference_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/reference_base.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/copy.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/copy.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/dispatch/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/dispatch/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/detail/general_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/detail/trivial_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/dispatch/is_trivial_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/omp/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/omp/dispatch/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/omp/copy_device_to_device.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/omp/copy_device_to_device.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/omp/copy_host_or_any_to_device.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/omp/copy_host_or_any_to_device.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/omp/copy_device_to_host_or_any.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/omp/copy_device_to_host_or_any.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/dispatch/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/copy_cross_space.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/copy_cross_space.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/uninitialized_array.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/internal_allocator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/device_malloc.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/device_malloc.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/dispatch/malloc.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/malloc.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/no_throw_free.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/dispatch/no_throw_free.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/no_throw_free.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/device_free.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/device_free.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/dispatch/free.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/free.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/free.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/free.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\cuda_runtime_api.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/no_throw_free.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/no_throw_free.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\cuda_runtime_api.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/normal_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/contiguous_storage.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/contiguous_storage.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/swap.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/swap.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/swap_ranges.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/internal_functional.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/uninitialized_array.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/trivial_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/trivial_copy.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/trivial_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\cuda_runtime_api.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/copy_device_to_device.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/copy_device_to_device.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/trivial_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/device_reference.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/malloc.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\cuda_runtime_api.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/system/detail/bad_alloc.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/synchronize.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/synchronize.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\cuda_runtime_api.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/detail/launch_calculator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/detail/launch_calculator.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/omp/for_each.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/omp/for_each.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/for_each.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/for_each.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/scan.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/scan.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/scan.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/type_traits/iterator/is_output_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/type_traits/is_metafunction_defined.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/scan.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\scan.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/dispatch/scan.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/detail/fast_scan.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\detail\fast_scan.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/reduce_intervals.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\reduce_intervals.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/decompose.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/extern_shared_ptr.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/block/reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/default_decomposition.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/default_decomposition.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/detail/safe_scan.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\detail\safe_scan.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/omp/scan.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\omp\scan.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/forced_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/scan_by_key.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\generic\scan_by_key.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/replace.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/replace.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/scatter.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/scatter.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/permutation_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/permutation_iterator_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/permutation_iterator.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/copy_if.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/copy_if.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/copy_if.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/transform_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/transform_iterator.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/reduce_intervals.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/reduce_intervals.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/reduce_intervals.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cpp\reduce_intervals.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/omp/reduce_intervals.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\omp\reduce_intervals.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/cstdint.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/block/inclusive_scan.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/remove.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust\count.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/count.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/transform_reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/transform_reduce.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/reduce.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/reduce.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/type_traits/algorithm/intermediate_type_from_function_and_iterators.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/reduce.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/reduce_by_key.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\reduce_by_key.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/counting_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/counting_iterator.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/numeric_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/type_traits/iterator/is_discard_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/discard_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/discard_iterator_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/discard_iterator.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/reduce.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/default_decomposition.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/default_decomposition.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/default_decomposition.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/omp/default_decomposition.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/omp/default_decomposition.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/reduce_by_key.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\generic\reduce_by_key.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust\device_vector.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/device_malloc_allocator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/vector_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/reverse_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/reverse_iterator_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/iterator/detail/reverse_iterator.inl +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/vector_base.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/overlapped_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/equal.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/equal.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/mismatch.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/mismatch.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/find.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/find.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/find.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/find.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/find.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/extrema.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/extrema.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/extrema.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/extrema.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\generic\extrema.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/extrema.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/find.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/uninitialized_fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/uninitialized_fill.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/dispatch/uninitialized_fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/fill.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/fill.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cpp/fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/cuda/fill.h +c:\program files\nvidia gpu computing toolkit\cuda\v4.2\include\thrust\detail\backend\cuda\fill.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/util/align.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/generate.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/generate.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/generic/fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/uninitialized_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/uninitialized_copy.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/dispatch/uninitialized_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/uninitialized_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/backend/dispatch/uninitialized_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/advance.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/advance.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/dispatch/advance.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/destroy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/dispatch/destroy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/device_vector.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/host_vector.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/host_vector.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\cuda.h +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm/glm.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core/_fixes.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core/setup.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\./core/_detail.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\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\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\./core/type.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_half.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_half.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_detail.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_float.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_half.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\setup.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_int.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\setup.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_detail.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_gentype.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_size.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec1.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_gentype.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_float.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_int.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_size.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_swizzle.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_swizzle_func.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec1.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec2.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_float.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_int.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_size.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_swizzle.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec2.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_float.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_int.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_size.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_swizzle.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec3.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec4.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_float.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_int.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_size.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_swizzle.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_vec4.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat2x2.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_gentype.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat2x2.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat2x3.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat2x3.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat2x4.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat2x4.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat3x2.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat3x2.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat3x3.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat3x3.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat3x4.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat3x4.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat4x2.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat4x2.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat4x3.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat4x3.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat4x4.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\type_mat4x4.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\./core/func_trigonometric.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\func_trigonometric.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_vectorize.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\./core/func_exponential.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\func_exponential.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_vectorize.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\./core/func_common.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_fixes.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\func_common.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_vectorize.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\./core/func_packing.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\func_packing.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\./core/func_geometric.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\func_geometric.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_vectorize.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\./core/func_matrix.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\func_matrix.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_vectorize.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\./core/func_vector_relational.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_detail.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\func_vector_relational.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\./core/func_integer.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\func_integer.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\_vectorize.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\./core/func_noise.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core\func_noise.inl +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\./core/_swizzle.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\cudaMat4.h +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm/glm.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core/_fixes.hpp +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\cuda_runtime.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\cuda_runtime.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.2/C/common/inc\cutil_math.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\cuda_runtime.h +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm/glm.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core/_fixes.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\utilities.h +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm/glm.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core/_fixes.hpp +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sstream +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\cudaMat4.h +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\raytraceKernel.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/discard_block_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/detail/random_core_access.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/detail/discard_block_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/linear_congruential_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/detail/linear_congruential_engine_discard.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/detail/mod.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/detail/linear_congruential_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/linear_feedback_shift_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/detail/linear_feedback_shift_engine_wordmask.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/detail/linear_feedback_shift_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/subtract_with_carry_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/detail/subtract_with_carry_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/xor_combine_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/detail/xor_combine_engine_max.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/mpl/math.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/detail/xor_combine_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/uniform_int_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/detail/integer_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/detail/uniform_int_distribution.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/uniform_real_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/detail/uniform_real_distribution.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/normal_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\thrust/random/detail/normal_distribution.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include\cuda.h +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h +C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.2/C/common/inc\cutil_math.h +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\intersections.h +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\sceneStructs.h +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\cudaMat4.h +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm/glm.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\glm\core/_fixes.hpp +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\utilities.h +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\interactions.h +c:\users\aparajith sairam\documents\ms cggt\gpu fall 2012\project2-pathtracer\src\intersections.h diff --git a/README.md b/README.md index cbc1dce..941abda 100755 --- a/README.md +++ b/README.md @@ -6,110 +6,19 @@ Fall 2012 Due Friday, 10/12/2012 ------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -NOTE: -------------------------------------------------------------------------------- -This project requires an NVIDIA graphics card with CUDA capability! Any card after the Geforce 8xxx series will work. If you do not have an NVIDIA graphics card in the machine you are working on, feel free to use any machine in the SIG Lab or in Moore100 labs. All machines in the SIG Lab and Moore100 are equipped with CUDA capable NVIDIA graphics cards. If this too proves to be a problem, please contact Patrick or Karl as soon as possible. - -------------------------------------------------------------------------------- -INTRODUCTION: -------------------------------------------------------------------------------- -In this project, you will extend your raytracer from Project 1 into a full CUDA based global illumination pathtracer. - -For this project, you may either choose to continue working off of your codebase from Project 1, or you may choose to use the included basecode in this repository. The basecode for Project 2 is the same as the basecode for Project 1, but with some missing components you will need filled in, such as the intersection testing and camera raycasting methods. - -How you choose to extend your raytracer into a pathtracer is a fairly open-ended problem; the supplied basecode is meant to serve as one possible set of guidelines for doing so, but you may choose any approach you want in your actual implementation, including completely scrapping the provided basecode in favor of your own from-scratch solution. - -------------------------------------------------------------------------------- -CONTENTS: -------------------------------------------------------------------------------- -The Project2 root directory contains the following subdirectories: - -* src/ contains the source code for the project. Both the Windows Visual Studio solution and the OSX makefile reference this folder for all source; the base source code compiles on OSX and Windows without modification. -* scenes/ contains an example scene description file. -* renders/ contains two example renders: the raytraced render from Project 1 (GI_no.bmp), and the same scene rendered with global illumination (GI_yes.bmp). -* PROJ1_WIN/ contains a Windows Visual Studio 2010 project and all dependencies needed for building and running on Windows 7. -* PROJ1_OSX/ contains a OSX makefile, run script, and all dependencies needed for building and running on Mac OSX 10.8. - -The Windows and OSX versions of the project build and run exactly the same way as in Project0 and Project1. - -------------------------------------------------------------------------------- -REQUIREMENTS: -------------------------------------------------------------------------------- -In this project, you are given code for: - -* All of the basecode from Project 1, plus: -* Intersection testing code for spheres and cubes -* Code for raycasting from the camera - -You will need to implement the following features. A number of these required features you may have already implemented in Project 1. If you have, you are ahead of the curve and have less work to do! - -* Full global illumination (including soft shadows, color bleeding, etc.) by pathtracing rays through the scene. -* Properly accumulating emittance and colors to generate a final image -* Supersampled antialiasing -* Parallelization by ray instead of by pixel via string compaction (see the Physically-based shading and pathtracing lecture slides from 09/24 if you don't know what this refers to) -* Perfect specular reflection - -You are also required to implement at least two of the following features. Some of these features you may have already implemented in Project 1. If you have, you may NOT resubmit those features and instead must pick two new ones to implement. - -* Additional BRDF models, such as Cook-Torrance, Ward, etc. Each BRDF model may count as a separate feature. -* Texture mapping -* Bump mapping -* Translational motion blur -* Fresnel-based Refraction, i.e. glass -* OBJ Mesh loading and rendering without KD-Tree -* Interactive camera -* Integrate an existing stackless KD-Tree library, such as CUKD (https://github.com/unvirtual/cukd) -* Depth of field +Features Implemented: +* Global Illumination +* Super sampled Anti-Aliasing +* Ray Parallelization +* Perfect Specular Reflection +Other Features (optional, but mandatory): +* Motion Blur +* Depth of Field +* Fresnel-based Refraction (doesn’t work with cube though, because apparently there are mistakes in finding intersections with cube, when origin of ray is inside cube) +Feature carried over from Ray Tracer +* Interactive Camera + +Blogspot: +http://aparajithsairam.blogspot.com/ -Alternatively, implementing just one of the following features can satisfy the "pick two" feature requirement, since these are correspondingly more difficult problems: - -* Physically based subsurface scattering and transmission -* Implement and integrate your own stackless KD-Tree from scratch. -* Displacement mapping -* Deformational motion blur - -As yet another alternative, if you have a feature or features you really want to implement that are not on this list, let us know, and we'll probably say yes! - -------------------------------------------------------------------------------- -NOTES ON GLM: -------------------------------------------------------------------------------- -This project uses GLM, the GL Math library, for linear algebra. You need to know two important points on how GLM is used in this project: - -* In this project, indices in GLM vectors (such as vec3, vec4), are accessed via swizzling. So, instead of v[0], v.x is used, and instead of v[1], v.y is used, and so on and so forth. -* GLM Matrix operations work fine on NVIDIA Fermi cards and later, but pre-Fermi cards do not play nice with GLM matrices. As such, in this project, GLM matrices are replaced with a custom matrix struct, called a cudaMat4, found in cudaMat4.h. A custom function for multiplying glm::vec4s and cudaMat4s is provided as multiplyMV() in intersections.h. - -------------------------------------------------------------------------------- -BLOG -------------------------------------------------------------------------------- -As mentioned in class, all students should have student blogs detailing progress on projects. If you already have a blog, you can use it; otherwise, please create a blog using www.blogger.com or any other tool, such as www.wordpress.org. Blog posts on your project are due on the SAME DAY as the project, and should include: - -* A brief description of the project and the specific features you implemented. -* A link to your github repo if the code is open source. -* At least one screenshot of your project running. -* A 30 second or longer video of your project running. To create the video use http://www.microsoft.com/expression/products/Encoder4_Overview.aspx - -------------------------------------------------------------------------------- -THIRD PARTY CODE POLICY -------------------------------------------------------------------------------- -* Use of any third-party code must be approved by asking on Piazza. If it is approved, all students are welcome to use it. Generally, we approve use of third-party code that is not a core part of the project. For example, for the ray tracer, we would approve using a third-party library for loading models, but would not approve copying and pasting a CUDA function for doing refraction. -* Third-party code must be credited in README.md. -* Using third-party code without its approval, including using another student's code, is an academic integrity violation, and will result in you receiving an F for the semester. - -------------------------------------------------------------------------------- -SELF-GRADING -------------------------------------------------------------------------------- -* On the submission date, email your grade, on a scale of 0 to 100, to Karl, yiningli@seas.upenn.edu, with a one paragraph explanation. Be concise and realistic. Recall that we reserve 30 points as a sanity check to adjust your grade. Your actual grade will be (0.7 * your grade) + (0.3 * our grade). We hope to only use this in extreme cases when your grade does not realistically reflect your work - it is either too high or too low. In most cases, we plan to give you the exact grade you suggest. -* Projects are not weighted evenly, e.g., Project 0 doesn't count as much as the path tracer. We will determine the weighting at the end of the semester based on the size of each project. - -------------------------------------------------------------------------------- -SUBMISSION -------------------------------------------------------------------------------- -As with the previous project, you should fork this project and work inside of your fork. Upon completion, commit your finished project back to your fork, and make a pull request to the master repository. -You should include a README.md file in the root directory detailing the following -* A brief description of the project and specific features you implemented -* At least one screenshot of your project running, and at least one screenshot of the final rendered output of your pathtracer -* Instructions for building and running your project if they differ from the base code -* A link to your blog post detailing the project -* A list of all third-party code used \ No newline at end of file diff --git a/renders/DepthOfField.bmp b/renders/DepthOfField.bmp new file mode 100644 index 0000000..7e42640 Binary files /dev/null and b/renders/DepthOfField.bmp differ diff --git a/renders/GlossyReflectionPureDiffusePureRefraction.bmp b/renders/GlossyReflectionPureDiffusePureRefraction.bmp new file mode 100644 index 0000000..0e79c85 Binary files /dev/null and b/renders/GlossyReflectionPureDiffusePureRefraction.bmp differ diff --git a/renders/MotionBlur.bmp b/renders/MotionBlur.bmp new file mode 100644 index 0000000..6fbd482 Binary files /dev/null and b/renders/MotionBlur.bmp differ diff --git a/renders/Thumbs.db b/renders/Thumbs.db new file mode 100644 index 0000000..b9cb898 Binary files /dev/null and b/renders/Thumbs.db differ diff --git a/scenes/PathTracerScene.txt b/scenes/PathTracerScene.txt new file mode 100644 index 0000000..22037a8 --- /dev/null +++ b/scenes/PathTracerScene.txt @@ -0,0 +1,281 @@ +MATERIAL 0 //white reflective +RGB 1 1 1 // 0 0 0 +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 10 +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 0 0 0 // .15 .48 .09 +SPECEX 10 +SPECRGB 1 1 1 +REFL 0 +REFR 1 +REFRIOR 1.8 +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 + +MATERIAL 9 //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 10 //green glossy +RGB 0 0 0 // .15 .48 .09 +SPECEX 10 +SPECRGB 1 1 1 +REFL 1 +REFR 0 +REFRIOR 1.8 +SCATTER 0 +ABSCOEFF 0 0 0 +RSCTCOEFF 0 +EMITTANCE 0 + +CAMERA +RES 800 800 +FOVY 25 +ITERATIONS 5000 +FILE renders/RayTracerScene.bmp +frame 0 +EYE 0 9.5 15 // 0 4.5 4 +VIEW 0 0 -1 +UP 0 1 0 +frame 1 +EYE 0 9.5 15 +VIEW 0 0 -1 +UP 0 1 0 + +LIGHT 0 +RGB 1 1 1 +TRANS 0 15 20 + +OBJECT 0 +cube +material 0 +frame 0 +TRANS 0 0 0 +ROTAT 0 0 90 +SCALE .01 100 100 +frame 1 +TRANS 0 0 0 +ROTAT 0 0 90 +SCALE .01 100 100 + +OBJECT 1 +cube +material 0 +frame 0 +TRANS 0 50 -50 +ROTAT 0 90 0 +SCALE .01 100 100 +frame 1 +TRANS 0 50 -50 +ROTAT 0 90 0 +SCALE .01 100 100 + +OBJECT 2 +cube +material 0 +frame 0 +TRANS 0 100 0 +ROTAT 0 0 90 +SCALE .01 100 100 +frame 1 +TRANS 0 100 0 +ROTAT 0 0 90 +SCALE .01 100 100 + +OBJECT 3 +cube +material 1 +frame 0 +TRANS -50 50 0 +ROTAT 0 0 0 +SCALE .01 100 100 +frame 1 +TRANS -5 5 0 +ROTAT 0 0 0 +SCALE .01 100 100 + +OBJECT 4 +cube +material 2 +frame 0 +TRANS 50 50 0 +ROTAT 0 0 0 +SCALE .01 100 100 +frame 1 +TRANS 50 50 0 +ROTAT 0 0 0 +SCALE .01 100 100 + +OBJECT 5 +sphere +material 4 +frame 0 +TRANS 0 3 0 +ROTAT 0 180 0 +SCALE 3 3 3 +frame 1 +TRANS 0 3 0 +ROTAT 0 180 0 +SCALE 3 3 3 + +OBJECT 6 +sphere +material 1 //3 +frame 0 +TRANS 3 8 -4 +ROTAT 0 180 0 +SCALE 2.5 2.5 2.5 +frame 1 +TRANS 3 8 -4 //2 5 2 +ROTAT 0 180 0 +SCALE 2.5 2.5 2.5 + +OBJECT 7 +sphere +material 1 //6 +frame 0 +TRANS -2 10 -2 +ROTAT 0 180 0 +SCALE 3 3 3 +frame 1 +TRANS -2 10 -2 +ROTAT 0 180 0 +SCALE 3 3 3 + +OBJECT 8 +cube +material 0 +frame 0 +TRANS 0 50 50 +ROTAT 0 90 0 +SCALE .01 100 100 +frame 1 +TRANS 0 50 50 +ROTAT 0 90 0 +SCALE .01 100 100 //.01 10 10 + +OBJECT 9 +cube +material 10 +frame 0 +TRANS 5 8 8 +ROTAT 40 50 60 //40 50 60 +SCALE 5 5 5 //1 1 1 +frame 1 +TRANS 5 8 8 +ROTAT 40 50 60 +SCALE 5 5 5 //1 1 1 + +OBJECT 10 +cube +material 8 +frame 0 +TRANS 0 20 0 +ROTAT 0 0 90 +SCALE .3 8 8 +frame 1 +TRANS 0 20 0 +ROTAT 0 0 90 +SCALE .3 8 8 \ No newline at end of file diff --git a/scenes/RayTracerScene.txt b/scenes/RayTracerScene.txt new file mode 100644 index 0000000..6c0fcfb --- /dev/null +++ b/scenes/RayTracerScene.txt @@ -0,0 +1,245 @@ +MATERIAL 0 //white reflective +RGB 0 0 0 +SPECEX 0 +SPECRGB 1 1 1 +REFL 1 +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 10 +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 10 +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 + +MATERIAL 9 //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 + +CAMERA +RES 800 800 +FOVY 25 +ITERATIONS 5000 +FILE renders/RayTracerScene.bmp +frame 0 +EYE 0 6.5 4 // 0 4.5 4 +VIEW 0 0 -1 +UP 0 1 0 +frame 1 +EYE 0 6.5 4 +VIEW 0 0 -1 +UP 0 1 0 + +LIGHT 0 +RGB 1 1 1 +TRANS 0 8.0 7 + +OBJECT 0 +cube +material 0 +frame 0 +TRANS 0 0 0 +ROTAT 0 0 90 +SCALE .01 100 100 +frame 1 +TRANS 0 0 0 +ROTAT 0 0 90 +SCALE .01 100 100 + +OBJECT 1 +cube +material 0 +frame 0 +TRANS 0 50 -50 +ROTAT 0 90 0 +SCALE .01 100 100 +frame 1 +TRANS 0 50 -50 +ROTAT 0 90 0 +SCALE .01 100 100 + +OBJECT 2 +cube +material 0 +frame 0 +TRANS 0 100 0 +ROTAT 0 0 90 +SCALE .01 100 100 +frame 1 +TRANS 0 100 0 +ROTAT 0 0 90 +SCALE .01 100 100 + +OBJECT 3 +cube +material 1 +frame 0 +TRANS -50 50 0 +ROTAT 0 0 0 +SCALE .01 100 100 +frame 1 +TRANS -5 5 0 +ROTAT 0 0 0 +SCALE .01 100 100 + +OBJECT 4 +cube +material 2 +frame 0 +TRANS 50 50 0 +ROTAT 0 0 0 +SCALE .01 100 100 +frame 1 +TRANS 50 50 0 +ROTAT 0 0 0 +SCALE .01 100 100 + +OBJECT 5 +sphere +material 4 +frame 0 +TRANS 0 3 0 +ROTAT 0 180 0 +SCALE 3 3 3 +frame 1 +TRANS 0 3 0 +ROTAT 0 180 0 +SCALE 3 3 3 + +OBJECT 6 +sphere +material 3 +frame 0 +TRANS 3 8 -4 +ROTAT 0 180 0 +SCALE 2.5 2.5 2.5 +frame 1 +TRANS 3 8 -4 //2 5 2 +ROTAT 0 180 0 +SCALE 2.5 2.5 2.5 + +OBJECT 7 +sphere +material 6 +frame 0 +TRANS -2 6 -2 +ROTAT 0 180 0 +SCALE 3 3 3 +frame 1 +TRANS -2 6 -2 +ROTAT 0 180 0 +SCALE 3 3 3 + +OBJECT 8 +cube +material 0 +frame 0 +TRANS 0 50 50 +ROTAT 0 90 0 +SCALE .01 100 100 +frame 1 +TRANS 0 50 50 +ROTAT 0 90 0 +SCALE .01 100 100 //.01 10 10 \ No newline at end of file diff --git a/scenes/sampleScene.txt b/scenes/sampleScene.txt index 936135b..4f8aa38 100755 --- a/scenes/sampleScene.txt +++ b/scenes/sampleScene.txt @@ -38,7 +38,7 @@ MATERIAL 3 //red glossy RGB .63 .06 .04 SPECEX 0 SPECRGB 1 1 1 -REFL 0 +REFL 1 REFR 0 REFRIOR 2 SCATTER 0 @@ -47,12 +47,12 @@ RSCTCOEFF 0 EMITTANCE 0 MATERIAL 4 //white glossy -RGB 1 1 1 +RGB 0 0 0 //1 1 1 SPECEX 0 SPECRGB 1 1 1 REFL 0 -REFR 0 -REFRIOR 2 +REFR 1 +REFRIOR 2.6 SCATTER 0 ABSCOEFF 0 0 0 RSCTCOEFF 0 @@ -109,8 +109,8 @@ EMITTANCE 15 CAMERA RES 800 800 FOVY 25 -ITERATIONS 5000 -FILE renders/sampleScene.bmp +ITERATIONS 7000 +FILE renders\FinalImage.bmp frame 0 EYE 0 4.5 12 VIEW 0 0 -1 @@ -196,11 +196,11 @@ OBJECT 6 sphere material 3 frame 0 -TRANS 2 5 2 +TRANS 3 4 2 ROTAT 0 180 0 SCALE 2.5 2.5 2.5 frame 1 -TRANS 2 5 2 +TRANS 3 4 2 //4 3 2 //2 7 2 ROTAT 0 180 0 SCALE 2.5 2.5 2.5 diff --git a/scenes/sampleSceneGlossy.txt b/scenes/sampleSceneGlossy.txt new file mode 100644 index 0000000..be814ca --- /dev/null +++ b/scenes/sampleSceneGlossy.txt @@ -0,0 +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 1 +REFRIOR 2.6 +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 +SCALE .3 3 3 \ No newline at end of file diff --git a/src/interactions.h b/src/interactions.h index e18cfff..b840d56 100755 --- a/src/interactions.h +++ b/src/interactions.h @@ -1,106 +1,122 @@ -// 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: -// Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com - -#ifndef INTERACTIONS_H -#define INTERACTIONS_H - -#include "intersections.h" - -struct Fresnel { - float reflectionCoefficient; - float transmissionCoefficient; -}; - -struct AbsorptionAndScatteringProperties{ - glm::vec3 absorptionCoefficient; - float reducedScatteringCoefficient; -}; - -//forward declaration -__host__ __device__ bool calculateScatterAndAbsorption(ray& r, float& depth, AbsorptionAndScatteringProperties& currentAbsorptionAndScattering, glm::vec3& unabsorbedColor, material m, float randomFloatForScatteringDistance, float randomFloat2, float randomFloat3); -__host__ __device__ glm::vec3 getRandomDirectionInSphere(float xi1, float xi2); -__host__ __device__ glm::vec3 calculateTransmission(glm::vec3 absorptionCoefficient, float distance); -__host__ __device__ glm::vec3 calculateTransmissionDirection(glm::vec3 normal, glm::vec3 incident, float incidentIOR, float transmittedIOR); -__host__ __device__ glm::vec3 calculateReflectionDirection(glm::vec3 normal, glm::vec3 incident); -__host__ __device__ Fresnel calculateFresnel(glm::vec3 normal, glm::vec3 incident, float incidentIOR, float transmittedIOR, glm::vec3 reflectionDirection, glm::vec3 transmissionDirection); -__host__ __device__ glm::vec3 calculateRandomDirectionInHemisphere(glm::vec3 normal, float xi1, float xi2); - -//TODO (OPTIONAL): IMPLEMENT THIS FUNCTION -__host__ __device__ glm::vec3 calculateTransmission(glm::vec3 absorptionCoefficient, float distance) { - return glm::vec3(0,0,0); -} - -//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){ - return false; -} - -//TODO (OPTIONAL): IMPLEMENT THIS FUNCTION -__host__ __device__ glm::vec3 calculateTransmissionDirection(glm::vec3 normal, glm::vec3 incident, float incidentIOR, float transmittedIOR) { - return glm::vec3(0,0,0); -} - -//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); -} - -//TODO (OPTIONAL): IMPLEMENT THIS FUNCTION -__host__ __device__ Fresnel calculateFresnel(glm::vec3 normal, glm::vec3 incident, float incidentIOR, float transmittedIOR, glm::vec3 reflectionDirection, glm::vec3 transmissionDirection) { - Fresnel fresnel; - - fresnel.reflectionCoefficient = 1; - fresnel.transmissionCoefficient = 0; - return fresnel; -} - -//LOOK: This function demonstrates cosine weighted random direction generation in a sphere! -__host__ __device__ glm::vec3 calculateRandomDirectionInHemisphere(glm::vec3 normal, float xi1, float xi2) { - - //crucial difference between this and calculateRandomDirectionInSphere: THIS IS COSINE WEIGHTED! - - float up = sqrt(xi1); // cos(theta) - float over = sqrt(1 - up * up); // sin(theta) - float around = xi2 * TWO_PI; - - //Find a direction that is not the normal based off of whether or not the normal's components are all equal to sqrt(1/3) or whether or not at least one component is less than sqrt(1/3). Learned this trick from Peter Kutz. - - glm::vec3 directionNotNormal; - if (abs(normal.x) < SQRT_OF_ONE_THIRD) { - directionNotNormal = glm::vec3(1, 0, 0); - } else if (abs(normal.y) < SQRT_OF_ONE_THIRD) { - directionNotNormal = glm::vec3(0, 1, 0); - } else { - directionNotNormal = glm::vec3(0, 0, 1); - } - - //Use not-normal direction to generate two perpendicular directions - glm::vec3 perpendicularDirection1 = glm::normalize(glm::cross(normal, directionNotNormal)); - glm::vec3 perpendicularDirection2 = glm::normalize(glm::cross(normal, perpendicularDirection1)); - - return ( up * normal ) + ( cos(around) * over * perpendicularDirection1 ) + ( sin(around) * over * perpendicularDirection2 ); - -} - -//TODO: IMPLEMENT THIS FUNCTION -//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); -} - -//TODO (PARTIALLY OPTIONAL): IMPLEMENT THIS FUNCTION -//returns 0 if diffuse scatter, 1 if reflected, 2 if transmitted. -__host__ __device__ int calculateBSDF(ray& r, glm::vec3 intersect, glm::vec3 normal, glm::vec3 emittedColor, - AbsorptionAndScatteringProperties& currentAbsorptionAndScattering, - glm::vec3& color, glm::vec3& unabsorbedColor, material m){ - - return 1; -}; - -#endif +// 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: +// Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com + +#ifndef INTERACTIONS_H +#define INTERACTIONS_H + +#include "intersections.h" + +struct Fresnel { + float reflectionCoefficient; + float transmissionCoefficient; +}; + +struct AbsorptionAndScatteringProperties{ + glm::vec3 absorptionCoefficient; + float reducedScatteringCoefficient; +}; + +//forward declaration +__host__ __device__ bool calculateScatterAndAbsorption(ray& r, float& depth, AbsorptionAndScatteringProperties& currentAbsorptionAndScattering, glm::vec3& unabsorbedColor, material m, float randomFloatForScatteringDistance, float randomFloat2, float randomFloat3); +__host__ __device__ glm::vec3 getRandomDirectionInSphere(float xi1, float xi2); +__host__ __device__ glm::vec3 calculateTransmission(glm::vec3 absorptionCoefficient, float distance); +__host__ __device__ glm::vec3 calculateTransmissionDirection(const glm::vec3 &normal, const glm::vec3 &incidentRayDirection, float incidentIOR, float transmittedIOR); +__host__ __device__ glm::vec3 calculateReflectionDirection(const glm::vec3 &normal, const glm::vec3 &incidentRayDirection); +__host__ __device__ Fresnel calculateFresnel(const glm::vec3 &normal, const glm::vec3 &incidentRayDirection, float incidentIOR, float transmittedIOR, const glm::vec3 &transmissionDirection); +__host__ __device__ glm::vec3 calculateRandomDirectionInHemisphere(const glm::vec3 &normal, float xi1, float xi2); + +//TODO (OPTIONAL): IMPLEMENT THIS FUNCTION +__host__ __device__ glm::vec3 calculateTransmission(glm::vec3 absorptionCoefficient, float distance) { + return glm::vec3(0,0,0); +} + +//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){ + return false; +} + +//TODO (OPTIONAL): IMPLEMENT THIS FUNCTION +__host__ __device__ glm::vec3 calculateTransmissionDirection(const glm::vec3 &normal, const glm::vec3 &incident, float incidentIOR, float transmittedIOR) { + float cosTheta = glm::dot(-incident, normal); + float ratio = incidentIOR / transmittedIOR; + float sinSqrTheta = 1.0f - ratio * ratio * (1 - cosTheta * cosTheta); + if(sinSqrTheta > 1) + { + return glm::vec3(-10000, -10000, -10000); + } + else + { + return (ratio * incident + (ratio * cosTheta - sqrt(sinSqrTheta)) * normal); + } +} + +//TODO (OPTIONAL): IMPLEMENT THIS FUNCTION +__host__ __device__ glm::vec3 calculateReflectionDirection(const glm::vec3 &normal, const glm::vec3 &incident) { + //nothing fancy here + return (incident - 2.0f * glm::dot(incident, normal) * normal); +} + +//TODO (OPTIONAL): IMPLEMENT THIS FUNCTION +//NOT Using Schlick's approximation +__host__ __device__ Fresnel calculateFresnel(const glm::vec3 &normal, const glm::vec3 &incident, float incidentIOR, float transmittedIOR, const glm::vec3 &transmissionDirection) +{ + Fresnel fresnel; + float cosThetaI = glm::dot(-incident, normal); + float sinSqrThetaT = (incidentIOR / transmittedIOR) * (incidentIOR / transmittedIOR) * (1.0f - cosThetaI * cosThetaI); + float cosThetaT = sqrt(1.0f - sinSqrThetaT); + float RPerp = ((incidentIOR * cosThetaI - transmittedIOR * cosThetaT) / (incidentIOR * cosThetaI + transmittedIOR * cosThetaT)) * + ((incidentIOR * cosThetaI - transmittedIOR * cosThetaT) / (incidentIOR * cosThetaI + transmittedIOR * cosThetaT)); + float RPara = ((transmittedIOR * cosThetaI - incidentIOR * cosThetaT) / (transmittedIOR * cosThetaI + incidentIOR * cosThetaT)) * + ((transmittedIOR * cosThetaI - incidentIOR * cosThetaT) / (transmittedIOR * cosThetaI + incidentIOR * cosThetaT)); + + fresnel.reflectionCoefficient = (RPerp + RPara) / 2.0f; + fresnel.transmissionCoefficient = 1.0f - fresnel.reflectionCoefficient; + return fresnel; +} + +//LOOK: This function demonstrates cosine weighted random direction generation in a hemisphere! +__host__ __device__ glm::vec3 calculateRandomDirectionInHemisphere(const glm::vec3 &normal, float xi1, float xi2) { + + //crucial difference between this and calculateRandomDirectionInSphere: THIS IS COSINE WEIGHTED! + + float up = sqrt(xi1); // cos(theta) + float over = sqrt(1 - up * up); // sin(theta) + float around = xi2 * TWO_PI; + + //Find a direction that is not the normal based off of whether or not the normal's components are all equal to sqrt(1/3) or whether or not at least one component is less than sqrt(1/3). Learned this trick from Peter Kutz. + + glm::vec3 directionNotNormal; + if (abs(normal.x) < SQRT_OF_ONE_THIRD) { + directionNotNormal = glm::vec3(1, 0, 0); + } else if (abs(normal.y) < SQRT_OF_ONE_THIRD) { + directionNotNormal = glm::vec3(0, 1, 0); + } else { + directionNotNormal = glm::vec3(0, 0, 1); + } + + //Use not-normal direction to generate two perpendicular directions + glm::vec3 perpendicularDirection1 = glm::normalize(glm::cross(normal, directionNotNormal)); + glm::vec3 perpendicularDirection2 = glm::normalize(glm::cross(normal, perpendicularDirection1)); + + return ( up * normal ) + ( cos(around) * over * perpendicularDirection1 ) + ( sin(around) * over * perpendicularDirection2 ); + +} + +//TODO: IMPLEMENT THIS FUNCTION +//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) +{ + //float x = 2.0f * cos(TWO_PI * xi1) * sqrt(xi2 * (1.0f - xi2)); + //float y = 2.0f * sin(TWO_PI * xi1) * sqrt(xi2 * (1.0f - xi2)); + //float z = 1.0f - 2.0f * xi2; + return glm::normalize(glm::vec3((2.0f * cos(TWO_PI * xi1) * sqrt(xi2 * (1.0f - xi2)), 2.0f * sin(TWO_PI * xi1) * sqrt(xi2 * (1.0f - xi2)), 1.0f - 2.0f * xi2))); +} + + + +#endif \ No newline at end of file diff --git a/src/intersections.h b/src/intersections.h index 714e918..4f641db 100755 --- a/src/intersections.h +++ b/src/intersections.h @@ -1,288 +1,347 @@ -// 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: -// Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com - -#ifndef INTERSECTIONS_H -#define INTERSECTIONS_H - -#include "sceneStructs.h" -#include "cudaMat4.h" -#include "glm/glm.hpp" -#include "utilities.h" -#include - -//Some forward declarations -__host__ __device__ glm::vec3 getPointOnRay(ray r, float t); -__host__ __device__ glm::vec3 multiplyMV(cudaMat4 m, glm::vec4 v); -__host__ __device__ glm::vec3 getSignOfRay(ray r); -__host__ __device__ glm::vec3 getInverseDirectionOfRay(ray r); -__host__ __device__ float boxIntersectionTest(staticGeom sphere, ray r, glm::vec3& intersectionPoint, glm::vec3& normal); -__host__ __device__ float boxIntersectionTest(glm::vec3 boxMin, glm::vec3 boxMax, staticGeom box, ray r, glm::vec3& intersectionPoint, glm::vec3& normal); -__host__ __device__ float sphereIntersectionTest(staticGeom sphere, ray r, glm::vec3& intersectionPoint, glm::vec3& normal); -__host__ __device__ glm::vec3 getRandomPointOnCube(staticGeom cube, float randomSeed); - -//Handy dandy little hashing function that provides seeds for random number generation -__host__ __device__ unsigned int hash(unsigned int a){ - a = (a+0x7ed55d16) + (a<<12); - a = (a^0xc761c23c) ^ (a>>19); - a = (a+0x165667b1) + (a<<5); - a = (a+0xd3a2646c) ^ (a<<9); - a = (a+0xfd7046c5) + (a<<3); - a = (a^0xb55a4f09) ^ (a>>16); - return a; -} - -//Quick and dirty epsilon check -__host__ __device__ bool epsilonCheck(float a, float b){ - if(fabs(fabs(a)-fabs(b)) tymax) || (tymin > tmax) ){ - return -1; - } - if (tymin > tmin){ - tmin = tymin; - } - if (tymax < tmax){ - tmax = tymax; - } - - if((int)rsign.z==0){ - tzmin = (boxMin.z - r.origin.z) * rInverseDirection.z; - tzmax = (boxMax.z - r.origin.z) * rInverseDirection.z; - }else{ - tzmin = (boxMax.z - r.origin.z) * rInverseDirection.z; - tzmax = (boxMin.z - r.origin.z) * rInverseDirection.z; - } - - if ( (tmin > tzmax) || (tzmin > tmax) ){ - return -1; - } - if (tzmin > tmin){ - tmin = tzmin; - } - if (tzmax < tmax){ - tmax = tzmax; - } - if(tmin<0){ - return -1; - } - - glm::vec3 osintersect = r.origin + tmin*r.direction; - - if(abs(osintersect.x-abs(boxMax.x))<.001){ - currentNormal = glm::vec3(1,0,0); - }else if(abs(osintersect.y-abs(boxMax.y))<.001){ - currentNormal = glm::vec3(0,1,0); - }else if(abs(osintersect.z-abs(boxMax.z))<.001){ - currentNormal = glm::vec3(0,0,1); - }else if(abs(osintersect.x+abs(boxMin.x))<.001){ - currentNormal = glm::vec3(-1,0,0); - }else if(abs(osintersect.y+abs(boxMin.y))<.001){ - currentNormal = glm::vec3(0,-1,0); - }else if(abs(osintersect.z+abs(boxMin.z))<.001){ - currentNormal = glm::vec3(0,0,-1); - } - - intersectionPoint = multiplyMV(box.transform, glm::vec4(osintersect, 1.0)); - - - - normal = multiplyMV(box.transform, glm::vec4(currentNormal,0.0)); - return glm::length(intersectionPoint-ro.origin); -} - -//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 -__host__ __device__ float sphereIntersectionTest(staticGeom sphere, ray r, glm::vec3& intersectionPoint, glm::vec3& normal){ - - float radius = .5; - - glm::vec3 ro = multiplyMV(sphere.inverseTransform, glm::vec4(r.origin,1.0f)); - glm::vec3 rd = glm::normalize(multiplyMV(sphere.inverseTransform, glm::vec4(r.direction,0.0f))); - - 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)); - if (radicand < 0){ - return -1; - } - - float squareRoot = sqrt(radicand); - float firstTerm = -vDotDirection; - float t1 = firstTerm + squareRoot; - float t2 = firstTerm - squareRoot; - - float t = 0; - if (t1 < 0 && t2 < 0) { - return -1; - } else if (t1 > 0 && t2 > 0) { - t = min(t1, t2); - } else { - t = max(t1, t2); - } - - glm::vec3 realIntersectionPoint = multiplyMV(sphere.transform, glm::vec4(getPointOnRay(rt, t), 1.0)); - glm::vec3 realOrigin = multiplyMV(sphere.transform, glm::vec4(0,0,0,1)); - - intersectionPoint = realIntersectionPoint; - normal = glm::normalize(realIntersectionPoint - realOrigin); - - return glm::length(r.origin - realIntersectionPoint); -} - -//returns x,y,z half-dimensions of tightest bounding box -__host__ __device__ glm::vec3 getRadiuses(staticGeom geom){ - glm::vec3 origin = multiplyMV(geom.transform, glm::vec4(0,0,0,1)); - glm::vec3 xmax = multiplyMV(geom.transform, glm::vec4(.5,0,0,1)); - glm::vec3 ymax = multiplyMV(geom.transform, glm::vec4(0,.5,0,1)); - glm::vec3 zmax = multiplyMV(geom.transform, glm::vec4(0,0,.5,1)); - float xradius = glm::distance(origin, xmax); - float yradius = glm::distance(origin, ymax); - float zradius = glm::distance(origin, zmax); - return glm::vec3(xradius, yradius, zradius); -} - -//LOOK: Example for generating a random point on an object using thrust. -//Generates a random point on a given cube -__host__ __device__ glm::vec3 getRandomPointOnCube(staticGeom cube, float randomSeed){ - - thrust::default_random_engine rng(hash(randomSeed)); - thrust::uniform_real_distribution u01(0,1); - thrust::uniform_real_distribution u02(-0.5,0.5); - - //get surface areas of sides - glm::vec3 radii = getRadiuses(cube); - float side1 = radii.x * radii.y * 4.0f; //x-y face - float side2 = radii.z * radii.y * 4.0f; //y-z face - float side3 = radii.x * radii.z* 4.0f; //x-z face - float totalarea = 2.0f * (side1+side2+side3); - - //pick random face, weighted by surface area - float russianRoulette = (float)u01(rng); - - glm::vec3 point = glm::vec3(.5,.5,.5); - - if(russianRoulette<(side1/totalarea)){ - //x-y face - point = glm::vec3((float)u02(rng), (float)u02(rng), .5); - }else if(russianRoulette<((side1*2)/totalarea)){ - //x-y-back face - point = glm::vec3((float)u02(rng), (float)u02(rng), -.5); - }else if(russianRoulette<(((side1*2)+(side2))/totalarea)){ - //y-z face - point = glm::vec3(.5, (float)u02(rng), (float)u02(rng)); - }else if(russianRoulette<(((side1*2)+(side2*2))/totalarea)){ - //y-z-back face - point = glm::vec3(-.5, (float)u02(rng), (float)u02(rng)); - }else if(russianRoulette<(((side1*2)+(side2*2)+(side3))/totalarea)){ - //x-z face - point = glm::vec3((float)u02(rng), .5, (float)u02(rng)); - }else{ - //x-z-back face - point = glm::vec3((float)u02(rng), -.5, (float)u02(rng)); - } - - glm::vec3 randPoint = multiplyMV(cube.transform, glm::vec4(point,1.0f)); - - return randPoint; - -} - -//Generates a random point on a given sphere -__host__ __device__ glm::vec3 getRandomPointOnSphere(staticGeom sphere, float randomSeed){ - - float radius=.5f; - thrust::default_random_engine rng(hash(randomSeed)); - thrust::uniform_real_distribution u01(0,1); - thrust::uniform_real_distribution u02(-0.5,0.5); - - glm::vec3 point = glm::vec3(0,0,0); - float x=(float)u02(rng); - float y=(float)u02(rng); - float z=0; - float russianRoulette = (float)u01(rng); - if(russianRoulette<0.5){ - z=(float)sqrt(radius*radius-x*x-y*y); - }else - z=-(float)sqrt(radius*radius-x*x-y*y); - - point=glm::vec3(x,y,z); - glm::vec3 randPoint = multiplyMV(sphere.transform, glm::vec4(point,1.0f)); - - return randPoint; -} - +// 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: +// Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com + +#ifndef INTERSECTIONS_H +#define INTERSECTIONS_H + +#include "sceneStructs.h" +#include "cudaMat4.h" +#include "glm/glm.hpp" +#include "utilities.h" +#include + +//Some forward declarations +__host__ __device__ glm::vec3 getPointOnRay(ray r, float t); +__host__ __device__ glm::vec3 multiplyMV(cudaMat4 m, glm::vec4 v); +__host__ __device__ glm::vec3 getSignOfRay(ray r); +__host__ __device__ glm::vec3 getInverseDirectionOfRay(ray r); +__host__ __device__ float boxIntersectionTest(const staticGeom &box, const ray &r, glm::vec3& intersectionPoint, glm::vec3& normal); +__host__ __device__ float sphereIntersectionTest(const staticGeom &sphere, const ray &r, glm::vec3& intersectionPoint, glm::vec3& normal); +__host__ __device__ glm::vec3 getRandomPointOnCube(staticGeom cube, float randomSeed); + +//Handy dandy little hashing function that provides seeds for random number generation +__host__ __device__ unsigned int hash(unsigned int a){ + a = (a+0x7ed55d16) + (a<<12); + a = (a^0xc761c23c) ^ (a>>19); + a = (a+0x165667b1) + (a<<5); + a = (a+0xd3a2646c) ^ (a<<9); + a = (a+0xfd7046c5) + (a<<3); + a = (a^0xb55a4f09) ^ (a>>16); + return a; +} + +//Quick and dirty epsilon check +__host__ __device__ bool epsilonCheck(float a, float b){ + if(fabs(fabs(a)-fabs(b)) tmin && txmin > 0) + { + tmin = txmin; + axisMin = 0; + } + + if(txmax < tmax && txmax > 0) + { + tmax = txmax; + axisMax = 0; + } + + tymin = (bounds[sign[1]].y - rt.origin.y) * invDirection.y; + tymax = (bounds[1 - sign[1]].y - rt.origin.y) * invDirection.y; + + if(tymin <= 0 && tymax <= 0) + { + return -1.0f; + } + + if((tmin > tymax) || (tymin > tmax)) + return -1.0f; + + if(tymin > tmin && tymin > 0) + { + tmin = tymin; + axisMin = 1; + } + + if(tymax < tmax && tymax > 0) + { + tmax = tymax; + axisMax = 1; + } + + tzmin = (bounds[sign[2]].z - rt.origin.z) * invDirection.z; + tzmax = (bounds[1 - sign[2]].z - rt.origin.z) * invDirection.z; + + if(tzmin <= 0 && tzmax <= 0) + { + return -1.0f; + } + + if((tmin > tzmax) || (tzmin > tmax)) + return -1.0f; + + if(tzmin > tmin && tzmin > 0) + { + tmin = tzmin; + axisMin = 2; + } + + if(tzmax < tmax && tzmax > 0) + { + tmax = tzmax; + axisMax = 2; + } + + if(!epsilonCheck(tmin, -1e6f)) + { + intersectionPoint = multiplyMV(box.transform, glm::vec4(getPointOnRay(rt, tmin), 1.0)); + if(axisMin == 0) + { + normal = glm::vec3(-1, 0, 0); + if(sign[0]) + { + normal.x = 1.0f; + } + normal = glm::normalize(multiplyMV(box.transform, glm::vec4(normal, 0.0f))); + } + else if(axisMin == 1) + { + normal = glm::vec3(0, -1, 0); + if(sign[1]) + { + normal.y = 1.0f; + } + normal = glm::normalize(multiplyMV(box.transform, glm::vec4(normal, 0.0f))); + } + else + { + normal = glm::vec3(0, 0, -1); + if(sign[2]) + { + normal.z = 1.0f; + } + normal = glm::normalize(multiplyMV(box.transform, glm::vec4(normal, 0.0f))); + } + } + else if(!epsilonCheck(tmax, 1e6f)) + { + intersectionPoint = multiplyMV(box.transform, glm::vec4(getPointOnRay(rt, tmax), 1.0)); + if(axisMax == 0) + { + normal = glm::vec3(-1, 0, 0); + if(sign[0]) + { + normal.x = 1.0f; + } + normal = glm::normalize(multiplyMV(box.transform, glm::vec4(normal, 0.0f))); + } + else if(axisMax == 1) + { + normal = glm::vec3(0, -1, 0); + if(sign[1]) + { + normal.y = 1.0f; + } + normal = glm::normalize(multiplyMV(box.transform, glm::vec4(normal, 0.0f))); + } + else + { + normal = glm::vec3(0, 0, -1); + if(sign[2]) + { + normal.z = 1.0f; + } + normal = glm::normalize(multiplyMV(box.transform, glm::vec4(normal, 0.0f))); + } + } + else + { + return -1.0f; + } + + return glm::distance(r.origin, intersectionPoint); +} + +//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 +__host__ __device__ float sphereIntersectionTest(const staticGeom &sphere, const ray &r, glm::vec3& intersectionPoint, glm::vec3& normal){ + + float radius = .5; + + ray rt; + rt.origin = multiplyMV(sphere.inverseTransform, glm::vec4(r.origin,1.0f)); + rt.direction = glm::normalize(multiplyMV(sphere.inverseTransform, glm::vec4(r.direction,0.0f))); + /* + glm::vec3 ro = multiplyMV(sphere.inverseTransform, glm::vec4(r.origin,1.0f)); + glm::vec3 rd = glm::normalize(multiplyMV(sphere.inverseTransform, glm::vec4(r.direction,0.0f))); + + 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)); + if (radicand < 0){ + return -1; + } + + float squareRoot = sqrt(radicand); + float firstTerm = -vDotDirection; + float t1 = firstTerm + squareRoot; + float t2 = firstTerm - squareRoot; + + float t = 0; + if (t1 < 0 && t2 < 0) { + return -1; + } else if (t1 > 0 && t2 > 0) { + t = min(t1, t2); + } else { + t = max(t1, t2); + } + + glm::vec3 realIntersectionPoint = multiplyMV(sphere.transform, glm::vec4(getPointOnRay(rt, t), 1.0)); + glm::vec3 realOrigin = multiplyMV(sphere.transform, glm::vec4(0,0,0,1)); + + intersectionPoint = realIntersectionPoint; + normal = glm::normalize(realIntersectionPoint - realOrigin); + + return glm::length(r.origin - realIntersectionPoint); +} + +//returns x,y,z half-dimensions of tightest bounding box +__host__ __device__ glm::vec3 getRadiuses(staticGeom geom){ + glm::vec3 origin = multiplyMV(geom.transform, glm::vec4(0,0,0,1)); + glm::vec3 xmax = multiplyMV(geom.transform, glm::vec4(.5,0,0,1)); + glm::vec3 ymax = multiplyMV(geom.transform, glm::vec4(0,.5,0,1)); + glm::vec3 zmax = multiplyMV(geom.transform, glm::vec4(0,0,.5,1)); + float xradius = glm::distance(origin, xmax); + float yradius = glm::distance(origin, ymax); + float zradius = glm::distance(origin, zmax); + return glm::vec3(xradius, yradius, zradius); +} + +//LOOK: Example for generating a random point on an object using thrust. +//Generates a random point on a given cube +__host__ __device__ glm::vec3 getRandomPointOnCube(staticGeom cube, float randomSeed){ + + thrust::default_random_engine rng(hash(randomSeed)); + thrust::uniform_real_distribution u01(0,1); + thrust::uniform_real_distribution u02(-0.5,0.5); + + //get surface areas of sides + glm::vec3 radii = getRadiuses(cube); + float side1 = radii.x * radii.y * 4.0f; //x-y face + float side2 = radii.z * radii.y * 4.0f; //y-z face + float side3 = radii.x * radii.z* 4.0f; //x-z face + float totalarea = 2.0f * (side1+side2+side3); + + //pick random face, weighted by surface area + float russianRoulette = (float)u01(rng); + + glm::vec3 point = glm::vec3(.5,.5,.5); + + if(russianRoulette<(side1/totalarea)){ + //x-y face + point = glm::vec3((float)u02(rng), (float)u02(rng), .5); + }else if(russianRoulette<((side1*2)/totalarea)){ + //x-y-back face + point = glm::vec3((float)u02(rng), (float)u02(rng), -.5); + }else if(russianRoulette<(((side1*2)+(side2))/totalarea)){ + //y-z face + point = glm::vec3(.5, (float)u02(rng), (float)u02(rng)); + }else if(russianRoulette<(((side1*2)+(side2*2))/totalarea)){ + //y-z-back face + point = glm::vec3(-.5, (float)u02(rng), (float)u02(rng)); + }else if(russianRoulette<(((side1*2)+(side2*2)+(side3))/totalarea)){ + //x-z face + point = glm::vec3((float)u02(rng), .5, (float)u02(rng)); + }else{ + //x-z-back face + point = glm::vec3((float)u02(rng), -.5, (float)u02(rng)); + } + + glm::vec3 randPoint = multiplyMV(cube.transform, glm::vec4(point,1.0f)); + + return randPoint; + +} + +//TODO: IMPLEMENT THIS FUNCTION +//Generates a random point on a given sphere +__host__ __device__ glm::vec3 getRandomPointOnSphere(staticGeom sphere, float randomSeed) +{ + thrust::default_random_engine rng(hash(randomSeed)); + thrust::uniform_real_distribution u01(-1.0f, 1.0f); + float x1, x2; + do + { + x1 = (float)u01(rng); + x2 = (float)u01(rng); + }while(x1 * x1 + x2 * x2 >= 1.0f); + + return glm::vec3(2.0f * x1 * sqrt(1.0f - x1 * x1 - x2 * x2), 2.0f * x2 * sqrt(1.0f - x1 * x1 - x2 * x2), 1.0f - 2 * sqrt(x1 * x1 + x2 * x2)); +} + #endif \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 4e94892..7c3cd30 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,398 +1,451 @@ -// 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 -// Varun Sampath and Patrick Cozzi for GLSL Loading, from CIS565 Spring 2012 HW5 at the University of Pennsylvania: http://cis565-spring-2012.github.com/ -// Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com - -#include "main.h" - -//------------------------------- -//-------------MAIN-------------- -//------------------------------- - -int main(int argc, char** argv){ - - #ifdef __APPLE__ - // Needed in OSX to force use of OpenGL3.2 - glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3); - glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2); - glfwOpenWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); - glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); - #endif - - // Set up pathtracer stuff - bool loadedScene = false; - finishedRender = false; - - targetFrame = 0; - singleFrameMode = false; - - // Load scene file - for(int i=1; irenderCam; - width = renderCam->resolution[0]; - height = renderCam->resolution[1]; - - if(targetFrame>=renderCam->frames){ - cout << "Warning: Specified target frame is out of range, defaulting to frame 0." << endl; - targetFrame = 0; - } - - // Launch CUDA/GL - - #ifdef __APPLE__ - init(); - #else - init(argc, argv); - #endif - - initCuda(); - - initVAO(); - initTextures(); - - GLuint passthroughProgram; - passthroughProgram = initShader("shaders/passthroughVS.glsl", "shaders/passthroughFS.glsl"); - - glUseProgram(passthroughProgram); - glActiveTexture(GL_TEXTURE0); - - #ifdef __APPLE__ - // send into GLFW main loop - while(1){ - display(); - if (glfwGetKey(GLFW_KEY_ESC) == GLFW_PRESS || !glfwGetWindowParam( GLFW_OPENED )){ - exit(0); - } - } - - glfwTerminate(); - #else - glutDisplayFunc(display); - glutKeyboardFunc(keyboard); - - glutMainLoop(); - #endif - return 0; -} - -//------------------------------- -//---------RUNTIME STUFF--------- -//------------------------------- - -void runCuda(){ - - // Map OpenGL buffer object for writing from CUDA on a single GPU - // No data is moved (Win & Linux). When mapped to CUDA, OpenGL should not use this buffer - - if(iterationsiterations){ - uchar4 *dptr=NULL; - iterations++; - cudaGLMapBufferObject((void**)&dptr, pbo); - - //pack geom and material arrays - geom* geoms = new geom[renderScene->objects.size()]; - material* materials = new material[renderScene->materials.size()]; - - for(int i=0; iobjects.size(); i++){ - geoms[i] = renderScene->objects[i]; - } - for(int i=0; imaterials.size(); i++){ - materials[i] = renderScene->materials[i]; - } - - - // execute the kernel - cudaRaytraceCore(dptr, renderCam, targetFrame, iterations, materials, renderScene->materials.size(), geoms, renderScene->objects.size() ); - - // unmap buffer object - cudaGLUnmapBufferObject(pbo); - }else{ - - if(!finishedRender){ - //output image file - 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]); - } - } - - gammaSettings gamma; - gamma.applyGamma = true; - gamma.gamma = 1.0/2.2; - gamma.divisor = renderCam->iterations; - outputImage.setGammaSettings(gamma); - 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; - finishedRender = true; - if(singleFrameMode==true){ - cudaDeviceReset(); - exit(0); - } - } - if(targetFrameframes-1){ - - //clear image buffer and move onto next frame - targetFrame++; - iterations = 0; - for(int i=0; iresolution.x*renderCam->resolution.y; i++){ - renderCam->image[i] = glm::vec3(0,0,0); - } - cudaDeviceReset(); - finishedRender = false; - } - } - -} - -#ifdef __APPLE__ - - void display(){ - runCuda(); - - string title = "CIS565 Render | " + utilityCore::convertIntToString(iterations) + " Frames"; - glfwSetWindowTitle(title.c_str()); - - glBindBuffer( GL_PIXEL_UNPACK_BUFFER, pbo); - glBindTexture(GL_TEXTURE_2D, displayImage); - glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, - GL_RGBA, GL_UNSIGNED_BYTE, NULL); - - glClear(GL_COLOR_BUFFER_BIT); - - // VAO, shader program, and texture already bound - glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0); - - glfwSwapBuffers(); - } - -#else - - void display(){ - runCuda(); - - string title = "565Raytracer | " + utilityCore::convertIntToString(iterations) + " Frames"; - glutSetWindowTitle(title.c_str()); - - glBindBuffer( GL_PIXEL_UNPACK_BUFFER, pbo); - glBindTexture(GL_TEXTURE_2D, displayImage); - glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, - GL_RGBA, GL_UNSIGNED_BYTE, NULL); - - glClear(GL_COLOR_BUFFER_BIT); - - // VAO, shader program, and texture already bound - glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0); - - glutPostRedisplay(); - glutSwapBuffers(); - } - - void keyboard(unsigned char key, int x, int y) - { - std::cout << key << std::endl; - switch (key) - { - case(27): - exit(1); - break; - } - } - -#endif - - - - -//------------------------------- -//----------SETUP STUFF---------- -//------------------------------- - -#ifdef __APPLE__ - void init(){ - - if (glfwInit() != GL_TRUE){ - shut_down(1); - } - - // 16 bit color, no depth, alpha or stencil buffers, windowed - if (glfwOpenWindow(width, height, 5, 6, 5, 0, 0, 0, GLFW_WINDOW) != GL_TRUE){ - shut_down(1); - } - - // Set up vertex array object, texture stuff - initVAO(); - initTextures(); - } -#else - void init(int argc, char* argv[]){ - glutInit(&argc, argv); - glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); - glutInitWindowSize(width, height); - glutCreateWindow("565Raytracer"); - - // Init GLEW - glewInit(); - GLenum err = glewInit(); - if (GLEW_OK != err) - { - /* Problem: glewInit failed, something is seriously wrong. */ - std::cout << "glewInit failed, aborting." << std::endl; - exit (1); - } - - initVAO(); - initTextures(); - } -#endif - -void initPBO(GLuint* pbo){ - if (pbo) { - // set up vertex data parameter - int num_texels = width*height; - int num_values = num_texels * 4; - int size_tex_data = sizeof(GLubyte) * num_values; - - // Generate a buffer ID called a PBO (Pixel Buffer Object) - glGenBuffers(1,pbo); - // Make this the current UNPACK buffer (OpenGL is state-based) - glBindBuffer(GL_PIXEL_UNPACK_BUFFER, *pbo); - // Allocate data for the buffer. 4-channel 8-bit image - glBufferData(GL_PIXEL_UNPACK_BUFFER, size_tex_data, NULL, GL_DYNAMIC_COPY); - cudaGLRegisterBufferObject( *pbo ); - } -} - -void initCuda(){ - // Use device with highest Gflops/s - cudaGLSetGLDevice( cutGetMaxGflopsDeviceId() ); - - initPBO(&pbo); - - // Clean up on program exit - atexit(cleanupCuda); - - runCuda(); -} - -void initTextures(){ - glGenTextures(1,&displayImage); - glBindTexture(GL_TEXTURE_2D, displayImage); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_BGRA, - GL_UNSIGNED_BYTE, NULL); -} - -void initVAO(void){ - GLfloat vertices[] = - { - -1.0f, -1.0f, - 1.0f, -1.0f, - 1.0f, 1.0f, - -1.0f, 1.0f, - }; - - GLfloat texcoords[] = - { - 1.0f, 1.0f, - 0.0f, 1.0f, - 0.0f, 0.0f, - 1.0f, 0.0f - }; - - GLushort indices[] = { 0, 1, 3, 3, 1, 2 }; - - GLuint vertexBufferObjID[3]; - glGenBuffers(3, vertexBufferObjID); - - glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObjID[0]); - glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); - glVertexAttribPointer((GLuint)positionLocation, 2, GL_FLOAT, GL_FALSE, 0, 0); - glEnableVertexAttribArray(positionLocation); - - glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObjID[1]); - glBufferData(GL_ARRAY_BUFFER, sizeof(texcoords), texcoords, GL_STATIC_DRAW); - glVertexAttribPointer((GLuint)texcoordsLocation, 2, GL_FLOAT, GL_FALSE, 0, 0); - glEnableVertexAttribArray(texcoordsLocation); - - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vertexBufferObjID[2]); - glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW); -} - -GLuint initShader(const char *vertexShaderPath, const char *fragmentShaderPath){ - GLuint program = glslUtility::createProgram(vertexShaderPath, fragmentShaderPath, attributeLocations, 2); - GLint location; - - glUseProgram(program); - - if ((location = glGetUniformLocation(program, "u_image")) != -1) - { - glUniform1i(location, 0); - } - - return program; -} - -//------------------------------- -//---------CLEANUP STUFF--------- -//------------------------------- - -void cleanupCuda(){ - if(pbo) deletePBO(&pbo); - if(displayImage) deleteTexture(&displayImage); -} - -void deletePBO(GLuint* pbo){ - if (pbo) { - // unregister this buffer object with CUDA - cudaGLUnregisterBufferObject(*pbo); - - glBindBuffer(GL_ARRAY_BUFFER, *pbo); - glDeleteBuffers(1, pbo); - - *pbo = (GLuint)NULL; - } -} - -void deleteTexture(GLuint* tex){ - glDeleteTextures(1, tex); - *tex = (GLuint)NULL; -} - -void shut_down(int return_code){ - #ifdef __APPLE__ - glfwTerminate(); - #endif - exit(return_code); -} +// 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 +// Varun Sampath and Patrick Cozzi for GLSL Loading, from CIS565 Spring 2012 HW5 at the University of Pennsylvania: http://cis565-spring-2012.github.com/ +// Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com + +#include "main.h" +//#define MOTION_BLUR + +//------------------------------- +//-------------MAIN-------------- +//------------------------------- + +int main(int argc, char** argv){ + + #ifdef __APPLE__ + // Needed in OSX to force use of OpenGL3.2 + glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3); + glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2); + glfwOpenWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); + glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); + #endif + + // Set up pathtracer stuff + bool loadedScene = false; + finishedRender = false; + + targetFrame = 0; + singleFrameMode = false; + + // Load scene file + for(int i=1; irenderCam); + width = renderCam->resolution[0]; + height = renderCam->resolution[1]; + + if(targetFrame>=renderCam->frames){ + cout << "Warning: Specified target frame is out of range, defaulting to frame 0." << endl; + targetFrame = 0; + } + + // Launch CUDA/GL + + #ifdef __APPLE__ + init(); + #else + init(argc, argv); + #endif + + initCuda(); + + initVAO(); + initTextures(); + + GLuint passthroughProgram; + passthroughProgram = initShader("shaders/passthroughVS.glsl", "shaders/passthroughFS.glsl"); + + glUseProgram(passthroughProgram); + glActiveTexture(GL_TEXTURE0); + + #ifdef __APPLE__ + // send into GLFW main loop + while(1){ + display(); + if (glfwGetKey(GLFW_KEY_ESC) == GLFW_PRESS || !glfwGetWindowParam( GLFW_OPENED )){ + exit(0); + } + } + + glfwTerminate(); + #else + glutDisplayFunc(display); + glutKeyboardFunc(keyboard); + + glutMainLoop(); + #endif + return 0; +} + +//------------------------------- +//---------RUNTIME STUFF--------- +//------------------------------- + +void runCuda(){ + + // Map OpenGL buffer object for writing from CUDA on a single GPU + // No data is moved (Win & Linux). When mapped to CUDA, OpenGL should not use this buffer + + if((unsigned int)iterations < renderCam->iterations){ + uchar4 *dptr=NULL; + ++iterations; + cudaGLMapBufferObject((void**)&dptr, pbo); + + //pack geom and material arrays + unsigned int objectsSize = renderScene->objects.size(), materialsSize = renderScene->materials.size(), lightsSize = renderScene->lights.size(); + geom* geoms = new geom[objectsSize]; + material* materials = new material[materialsSize]; + light* lights = new light[lightsSize]; + + //MOTION BLUR + //Need to carefully decide which object to motion blur, else program might crash +#ifdef MOTION_BLUR + renderScene->objects[7].translations[0].x += 0.0005f; + glm::mat4 transform = utilityCore::buildTransformationMatrix(renderScene->objects[7].translations[0], renderScene->objects[7].rotations[0], + renderScene->objects[7].scales[0]); + renderScene->objects[7].transforms[0] = utilityCore::glmMat4ToCudaMat4(transform); + renderScene->objects[7].inverseTransforms[0] = utilityCore::glmMat4ToCudaMat4(glm::inverse(transform)); +#endif + //MOTION BLUR + + + for(unsigned int i=0; i< objectsSize; ++i){ + geoms[i] = renderScene->objects[i]; + } + for(unsigned int i=0; i< materialsSize; ++i){ + materials[i] = renderScene->materials[i]; + } + for(unsigned int i=0; i< lightsSize; ++i){ + lights[i] = renderScene->lights[i]; + } + + + // execute the kernel + cudaRaytraceCore(dptr, renderCam, targetFrame, iterations, materials, materialsSize, geoms, objectsSize, lights, lightsSize); + + // unmap buffer object + cudaGLUnmapBufferObject(pbo); + }else{ + + if(!finishedRender){ + //output image file + image outputImage(renderCam->resolution.x, renderCam->resolution.y); + + for(int x=0; xresolution.x; ++x){ + for(int y=0; yresolution.y; ++y){ + int index = (renderCam->resolution.x - 1 - x) + (y * renderCam->resolution.x); + outputImage.writePixelRGB(x,y,renderCam->image[index]); + } + } + + /*for(int x = renderCam->resolution.x - 1; x >= 0; --x){ + for(int y = renderCam->resolution.y - 1; y >= 0; --y){ + int index = x + (y * renderCam->resolution.x); + outputImage.writePixelRGB(x, y, renderCam->image[index]); + } + }*/ + + /*gammaSettings gamma; + gamma.applyGamma = true; + gamma.gamma = 1.0/2.2; + gamma.divisor = renderCam->iterations; + outputImage.setGammaSettings(gamma);*/ + + //string filename = renderCam->imageName; + string filename = "C:\\Users\\Aparajith Sairam\\Documents\\MS CGGT\\GPU Fall 2012\\Project2-Pathtracer\\renders\\sampleScene.bmp"; + + 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; + finishedRender = true; + if(singleFrameMode==true){ + cudaDeviceReset(); + exit(0); + } + } + if(targetFrame < renderCam->frames - 1){ + + //clear image buffer and move onto next frame + ++targetFrame; + iterations = 0; + for(int i=0; iresolution.x*renderCam->resolution.y; ++i){ + renderCam->image[i] = glm::vec3(0,0,0); + } + cudaDeviceReset(); + finishedRender = false; + } + } + +} + +#ifdef __APPLE__ + + void display(){ + runCuda(); + + string title = "CIS565 Render | " + utilityCore::convertIntToString(iterations) + " Frames"; + glfwSetWindowTitle(title.c_str()); + + glBindBuffer( GL_PIXEL_UNPACK_BUFFER, pbo); + glBindTexture(GL_TEXTURE_2D, displayImage); + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, + GL_RGBA, GL_UNSIGNED_BYTE, NULL); + + glClear(GL_COLOR_BUFFER_BIT); + + // VAO, shader program, and texture already bound + glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0); + + glfwSwapBuffers(); + } + +#else + + void display(){ + runCuda(); + + string title = "Aparajith's GPU Path Tracer | " + utilityCore::convertIntToString(iterations) + " Frames"; + glutSetWindowTitle(title.c_str()); + + glBindBuffer( GL_PIXEL_UNPACK_BUFFER, pbo); + glBindTexture(GL_TEXTURE_2D, displayImage); + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, + GL_RGBA, GL_UNSIGNED_BYTE, NULL); + + glClear(GL_COLOR_BUFFER_BIT); + + // VAO, shader program, and texture already bound + glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0); + + glutPostRedisplay(); + glutSwapBuffers(); + } + + void keyboard(unsigned char key, int x, int y) + { + std::cout << key << std::endl; + glm::mat4 transform; + switch (key) + { + case 'd': + renderCam[0].positions[0].x += 1.0f; + iterations = 0; + break; + case 'a': + renderCam[0].positions[0].x -= 1.0f; + iterations = 0; + break; + case 'w': + renderCam[0].positions[0].z -= 1.0f; + iterations = 0; + break; + case 's': + renderCam[0].positions[0].z += 1.0f; + iterations = 0; + break; + case 'r': + renderCam[0].positions[0].y += 1.0f; + iterations = 0; + break; + case 'f': + renderCam[0].positions[0].y -= 1.0f; + iterations = 0; + break; + case(27): + exit(1); + break; + } + } + +#endif + + + + +//------------------------------- +//----------SETUP STUFF---------- +//------------------------------- + +#ifdef __APPLE__ + void init(){ + + if (glfwInit() != GL_TRUE){ + shut_down(1); + } + + // 16 bit color, no depth, alpha or stencil buffers, windowed + if (glfwOpenWindow(width, height, 5, 6, 5, 0, 0, 0, GLFW_WINDOW) != GL_TRUE){ + shut_down(1); + } + + // Set up vertex array object, texture stuff + initVAO(); + initTextures(); + } +#else + void init(int argc, char* argv[]){ + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); + glutInitWindowSize(width, height); + glutCreateWindow("Aparajith's GPU Path Tracer"); + + // Init GLEW + glewInit(); + GLenum err = glewInit(); + if (GLEW_OK != err) + { + /* Problem: glewInit failed, something is seriously wrong. */ + std::cout << "glewInit failed, aborting." << std::endl; + exit (1); + } + + initVAO(); + initTextures(); + } +#endif + +void initPBO(GLuint* pbo){ + if (pbo) { + // set up vertex data parameter + int num_texels = width*height; + int num_values = num_texels * 4; + int size_tex_data = sizeof(GLubyte) * num_values; + + // Generate a buffer ID called a PBO (Pixel Buffer Object) + glGenBuffers(1,pbo); + // Make this the current UNPACK buffer (OpenGL is state-based) + glBindBuffer(GL_PIXEL_UNPACK_BUFFER, *pbo); + // Allocate data for the buffer. 4-channel 8-bit image + glBufferData(GL_PIXEL_UNPACK_BUFFER, size_tex_data, NULL, GL_DYNAMIC_COPY); + cudaGLRegisterBufferObject( *pbo ); + } +} + +void initCuda(){ + // Use device with highest Gflops/s + cudaGLSetGLDevice( cutGetMaxGflopsDeviceId() ); + + initPBO(&pbo); + + // Clean up on program exit + atexit(cleanupCuda); + + runCuda(); +} + +void initTextures(){ + glGenTextures(1,&displayImage); + glBindTexture(GL_TEXTURE_2D, displayImage); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_BGRA, + GL_UNSIGNED_BYTE, NULL); +} + +void initVAO(void){ + GLfloat vertices[] = + { + -1.0f, -1.0f, + 1.0f, -1.0f, + 1.0f, 1.0f, + -1.0f, 1.0f, + }; + + GLfloat texcoords[] = + { + 1.0f, 1.0f, + 0.0f, 1.0f, + 0.0f, 0.0f, + 1.0f, 0.0f + }; + + GLushort indices[] = { 0, 1, 3, 3, 1, 2 }; + + GLuint vertexBufferObjID[3]; + glGenBuffers(3, vertexBufferObjID); + + glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObjID[0]); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); + glVertexAttribPointer((GLuint)positionLocation, 2, GL_FLOAT, GL_FALSE, 0, 0); + glEnableVertexAttribArray(positionLocation); + + glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObjID[1]); + glBufferData(GL_ARRAY_BUFFER, sizeof(texcoords), texcoords, GL_STATIC_DRAW); + glVertexAttribPointer((GLuint)texcoordsLocation, 2, GL_FLOAT, GL_FALSE, 0, 0); + glEnableVertexAttribArray(texcoordsLocation); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vertexBufferObjID[2]); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW); +} + +GLuint initShader(const char *vertexShaderPath, const char *fragmentShaderPath){ + GLuint program = glslUtility::createProgram(vertexShaderPath, fragmentShaderPath, attributeLocations, 2); + GLint location; + + glUseProgram(program); + + if ((location = glGetUniformLocation(program, "u_image")) != -1) + { + glUniform1i(location, 0); + } + + return program; +} + +//------------------------------- +//---------CLEANUP STUFF--------- +//------------------------------- + +void cleanupCuda(){ + if(pbo) deletePBO(&pbo); + if(displayImage) deleteTexture(&displayImage); +} + +void deletePBO(GLuint* pbo){ + if (pbo) { + // unregister this buffer object with CUDA + cudaGLUnregisterBufferObject(*pbo); + + glBindBuffer(GL_ARRAY_BUFFER, *pbo); + glDeleteBuffers(1, pbo); + + *pbo = (GLuint)NULL; + } +} + +void deleteTexture(GLuint* tex){ + glDeleteTextures(1, tex); + *tex = (GLuint)NULL; +} + +void shut_down(int return_code){ + #ifdef __APPLE__ + glfwTerminate(); + #endif + exit(return_code); +} diff --git a/src/raytraceKernel.cu b/src/raytraceKernel.cu index d473c89..81a7965 100755 --- a/src/raytraceKernel.cu +++ b/src/raytraceKernel.cu @@ -1,227 +1,626 @@ -// 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 "utilities.h" -#include "raytraceKernel.h" -#include "intersections.h" -#include "interactions.h" -#include -#include "glm/glm.hpp" - -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)); -} - -//Kernel that does the initial raycast from the camera and caches the result. "First bounce cache, second bounce thrash!" -__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){ - - int index = x + (y * resolution.x); - - thrust::default_random_engine rng(hash(index*time)); - thrust::uniform_real_distribution u01(0,1); - - //standard camera raycast stuff - glm::vec3 E = eye; - glm::vec3 C = view; - glm::vec3 U = up; - float fovx = fov.x; - float fovy = fov.y; - - float CD = glm::length(C); - - glm::vec3 A = glm::cross(C, U); - glm::vec3 B = glm::cross(A, C); - glm::vec3 M = E+C; - glm::vec3 H = (A*float(CD*tan(fovx*(PI/180))))/float(glm::length(A)); - glm::vec3 V = (B*float(CD*tan(-fovy*(PI/180))))/float(glm::length(B)); - - float sx = (x)/(resolution.x-1); - float sy = (y)/(resolution.y-1); - - glm::vec3 P = M + (((2*sx)-1)*H) + (((2*sy)-1)*V); - glm::vec3 PmE = P-E; - glm::vec3 R = E + (float(200)*(PmE))/float(glm::length(PmE)); - - glm::vec3 direction = glm::normalize(R); - //major performance cliff at this point, TODO: find out why! - ray r; - r.origin = eye; - r.direction = direction; - 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* materials, int numberOfMaterials){ - - int x = (blockIdx.x * blockDim.x) + threadIdx.x; - int y = (blockIdx.y * blockDim.y) + threadIdx.y; - int index = x + (y * resolution.x); - - ray r = raycastFromCameraKernel(resolution, time, x, y, cam.position, cam.view, cam.up, cam.fov); - - if((x<=resolution.x && y<=resolution.y)){ - - float MAX_DEPTH = 100000000000000000; - float depth = MAX_DEPTH; - - for(int i=0; i-EPSILON){ - MAX_DEPTH = depth; - colors[index] = materials[geoms[i].materialid].color; - } - } - - - - //colors[index] = generateRandomNumberFromThread(resolution, time, x, y); - } -} - - -//TODO: FINISH THIS FUNCTION -// 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; - - //kernel launches - raytraceRay<<>>(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 ); - cudaFree( cudamaterials ); - delete [] geomList; - - // make certain the kernel has completed - cudaThreadSynchronize(); - - checkCUDAError("Kernel failed!"); -} +// 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 +#include +#include +#include "sceneStructs.h" +#include +#include "glm/glm.hpp" +#include "utilities.h" +#include "raytraceKernel.h" +#include "intersections.h" +#include "interactions.h" +#include + + +//#define DEPTH_OF_FIELD +// DO NOT set traceDepth to 1, else program would crash on account of x % 0 operation +#define traceDepth 10 + +__host__ __device__ int findNearestPrimitiveInRay(const staticGeom const *geoms, int numberOfGeoms, const ray &rt, glm::vec3 &intersectionPoint, glm::vec3 &normal); +__host__ __device__ int calculateBSDF(ray& rt, const glm::vec3 &intersectionPoint, const glm::vec3 &normal, glm::vec3 emittedColor, + AbsorptionAndScatteringProperties& currentAbsorptionAndScattering, + glm::vec3& color, glm::vec3& unabsorbedColor, const material &m, const staticGeom const *geoms, + const int numberOfGeoms, const int geomIndex, const float randomNumber1, const float randomNumber2); + +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(const glm::vec2 &resolution, float time, const int x, const int y, const glm::vec3 &eye, const glm::vec3 &View, + const glm::vec3 &Up, const glm::vec2 &fov) +{ + ray r; + r.origin = eye; + + // Distance of View Plane from eye + float tanfovy = tan(fov.y); + float dist = (resolution.y / 2.0f) / tanfovy; + glm::vec3 view = glm::normalize(View); + glm::vec3 up = glm::normalize(Up); + glm::vec3 c = dist * view; + glm::vec3 a = glm::cross(view, up); + glm::vec3 b = glm::cross(a, view); + + //Center of screen + glm::vec3 m = c + eye; + + //Using same vector a instead of a separate vector h + a = (resolution.x / 2.0f) * a; + + //Using same vector b instead of a separate vector v + b = (resolution.y / 2.0f) * b; + + //Anti-Aliasing + thrust::default_random_engine rng(hash((x + y * resolution.x + 100.0f) * (time + 100.0f))); + thrust::uniform_real_distribution u05(-0.5f, 0.5f); + float distortionInX = u05(rng); + float distortionInY = u05(rng); + + //Point in space towards which ray has to be shot + //glm::vec3 p = m + (2.0f * x / (resolution.x - 1.0f) - 1.0f) * a + (2.0f * y / (resolution.y - 1.0f) - 1.0f) * b; + glm::vec3 p = m + (2.0f * ((float)x + distortionInX) / (resolution.x - 1.0f) - 1.0f) * a + (2.0f * ((float)y + distortionInY) / (resolution.y - 1.0f) - 1.0f) * b; + r.direction = glm::normalize(p - eye); + //r.direction = glm::normalize(r.direction); + + //Depth of Field +#ifdef DEPTH_OF_FIELD + float focalLength = 12.0f; + float apertureWidth = 0.75f; + thrust::uniform_real_distribution u001(-apertureWidth, apertureWidth); + float cameraShake = u001(rng); + + glm::vec3 focalPlaneCenter = view * focalLength + eye; + float lambda; + if(fabs(r.direction.z) >= 0.001f) + { + lambda = (focalPlaneCenter.z - eye.z) / r.direction.z; + } + else if(fabs(r.direction.y) >= 0.001f) + { + lambda = (focalPlaneCenter.y - eye.y) / r.direction.y; + } + else if(fabs(r.direction.x) >= 0.001f) + { + lambda = (focalPlaneCenter.x - eye.x) / r.direction.x; + } + glm::vec3 intersectionPointOnFocalPlane = eye + lambda * r.direction; + + glm::vec3 newEyePos; + if((int)time % 2 == 0) + { + newEyePos = eye + a * (2.0f * cameraShake) / resolution.x; + } + else + { + newEyePos = eye + b * (2.0f * cameraShake) / resolution.y; + } + + r.direction = glm::normalize(intersectionPointOnFocalPlane - newEyePos); + r.origin = newEyePos; +#endif + + return r; +} + +__global__ void initialRaysGenerator(cameraData cam, ray *rays, glm::vec3* image, const int iterations) +{ + int x = (blockIdx.x * blockDim.x) + threadIdx.x; + int y = (blockIdx.y * blockDim.y) + threadIdx.y; + if(x <= cam.resolution.x && y <= cam.resolution.y) + { + int index = x + (y * cam.resolution.x); + int temp = (cam.resolution.x - x) + ((cam.resolution.y - y) * cam.resolution.x); + rays[index] = raycastFromCameraKernel(cam.resolution, (float)iterations, x, y, cam.position, cam.view, cam.up, cam.fov); + rays[index].pixelIndex = temp; + rays[index].survivalProbability = 1.0f; + + image[temp] = glm::vec3(1, 1, 1); + } + //__syncthreads(); +} + +//Kernel that blacks out a given image buffer +__global__ void clearImage(const 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); + } + //__syncthreads(); +} + +//Kernel that writes the image to the OpenGL PBO directly. +__global__ void sendImageToPBO(uchar4* PBOpos, const glm::vec2 resolution, glm::vec3* image, glm::vec3 *currentFrame, int iterations){ + + 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; + image[index].x = ((float)image[index].x * (float)(iterations - 1) + currentFrame[index].x) / iterations; + image[index].y = ((float)image[index].y * (float)(iterations - 1) + currentFrame[index].y) / iterations; + image[index].z = ((float)image[index].z * (float)(iterations - 1) + currentFrame[index].z) / iterations; + + color.x = image[index].x * 255.0f; + color.y = image[index].y * 255.0f; + color.z = image[index].z * 255.0f; + + if(color.x>255.0f){ + color.x = 255.0f; + } + + if(color.y>255.0f){ + color.y = 255.0f; + } + + if(color.z>255.0f){ + color.z = 255.0f; + } + + // Each thread writes one pixel location in the texture (textel) + PBOpos[index].w = (unsigned char)0; + PBOpos[index].x = (unsigned char)color.x; + PBOpos[index].y = (unsigned char)color.y; + PBOpos[index].z = (unsigned char)color.z; + } +} + +__global__ void raytraceRay(ray *rays, float time, cameraData cam, int rayDepth, glm::vec3* colors, + staticGeom* geoms, unsigned int numberOfGeoms, material *materials, unsigned int numberOfMaterials, light *lights, unsigned int numberOfLights) +{ + int rayIndex = blockIdx.x * blockDim.x + threadIdx.x; + int pixelIndex = rays[rayIndex].pixelIndex; + + if(rayIndex <= cam.resolution.x * cam.resolution.y) + { + if(pixelIndex == -10000) + { + return; + } + + if(rayDepth == traceDepth + 1) + { + colors[pixelIndex] = glm::vec3(0, 0, 0); + return; + } + + ray rt = rays[rayIndex]; + + glm::vec3 intersectionPoint, normal; + int geomIndex = findNearestPrimitiveInRay(geoms, numberOfGeoms, rt, intersectionPoint, normal); + if(geomIndex != -1) + { + material m = materials[geoms[geomIndex].materialid]; + //Light Source + if(m.emittance >= 1.0f) + { + colors[pixelIndex] *= (m.color * m.emittance); + rays[rayIndex].pixelIndex = -10000; + } + + //Non-light Object + else + { + AbsorptionAndScatteringProperties absorptionAndScatteringProperties; + thrust::default_random_engine rng(hash(time * rayDepth * rayIndex)); + thrust::uniform_real_distribution u01(0,1); + float randomNumber1 = (float)u01(rng); + float randomNumber2 = (float)u01(rng); + + glm::vec3 color(1, 1, 1); + rt = rays[rayIndex]; + glm::vec3 unabsorbed(0, 0, 0); + calculateBSDF(rt, intersectionPoint, normal, glm::vec3(0, 0, 0), absorptionAndScatteringProperties, color, unabsorbed, + m, geoms, numberOfGeoms, geomIndex, randomNumber1, randomNumber2); + rays[rayIndex] = rt; + colors[pixelIndex] *= color; + } + } + //Background + else + { + colors[pixelIndex] = glm::vec3(0, 0, 0); + rays[rayIndex].pixelIndex = -10000; + } + } + //__syncthreads(); +} + + +//TODO: FINISH THIS FUNCTION +// 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, + light* lights, int numberOfLights) +{ + // 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); + + //image for current frame + glm::vec3 *currentFrame = NULL; + cudaMalloc((void**)¤tFrame, (int)renderCam->resolution.x*(int)renderCam->resolution.y*sizeof(glm::vec3)); + + //package geometry 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; + + //Packaging rays + int numberOfRays = (int)cam.resolution.x * (int)cam.resolution.y; + ray *cudaRays = NULL; + cudaMalloc((void**)&cudaRays, numberOfRays * sizeof(ray)); + + //kernel launches + initialRaysGenerator<<>>(cam, cudaRays, currentFrame, iterations); + + //kernel launches + unsigned int numberOfThreadsPerBlockTrace = 64; + unsigned int numberOfBlocksTrace = (unsigned int)ceil((float)numberOfRays / numberOfThreadsPerBlockTrace); + + if(iterations == 1) + { + clearImage<<>>(renderCam->resolution, cudaimage); + } + + int tempo = traceDepth / 2; + + for(int i = 1; i <= traceDepth + 1; ++i) + { + raytraceRay<<>>(cudaRays, (float)iterations, cam, i, currentFrame, cudageoms, (unsigned int)numberOfGeoms, cudaMaterials, + (unsigned int)numberOfMaterials, cudaLights, (unsigned int)numberOfLights); + if(i % (tempo) == 0) + { + thrust::device_ptr in_dev_ptr(cudaRays); + thrust::device_ptr out_dev_ptr; + out_dev_ptr = thrust::remove_if(in_dev_ptr, in_dev_ptr + numberOfRays, is_garbage_ray()); + numberOfRays = out_dev_ptr.get() - in_dev_ptr.get(); + numberOfBlocksTrace = (unsigned int)ceil((float)numberOfRays / numberOfThreadsPerBlockTrace); + } + } + + sendImageToPBO<<>>(PBOpos, renderCam->resolution, cudaimage, currentFrame, iterations); + + //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; + + //Freeing memory from materials, lights and rays + cudaFree(cudaMaterials); + //cudaFree(cudaLights); + cudaFree(cudaRays); + cudaFree(currentFrame); + + // make certain the kernel has completed + cudaThreadSynchronize(); + + checkCUDAError("Kernel failed!"); +} + + +//TODO (PARTIALLY OPTIONAL): IMPLEMENT THIS FUNCTION +//returns 0 if diffuse scatter, 1 if reflected, 2 if transmitted. +__host__ __device__ int calculateBSDF(ray& rt, const glm::vec3 &intersectionPoint, const glm::vec3 &normal, glm::vec3 emittedColor, + AbsorptionAndScatteringProperties& currentAbsorptionAndScattering, + glm::vec3& color, glm::vec3& unabsorbedColor, const material &m, const staticGeom const *geoms, + const int numberOfGeoms, const int geomIndex, const float randomNumber1, const float randomNumber2) +{ + //Deciding the nature of secondary ray + int nextRay; // Diffuse -> 0, Reflect -> 1, Refract -> 2 + float reflectivity = m.hasReflective; + float refractivity = m.hasRefractive; + ////Purely Diffuse + //if(m.hasReflective <= 0.001f && m.hasRefractive <= 0.001f) + //{ + // nextRay = 0; + //} + ////Has reflection / refraction + //else + //{ + // float diffuseProb = (m.color.r + m.color.g + m.color.b) / 3.0f; + // //Reflective + // if(m.hasRefractive <= 0.001f) + // { + // float totalProb = diffuseProb + m.hasReflective; + // m.hasReflective /= totalProb; + // if(m.hasReflective > randomNumber1) + // { + // nextRay = 1; + // } + // else + // { + // nextRay = 0; + // } + // } + // //Refractive + // else if(m.hasReflective <= 0.001f) + // { + // float totalProb = diffuseProb + m.hasRefractive; + // m.hasRefractive /= totalProb; + // if(m.hasRefractive > randomNumber1) + // { + // nextRay = 2; + // } + // else + // { + // nextRay = 0; + // } + // } + // //Both Reflective and Refractive + // else + // { + // float totalProb = diffuseProb + m.hasReflective + m.hasRefractive; + // if(totalProb <= 0.001f) + // { + // nextRay = 0; + // } + // else + // { + // m.hasReflective /= totalProb; + // m.hasRefractive /= totalProb; + // diffuseProb /= totalProb; + // if(m.hasRefractive > randomNumber1) + // { + // nextRay = 2; + // } + // else if(m.hasReflective > randomNumber2) + // { + // nextRay = 1; + // } + // else + // { + // nextRay = 0; + // } + // } + // } + //} + + float diffuseProb = (m.color.x + m.color.y + m.color.z) / 3.0f; + float totalProb = diffuseProb + m.hasReflective + m.hasRefractive; + if(totalProb <= 0.001f) + { + nextRay = 0; + } + else + { + reflectivity /= totalProb; + refractivity /= totalProb; + if(refractivity > randomNumber1) + { + nextRay = 2; + } + else if(reflectivity > randomNumber2) + { + nextRay = 1; + } + else + { + nextRay = 0; + } + } + + + if(nextRay == 1) + { + float KR = 1.0f; //For attenuating reflection + glm::vec3 reflectedRay = calculateReflectionDirection(normal, rt.direction); + rt.origin = intersectionPoint + reflectedRay * 0.01f; + rt.direction = reflectedRay; + + //The diffuse component of object + if(!(m.color.x <= 0.001f && m.color.y <= 0.001f && m.color.z <= 0.001f)) + { + color *= m.color; + color *= KR; + } + + return 1; + } + else if(nextRay == 2) + { + float KRef = 1.0f; //For attenuating refraction + glm::vec3 reflectedRay = calculateReflectionDirection(normal, rt.direction); + const float mediumRefractiveIndex = 1.0f; + glm::vec3 refractedRayDirection = calculateTransmissionDirection(normal, rt.direction, mediumRefractiveIndex, m.indexOfRefraction); + + //This check is needed only if space is filled with a material of high-refractive index + if(refractedRayDirection.x == -10000 && refractedRayDirection.y == -10000 && refractedRayDirection.z == -10000) + { + //Reflection, angle > critical angle + rt.origin = intersectionPoint + reflectedRay * 0.01f; + rt.direction = reflectedRay; + } + else + { + Fresnel fresnel = calculateFresnel(normal, rt.direction, mediumRefractiveIndex, m.indexOfRefraction, + refractedRayDirection); + if(fresnel.transmissionCoefficient > randomNumber1) + { + ray refractedRay; + refractedRay.direction = refractedRayDirection; + refractedRay.origin = intersectionPoint + refractedRayDirection * 0.01f; + glm::vec3 internalIntersectionPoint; + glm::vec3 internalIntersectionNormal; + int self = findNearestPrimitiveInRay(geoms, numberOfGeoms, refractedRay, internalIntersectionPoint, internalIntersectionNormal); + + //This will happen if eye is inside a primitive + if(self != geomIndex) + { + rt.origin = intersectionPoint + refractedRayDirection * 0.01f; + rt.direction = refractedRayDirection; + } + else + { + glm::vec3 refractedRayDirection2 = calculateTransmissionDirection(-internalIntersectionNormal, refractedRayDirection, + m.indexOfRefraction, mediumRefractiveIndex); + if(refractedRayDirection2.x == -10000 && refractedRayDirection2.y == -10000 && refractedRayDirection2.z == -10000) + { + //TIR, ray gets trapped inside object + //rays[rayIndex].pixelIndex = -10000; + rt.direction = calculateReflectionDirection(-internalIntersectionNormal, refractedRayDirection); + rt.origin = internalIntersectionPoint + rt.direction * 0.01f; + } + else + { + fresnel = calculateFresnel(-internalIntersectionNormal, refractedRayDirection, m.indexOfRefraction, mediumRefractiveIndex, refractedRayDirection2); + if(fresnel.transmissionCoefficient > randomNumber2) + { + rt.origin = internalIntersectionPoint + refractedRayDirection2 * 0.01f; + rt.direction = refractedRayDirection2; + } + else + { + rt.direction = calculateReflectionDirection(-internalIntersectionNormal, refractedRayDirection); + rt.origin = internalIntersectionPoint + rt.direction * 0.01f; + } + } + } + } + else + { + rt.origin = intersectionPoint + reflectedRay * 0.01f; + rt.direction = reflectedRay; + } + } + + //The diffuse component of object + if(!(m.color.x <= 0.001f && m.color.y <= 0.001f && m.color.z <= 0.001f)) + { + color *= m.color; + color *= KRef; + } + + return 2; + } + else + { + if(randomNumber1 > rt.survivalProbability) + { + rt.pixelIndex = -10000; + return -1; + } + else + { + rt.direction = calculateRandomDirectionInHemisphere(normal, randomNumber1, randomNumber2); + rt.origin = intersectionPoint + rt.direction * 0.01f; + color *= m.color; + if(color.x <= 0.001f && color.y <= 0.001f && color.z <= 0.001f) + { + rt.survivalProbability = 0.0f; + } + else + { + rt.survivalProbability *= 0.9f; + } + } + + return 0; + } +} + +__host__ __device__ int findNearestPrimitiveInRay(const staticGeom const *geoms, int numberOfGeoms, const ray &rt, glm::vec3 &intersectionPoint, glm::vec3 &normal) //Return -1 if no intersection, else index of geom +{ + float dist = 10000000.0f; + int geomIndex = -1; + for(unsigned int i = 0; i < numberOfGeoms; ++i) + { + glm::vec3 currentIntersectionPoint, currentNormal; + float currentDist = 0.0f; + if(geoms[i].type == SPHERE) + { + currentDist = sphereIntersectionTest(geoms[i], rt, currentIntersectionPoint, currentNormal); + if(currentDist != -1.0f && currentDist < dist) + { + intersectionPoint = currentIntersectionPoint; + normal = currentNormal; + dist = currentDist; + geomIndex = i; + } + } + else if(geoms[i].type == CUBE) + { + currentDist = boxIntersectionTest(geoms[i], rt, currentIntersectionPoint, currentNormal); + if(currentDist != -1.0f && currentDist < dist) + { + intersectionPoint = currentIntersectionPoint; + normal = currentNormal; + dist = currentDist; + geomIndex = i; + } + } + else if(geoms[i].type == MESH) + { + + } + } + return geomIndex; +} \ No newline at end of file diff --git a/src/raytraceKernel.h b/src/raytraceKernel.h index 331e5ce..c524624 100755 --- a/src/raytraceKernel.h +++ b/src/raytraceKernel.h @@ -1,20 +1,33 @@ -// 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 - -#ifndef RAYTRACEKERNEL_H -#define PATHTRACEKERNEL_H - -#include -#include -#include -#include -#include "sceneStructs.h" -#include - -void cudaRaytraceCore(uchar4* pos, camera* renderCam, int frame, int iterations, material* materials, int numberOfMaterials, geom* geoms, int numberOfGeoms); - -#endif +// 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 + +#ifndef RAYTRACEKERNEL_H +#define PATHTRACEKERNEL_H + +#include +#include +#include +#include +#include "sceneStructs.h" +#include + +struct is_garbage_ray +{ + __host__ __device__ + bool operator()(const ray a) + { + //return true; + //return false; + return (a.pixelIndex == -10000); + //return ((a.origin.x == -10000.0f) && (a.origin.y == -10000.0f) && (a.origin.z == -10000.0f)); + } +}; + +void cudaRaytraceCore(uchar4* pos, camera* renderCam, int frame, int iterations, material* materials, int numberOfMaterials, geom* geoms, int numberOfGeoms, + light* lights, int numberOfLights); + +#endif diff --git a/src/scene.cpp b/src/scene.cpp index f0384b2..ab9aa12 100755 --- a/src/scene.cpp +++ b/src/scene.cpp @@ -1,263 +1,297 @@ -// 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: -// Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com - -#include -#include "scene.h" - -scene::scene(string filename){ - cout << "Reading scene frome " << filename << "..." << endl; - cout << " " << endl; - char* fname = (char*)filename.c_str(); - fp_in.open(fname); - if(fp_in.is_open()){ - while(fp_in.good()){ - string line; - getline(fp_in, line); - if(!line.empty()){ - vector tokens = utilityCore::tokenizeString(line); - if(strcmp(tokens[0].c_str(), "MATERIAL")==0){ - loadMaterial(tokens[1]); - cout << " " << endl; - }else if(strcmp(tokens[0].c_str(), "OBJECT")==0){ - loadObject(tokens[1]); - cout << " " << endl; - }else if(strcmp(tokens[0].c_str(), "CAMERA")==0){ - loadCamera(); - cout << " " << endl; - } - } - } - } -} - -int scene::loadObject(string objectid){ - int id = atoi(objectid.c_str()); - if(id!=objects.size()){ - cout << "ERROR: OBJECT ID does not match expected number of objects" << endl; - return -1; - }else{ - cout << "Loading Object " << id << "..." << endl; - geom newObject; - string line; - - //load object type - getline(fp_in,line); - if (!line.empty() && fp_in.good()){ - if(strcmp(line.c_str(), "sphere")==0){ - cout << "Creating new sphere..." << endl; - newObject.type = SPHERE; - }else if(strcmp(line.c_str(), "cube")==0){ - cout << "Creating new cube..." << endl; - newObject.type = CUBE; - }else{ - string objline = line; - string name; - string extension; - istringstream liness(objline); - getline(liness, name, '.'); - getline(liness, extension, '.'); - if(strcmp(extension.c_str(), "obj")==0){ - cout << "Creating new mesh..." << endl; - cout << "Reading mesh from " << line << "... " << endl; - newObject.type = MESH; - }else{ - cout << "ERROR: " << line << " is not a valid object type!" << endl; - return -1; - } - } - } - - //link material - getline(fp_in,line); - if(!line.empty() && fp_in.good()){ - vector tokens = utilityCore::tokenizeString(line); - newObject.materialid = atoi(tokens[1].c_str()); - cout << "Connecting Object " << objectid << " to Material " << newObject.materialid << "..." << endl; - } - - //load frames - int frameCount = 0; - getline(fp_in,line); - vector translations; - vector scales; - vector rotations; - while (!line.empty() && fp_in.good()){ - - //check frame number - vector tokens = utilityCore::tokenizeString(line); - if(strcmp(tokens[0].c_str(), "frame")!=0 || atoi(tokens[1].c_str())!=frameCount){ - cout << "ERROR: Incorrect frame count!" << endl; - return -1; - } - - //load tranformations - for(int i=0; i<3; i++){ - glm::vec3 translation; glm::vec3 rotation; glm::vec3 scale; - getline(fp_in,line); - tokens = utilityCore::tokenizeString(line); - if(strcmp(tokens[0].c_str(), "TRANS")==0){ - translations.push_back(glm::vec3(atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str()))); - }else if(strcmp(tokens[0].c_str(), "ROTAT")==0){ - rotations.push_back(glm::vec3(atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str()))); - }else if(strcmp(tokens[0].c_str(), "SCALE")==0){ - scales.push_back(glm::vec3(atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str()))); - } - } - - frameCount++; - getline(fp_in,line); - } - - //move frames into CUDA readable arrays - newObject.translations = new glm::vec3[frameCount]; - newObject.rotations = new glm::vec3[frameCount]; - newObject.scales = new glm::vec3[frameCount]; - newObject.transforms = new cudaMat4[frameCount]; - newObject.inverseTransforms = new cudaMat4[frameCount]; - for(int i=0; i tokens = utilityCore::tokenizeString(line); - if(strcmp(tokens[0].c_str(), "RES")==0){ - newCamera.resolution = glm::vec2(atoi(tokens[1].c_str()), atoi(tokens[2].c_str())); - }else if(strcmp(tokens[0].c_str(), "FOVY")==0){ - fovy = atof(tokens[1].c_str()); - }else if(strcmp(tokens[0].c_str(), "ITERATIONS")==0){ - newCamera.iterations = atoi(tokens[1].c_str()); - }else if(strcmp(tokens[0].c_str(), "FILE")==0){ - newCamera.imageName = tokens[1]; - } - } - - //load time variable properties (frames) - int frameCount = 0; - string line; - getline(fp_in,line); - vector positions; - vector views; - vector ups; - while (!line.empty() && fp_in.good()){ - - //check frame number - vector tokens = utilityCore::tokenizeString(line); - if(strcmp(tokens[0].c_str(), "frame")!=0 || atoi(tokens[1].c_str())!=frameCount){ - cout << "ERROR: Incorrect frame count!" << endl; - return -1; - } - - //load camera properties - for(int i=0; i<3; i++){ - //glm::vec3 translation; glm::vec3 rotation; glm::vec3 scale; - getline(fp_in,line); - tokens = utilityCore::tokenizeString(line); - if(strcmp(tokens[0].c_str(), "EYE")==0){ - positions.push_back(glm::vec3(atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str()))); - }else if(strcmp(tokens[0].c_str(), "VIEW")==0){ - views.push_back(glm::vec3(atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str()))); - }else if(strcmp(tokens[0].c_str(), "UP")==0){ - ups.push_back(glm::vec3(atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str()))); - } - } - - frameCount++; - getline(fp_in,line); - } - newCamera.frames = frameCount; - - //move frames into CUDA readable arrays - newCamera.positions = new glm::vec3[frameCount]; - newCamera.views = new glm::vec3[frameCount]; - newCamera.ups = new glm::vec3[frameCount]; - for(int i=0; i tokens = utilityCore::tokenizeString(line); - if(strcmp(tokens[0].c_str(), "RGB")==0){ - glm::vec3 color( atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str()) ); - newMaterial.color = color; - }else if(strcmp(tokens[0].c_str(), "SPECEX")==0){ - newMaterial.specularExponent = atof(tokens[1].c_str()); - }else if(strcmp(tokens[0].c_str(), "SPECRGB")==0){ - glm::vec3 specColor( atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str()) ); - newMaterial.specularColor = specColor; - }else if(strcmp(tokens[0].c_str(), "REFL")==0){ - newMaterial.hasReflective = atof(tokens[1].c_str()); - }else if(strcmp(tokens[0].c_str(), "REFR")==0){ - newMaterial.hasRefractive = atof(tokens[1].c_str()); - }else if(strcmp(tokens[0].c_str(), "REFRIOR")==0){ - newMaterial.indexOfRefraction = atof(tokens[1].c_str()); - }else if(strcmp(tokens[0].c_str(), "SCATTER")==0){ - newMaterial.hasScatter = atof(tokens[1].c_str()); - }else if(strcmp(tokens[0].c_str(), "ABSCOEFF")==0){ - glm::vec3 abscoeff( atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str()) ); - newMaterial.absorptionCoefficient = abscoeff; - }else if(strcmp(tokens[0].c_str(), "RSCTCOEFF")==0){ - newMaterial.reducedScatterCoefficient = atof(tokens[1].c_str()); - }else if(strcmp(tokens[0].c_str(), "EMITTANCE")==0){ - newMaterial.emittance = atof(tokens[1].c_str()); - - } - } - materials.push_back(newMaterial); - return 1; - } -} +// 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: +// Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com + +#include +#include "scene.h" + +scene::scene(string filename){ + cout << "Reading scene frome " << filename << "..." << endl; + cout << " " << endl; + char* fname = (char*)filename.c_str(); + fp_in.open(fname); + if(fp_in.is_open()){ + while(fp_in.good()){ + string line; + getline(fp_in, line); + if(!line.empty()){ + vector tokens = utilityCore::tokenizeString(line); + if(strcmp(tokens[0].c_str(), "MATERIAL")==0){ + loadMaterial(tokens[1]); + cout << " " << endl; + }else if(strcmp(tokens[0].c_str(), "OBJECT")==0){ + loadObject(tokens[1]); + cout << " " << endl; + }else if(strcmp(tokens[0].c_str(), "CAMERA")==0){ + loadCamera(); + cout << " " << endl; + }else if(strcmp(tokens[0].c_str(), "LIGHT")==0){ + loadLight(tokens[1]); + cout << " " << endl; + } + } + } + } +} + +int scene::loadObject(string objectid){ + int id = atoi(objectid.c_str()); + if(id!=objects.size()){ + cout << "ERROR: OBJECT ID does not match expected number of objects" << endl; + return -1; + }else{ + cout << "Loading Object " << id << "..." << endl; + geom newObject; + string line; + + //load object type + getline(fp_in,line); + if (!line.empty() && fp_in.good()){ + if(strcmp(line.c_str(), "sphere")==0){ + cout << "Creating new sphere..." << endl; + newObject.type = SPHERE; + }else if(strcmp(line.c_str(), "cube")==0){ + cout << "Creating new cube..." << endl; + newObject.type = CUBE; + }else{ + string objline = line; + string name; + string extension; + istringstream liness(objline); + getline(liness, name, '.'); + getline(liness, extension, '.'); + if(strcmp(extension.c_str(), "obj")==0){ + cout << "Creating new mesh..." << endl; + cout << "Reading mesh from " << line << "... " << endl; + newObject.type = MESH; + }else{ + cout << "ERROR: " << line << " is not a valid object type!" << endl; + return -1; + } + } + } + + //link material + getline(fp_in,line); + if(!line.empty() && fp_in.good()){ + vector tokens = utilityCore::tokenizeString(line); + newObject.materialid = atoi(tokens[1].c_str()); + cout << "Connecting Object " << objectid << " to Material " << newObject.materialid << "..." << endl; + } + + //load frames + int frameCount = 0; + getline(fp_in,line); + vector translations; + vector scales; + vector rotations; + while (!line.empty() && fp_in.good()){ + + //check frame number + vector tokens = utilityCore::tokenizeString(line); + if(strcmp(tokens[0].c_str(), "frame")!=0 || atoi(tokens[1].c_str())!=frameCount){ + cout << "ERROR: Incorrect frame count!" << endl; + return -1; + } + + //load tranformations + for(int i=0; i<3; i++){ + glm::vec3 translation; glm::vec3 rotation; glm::vec3 scale; + getline(fp_in,line); + tokens = utilityCore::tokenizeString(line); + if(strcmp(tokens[0].c_str(), "TRANS")==0){ + translations.push_back(glm::vec3(atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str()))); + }else if(strcmp(tokens[0].c_str(), "ROTAT")==0){ + rotations.push_back(glm::vec3(atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str()))); + }else if(strcmp(tokens[0].c_str(), "SCALE")==0){ + scales.push_back(glm::vec3(atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str()))); + } + } + + frameCount++; + getline(fp_in,line); + } + + //move frames into CUDA readable arrays + newObject.translations = new glm::vec3[frameCount]; + newObject.rotations = new glm::vec3[frameCount]; + newObject.scales = new glm::vec3[frameCount]; + newObject.transforms = new cudaMat4[frameCount]; + newObject.inverseTransforms = new cudaMat4[frameCount]; + for(int i=0; i tokens = utilityCore::tokenizeString(line); + if(strcmp(tokens[0].c_str(), "RES")==0){ + newCamera.resolution = glm::vec2(atoi(tokens[1].c_str()), atoi(tokens[2].c_str())); + }else if(strcmp(tokens[0].c_str(), "FOVY")==0){ + fovy = (atof(tokens[1].c_str()) * PI / 180.0f); + }else if(strcmp(tokens[0].c_str(), "ITERATIONS")==0){ + newCamera.iterations = atoi(tokens[1].c_str()); + }else if(strcmp(tokens[0].c_str(), "FILE")==0){ + newCamera.imageName = tokens[1]; + } + } + + //load time variable properties (frames) + int frameCount = 0; + string line; + getline(fp_in,line); + vector positions; + vector views; + vector ups; + while (!line.empty() && fp_in.good()){ + + //check frame number + vector tokens = utilityCore::tokenizeString(line); + if(strcmp(tokens[0].c_str(), "frame")!=0 || atoi(tokens[1].c_str())!=frameCount){ + cout << "ERROR: Incorrect frame count!" << endl; + return -1; + } + + //load camera properties + for(int i=0; i<3; i++){ + //glm::vec3 translation; glm::vec3 rotation; glm::vec3 scale; + getline(fp_in,line); + tokens = utilityCore::tokenizeString(line); + if(strcmp(tokens[0].c_str(), "EYE")==0){ + positions.push_back(glm::vec3(atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str()))); + }else if(strcmp(tokens[0].c_str(), "VIEW")==0){ + views.push_back(glm::normalize(glm::vec3(atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str())))); + }else if(strcmp(tokens[0].c_str(), "UP")==0){ + ups.push_back(glm::normalize(glm::vec3(atof(tokens[1].c_str()), atof(tokens[2].c_str()), atof(tokens[3].c_str())))); + } + } + + frameCount++; + getline(fp_in,line); + } + newCamera.frames = frameCount; + + //move frames into CUDA readable arrays + newCamera.positions = new glm::vec3[frameCount]; + newCamera.views = new glm::vec3[frameCount]; + newCamera.ups = new glm::vec3[frameCount]; + for(int i=0; i tokens = utilityCore::tokenizeString(line); + if(strcmp(tokens[0].c_str(), "RGB")==0){ + glm::vec3 color( (float)atof(tokens[1].c_str()), (float)atof(tokens[2].c_str()), (float)atof(tokens[3].c_str()) ); + newMaterial.color = color; + }else if(strcmp(tokens[0].c_str(), "SPECEX")==0){ + newMaterial.specularExponent = (float)atof(tokens[1].c_str()); + }else if(strcmp(tokens[0].c_str(), "SPECRGB")==0){ + glm::vec3 specColor( (float)atof(tokens[1].c_str()), (float)atof(tokens[2].c_str()), (float)atof(tokens[3].c_str()) ); + newMaterial.specularColor = specColor; + }else if(strcmp(tokens[0].c_str(), "REFL")==0){ + newMaterial.hasReflective = (float)atof(tokens[1].c_str()); + }else if(strcmp(tokens[0].c_str(), "REFR")==0){ + newMaterial.hasRefractive = (float)atof(tokens[1].c_str()); + }else if(strcmp(tokens[0].c_str(), "REFRIOR")==0){ + newMaterial.indexOfRefraction = (float)atof(tokens[1].c_str()); + }else if(strcmp(tokens[0].c_str(), "SCATTER")==0){ + newMaterial.hasScatter = (float)atof(tokens[1].c_str()); + }else if(strcmp(tokens[0].c_str(), "ABSCOEFF")==0){ + glm::vec3 abscoeff( (float)atof(tokens[1].c_str()), (float)atof(tokens[2].c_str()), (float)atof(tokens[3].c_str()) ); + newMaterial.absorptionCoefficient = abscoeff; + }else if(strcmp(tokens[0].c_str(), "RSCTCOEFF")==0){ + newMaterial.reducedScatterCoefficient = (float)atof(tokens[1].c_str()); + }else if(strcmp(tokens[0].c_str(), "EMITTANCE")==0){ + newMaterial.emittance = (float)atof(tokens[1].c_str()); + + } + } + materials.push_back(newMaterial); + return 1; + } +} + +int scene::loadLight(string lightid) +{ + int id = atoi(lightid.c_str()); + if(id != lights.size()) + { + cout << "Unexpected id of light\n"; + return -1; + } + else + { + cout << "Loading Light " << id << "\n"; + light lighto; + string line; + for(unsigned int i = 0; i < 2; ++i) + { + getline(fp_in,line); + vector tokens = utilityCore::tokenizeString(line); + if(strcmp(tokens[0].c_str(), "RGB")==0) + { + lighto.color = glm::vec3((float)atof(tokens[1].c_str()), (float)atof(tokens[2].c_str()), (float)atof(tokens[3].c_str())); + } + else if(strcmp(tokens[0].c_str(), "TRANS")==0) + { + lighto.position = glm::vec3((float)atof(tokens[1].c_str()), (float)atof(tokens[2].c_str()), (float)atof(tokens[3].c_str())); + } + } + lights.push_back(lighto); + return 1; + } +} diff --git a/src/scene.h b/src/scene.h index 9bfa71f..9a03e41 100755 --- a/src/scene.h +++ b/src/scene.h @@ -1,34 +1,36 @@ -// 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: -// Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com - -#ifndef SCENE_H -#define SCENE_H - -#include "glm/glm.hpp" -#include "utilities.h" -#include -#include "sceneStructs.h" -#include -#include -#include - -using namespace std; - -class scene{ -private: - ifstream fp_in; - int loadMaterial(string materialid); - int loadObject(string objectid); - int loadCamera(); -public: - scene(string filename); - ~scene(); - - vector objects; - vector materials; - camera renderCam; -}; - -#endif +// 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: +// Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com + +#ifndef SCENE_H +#define SCENE_H + +#include "glm/glm.hpp" +#include "utilities.h" +#include +#include "sceneStructs.h" +#include +#include +#include + +using namespace std; + +class scene{ +private: + ifstream fp_in; + int loadMaterial(string materialid); + int loadObject(string objectid); + int loadCamera(); + int loadLight(string lightid); +public: + scene(string filename); + ~scene(); + + vector objects; + vector materials; + vector lights; + camera renderCam; +}; + +#endif diff --git a/src/sceneStructs.h b/src/sceneStructs.h index b10f1cf..e205ef9 100755 --- a/src/sceneStructs.h +++ b/src/sceneStructs.h @@ -1,76 +1,84 @@ -// 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: -// Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com - -#ifndef CUDASTRUCTS_H -#define CUDASTRUCTS_H - -#include "glm/glm.hpp" -#include "cudaMat4.h" -#include -#include - -enum GEOMTYPE{ SPHERE, CUBE, MESH }; - -struct ray { - glm::vec3 origin; - glm::vec3 direction; -}; - -struct geom { - enum GEOMTYPE type; - int materialid; - int frames; - glm::vec3* translations; - glm::vec3* rotations; - glm::vec3* scales; - cudaMat4* transforms; - cudaMat4* inverseTransforms; -}; - -struct staticGeom { - enum GEOMTYPE type; - int materialid; - glm::vec3 translation; - glm::vec3 rotation; - glm::vec3 scale; - cudaMat4 transform; - cudaMat4 inverseTransform; -}; - -struct cameraData { - glm::vec2 resolution; - glm::vec3 position; - glm::vec3 view; - glm::vec3 up; - glm::vec2 fov; -}; - -struct camera { - glm::vec2 resolution; - glm::vec3* positions; - glm::vec3* views; - glm::vec3* ups; - int frames; - glm::vec2 fov; - unsigned int iterations; - glm::vec3* image; - ray* rayList; - std::string imageName; -}; - -struct material{ - glm::vec3 color; - float specularExponent; - glm::vec3 specularColor; - float hasReflective; - float hasRefractive; - float indexOfRefraction; - float hasScatter; - glm::vec3 absorptionCoefficient; - float reducedScatterCoefficient; - float emittance; -}; - -#endif //CUDASTRUCTS_H +// 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: +// Yining Karl Li's TAKUA Render, a massively parallel pathtracing renderer: http://www.yiningkarlli.com + +#ifndef CUDASTRUCTS_H +#define CUDASTRUCTS_H + +#include "glm/glm.hpp" +#include "cudaMat4.h" +#include +#include + +enum GEOMTYPE{ SPHERE, CUBE, MESH }; + +struct ray { + glm::vec3 origin; + glm::vec3 direction; + int pixelIndex; + float survivalProbability; +}; + +struct light +{ + glm::vec3 position; + glm::vec3 color; +}; + +struct geom { + enum GEOMTYPE type; + int materialid; + int frames; + glm::vec3* translations; + glm::vec3* rotations; + glm::vec3* scales; + cudaMat4* transforms; + cudaMat4* inverseTransforms; +}; + +struct staticGeom { + enum GEOMTYPE type; + int materialid; + glm::vec3 translation; + glm::vec3 rotation; + glm::vec3 scale; + cudaMat4 transform; + cudaMat4 inverseTransform; +}; + +struct cameraData { + glm::vec2 resolution; + glm::vec3 position; + glm::vec3 view; + glm::vec3 up; + glm::vec2 fov; +}; + +struct camera { + glm::vec2 resolution; + glm::vec3* positions; + glm::vec3* views; + glm::vec3* ups; + int frames; + glm::vec2 fov; + unsigned int iterations; + glm::vec3* image; + ray* rayList; + std::string imageName; +}; + +struct material{ + glm::vec3 color; + float specularExponent; + glm::vec3 specularColor; + float hasReflective; + float hasRefractive; + float indexOfRefraction; + float hasScatter; + glm::vec3 absorptionCoefficient; + float reducedScatterCoefficient; + float emittance; +}; + +#endif //CUDASTRUCTS_H diff --git a/src/utilities.h b/src/utilities.h index 5842c33..58d7a5f 100755 --- a/src/utilities.h +++ b/src/utilities.h @@ -1,47 +1,47 @@ -// UTILITYCORE- A Utility Library by Yining Karl Li -// This file is part of UTILITYCORE, Coyright (c) 2012 Yining Karl Li -// -// File: utilities.h -// Header for utilities.cpp - -#ifndef Pathtracer_utilities_h -#define Pathtracer_utilities_h - -#include "glm/glm.hpp" -#include -#include -#include -#include -#include -#include -#include -#include "cudaMat4.h" - -const float PI =3.1415926535897932384626422832795028841971; -const float TWO_PI =6.2831853071795864769252867665590057683943; -const float SQRT_OF_ONE_THIRD =0.5773502691896257645091487805019574556476; -const float E =2.7182818284590452353602874713526624977572; -const float EPSILON =.000000001; -const float ZERO_ABSORPTION_EPSILON =0.00001; -const float RAY_BIAS_AMOUNT =0.0002; - -namespace utilityCore { - extern float clamp(float f, float min, float max); - extern bool replaceString(std::string& str, const std::string& from, const std::string& to); - extern glm::vec3 clampRGB(glm::vec3 color); - extern bool epsilonCheck(float a, float b); - extern std::vector tokenizeString(std::string str); - extern cudaMat4 glmMat4ToCudaMat4(glm::mat4 a); - extern glm::mat4 cudaMat4ToGlmMat4(cudaMat4 a); - extern glm::mat4 buildTransformationMatrix(glm::vec3 translation, glm::vec3 rotation, glm::vec3 scale); - extern void printCudaMat4(cudaMat4 m); - extern std::string convertIntToString(int number); - - //----------------------------- - //-------GLM Printers---------- - //----------------------------- - extern void printMat4(glm::mat4); - extern void printVec4(glm::vec4); - extern void printVec3(glm::vec3); -} -#endif +// UTILITYCORE- A Utility Library by Yining Karl Li +// This file is part of UTILITYCORE, Coyright (c) 2012 Yining Karl Li +// +// File: utilities.h +// Header for utilities.cpp + +#ifndef Pathtracer_utilities_h +#define Pathtracer_utilities_h + +#include "glm/glm.hpp" +#include +#include +#include +#include +#include +#include +#include +#include "cudaMat4.h" + +#define PI 3.1415926535897932384626422832795028841971 +#define TWO_PI 6.2831853071795864769252867665590057683943 +#define SQRT_OF_ONE_THIRD 0.5773502691896257645091487805019574556476 +#define E 2.7182818284590452353602874713526624977572 +#define EPSILON .000000001 +#define ZERO_ABSORPTION_EPSILON 0.00001 +#define RAY_BIAS_AMOUNT 0.0002 + +namespace utilityCore { + extern float clamp(float f, float min, float max); + extern bool replaceString(std::string& str, const std::string& from, const std::string& to); + extern glm::vec3 clampRGB(glm::vec3 color); + extern bool epsilonCheck(float a, float b); + extern std::vector tokenizeString(std::string str); + extern cudaMat4 glmMat4ToCudaMat4(glm::mat4 a); + extern glm::mat4 cudaMat4ToGlmMat4(cudaMat4 a); + extern glm::mat4 buildTransformationMatrix(glm::vec3 translation, glm::vec3 rotation, glm::vec3 scale); + extern void printCudaMat4(cudaMat4 m); + extern std::string convertIntToString(int number); + + //----------------------------- + //-------GLM Printers---------- + //----------------------------- + extern void printMat4(glm::mat4); + extern void printVec4(glm::vec4); + extern void printVec3(glm::vec3); +} +#endif