diff --git a/10301538.PNG b/10301538.PNG new file mode 100755 index 0000000..b5497e7 Binary files /dev/null and b/10301538.PNG differ diff --git a/10301539.PNG b/10301539.PNG new file mode 100755 index 0000000..9835127 Binary files /dev/null and b/10301539.PNG differ diff --git a/10301540.PNG b/10301540.PNG new file mode 100755 index 0000000..f0c5b06 Binary files /dev/null and b/10301540.PNG differ diff --git a/10302226.PNG b/10302226.PNG new file mode 100755 index 0000000..d9b1e70 Binary files /dev/null and b/10302226.PNG differ diff --git a/10302254.PNG b/10302254.PNG new file mode 100755 index 0000000..ac847b8 Binary files /dev/null and b/10302254.PNG differ diff --git a/10311939.PNG b/10311939.PNG new file mode 100755 index 0000000..9573d04 Binary files /dev/null and b/10311939.PNG differ diff --git a/10311940.PNG b/10311940.PNG new file mode 100755 index 0000000..a17104b Binary files /dev/null and b/10311940.PNG differ diff --git a/10311941.PNG b/10311941.PNG new file mode 100755 index 0000000..0d836cd Binary files /dev/null and b/10311941.PNG differ diff --git a/10311942.PNG b/10311942.PNG new file mode 100755 index 0000000..dd0c5f7 Binary files /dev/null and b/10311942.PNG differ diff --git a/10311943.PNG b/10311943.PNG new file mode 100755 index 0000000..c4df321 Binary files /dev/null and b/10311943.PNG differ diff --git a/10311944.PNG b/10311944.PNG new file mode 100755 index 0000000..204b5d1 Binary files /dev/null and b/10311944.PNG differ diff --git a/10311945.PNG b/10311945.PNG new file mode 100755 index 0000000..557d4de Binary files /dev/null and b/10311945.PNG differ diff --git a/10311946.PNG b/10311946.PNG new file mode 100755 index 0000000..0be9fcc Binary files /dev/null and b/10311946.PNG differ diff --git a/PROJ4_WIN/565Rasterizer.sln b/PROJ4_WIN/565Rasterizer.sln index 22fa58f..8dd2f18 100644 --- a/PROJ4_WIN/565Rasterizer.sln +++ b/PROJ4_WIN/565Rasterizer.sln @@ -1,24 +1,26 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "565Rasterizer", "565Rasterizer\565Rasterizer.vcxproj", "{FF21CA49-522E-4E86-B508-EE515B248FC4}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FF21CA49-522E-4E86-B508-EE515B248FC4}.Debug|Win32.ActiveCfg = Debug|Win32 - {FF21CA49-522E-4E86-B508-EE515B248FC4}.Debug|Win32.Build.0 = Debug|Win32 - {FF21CA49-522E-4E86-B508-EE515B248FC4}.Debug|x64.ActiveCfg = Debug|Win32 - {FF21CA49-522E-4E86-B508-EE515B248FC4}.Release|Win32.ActiveCfg = Release|Win32 - {FF21CA49-522E-4E86-B508-EE515B248FC4}.Release|Win32.Build.0 = Release|Win32 - {FF21CA49-522E-4E86-B508-EE515B248FC4}.Release|x64.ActiveCfg = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "565Rasterizer", "565Rasterizer\565Rasterizer.vcxproj", "{FF21CA49-522E-4E86-B508-EE515B248FC4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{FC8743BB-BB13-4F9F-9951-7B5EB6CBA479}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FF21CA49-522E-4E86-B508-EE515B248FC4}.Debug|Win32.ActiveCfg = Debug|Win32 + {FF21CA49-522E-4E86-B508-EE515B248FC4}.Debug|Win32.Build.0 = Debug|Win32 + {FF21CA49-522E-4E86-B508-EE515B248FC4}.Debug|x64.ActiveCfg = Debug|Win32 + {FF21CA49-522E-4E86-B508-EE515B248FC4}.Release|Win32.ActiveCfg = Release|Win32 + {FF21CA49-522E-4E86-B508-EE515B248FC4}.Release|Win32.Build.0 = Release|Win32 + {FF21CA49-522E-4E86-B508-EE515B248FC4}.Release|x64.ActiveCfg = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/PROJ4_WIN/565Rasterizer/565Rasterizer.vcxproj b/PROJ4_WIN/565Rasterizer/565Rasterizer.vcxproj index 8ce38a4..d57fa4d 100644 --- a/PROJ4_WIN/565Rasterizer/565Rasterizer.vcxproj +++ b/PROJ4_WIN/565Rasterizer/565Rasterizer.vcxproj @@ -1,118 +1,120 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - - - - - - - - - - - - - - - - - - - - - {FF21CA49-522E-4E86-B508-EE515B248FC4} - Win32Proj - 565Rasterizer - 565Rasterizer - - - - Application - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - false - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include;C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\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\v5.5\include;C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\common\inc;../shared/glew/include;../shared/freeglut/include;%(AdditionalIncludeDirectories) - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include;C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\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\v5.5\include;C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\common\inc;../shared/glew/include;../shared/freeglut/include;%(AdditionalIncludeDirectories) - - - - - - + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + + + + + + + + + + + {FF21CA49-522E-4E86-B508-EE515B248FC4} + Win32Proj + 565Rasterizer + 565Rasterizer + + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include;C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\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\v5.5\include;C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\common\inc;../shared/glew/include;../shared/freeglut/include;%(AdditionalIncludeDirectories) + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include;C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\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\v5.5\include;C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\common\inc;../shared/glew/include;../shared/freeglut/include;%(AdditionalIncludeDirectories) + compute_11,sm_11 + + + + + + \ No newline at end of file diff --git a/PROJ4_WIN/565Rasterizer/565Rasterizer.vcxproj.filters b/PROJ4_WIN/565Rasterizer/565Rasterizer.vcxproj.filters index 2b32b6a..9337730 100644 --- a/PROJ4_WIN/565Rasterizer/565Rasterizer.vcxproj.filters +++ b/PROJ4_WIN/565Rasterizer/565Rasterizer.vcxproj.filters @@ -1,62 +1,65 @@ - - - - - ObjCore - - - ObjCore - - - headers - - - headers - - - headers - - - headers - - - headers - - - headers - - - - - ObjCore - - - ObjCore - - - source - - - source - - - source - - - - - {c37932d5-6627-43c3-9d6b-84866740745c} - - - {ac7cf277-45d1-4732-a3bf-abef7e8f1d85} - - - {ff2076c3-2be2-4a20-89ed-1f27da7b052a} - - - - - source - - + + + + + ObjCore + + + ObjCore + + + headers + + + headers + + + headers + + + headers + + + headers + + + headers + + + headers + + + + + ObjCore + + + ObjCore + + + source + + + source + + + source + + + + + {c37932d5-6627-43c3-9d6b-84866740745c} + + + {ac7cf277-45d1-4732-a3bf-abef7e8f1d85} + + + {ff2076c3-2be2-4a20-89ed-1f27da7b052a} + + + + + source + + \ No newline at end of file diff --git a/PROJ4_WIN/src/rasterizeKernels.cu.deps b/PROJ4_WIN/src/rasterizeKernels.cu.deps index a71538d..87b2a0e 100644 --- a/PROJ4_WIN/src/rasterizeKernels.cu.deps +++ b/PROJ4_WIN/src/rasterizeKernels.cu.deps @@ -1,579 +1,591 @@ -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda_runtime.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\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\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\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\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\channel_descriptor.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_runtime_api.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_device_runtime_api.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_runtime_api.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\common_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\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\v5.5\include\math_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\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\v5.5\include\cuda_surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\channel_descriptor.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\channel_descriptor.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_11_atomic_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_12_atomic_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_13_double_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_20_atomic_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_32_atomic_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_35_atomic_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_32_atomic_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_20_intrinsics.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_30_intrinsics.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_32_intrinsics.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_35_intrinsics.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_32_intrinsics.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_fetch_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_indirect_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_indirect_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_launch_parameters.h -c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\swprintf.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/config.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/simple_defines.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/compiler.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/host_system.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/device_system.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/host_device.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\host_defines.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/debug.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/compiler_fence.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/forceinline.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/hd_warning_disable.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/cstdint.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/discard_block_engine.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream -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\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\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\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\v5.5\include\thrust/random/detail/random_core_access.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/discard_block_engine.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/linear_congruential_engine.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/linear_congruential_engine_discard.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/mod.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/linear_congruential_engine.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/linear_feedback_shift_engine.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/linear_feedback_shift_engine_wordmask.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/linear_feedback_shift_engine.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/subtract_with_carry_engine.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/subtract_with_carry_engine.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/xor_combine_engine.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits/has_trivial_assign.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/xor_combine_engine_max.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/mpl/math.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/xor_combine_engine.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/uniform_int_distribution.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/pair.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/pair.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/swap.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/integer_traits.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/uniform_int_distribution.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/uniform_real_distribution.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/uniform_real_distribution.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/normal_distribution.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/normal_distribution_base.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/normal_distribution.inl -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\math_constants.h -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\rasterizeKernels.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda.h -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm/glm.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core/_fixes.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core/setup.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\./core/_detail.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\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\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\./core/type.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_half.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_half.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_detail.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_float.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_half.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\setup.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_int.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\setup.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_detail.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_gentype.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_size.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_vec1.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_vec.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_gentype.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_float.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_int.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_size.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_swizzle.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_swizzle_func.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_vec1.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_vec2.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_vec.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_float.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_int.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_size.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_swizzle.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_vec2.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_vec3.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_vec.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_float.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_int.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_size.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_swizzle.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_vec3.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_vec4.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_vec.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_float.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_int.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_size.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_swizzle.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_vec4.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat2x2.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_gentype.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat2x2.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat2x3.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat2x3.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat2x4.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat2x4.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat3x2.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat3x2.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat3x3.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat3x3.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat3x4.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat3x4.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat4x2.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat4x2.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat4x3.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat4x3.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat4x4.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\type_mat4x4.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\./core/func_trigonometric.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\func_trigonometric.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_vectorize.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\./core/func_exponential.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\func_exponential.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_vectorize.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\./core/func_common.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_fixes.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\func_common.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_vectorize.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\./core/func_packing.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\func_packing.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\./core/func_geometric.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\func_geometric.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_vectorize.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\./core/func_matrix.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\func_matrix.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_vectorize.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\./core/func_vector_relational.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_detail.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\func_vector_relational.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\./core/func_integer.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\func_integer.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\_vectorize.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\./core/func_noise.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core\func_noise.inl -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\./core/_swizzle.hpp -C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\common\inc\helper_math.h -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda_runtime.h -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\rasterizeTools.h -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm/glm.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core/_fixes.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\utilities.h -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm/glm.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core/_fixes.hpp -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\algorithm -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\memory -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\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\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 (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iterator -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sstream -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfunctional -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\cudaMat4.h -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm/glm.hpp -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\glm\core/_fixes.hpp -C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda_runtime.h -c:\users\liam\downloads\project3-rasterizer-master\project3-rasterizer-master\src\cudaMat4.h -C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\common\inc\helper_math.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda_runtime.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\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\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\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\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\channel_descriptor.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_runtime_api.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_device_runtime_api.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_runtime_api.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\common_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\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\v5.5\include\math_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\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\v5.5\include\cuda_surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\channel_descriptor.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\channel_descriptor.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_11_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_12_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_13_double_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_20_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_32_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_35_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_32_atomic_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_20_intrinsics.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_30_intrinsics.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_32_intrinsics.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_35_intrinsics.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\sm_32_intrinsics.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_fetch_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_indirect_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_indirect_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_launch_parameters.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\swprintf.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/config.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/simple_defines.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/compiler.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/host_system.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/device_system.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/host_device.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\host_defines.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/debug.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\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\ammintrin.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mm3dnow.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/forceinline.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/hd_warning_disable.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/cstdint.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/discard_block_engine.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream +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\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\v5.5\include\thrust/random/detail/random_core_access.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/discard_block_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/linear_congruential_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/linear_congruential_engine_discard.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/mod.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/linear_congruential_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/linear_feedback_shift_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/linear_feedback_shift_engine_wordmask.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/linear_feedback_shift_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/subtract_with_carry_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/subtract_with_carry_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/xor_combine_engine.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits/has_trivial_assign.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/xor_combine_engine_max.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/mpl/math.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/xor_combine_engine.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/uniform_int_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/pair.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/pair.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/swap.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/integer_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/uniform_int_distribution.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/uniform_real_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/uniform_real_distribution.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/normal_distribution.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/normal_distribution_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/normal_distribution.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\math_constants.h +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\rasterizeKernels.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda.h +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm/glm.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core/_fixes.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core/setup.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\./core/_detail.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\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 +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\./core/type.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_half.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_half.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_detail.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_float.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_half.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\setup.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_int.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\setup.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_detail.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_gentype.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_size.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_vec1.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_vec.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_gentype.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_float.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_int.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_size.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_swizzle.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_swizzle_func.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_vec1.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_vec2.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_vec.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_float.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_int.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_size.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_swizzle.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_vec2.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_vec3.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_vec.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_float.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_int.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_size.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_swizzle.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_vec3.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_vec4.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_vec.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_float.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_int.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_size.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_swizzle.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_vec4.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat2x2.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_gentype.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat2x2.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat2x3.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat2x3.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat2x4.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat2x4.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat3x2.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat3x2.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat3x3.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat3x3.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat3x4.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat3x4.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat4x2.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat4x2.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat4x3.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat4x3.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat4x4.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\type_mat4x4.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\./core/func_trigonometric.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\func_trigonometric.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_vectorize.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\./core/func_exponential.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\func_exponential.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_vectorize.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\./core/func_common.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_fixes.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\func_common.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_vectorize.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\./core/func_packing.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\func_packing.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\./core/func_geometric.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\func_geometric.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_vectorize.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\./core/func_matrix.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\func_matrix.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_vectorize.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\./core/func_vector_relational.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_detail.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\func_vector_relational.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\./core/func_integer.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\func_integer.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\_vectorize.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\./core/func_noise.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core\func_noise.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\./core/_swizzle.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm/gtc/matrix_transform.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\gtc\../glm.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core/_fixes.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\gtc\matrix_transform.inl +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\cudaMat4.h +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm/glm.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core/_fixes.hpp +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda_runtime.h +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\structs.h +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm/glm.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core/_fixes.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\cudaMat4.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda_runtime.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string +C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\common\inc\helper_math.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda_runtime.h +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\rasterizeTools.h +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm/glm.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core/_fixes.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\utilities.h +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm/glm.hpp +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\glm\core/_fixes.hpp +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\algorithm +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\memory +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iterator +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sstream +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfunctional +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\cudaMat4.h +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\cudaMat4.h +s:\fall2013\cis565 gpu programming\project4-rasterizer\src\structs.h +C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\common\inc\helper_math.h diff --git a/README.md b/README.md index bf34154..1d871a4 100644 --- a/README.md +++ b/README.md @@ -3,51 +3,25 @@ CIS565: Project 4: CUDA Rasterizer ------------------------------------------------------------------------------- Fall 2013 ------------------------------------------------------------------------------- -Due Thursday 10/31/2012 +Qiong Wang ------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -NOTE: -------------------------------------------------------------------------------- -This project requires an NVIDIA graphics card with CUDA capability! Any card with CUDA compute capability 1.1 or higher will work fine for this project. For a full list of CUDA capable cards and their compute capability, please consult: http://developer.nvidia.com/cuda/cuda-gpus. 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 implement a simplified CUDA based implementation of a standard rasterized graphics pipeline, similar to the OpenGL pipeline. In this project, you will implement vertex shading, primitive assembly, perspective transformation, rasterization, fragment shading, and write the resulting fragments to a framebuffer. More information about the rasterized graphics pipeline can be found in the class slides and in your notes from CIS560. - -The basecode provided includes an OBJ loader and much of the mundane I/O and bookkeeping code. The basecode also includes some functions that you may find useful, described below. The core rasterization pipeline is left for you to implement. - -You MAY NOT use ANY raycasting/raytracing AT ALL in this project, EXCEPT in the fragment shader step. One of the purposes of this project is to see how a rasterization pipeline can generate graphics WITHOUT the need for raycasting! Raycasting may only be used in the fragment shader effect for interesting shading results, but is absolutely not allowed in any other stages of the pipeline. - -Also, you MAY NOT use OpenGL ANYWHERE in this project, aside from the given OpenGL code for drawing Pixel Buffer Objects to the screen. Use of OpenGL for any pipeline stage instead of your own custom implementation will result in an incomplete project. - -Finally, note that while this basecode is meant to serve as a strong starting point for a CUDA rasterizer, you are not required to use this basecode if you wish, and you may also change any part of the basecode specification as you please, so long as the final rendered result is correct. - -------------------------------------------------------------------------------- -CONTENTS: -------------------------------------------------------------------------------- -The Project4 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. -* objs/ contains example obj test files: cow.obj, cube.obj, tri.obj. -* renders/ contains an example render of the given example cow.obj file with a z-depth fragment shader. -* PROJ4_WIN/ contains a Windows Visual Studio 2010 project and all dependencies needed for building and running on Windows 7. -* PROJ4_OSX/ contains a OSX makefile, run script, and (hopefully) all dependencies needed for building and running on Mac OSX 10.8. -* PROJ4_NIX/ contains a makefile tested to work on Ubuntu 12.04 +This is a course project based on CUDA for CIS 565 GPU Programming. The standard rasterization pipeline was implemented as the following steps: -The Windows and OSX versions of the project build and run exactly the same way as in Project0, Project1, and Project2. +1. Vertex Shader; +2. Primitive Assembly; +3. Rasterization(including basic back face culling); +4. Fragment Shader; +5. Rendering(including anti-aliasing) +6. Write to framebuffer ------------------------------------------------------------------------------- -REQUIREMENTS: +IMPLEMENTED FEATURES: ------------------------------------------------------------------------------- -In this project, you are given code for: - -* A library for loading/reading standard Alias/Wavefront .obj format mesh files and converting them to OpenGL style VBOs/IBOs -* A suggested order of kernels with which to implement the graphics pipeline -* Working code for CUDA-GL interop - -You will need to implement the following stages of the graphics pipeline and features: +**Basic Graphics Pipeline and Features:** * Vertex Shading * Primitive Assembly with support for triangle VBOs/IBOs @@ -56,131 +30,132 @@ You will need to implement the following stages of the graphics pipeline and fea * Fragment Shading * A depth buffer for storing and depth testing fragments * Fragment to framebuffer writing -* A simple lighting/shading scheme, such as Lambert or Blinn-Phong, implemented in the fragment shader - -You are also required to implement at least 3 of the following features: - -* Additional pipeline stages. Each one of these stages can count as 1 feature: - * Geometry shader - * Transformation feedback - * Back-face culling - * Scissor test - * Stencil test - * Blending - -IMPORTANT: For each of these stages implemented, you must also add a section to your README stating what the expected performance impact of that pipeline stage is, and real performance comparisons between your rasterizer with that stage and without. - -* Correct color interpretation between points on a primitive -* Texture mapping WITH texture filtering and perspective correct texture coordinates -* Support for additional primitices. Each one of these can count as HALF of a feature. - * Lines - * Line strips - * Triangle fans - * Triangle strips - * Points +* A simple lighting/shading scheme with Lambert and Blinn-Phong in the fragment shader + +**Additional Features:** + +* Transformation feedback +* Back-face culling +* Atomic Compare and Swap for depth test +* Color interpretation between points on a primitive * Anti-aliasing -* Order-independent translucency using a k-buffer -* MOUSE BASED interactive camera support. Interactive camera support based only on the keyboard is not acceptable for this feature. +* Both mouse-based and keyboard-based interactive camera support +* Multi-color lighting ------------------------------------------------------------------------------- -BASE CODE TOUR: +OPERATION INSTRUCTION ------------------------------------------------------------------------------- -You will be working primarily in two files: rasterizeKernel.cu, and rasterizerTools.h. Within these files, areas that you need to complete are marked with a TODO comment. Areas that are useful to and serve as hints for optional features are marked with TODO (Optional). Functions that are useful for reference are marked with the comment LOOK. +In 22nd line of *rasterizeKernels.h*, the flag can be changed to 1 to use anti-aliasing mode as default. +``` cpp +#define ANTIALIASING 0 +``` -* rasterizeKernels.cu contains the core rasterization pipeline. - * A suggested sequence of kernels exists in this file, but you may choose to alter the order of this sequence or merge entire kernels if you see fit. For example, if you decide that doing has benefits, you can choose to merge the vertex shader and primitive assembly kernels, or merge the perspective transform into another kernel. There is not necessarily a right sequence of kernels (although there are wrong sequences, such as placing fragment shading before vertex shading), and you may choose any sequence you want. Please document in your README what sequence you choose and why. - * The provided kernels have had their input parameters removed beyond basic inputs such as the framebuffer. You will have to decide what inputs should go into each stage of the pipeline, and what outputs there should be. +**Mouse Interaction** -* rasterizeTools.h contains various useful tools, including a number of barycentric coordinate related functions that you may find useful in implementing scanline based rasterization... - * A few pre-made structs are included for you to use, such as fragment and triangle. A simple rasterizer can be implemented with these structs as is. However, as with any part of the basecode, you may choose to modify, add to, use as-is, or outright ignore them as you see fit. - * If you do choose to add to the fragment struct, be sure to include in your README a rationale for why. +| Operation | Function | +|:-------------------------:|:--------------------:| +| Left and right click drag | rotate around y-axis | +| Up and down click drag | rotate around x-axis | -You will also want to familiarize yourself with: +**Keyboard Interaction** -* main.cpp, which contains code that transfers VBOs/CBOs/IBOs to the rasterization pipeline. Interactive camera work will also have to be implemented in this file if you choose that feature. -* utilities.h, which serves as a kitchen-sink of useful functions +| Operation | Function | +|:-------------------------:|:-----------------------------:| +| up-arrow | zoom in along view direction | +| down-arrow |zoom out along view direction | +| left-arrow | rotate from right to left | +| left-arrow | rotate from left to right | +| '[' | rotate from down to up | +| ']' | rotate from up to down | +| 'd' | depth mode or not | +| 'f' | flat-color mode or not | +| '`' |white color in flat-color mode | +| '1' | red color in flat-color mode | +| '2' |green color in flat-color mode | +| '3' | blue color in flat-color mode | +| '4' |purple color in flat-color mode| ------------------------------------------------------------------------------- -SOME RESOURCES: +SCREENSHOTS OF RESULTS ------------------------------------------------------------------------------- -The following resources may be useful for this project: +* Depth in z-axis -* High-Performance Software Rasterization on GPUs - * Paper (HPG 2011): http://www.tml.tkk.fi/~samuli/publications/laine2011hpg_paper.pdf - * Code: http://code.google.com/p/cudaraster/ Note that looking over this code for reference with regard to the paper is fine, but we most likely will not grant any requests to actually incorporate any of this code into your project. - * Slides: http://bps11.idav.ucdavis.edu/talks/08-gpuSoftwareRasterLaineAndPantaleoni-BPS2011.pdf -* The Direct3D 10 System (SIGGRAPH 2006) - for those interested in doing geometry shaders and transform feedback. - * http://133.11.9.3/~takeo/course/2006/media/papers/Direct3D10_siggraph2006.pdf -* Multi-Fragment Effects on the GPU using the k-Buffer - for those who want to do a k-buffer - * http://www.inf.ufrgs.br/~comba/papers/2007/kbuffer_preprint.pdf -* FreePipe: A Programmable, Parallel Rendering Architecture for Efficient Multi-Fragment Effects (I3D 2010) - * https://sites.google.com/site/hmcen0921/cudarasterizer -* Writing A Software Rasterizer In Javascript: - * Part 1: http://simonstechblog.blogspot.com/2012/04/software-rasterizer-part-1.html - * Part 2: http://simonstechblog.blogspot.com/2012/04/software-rasterizer-part-2.html +![ScreenShot](https://raw.github.com/GabriellaQiong/Project4-Rasterizer/master/10302226.PNG) -------------------------------------------------------------------------------- -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: +* Transformation Feedback + +![ScreenShot](https://raw.github.com/GabriellaQiong/Project4-Rasterizer/master/10302254.PNG) + +* Color Interpolation + +![ScreenShot](https://raw.github.com/GabriellaQiong/Project4-Rasterizer/master/10301538.PNG) + +* Color Interpolation with Back Face Culling + +![ScreenShot](https://raw.github.com/GabriellaQiong/Project4-Rasterizer/master/10311946.PNG) + +* Flat Color with diffusion and specular reflection + +![ScreenShot](https://raw.github.com/GabriellaQiong/Project4-Rasterizer/master/10311942.PNG) + +![ScreenShot](https://raw.github.com/GabriellaQiong/Project4-Rasterizer/master/10311943.PNG) + +![ScreenShot](https://raw.github.com/GabriellaQiong/Project4-Rasterizer/master/10311944.PNG) + +![ScreenShot](https://raw.github.com/GabriellaQiong/Project4-Rasterizer/master/10311945.PNG) + +* Anti-aliasing + +Without anti-aliasing + +![ScreenShot](https://raw.github.com/GabriellaQiong/Project4-Rasterizer/master/10311939.PNG) + +With anti-aliasing + +![ScreenShot](https://raw.github.com/GabriellaQiong/Project4-Rasterizer/master/10311940.PNG) + +* Multi-color Lighting + +![ScreenShot](https://raw.github.com/GabriellaQiong/Project4-Rasterizer/master/10311941.PNG) -* 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. ------------------------------------------------------------------------------- -README +VIDEOS OF RESULTS ------------------------------------------------------------------------------- -All students must replace or augment the contents of this Readme.md in a clear -manner with the following: -* A brief description of the project and the specific features you implemented. -* At least one screenshot of your project running. -* A 30 second or longer video of your project running. To create the video you - can use http://www.microsoft.com/expression/products/Encoder4_Overview.aspx -* A performance evaluation (described in detail below). +This is the video of my CUDA rasterizer including mouse interaction and keyboard interaction + +[![ScreenShot](https://raw.github.com/GabriellaQiong/Project4-Rasterizer/master/videoscreenshot.PNG)](http://www.youtube.com/watch?v=rb--TBxSOmw) + +The youtube links are here if you cannot open the video in the markdown file: http://www.youtube.com/watch?v=rb--TBxSOmw ------------------------------------------------------------------------------- PERFORMANCE EVALUATION ------------------------------------------------------------------------------- -The performance evaluation is where you will investigate how to make your CUDA -programs more efficient using the skills you've learned in class. You must have -performed at least one experiment on your code to investigate the positive or -negative effects on performance. +Here is the table for the performance evaluation when adding different features to the rasterized cow. + +| Feature | approximate fps | +|:------------------:|:-----------------:| +| Color Intepolation | 7~8 | +| Z-depth | 9~10 | +| Anti-aliasing | 5~6 | +|Multi-color Lighting| 4~5 | +| Back Face Culling | 8~9 | -We encourage you to get creative with your tweaks. Consider places in your code -that could be considered bottlenecks and try to improve them. +Note: the color interpolation without backface culling here is the default mode the z-depth mode and anti-aliasing and multi-color lighting all based on the color interpolation mode. -Each student should provide no more than a one page summary of their -optimizations along with tables and or graphs to visually explain any -performance differences. +We can see that the back-face culling increase the frame per second a little bit while other features such as anti-aliasing, multi-color lighting all decrease the frame rate somehow. ------------------------------------------------------------------------------- -THIRD PARTY CODE POLICY +REFERENCES ------------------------------------------------------------------------------- -* 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. +* Basic Pipeline of Rasterization: http://cis565-fall-2013.github.io/lectures/10-14-Graphics-Pipeline.pptx +* Transformations from model to screen: http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/ +* Phong-Blinn Specular Shading: http://en.wikipedia.org/wiki/Blinn%E2%80%93Phong_shading_model +* Atomic Compare and Swap: https://devtalk.nvidia.com/default/topic/471383/atomiccas-doesn-39-t-compile-33-/ +* AtomicCAS: http://en.wikipedia.org/wiki/Compare-and-swap ------------------------------------------------------------------------------- -SELF-GRADING +ACKNOWLEDGEMENT ------------------------------------------------------------------------------- -* On the submission date, email your grade, on a scale of 0 to 100, to Liam, liamboone+cis565@gmail.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. -* A link to a video of your raytracer running. -* Instructions for building and running your project if they differ from the - base code. -* A performance writeup as detailed above. -* A list of all third-party code used. -* This Readme file edited as described above in the README section. - +Thanks a lot to Patrick and Liam for the preparation of this project. Thank you :) diff --git a/src/main.cpp b/src/main.cpp index e4c186e..42808f5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,6 +2,7 @@ // Written by Yining Karl Li, Copyright (c) 2012 University of Pennsylvania #include "main.h" +#include "structs.h" //------------------------------- //-------------MAIN-------------- @@ -29,6 +30,22 @@ int main(int argc, char** argv){ return 0; } + // Initialization of camera parameters + cam.position = glm::vec3(0.0f, 1.0f, 1.0f); + cam.up = glm::vec3(0.0f, 1.0f, 0.0f); + cam.view = glm::normalize(-cam.position); + cam.right = glm::normalize(glm::cross(cam.view, cam.up)); + cam.fovy = 45.0f; + + // Initialize transformation + model = new glm::mat4(utilityCore::buildTransformationMatrix(glm::vec3(0.0f, -0.2f, 0.0f), glm::vec3(0.0f), glm::vec3(0.7f))); + view = new glm::mat4(glm::lookAt(cam.position, glm::vec3(0.0f), cam.up)); + projection = new glm::mat4(glm::perspective(cam.fovy, (float)width / height, zNear, zFar)); + transformModel2Projection = new cudaMat4(utilityCore::glmMat4ToCudaMat4(*projection * *view * *model)); + + // Initialize viewport in the model space + viewPort = glm::normalize(utilityCore::multiplyMat(utilityCore::glmMat4ToCudaMat4(*projection * *view), glm::vec4(cam.view, 1.0f))); + frame = 0; seconds = time (NULL); fpstracker = 0; @@ -44,7 +61,7 @@ int main(int argc, char** argv){ #else init(argc, argv); #endif - + initCuda(); initVAO(); @@ -71,10 +88,17 @@ int main(int argc, char** argv){ #else glutDisplayFunc(display); glutKeyboardFunc(keyboard); + glutSpecialFunc(specialFunction); + glutMouseFunc(mouseClick); + glutMotionFunc(mouseMotion); glutMainLoop(); #endif kernelCleanup(); + delete model; + delete view; + delete projection; + delete transformModel2Projection; return 0; } @@ -82,6 +106,7 @@ int main(int argc, char** argv){ //---------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 @@ -99,13 +124,29 @@ void runCuda(){ ibo = mesh->getIBO(); ibosize = mesh->getIBOsize(); + nbo = mesh->getNBO(); + nbosize = mesh->getNBOsize(); + + // Update view and model to projection transform matrices in each step when interacting with keyboard or mouse + *view = glm::lookAt(cam.position, glm::vec3(0.0f), cam.up); + *transformModel2Projection = utilityCore::glmMat4ToCudaMat4(*projection * *view * *model); + viewPort = glm::normalize(utilityCore::multiplyMat(utilityCore::glmMat4ToCudaMat4(*projection * *view), glm::vec4(cam.view, 1.0f))); + + // Transformation Feedback + std::cout << "\n The model-view-projection transformation is:" << std::endl; + utilityCore::printMat4(*projection * *view * *model); + + std::cout << "\n The view port in the clip space is:" << std::endl; + utilityCore::printVec3(viewPort); + cudaGLMapBufferObject((void**)&dptr, pbo); - cudaRasterizeCore(dptr, glm::vec2(width, height), frame, vbo, vbosize, cbo, cbosize, ibo, ibosize); + cudaRasterizeCore(dptr, glm::vec2(width, height), frame, vbo, vbosize, cbo, cbosize, ibo, ibosize, nbo, nbosize, transformModel2Projection, viewPort, antialiasing, depthFlag, flatcolorFlag, color, multicolorFlag); cudaGLUnmapBufferObject(pbo); vbo = NULL; cbo = NULL; ibo = NULL; + nbo = NULL; frame++; fpstracker++; @@ -146,9 +187,11 @@ void runCuda(){ } #else - +bool pauseFlag = false; void display(){ - runCuda(); + if(!pauseFlag) + runCuda(); + time_t seconds2 = time (NULL); if(seconds2-seconds >= 1){ @@ -159,7 +202,7 @@ void runCuda(){ } - string title = "CIS565 Rasterizer | "+ utilityCore::convertIntToString((int)fps) + "FPS"; + string title = "CIS565 Rasterizer of Qiong Wang | "+ utilityCore::convertIntToString((int)fps) + "FPS"; glutSetWindowTitle(title.c_str()); glBindBuffer( GL_PIXEL_UNPACK_BUFFER, pbo); @@ -183,9 +226,110 @@ void runCuda(){ case(27): shut_down(1); break; + case(' '): + pauseFlag = ! pauseFlag; + break; + case('a'): + antialiasing = ! antialiasing; + break; + case('d'): + depthFlag = ! depthFlag; + break; + case('f'): + flatcolorFlag = ! flatcolorFlag; + break; + case('m'): + multicolorFlag = ! multicolorFlag; + break; + case('`'): + color = 0; + break; + case('1'): + color = 1; + break; + case('2'): + color = 2; + break; + case('3'): + color = 3; + break; + case('4'): + color = 4; + break; + case('['): + cam.position -= 0.1f * cam.up; + cam.view = glm::normalize(-cam.position); + cam.right = glm::normalize(glm::cross(cam.view, cam.up)); + cam.up = glm::normalize(glm::cross(cam.right, cam.view)); + break; + case(']'): + cam.position += 0.1f * cam.up; + cam.view = glm::normalize(-cam.position); + cam.right = glm::normalize(glm::cross(cam.view, cam.up)); + cam.up = glm::normalize(glm::cross(cam.right, cam.view)); + break; } } + void specialFunction(int key, int x, int y) { + // callback function for glutSpecialFunc + switch (key) + { + case(GLUT_KEY_UP): + cam.position -= 0.1f * cam.position; + break; + case(GLUT_KEY_DOWN): + cam.position += 0.1f * cam.position; + break; + case(GLUT_KEY_LEFT): + cam.position -= 0.1f * cam.right; + cam.view = glm::normalize(-cam.position); + cam.right = glm::normalize(glm::cross(cam.view, cam.up)); + cam.up = glm::normalize(glm::cross(cam.right, cam.view)); + break; + case(GLUT_KEY_RIGHT): + cam.position += 0.1f * cam.right; + cam.view = glm::normalize(-cam.position); + cam.right = glm::normalize(glm::cross(cam.view, cam.up)); + cam.up = glm::normalize(glm::cross(cam.right, cam.view)); + break; + } + return; + } + + // Mouse interaction code, referring to the glut example code http://graphics.stanford.edu/courses/cs248-01/OpenGLHelpSession/code_example.html + void mouseClick(int button, int state, int x, int y) { + if (state == GLUT_LEFT_BUTTON) { + buttonDown = (state == GLUT_DOWN) ? true : false; + lastX = x; + lastY = y; + } + } + + glm::vec4 pos; + void mouseMotion(int x, int y) { + if ( x < 0 || y < 0 || x > width || y > height) + return; + // Using the position of the mouse to change the two rotation angles of the camera + if (buttonDown) { + float roll = (x - lastX) / 5.0f; + float pitch = - (y - lastY) / 5.0f; + // Rotate around up axis + cam.right = glm::normalize(glm::cross(cam.view, cam.up)); + cam.up = glm::normalize(glm::cross(cam.right, cam.view)); + pos = glm::rotate(glm::mat4(1.0f), roll, cam.up) * glm::vec4(cam.position, 1.0f); + cam.position = glm::vec3(pos.x, pos.y, pos.z) / pos.w; + cam.view = glm::normalize(-cam.position); + // Rotate around right axis + cam.right = glm::normalize(glm::cross(cam.view, cam.up)); + cam.up = glm::normalize(glm::cross(cam.right, cam.view)); + pos = glm::rotate(glm::mat4(1.0f), pitch, cam.right) * glm::vec4(cam.position, 1.0f); + cam.position = glm::vec3(pos.x, pos.y, pos.z) / pos.w; + cam.view = glm::normalize(-cam.position); + } + lastX = x; + lastY = y; + } #endif //------------------------------- diff --git a/src/main.h b/src/main.h index f7571bc..5e29a5d 100644 --- a/src/main.h +++ b/src/main.h @@ -21,7 +21,9 @@ #include #include "glslUtility.h" #include "glm/glm.hpp" +#include "glm/gtc/matrix_transform.hpp" #include "rasterizeKernels.h" +#include "structs.h" #include "utilities.h" #include "ObjCore/objloader.h" @@ -59,6 +61,43 @@ float* cbo; int cbosize; int* ibo; int ibosize; +float* nbo; +int nbosize; + +//------------------------------- +//--------CAMERA STUFF----------- +//------------------------------- +// Camera Parameters +camera cam; +float zNear = 1.0f; +float zFar = 100.0f; + +// Transformation +glm::mat4* model; +glm::mat4* view; +glm::mat4* projection; +glm::mat4* screen; +cudaMat4* transformModel2Projection; + +// Viewport in the model space +glm::vec3 viewPort; + +//------------------------------- +//------INTERACTION STUFF-------- +//------------------------------- +// Mouse Interaction +static int lastX = 0; +static int lastY = 0; +static bool buttonDown = false; + +//------------------------------- +//--------FRAGMENT STUFF--------- +//------------------------------- +bool antialiasing = false; +bool depthFlag = false; +bool flatcolorFlag = false; +int color = 0; +bool multicolorFlag = false; //------------------------------- //----------CUDA STUFF----------- @@ -81,8 +120,11 @@ void runCuda(); #ifdef __APPLE__ void display(); #else - void display(); - void keyboard(unsigned char key, int x, int y); + void display(); + void keyboard(unsigned char key, int x, int y); + void specialFunction(int key, int x, int y); + void mouseClick(int button, int state, int x, int y); + void mouseMotion(int x, int y); #endif //------------------------------- diff --git a/src/rasterizeKernels.cu b/src/rasterizeKernels.cu index 0bca800..1e77883 100644 --- a/src/rasterizeKernels.cu +++ b/src/rasterizeKernels.cu @@ -15,11 +15,16 @@ #endif glm::vec3* framebuffer; -fragment* depthbuffer; -float* device_vbo; -float* device_cbo; -int* device_ibo; -triangle* primitives; +fragment* depthbuffer; +int* lock; +ray* light; +int lightNum = 4; +cudaMat4* transform; +float* device_vbo; +float* device_cbo; +int* device_ibo; +float* device_nbo; +triangle* primitives; void checkCUDAError(const char *msg) { cudaError_t err = cudaGetLastError(); @@ -135,64 +140,244 @@ __global__ void sendImageToPBO(uchar4* PBOpos, glm::vec2 resolution, glm::vec3* } //TODO: Implement a vertex shader -__global__ void vertexShadeKernel(float* vbo, int vbosize){ +__global__ void vertexShadeKernel(float* vbo, int vbosize, float* nbo, int nbosize, const cudaMat4 transform){ int index = (blockIdx.x * blockDim.x) + threadIdx.x; - if(index 0.0f || glm::dot(currentTriangle.n1, view) > 0.0f || glm::dot(currentTriangle.n2, view) > 0.0f ) + return; + glm::vec3 normal = glm::normalize((currentTriangle.n0 + currentTriangle.n1 + currentTriangle.n2) / 3.0f); + + // Add min max vectors and integers for the bounds and project the min back to the screen coordinate + glm::vec3 minPoint, maxPoint; + int minX, minY, maxX, maxY; + getAABBForTriangle(currentTriangle, minPoint, maxPoint); + scale2screen(minPoint, minX, maxY, resolution); + scale2screen(maxPoint, maxX, minY, resolution); + + if (minX > resolution.x - 1 || minY > resolution.y - 1 || minX < 0 || minY < 0 ) + return; + + // Clipping the points outside the image inside. + minX = minX < 0 ? 0 : minX; + minY = minY < 0 ? 0 : minY; + maxX = (maxX > resolution.x - 1) ? resolution.x - 1 : maxX; + maxY = (maxY > resolution.y - 1) ? resolution.y - 1 : maxY; + + // Loop and rasterize the interpolated area across the current primitive. + int idx; + float depth = 0; + for (int y = minY; y < maxY; ++ y) { + for (int x = minX; x < maxX; ++ x) { + idx = y * resolution.x + x; + glm::vec3 barycentricCoordinates = calculateBarycentricCoordinate(currentTriangle, screen2scale(x, y, resolution)); + + // Determine whether the current pixel is within the bounds of the current primitive + if (!isBarycentricCoordInBounds(barycentricCoordinates)) + continue; + depth = getZAtCoordinate(barycentricCoordinates, currentTriangle); + bool loopFlag = true; + do { + if (atomicCAS(&lock[idx], 0, 1) == 0) { + //Depth Test + if(depth > depthbuffer[idx].position.z) { + depthbuffer[idx].position.x = screen2scale(x, y, resolution).x; + depthbuffer[idx].position.y = screen2scale(x, y, resolution).y; + depthbuffer[idx].position.z = depth; + depthbuffer[idx].normal = normal; + depthbuffer[idx].color = barycentricCoordinates.x * currentTriangle.c0 + barycentricCoordinates.y * currentTriangle.c1 + barycentricCoordinates.z * currentTriangle.c2; + } + loopFlag = false; + __threadfence(); + atomicExch(&(lock[idx]), 0); + } + } while (loopFlag); + } // for x + } // for y } } //TODO: Implement a fragment shader -__global__ void fragmentShadeKernel(fragment* depthbuffer, glm::vec2 resolution){ +__global__ void fragmentShadeKernel(fragment* depthbuffer, glm::vec2 resolution, ray* light, int lightNum, bool depthFlag, bool flatcolorFlag, int color, bool multicolorFlag){ 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){ + if (x > resolution.x && y > resolution.y) + return; + + // Initialize the buffer and iteration time for lights + glm::vec3 frag = depthbuffer[index].color; + depthbuffer[index].color = glm::vec3(0.0f); + lightNum = multicolorFlag ? lightNum : 1; + + // Shading lights on the cow. + for (int i = 0; i < lightNum; ++ i) { + // Compute the vectors of light, view and H in Blinn-Phong lighting model, referring to http://en.wikipedia.org/wiki/Blinn%E2%80%93Phong_shading_model + glm::vec3 position = depthbuffer[index].position; + glm::vec3 normal = depthbuffer[index].normal; + glm::vec3 L = glm::normalize(light[i].position - position); + glm::vec3 V = glm::normalize(- position); + glm::vec3 H = glm::normalize(L + V); + + // Compute the diffusion and Blinn-Phong lighting + float diffuse = glm::max(glm::dot(L, normal), 0.0f); + float specular = glm::max(glm::pow(glm::dot(H, normal), 1000.0f), 0.0f); + + // Compute final color + if (depthFlag) { + depthbuffer[index].color = depthbuffer[index].position.z * glm::vec3(1.0f); + return; + } else if (flatcolorFlag) { + switch(color) { + case(0): + depthbuffer[index].color += (0.5f * diffuse + 0.5f * specular) * light[i].color; + break; + case(1): + depthbuffer[index].color += (0.5f * diffuse + 0.5f * specular) * glm::vec3(0.63f, 0.06f, 0.04f) * light[i].color; + break; + case(2): + depthbuffer[index].color += (0.5f * diffuse + 0.5f * specular) * glm::vec3(0.15f, 0.48f, 0.09f) * light[i].color; + break; + case(3): + depthbuffer[index].color += (0.5f * diffuse + 0.5f * specular) * glm::vec3(0.13f, 0.16f, 0.84f) * light[i].color; + break; + case(4): + depthbuffer[index].color += (0.5f * diffuse + 0.5f * specular) * glm::vec3(0.43f, 0.16f, 0.54f) * light[i].color; + break; + } + } else + depthbuffer[index].color += frag * (0.5f * diffuse + 0.5f * specular) * light[i].color; } + depthbuffer[index].color /= multicolorFlag ? (float)lightNum * 0.3f : (float)lightNum * 0.5f; } //Writes fragment colors to the framebuffer -__global__ void render(glm::vec2 resolution, fragment* depthbuffer, glm::vec3* framebuffer){ +__global__ void render(glm::vec2 resolution, fragment* depthbuffer, glm::vec3* framebuffer, bool antialiasing){ 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){ + if (ANTIALIASING || antialiasing) { + // Using super sampling and initialize with the central pixel, the corner flag indicates which corner the pixel is + int sampleNum = 1; + glm::vec3 sampling = depthbuffer[index].color; + + // Left side + sampleNum += (x > 0) ? 1 : 0; + sampling += (x > 0) ? depthbuffer[index - 1].color : glm::vec3(0.0f); + // Upper side + sampleNum += (y > 0) ? 1 : 0; + sampling += (y > 0) ? depthbuffer[index - (int)resolution.x].color : glm::vec3(0.0f); + // Right side + sampleNum += (x < resolution.x - 1) ? 1 : 0; + sampling += (x < resolution.x - 1) ? depthbuffer[index + 1].color : glm::vec3(0.0f); + // Bottom side + sampleNum += (x < resolution.y - 1) ? 1 : 0; + sampling += (x < resolution.y - 1) ? depthbuffer[index + (int)resolution.x].color : glm::vec3(0.0f); + + // Four corners + sampleNum += (sampleNum == 5) ? 4 : 0; + sampling += (sampleNum == 9) ? (depthbuffer[index - (int)resolution.x - 1].color + depthbuffer[index - (int)resolution.x + 1].color + + depthbuffer[index + (int)resolution.x - 1].color + depthbuffer[index + (int)resolution.x + 1].color) : glm::vec3(0.0f); + if (sampleNum == 9) { + framebuffer[index] = sampling / 9.0f; + return; + } + + // Two corners + sampleNum += (sampleNum == 4) ? 2 : 0; + if (sampleNum == 6) { + sampling += x == 0 ? depthbuffer[index - (int)resolution.x + 1].color + depthbuffer[index + (int)resolution.x + 1].color: glm::vec3(0.0f); + sampling += y == 0 ? depthbuffer[index + (int)resolution.x - 1].color + depthbuffer[index + (int)resolution.x + 1].color: glm::vec3(0.0f); + sampling += x == resolution.x ? depthbuffer[index - (int)resolution.x - 1].color + depthbuffer[index + (int)resolution.x - 1].color: glm::vec3(0.0f); + sampling += y == resolution.y ? depthbuffer[index - (int)resolution.x - 1].color + depthbuffer[index - (int)resolution.x + 1].color: glm::vec3(0.0f); + framebuffer[index] = sampling / 6.0f; + return; + } + + // One corner + sampleNum += (sampleNum == 3) ? 1 : 0; + if((x == 0) && (y == 0)) { + sampling += depthbuffer[index + (int)resolution.x + 1].color; + } else if ((x == resolution.x -1) && (y == 0)) { + sampling += depthbuffer[index + (int)resolution.x - 1].color; + } else if ((y == resolution.y -1) && (x == 0)) { + sampling += depthbuffer[index - (int)resolution.x + 1].color; + } else { + sampling += depthbuffer[index - (int)resolution.x - 1].color; + } + framebuffer[index] = sampling / 4.0f; + + } else framebuffer[index] = depthbuffer[index].color; } } // Wrapper for the __global__ call that sets up the kernel calls and does a ton of memory management -void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* vbo, int vbosize, float* cbo, int cbosize, int* ibo, int ibosize){ - +void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* vbo, int vbosize, float* cbo, int cbosize, int* ibo, int ibosize, float* nbo, int nbosize, const cudaMat4* transform, glm::vec3 viewPort, bool antialiasing, bool depthFlag, bool flatcolorFlag, int color, bool multicolorFlag){ + // set up crucial magic int tileSize = 8; dim3 threadsPerBlock(tileSize, tileSize); dim3 fullBlocksPerGrid((int)ceil(float(resolution.x)/float(tileSize)), (int)ceil(float(resolution.y)/float(tileSize))); - //set up framebuffer + // set up framebuffer framebuffer = NULL; cudaMalloc((void**)&framebuffer, (int)resolution.x*(int)resolution.y*sizeof(glm::vec3)); - //set up depthbuffer + // set up depthbuffer depthbuffer = NULL; cudaMalloc((void**)&depthbuffer, (int)resolution.x*(int)resolution.y*sizeof(fragment)); + // set up lock + lock = NULL; + cudaMalloc((void**)&lock, (int)resolution.x * (int)resolution.y * sizeof(int)); + + // set up light + light = NULL; + cudaMalloc((void**)&light, lightNum * sizeof(ray)); + //kernel launches to black out accumulated/unaccumlated pixel buffers and clear our scattering states clearImage<<>>(resolution, framebuffer, glm::vec3(0,0,0)); @@ -208,50 +393,71 @@ void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* primitives = NULL; cudaMalloc((void**)&primitives, (ibosize/3)*sizeof(triangle)); + // Index Buffer Object device_ibo = NULL; cudaMalloc((void**)&device_ibo, ibosize*sizeof(int)); cudaMemcpy( device_ibo, ibo, ibosize*sizeof(int), cudaMemcpyHostToDevice); + // Vertex Buffer Object device_vbo = NULL; cudaMalloc((void**)&device_vbo, vbosize*sizeof(float)); cudaMemcpy( device_vbo, vbo, vbosize*sizeof(float), cudaMemcpyHostToDevice); + // Color Buffer Object device_cbo = NULL; cudaMalloc((void**)&device_cbo, cbosize*sizeof(float)); cudaMemcpy( device_cbo, cbo, cbosize*sizeof(float), cudaMemcpyHostToDevice); + // Normal Buffer Object + device_nbo = NULL; + cudaMalloc((void**)&device_nbo, nbosize*sizeof(float)); + cudaMemcpy( device_nbo, nbo, nbosize*sizeof(float), cudaMemcpyHostToDevice); + tileSize = 32; int primitiveBlocks = ceil(((float)vbosize/3)/((float)tileSize)); //------------------------------ //vertex shader //------------------------------ - vertexShadeKernel<<>>(device_vbo, vbosize); + vertexShadeKernel<<>>(device_vbo, vbosize, device_nbo, nbosize, *transform); cudaDeviceSynchronize(); //------------------------------ //primitive assembly //------------------------------ primitiveBlocks = ceil(((float)ibosize/3)/((float)tileSize)); - primitiveAssemblyKernel<<>>(device_vbo, vbosize, device_cbo, cbosize, device_ibo, ibosize, primitives); + primitiveAssemblyKernel<<>>(device_vbo, vbosize, device_nbo, nbosize, device_cbo, cbosize, device_ibo, ibosize, primitives); cudaDeviceSynchronize(); //------------------------------ //rasterization //------------------------------ - rasterizationKernel<<>>(primitives, ibosize/3, depthbuffer, resolution); + rasterizationKernel<<>>(primitives, ibosize/3, depthbuffer, resolution, viewPort, lock); cudaDeviceSynchronize(); //------------------------------ //fragment shader //------------------------------ - fragmentShadeKernel<<>>(depthbuffer, resolution); + // Multiple lighting + ray* lights = new ray[lightNum]; + lights[0].position = glm::vec3(1.0f, 1.0f, 0.0f); + lights[0].color = glm::vec3(1.0f); + lights[1].position = glm::vec3(1.0f, 1.0f, 1.0f); + lights[1].color = glm::vec3(0.15f, 0.48f, 0.09f); + lights[2].position = glm::vec3(1.0f, 1.0f, 1.0f); + lights[2].color =glm::vec3(0.13f, 0.16f, 0.84f); + lights[3].position = glm::vec3(0.0f, 1.0f, 1.0f); + lights[3].color = glm::vec3(0.43f, 0.16f, 0.54f); + cudaMemcpy(light, lights, lightNum * sizeof(ray), cudaMemcpyHostToDevice); + delete [] lights; + + fragmentShadeKernel<<>>(depthbuffer, resolution, light, lightNum, depthFlag, flatcolorFlag, color, multicolorFlag); cudaDeviceSynchronize(); //------------------------------ //write fragments to framebuffer //------------------------------ - render<<>>(resolution, depthbuffer, framebuffer); + render<<>>(resolution, depthbuffer, framebuffer, antialiasing); sendImageToPBO<<>>(PBOpos, resolution, framebuffer); cudaDeviceSynchronize(); @@ -266,7 +472,11 @@ void kernelCleanup(){ cudaFree( device_vbo ); cudaFree( device_cbo ); cudaFree( device_ibo ); + cudaFree( device_nbo ); cudaFree( framebuffer ); cudaFree( depthbuffer ); + cudaFree( lock ); + cudaFree( light ); + cudaFree( transform ); } diff --git a/src/rasterizeKernels.h b/src/rasterizeKernels.h index 5d7a4be..8999f83 100644 --- a/src/rasterizeKernels.h +++ b/src/rasterizeKernels.h @@ -9,6 +9,9 @@ #include #include #include "glm/glm.hpp" +#include "glm/gtc/matrix_transform.hpp" +#include "cudaMat4.h" +#include "structs.h" #if CUDA_VERSION >= 5000 #include @@ -16,7 +19,10 @@ #include #endif +#define ANTIALIASING 0 + void kernelCleanup(); -void cudaRasterizeCore(uchar4* pos, glm::vec2 resolution, float frame, float* vbo, int vbosize, float* cbo, int cbosize, int* ibo, int ibosize); +void cudaRasterizeCore(uchar4* pos, glm::vec2 resolution, float frame, float* vbo, int vbosize, float* cbo, int cbosize, int* ibo, int ibosize, float* nbo, int nbosize, + const cudaMat4* transform, glm::vec3 viewPort, bool antialiasing, bool depthFlag, bool flatcolorFlag, int color, bool multicolorFlag); #endif //RASTERIZEKERNEL_H diff --git a/src/rasterizeTools.h b/src/rasterizeTools.h index e9b5dcc..b9617ff 100644 --- a/src/rasterizeTools.h +++ b/src/rasterizeTools.h @@ -8,29 +8,18 @@ #include "glm/glm.hpp" #include "utilities.h" #include "cudaMat4.h" +#include "structs.h" -struct triangle { - glm::vec3 p0; - glm::vec3 p1; - glm::vec3 p2; - glm::vec3 c0; - glm::vec3 c1; - glm::vec3 c2; -}; - -struct fragment{ - glm::vec3 color; - glm::vec3 normal; - glm::vec3 position; -}; - -//Multiplies a cudaMat4 matrix and a vec4 +//Multiplies a cudaMat4 matrix and a vec4 (homogeneous processing the last entry) __host__ __device__ glm::vec3 multiplyMV(cudaMat4 m, glm::vec4 v){ glm::vec3 r(1,1,1); r.x = (m.x.x*v.x)+(m.x.y*v.y)+(m.x.z*v.z)+(m.x.w*v.w); r.y = (m.y.x*v.x)+(m.y.y*v.y)+(m.y.z*v.z)+(m.y.w*v.w); r.z = (m.z.x*v.x)+(m.z.y*v.y)+(m.z.z*v.z)+(m.z.w*v.w); - return r; + if ((m.w.x*v.x)+(m.w.y*v.y)+(m.w.z*v.z)+(m.w.w*v.w) == 0.0f) + return r; + else + return r / ((m.w.x*v.x)+(m.w.y*v.y)+(m.w.z*v.z)+(m.w.w*v.w)); } //LOOK: finds the axis aligned bounding box for a given triangle @@ -75,4 +64,15 @@ __host__ __device__ float getZAtCoordinate(glm::vec3 barycentricCoord, triangle return -(barycentricCoord.x*tri.p0.z + barycentricCoord.y*tri.p1.z + barycentricCoord.z*tri.p2.z); } +// Transform the screen integer pixel position to the scale image. +__host__ __device__ glm::vec2 screen2scale(float x, float y, glm::vec2 resolution) { + return glm::vec2((x - (resolution.x - 1) / 2) / (resolution.x / 2), -(y - (resolution.y - 1) / 2) / (resolution.y / 2)); +} + +// Transform the scale image position to the integer pixel one in the image. +__host__ __device__ void scale2screen(glm::vec3 point, int & xs, int & ys, glm::vec2 resolution) { + xs = (int)glm::round((point.x + 1) * resolution.x / 2); + ys = (int)glm::round((- point.y + 1) * resolution.y / 2); +} + #endif \ No newline at end of file diff --git a/src/structs.h b/src/structs.h new file mode 100755 index 0000000..5f96790 --- /dev/null +++ b/src/structs.h @@ -0,0 +1,43 @@ +// CIS565 CUDA Rasterizer: A simple rasterization pipeline for Patrick Cozzi's CIS565: GPU Computing at the University of Pennsylvania +// Written by Yining Karl Li, Copyright (c) 2012 University of Pennsylvania + +#ifndef STRUCTS_H +#define STRUCTS_H + +#include "glm/glm.hpp" +#include "cudaMat4.h" +#include +#include + +struct triangle { + glm::vec3 p0; + glm::vec3 p1; + glm::vec3 p2; + glm::vec3 c0; + glm::vec3 c1; + glm::vec3 c2; + glm::vec3 n0; + glm::vec3 n1; + glm::vec3 n2; +}; + +struct fragment { + glm::vec3 color; + glm::vec3 normal; + glm::vec3 position; +}; + +struct camera { + glm::vec3 position; + glm::vec3 view; + glm::vec3 up; + glm::vec3 right; + float fovy; +}; + +struct ray { + glm::vec3 position; + glm::vec3 color; +}; + +#endif // end of CUDASTRUCTS_H \ No newline at end of file diff --git a/src/utilities.cpp b/src/utilities.cpp index 4f8f4d3..643861c 100644 --- a/src/utilities.cpp +++ b/src/utilities.cpp @@ -104,16 +104,27 @@ std::vector utilityCore::tokenizeString(std::string str){ //----------------------------- void utilityCore::printMat4(glm::mat4 m){ - std::cout << m[0][0] << " " << m[1][0] << " " << m[2][0] << " " << m[3][0] << std::endl; - std::cout << m[0][1] << " " << m[1][1] << " " << m[2][1] << " " << m[3][1] << std::endl; - std::cout << m[0][2] << " " << m[1][2] << " " << m[2][2] << " " << m[3][2] << std::endl; - std::cout << m[0][3] << " " << m[1][3] << " " << m[2][3] << " " << m[3][3] << std::endl; + std::cout << " " << m[0][0] << " " << m[1][0] << " " << m[2][0] << " " << m[3][0] << std::endl; + std::cout << " " << m[0][1] << " " << m[1][1] << " " << m[2][1] << " " << m[3][1] << std::endl; + std::cout << " " << m[0][2] << " " << m[1][2] << " " << m[2][2] << " " << m[3][2] << std::endl; + std::cout << " " << m[0][3] << " " << m[1][3] << " " << m[2][3] << " " << m[3][3] << std::endl; } void utilityCore::printVec4(glm::vec4 m){ - std::cout << m[0] << " " << m[1] << " " << m[2] << " " << m[3] << std::endl; + std::cout << " " << m[0] << " " << m[1] << " " << m[2] << " " << m[3] << std::endl; } void utilityCore::printVec3(glm::vec3 m){ - std::cout << m[0] << " " << m[1] << " " << m[2] << std::endl; + std::cout << " " << m[0] << " " << m[1] << " " << m[2] << std::endl; } + +glm::vec3 utilityCore::multiplyMat(cudaMat4 m, glm::vec4 v){ + glm::vec3 r(1,1,1); + r.x = (m.x.x*v.x)+(m.x.y*v.y)+(m.x.z*v.z)+(m.x.w*v.w); + r.y = (m.y.x*v.x)+(m.y.y*v.y)+(m.y.z*v.z)+(m.y.w*v.w); + r.z = (m.z.x*v.x)+(m.z.y*v.y)+(m.z.z*v.z)+(m.z.w*v.w); + if ((m.w.x*v.x)+(m.w.y*v.y)+(m.w.z*v.z)+(m.w.w*v.w) == 0.0f) + return r; + else + return r / ((m.w.x*v.x)+(m.w.y*v.y)+(m.w.z*v.z)+(m.w.w*v.w)); +} \ No newline at end of file diff --git a/src/utilities.h b/src/utilities.h index 3e6ef6e..d428c4e 100644 --- a/src/utilities.h +++ b/src/utilities.h @@ -40,5 +40,6 @@ namespace utilityCore { extern void printMat4(glm::mat4); extern void printVec4(glm::vec4); extern void printVec3(glm::vec3); + extern glm::vec3 multiplyMat(cudaMat4 m, glm::vec4 v); } #endif diff --git a/videoscreenshot.PNG b/videoscreenshot.PNG new file mode 100644 index 0000000..2535f0e Binary files /dev/null and b/videoscreenshot.PNG differ