From c3c5c4570ea0527e34ebbca7bd5873b296e1c56c Mon Sep 17 00:00:00 2001 From: heguanyu Date: Wed, 30 Oct 2013 17:44:43 -0400 Subject: [PATCH 1/3] basic part and mouse interaction accomplished --- PROJ4_WIN/565Rasterizer/565Rasterizer.vcxproj | 4 + PROJ4_WIN/src/rasterizeKernels.cu.deps | 624 +++++++++--------- bmps/depthtest.bmp | Bin 0 -> 2053926 bytes bmps/stupidbug.bmp | Bin 0 -> 152478 bytes objs/cube.obj | 8 +- objs/cube.obj.bak | 20 + objs/tri.obj | 2 +- objs/tri.obj.bak | 7 + src/ObjCore/obj.cpp | 2 +- src/main.cpp | 78 ++- src/main.h | 18 +- src/rasterizeKernels.cu | 370 ++++++++++- src/rasterizeKernels.h | 3 +- src/rasterizeTools.h | 5 + src/utilities.h | 18 + 15 files changed, 830 insertions(+), 329 deletions(-) create mode 100644 bmps/depthtest.bmp create mode 100644 bmps/stupidbug.bmp create mode 100644 objs/cube.obj.bak create mode 100644 objs/tri.obj.bak diff --git a/PROJ4_WIN/565Rasterizer/565Rasterizer.vcxproj b/PROJ4_WIN/565Rasterizer/565Rasterizer.vcxproj index 8ce38a4..fe7f6b5 100644 --- a/PROJ4_WIN/565Rasterizer/565Rasterizer.vcxproj +++ b/PROJ4_WIN/565Rasterizer/565Rasterizer.vcxproj @@ -85,6 +85,10 @@ $(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) + + + + diff --git a/PROJ4_WIN/src/rasterizeKernels.cu.deps b/PROJ4_WIN/src/rasterizeKernels.cu.deps index a71538d..a33db3d 100644 --- a/PROJ4_WIN/src/rasterizeKernels.cu.deps +++ b/PROJ4_WIN/src/rasterizeKernels.cu.deps @@ -1,18 +1,18 @@ 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\crtdefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h c:\program files (x86)\microsoft visual studio 10.0\vc\include\codeanalysis\sourceannotations.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vadefs.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\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 (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 @@ -68,12 +68,12 @@ 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 (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 @@ -82,16 +82,16 @@ 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 (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 @@ -239,9 +239,9 @@ 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 (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 @@ -255,85 +255,103 @@ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/co 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\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 (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 @@ -363,217 +381,201 @@ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/no 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 +e:\gitprojects\project4-rasterizer\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 +e:\gitprojects\project4-rasterizer\src\glm/glm.hpp +e:\gitprojects\project4-rasterizer\src\glm\core/_fixes.hpp +e:\gitprojects\project4-rasterizer\src\glm\core/setup.hpp +e:\gitprojects\project4-rasterizer\src\glm\./core/_detail.hpp +e:\gitprojects\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 +e:\gitprojects\project4-rasterizer\src\glm\./core/type.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_half.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_half.inl +e:\gitprojects\project4-rasterizer\src\glm\core\_detail.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_float.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_half.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\setup.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_int.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\setup.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\_detail.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_gentype.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_size.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_vec1.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_vec.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_gentype.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_float.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_int.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_size.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\_swizzle.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\_swizzle_func.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_vec1.inl +e:\gitprojects\project4-rasterizer\src\glm\core\type_vec2.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_vec.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_float.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_int.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_size.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\_swizzle.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_vec2.inl +e:\gitprojects\project4-rasterizer\src\glm\core\type_vec3.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_vec.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_float.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_int.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_size.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\_swizzle.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_vec3.inl +e:\gitprojects\project4-rasterizer\src\glm\core\type_vec4.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_vec.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_float.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_int.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_size.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\_swizzle.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_vec4.inl +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat2x2.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_gentype.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat2x2.inl +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat2x3.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat2x3.inl +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat2x4.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat2x4.inl +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat3x2.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat3x2.inl +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat3x3.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat3x3.inl +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat3x4.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat3x4.inl +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat4x2.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat4x2.inl +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat4x3.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat4x3.inl +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat4x4.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\type_mat4x4.inl +e:\gitprojects\project4-rasterizer\src\glm\./core/func_trigonometric.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\func_trigonometric.inl +e:\gitprojects\project4-rasterizer\src\glm\core\_vectorize.hpp +e:\gitprojects\project4-rasterizer\src\glm\./core/func_exponential.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\func_exponential.inl +e:\gitprojects\project4-rasterizer\src\glm\core\_vectorize.hpp +e:\gitprojects\project4-rasterizer\src\glm\./core/func_common.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\_fixes.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\func_common.inl +e:\gitprojects\project4-rasterizer\src\glm\core\_vectorize.hpp +e:\gitprojects\project4-rasterizer\src\glm\./core/func_packing.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\func_packing.inl +e:\gitprojects\project4-rasterizer\src\glm\./core/func_geometric.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\func_geometric.inl +e:\gitprojects\project4-rasterizer\src\glm\core\_vectorize.hpp +e:\gitprojects\project4-rasterizer\src\glm\./core/func_matrix.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\func_matrix.inl +e:\gitprojects\project4-rasterizer\src\glm\core\_vectorize.hpp +e:\gitprojects\project4-rasterizer\src\glm\./core/func_vector_relational.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\_detail.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\func_vector_relational.inl +e:\gitprojects\project4-rasterizer\src\glm\./core/func_integer.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\func_integer.inl +e:\gitprojects\project4-rasterizer\src\glm\core\_vectorize.hpp +e:\gitprojects\project4-rasterizer\src\glm\./core/func_noise.hpp +e:\gitprojects\project4-rasterizer\src\glm\core\func_noise.inl +e:\gitprojects\project4-rasterizer\src\glm\./core/_swizzle.hpp +e:\gitprojects\project4-rasterizer\src\utilities.h +e:\gitprojects\project4-rasterizer\src\glm/glm.hpp +e:\gitprojects\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\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 +e:\gitprojects\project4-rasterizer\src\cudaMat4.h +e:\gitprojects\project4-rasterizer\src\glm/glm.hpp +e:\gitprojects\project4-rasterizer\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\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:\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\cudaMat4.h +e:\gitprojects\project4-rasterizer\src\rasterizeTools.h +e:\gitprojects\project4-rasterizer\src\glm/glm.hpp +e:\gitprojects\project4-rasterizer\src\glm\core/_fixes.hpp +e:\gitprojects\project4-rasterizer\src\utilities.h +e:\gitprojects\project4-rasterizer\src\cudaMat4.h C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.5\common\inc\helper_math.h diff --git a/bmps/depthtest.bmp b/bmps/depthtest.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ab638fb2f2d8dfb24013bc13981b74b107a386cd GIT binary patch literal 2053926 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%0Dc94? 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 z$L3rYqar|n009C7))A1$)>&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ( z6p+W}To&&a zB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W} zTo&&aB|v}x z0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ( z6p+W}To&&a zB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W} zTo&&aB|v}x z0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ( z6p+W}To&&a zB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W} zTo&&aB|v}x z0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ( z6p+W}To&&a zB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W} zTo&&aB|v}x z0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ( z6p+W}To&&a zB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W} zTo&&aB|v}x z0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ( z6p+W}To&&a zB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W} zTo&&aB|v}x z0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}To&&aB|v}x0RjZ(6p+W}ToS&EfB*pk1PBly@MZ$?*qc$i5CH-N2oNAZU{^pM+htKnfB*pk1PBm#GXZ(*&8S_7 z009C72oNB!Dsj?1PJsA$YXtOS`i?yrhq)Q=DM3Tf!7w0$6i}l{{#p;lYl(- zOsi=w1m+Qt$L3iJBOx$Qpu~nRe*XH+FMjc#fAs6o|8IWfH~u`zpMB}?VbtV!zVl~a&T=-19-_WnCBGJj=33=J zWWm{eC|Sz>Q_n}+2yUkMPnDe!B*_W#WApY1s1v8{<3 z0*@|GZr^n*i8NB~@^v2j^DjmK`%;-~30iTNkG%1lzxL}Typ?`39^^UEB+8}#lk;oF zCXbbL6qn0F=`+GcTrT?jPK@E>*y4noNOV#{RGeHwPG-EEV10g`R?T*5VGX5r3mCh5q3^Kk(C%cQ4Cnyjga8Y1}FcxFjj`n6A z`_~t~wwF*tfWR9IMDWOr(Of$7SW{oehWf3HH%(M1=Wk<4o?mwo6G~whsyW9Y z0Rp=MPmsrc{`3FxlOKQj<4?c+*{9$B@n@g>>}UV*FaPo{+pxAfeU$_VyqQ3`(I4H@ zn|P3;I%<`%p=5yE&uQXW(@&n3^+!>vzV5cqXcaqVxd~QxQkU~8QD|~ej=!AKyxSaR zKOK22U~`=HFq(0ue>1Rh>8(HxsV>xLb-gkH0yhO7I*&yX`{dhS{=+}~!jC`w?VtSk zd;jHUKZ*bR!%semU>2#YiDWk^oIrrUs|rNMhzzq$MCGEH2kJ4DCiy6^d8=%-l?;$u zNk>~WM+qlm$u>)r5K=xCRi0PI0LqY>UB2ujPKa_gDTQ)!Gk|UEsXHlGY5IvdcI2_> zwgwF67|%cc=-1=ZadkG%;cW*NlWHiM>6djWW3I1N>U||Z;EKTG=CObJr+7V}iv+sTSz2E-nPd@wk&wqYJ!#M;9yq-Y0Uti2) zB^5*G zn4_JRIy+_lDH-ECzx8jwl9^#__x$G4aZYwsu3I8aB#`{|fqLY5ew>h>?a#{SypBvI z#+3d`=XtFrag|X8LI%s|GxK5Am(KH?dM@Q!+dLL+%kPJlh*btqPOfuZ46k&%JFw>b z?YwfR^^lYaJc>a6KOjw^Z~RRs&EZj>-Fd8poVxk8rhfOlydB=n&-4G&&wuud{jtx! z_tT$zT0S%O@oRkfm&jxBpV%3T|HxxoUNr>XUZ4&t+pA|DE2m{{sn3jaw)ICjBpU9X zUw0VgI!cwpj26*6{~^ummdlm;IP>r0&tg=6oul4{%5&=9$NbHYxiNbC?33vHS0Xx= z{F4`oLS8Gzmh~lM7M$<=R{U*^Uuja=kwXNnoKZdZX5#68C66UknSKtq?q8X}0}130 zT2ttoLUeM}@Z_!Ym~{Sb9l+}Hd8^%bw z_S1j;*I)Wn|Mn7U2oQK9Htr*I{Ym1|`jt@qj9V5TlXU~++z&~@_GZaTVNSz_3oVJt4UwY`$Z z;<~XF77s4t^ZaE)?6XgP`=>wt-oO0Q&+CDe^7ayH2oQK*TH7bab(@-WjXQ7n|3oZRzB(t%(`}1PBly zKwxr#2wf+yqrumq=tbpi0Nd7F?{GUjd2DN(#al;%zaE)h^~~+? zaFEqTmW0t5&UAV7csfp--6{{fIN*@*xE literal 0 HcmV?d00001 diff --git a/bmps/stupidbug.bmp b/bmps/stupidbug.bmp new file mode 100644 index 0000000000000000000000000000000000000000..797f2fdcf63584f67fed071e5f5a7a1105b7ced2 GIT binary patch literal 152478 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 literal 0 HcmV?d00001 diff --git a/objs/cube.obj b/objs/cube.obj index 1375c11..c90b3ae 100644 --- a/objs/cube.obj +++ b/objs/cube.obj @@ -1,10 +1,10 @@ v -0.1 -0.1 -0.1 -v -0.1 -0.1 0.1 -v -0.1 0.1 0.1 +v -0.1 -0.1 0.3 +v -0.1 0.1 0.3 v -0.1 0.1 -0.1 v 0.1 0.1 -0.1 -v 0.1 0.1 0.1 -v 0.1 -0.1 0.1 +v 0.1 0.1 0.3 +v 0.1 -0.1 0.3 v 0.1 -0.1 -0.1 vn 1 0 0 diff --git a/objs/cube.obj.bak b/objs/cube.obj.bak new file mode 100644 index 0000000..34285f6 --- /dev/null +++ b/objs/cube.obj.bak @@ -0,0 +1,20 @@ +v -0.1 -0.1 -0.1 +v -0.1 -0.1 0.3 +v -0.1 0.1 0.3 +v -0.1 0.1 -0.1 +v 0.1 0.1 -0.1 +v 0.1 0.1 0.3 +v 0.1 -0.1 0.3 +v 0.1 -0.1 -0.1 + +vn 1 0 0 +vn 0 1 0 +vn 0 0 1 +vn -1 0 0 +vn 0 -1 0 +vn 0 0 -1 + +f 1//4 2//4 4//4 +f 4//4 2//4 3//4 +f 8//6 1//6 5//6 +f 5//6 1//6 4//6 diff --git a/objs/tri.obj b/objs/tri.obj index fb38e35..839f257 100644 --- a/objs/tri.obj +++ b/objs/tri.obj @@ -1,6 +1,6 @@ v 0 0 0 v 0.1 0 0 -v 0 0.1 0 +v 0 0.1 -0.1 vn 0 0 1 diff --git a/objs/tri.obj.bak b/objs/tri.obj.bak new file mode 100644 index 0000000..fb38e35 --- /dev/null +++ b/objs/tri.obj.bak @@ -0,0 +1,7 @@ +v 0 0 0 +v 0.1 0 0 +v 0 0.1 0 + +vn 0 0 1 + +f 1//1 2//1 3//1 \ No newline at end of file diff --git a/src/ObjCore/obj.cpp b/src/ObjCore/obj.cpp index 86e8744..e38005e 100644 --- a/src/ObjCore/obj.cpp +++ b/src/ObjCore/obj.cpp @@ -36,7 +36,7 @@ obj::~obj(){ } void obj::buildVBOs(){ - recenter(); + //recenter(); vector VBOvec; vector NBOvec; vector IBOvec; diff --git a/src/main.cpp b/src/main.cpp index e4c186e..7911e1b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,6 +6,12 @@ //------------------------------- //-------------MAIN-------------- //------------------------------- +int mousex,mousey; + +int mouseStatus; //0: left hold, 1: mid hold, 2: right hold, -1 nothing + + + int main(int argc, char** argv){ @@ -45,6 +51,21 @@ int main(int argc, char** argv){ init(argc, argv); #endif + cameraPosition=glm::vec3(0,0,0.8); + cameraDir=glm::vec3(0,0,-1); + cameraUp=glm::vec3(0,1,0); + + float fovy = 60.0f; + float zNear = 0.10; + float zFar = 25.0; + + camInfo=cameraInfo(fovy,(float)width/float(height),zNear,zFar); + //view = glm::lookAt(cameraPosition, cameraDir+cameraPosition, cameraUp); + //projection=glm::inverse(view); + updateCameraProjMat(); + + glutMotionFunc(getmousePos); + glutMouseFunc(mouseAction); initCuda(); initVAO(); @@ -55,7 +76,7 @@ int main(int argc, char** argv){ glUseProgram(passthroughProgram); glActiveTexture(GL_TEXTURE0); - + #ifdef __APPLE__ // send into GLFW main loop while(1){ @@ -77,6 +98,56 @@ int main(int argc, char** argv){ kernelCleanup(); return 0; } +//////////////////////////MOUSE ACTIONS///////////////////// +void updateCameraProjMat() +{ + view = glm::lookAt(cameraPosition, cameraDir+cameraPosition, cameraUp); + //projection=glm::inverse(view); + projection=view; +} +void getmousePos(int x, int y) +{ + + if(mouseStatus==0) + { + if(y-mousey<-5) cameraPosition+=cameraDir*0.1f; + else if(y-mousey>5)cameraPosition-=cameraDir*0.1f; + } + if(mouseStatus==1) + { + glm::vec3 right=glm::normalize(glm::cross(cameraDir,cameraUp)); + if(x-mousex<-5) cameraPosition-=right*0.1f; + else if(x-mousex>5) cameraPosition+=right*0.1f; + } + + if(mouseStatus==2) + { + glm::vec3 centerpt=cameraPosition+cameraDir*5.0f; + glm::vec3 right=glm::normalize(glm::cross(cameraDir,cameraUp)); + if(x-mousex<-5) cameraPosition-=right*0.15f; + else if(x-mousex>5) cameraPosition+=right*0.15f; + cameraDir=glm::normalize(centerpt-cameraPosition); + cameraPosition=centerpt-5.0f*cameraDir; + } + updateCameraProjMat(); + mousex=x; + mousey=y; + //printf("%d %d\n",x,y); +} +void mouseAction(int button, int dir, int x, int y) +{ + //string statusname[4]={"nothing","left","middle","right"}; + // printf("%d %d\n", button, dir); + if(dir==1) mouseStatus=-1; + else + { + mouseStatus=button; + mousex=x; + mousey=y; + } + //printf("%d\n",mouseStatus); + //printf("%s\n",statusname[mouseStatus+1]); +} //------------------------------- //---------RUNTIME STUFF--------- @@ -86,6 +157,7 @@ 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 dptr=NULL; + vbo = mesh->getVBO(); vbosize = mesh->getVBOsize(); @@ -100,7 +172,7 @@ void runCuda(){ ibosize = mesh->getIBOsize(); 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,projection,camInfo); cudaGLUnmapBufferObject(pbo); vbo = NULL; @@ -157,6 +229,8 @@ void runCuda(){ fpstracker = 0; seconds = seconds2; + //printf("seconds:%d", seconds2); + } string title = "CIS565 Rasterizer | "+ utilityCore::convertIntToString((int)fps) + "FPS"; diff --git a/src/main.h b/src/main.h index f7571bc..118e2a7 100644 --- a/src/main.h +++ b/src/main.h @@ -21,6 +21,7 @@ #include #include "glslUtility.h" #include "glm/glm.hpp" +#include "glm/gtc/matrix_transform.hpp" #include "rasterizeKernels.h" #include "utilities.h" #include "ObjCore/objloader.h" @@ -66,6 +67,16 @@ int ibosize; int width=800; int height=800; +cameraInfo camInfo; + +glm::mat4 projection; +glm::mat4 view; + +glm::vec3 cameraPosition; +glm::vec3 cameraDir; +glm::vec3 cameraUp; + + //------------------------------- //-------------MAIN-------------- //------------------------------- @@ -109,5 +120,10 @@ void cleanupCuda(); void deletePBO(GLuint* pbo); void deleteTexture(GLuint* tex); void shut_down(int return_code); - +//------------------------------ +//-----------MOUSE OPERATION---- +//----------------------------- +void updateCameraProjMat(); +void mouseAction(int button, int dir, int x, int y); +void getmousePos(int x, int y); #endif \ No newline at end of file diff --git a/src/rasterizeKernels.cu b/src/rasterizeKernels.cu index 0bca800..499f639 100644 --- a/src/rasterizeKernels.cu +++ b/src/rasterizeKernels.cu @@ -17,6 +17,7 @@ glm::vec3* framebuffer; fragment* depthbuffer; float* device_vbo; +float* device_original_vbo; float* device_cbo; int* device_ibo; triangle* primitives; @@ -96,6 +97,7 @@ __global__ void clearDepthBuffer(glm::vec2 resolution, fragment* buffer, fragmen fragment f = frag; f.position.x = x; f.position.y = y; + f.position.z=100000000.0f; buffer[index] = f; } } @@ -135,33 +137,315 @@ __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,glm::mat4 projection, cameraInfo cam){ int index = (blockIdx.x * blockDim.x) + threadIdx.x; if(index=b)?a:b; +} +__device__ int getMin(int a, int b, int c) +{ + if(a<=b && a<=c) return a; + if(b<=a && b<=c) return b; + return c; +} + +__device__ int getMax(int a, int b, int c) +{ + if(a>=b && a>=c) return a; + if(b>=a && b>=c) return b; + return c; +} +__device__ bool isValid(float x, float y) +{ + return x>=-1.0f && x<1.0f && y>=-1.0f && y<1.0f; +} + +__device__ int inBoundary(int x, int y , glm::vec2 resolution) +{ + return x>=0 && y>=0 && x0.0001f) return glm::vec2(tbd.x/v21.x,0); + if(abs(v21.y)>0.0001f) return glm::vec2(tbd.y/v21.y,0); + if(abs(v31.x)>0.0001f) return glm::vec2(0,tbd.x/v31.x); + if(abs(v31.y)>0.0001f) return glm::vec2(0,tbd.y/v31.y); + return glm::vec2(-1,-1); + } + float up1=detMatrix22(v21.y,v21.x,tbd.y,tbd.x); + float up2=-detMatrix22(v31.y,v31.x,tbd.y,tbd.x); + float t1=up2/theBase; + float t2=up1/theBase; + return glm::vec2(t1,t2); +} +__device__ float getZ(glm::vec2 interpCoeff, float z1, float z2, float z3) +{ + + return z1+interpCoeff.x*(z2-z1)+interpCoeff.y*(z3-z1); +} +__device__ glm::vec3 getC(glm::vec2 interpCoeff, glm::vec3 c1, glm::vec3 c2, glm::vec3 c3) +{ + return c1+interpCoeff.x*(c2-c1)+interpCoeff.y*(c3-c1); +} +__device__ glm::vec3 getN(glm::vec2 interpCoeff, glm::vec3 n1, glm::vec3 n2, glm::vec3 n3) +{ + return n1+interpCoeff.x*(n2-n1)+interpCoeff.y*(n3-n1); +} +__device__ float clampit(float x, float min, float max) +{ + if(xmax) return max; + return x; +} +__device__ glm::vec2 getStartEndPoint(int x, int x1, int y1, int x2, int y2, int x3, int y3,glm::vec2 resolution) +{ + bool intersect1=((x-x1)*(x-x2)<=0); + bool intersect2=((x-x2)*(x-x3)<=0); + bool intersect3=((x-x3)*(x-x1)<=0); + float ip1, ip2, ip3; + ip1=(x1==x2)?-99999999:(y1+(y2-y1)*(float)((float)(x-x1)/(float)(x2-x1))); + ip2=(x2==x3)?-99999999:(y2+(y3-y2)*(float)((float)(x-x2)/(float)(x3-x2))); + ip3=(x1==x3)?-99999999:(y3+(y1-y3)*(float)((float)(x-x3)/(float)(x1-x3))); + float tmp; + float start, end; + if(ip1<-9999999 && ip2<-9999999 && ip3<-9999999 ) + { + start=clampit((float)getMin(y1,y2,y3),0,resolution.y); + end=clampit((float)getMax(y1,y2,y3),0,resolution.y); + } + else if((!intersect3) || ip3<-9999999) + { + start=clampit(ip1,0,resolution.y); + end=clampit(ip2,0,resolution.y); + if(start>end) {tmp=start;start=end;end=tmp;} + } + else if((!intersect1) || ip1<-9999999) + { + start=clampit(ip2,0,resolution.y); + end=clampit(ip3,0,resolution.y); + if(start>end) {tmp=start;start=end;end=tmp;} + } + else if((!intersect2) || ip2<-9999999) + { + start=clampit(ip3,0,resolution.y); + end=clampit(ip1,0,resolution.y); + if(start>end) {tmp=start;start=end;end=tmp;} + } + else if(intersect1 && intersect2 && intersect3) + { + start=getMin((float)ip1,(float)ip2,(float)ip3); + end=getMax((float)ip1,(float)ip2,(float)ip3); + } + else + { + start=0; + end=resolution.y; + } + return glm::vec2(start,end); +} + +__global__ void pixel_level_rasterization(triangle* primitives, int primitivesCount, fragment* depthbuffer, glm::vec2 resolution) +{ + int x = (blockIdx.x * blockDim.x) + threadIdx.x; + int y = (blockIdx.y * blockDim.y) + threadIdx.y; + int index = x + (y * resolution.x); + if(!inBoundary(x,y,resolution)) return; + + float posx1f,posy1f, posx2f, posy2f, posx3f, posy3f, posz1f,posz2f,posz3f; + float mindist=10000; + for(int i=0;i1.00f) continue; + float d=getZ(interpcoeff,posz1f,posz2f,posz3f); + glm::vec3 c=getC(interpcoeff,c1,c2,c3); + glm::vec3 n=getN(interpcoeff,n1,n2,n3); + //float d=(posz1f,posz2f,posz3f)/3.0f; + if(d1.0f) continue; + float d=getZ(interpcoeff,posz1f,posz2f,posz3f); + glm::vec3 c=getC(interpcoeff,c1,c2,c3); + glm::vec3 n=getN(interpcoeff,n1,n2,n3); + //float d=com.z; + if(d0.00001f) + //{ + // depthbuffer[index].color=(depthbuffer[index].position.z>998.0f)?glm::vec3(0,0,0):glm::vec3(1.0f)*(maxz-depthbuffer[index].position.z)/(maxz-minz); + //} + //else + //{ + // depthbuffer[index].color=(depthbuffer[index].position.z>1000.0f)?glm::vec3(0,0,0):glm::vec3(1.0f); + //} + //depthbuffer[index].color=glm::vec3(1.0f)*(depthbuffer[index].position.z)/(5000.0f); + //depthbuffer[index].color=(depthbuffer[index].position.z>1000.0f)?glm::vec3(0,0,0):glm::vec3(1.0f); + + ///////NORMAL TEST + depthbuffer[index].color=(depthbuffer[index].position.z>1000.0f)?glm::vec3(1,1,1):((depthbuffer[index].normal+glm::vec3(1.0f))*0.5f); + + /////DEPTH TEST + depthbuffer[index].color=(depthbuffer[index].position.z>998.0f)?glm::vec3(0,0,0):glm::vec3(1.0f)*(maxz-depthbuffer[index].position.z)/(maxz-minz); + + //// } } @@ -178,7 +462,7 @@ __global__ void render(glm::vec2 resolution, fragment* depthbuffer, glm::vec3* f } // 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,glm::mat4 projection, cameraInfo camInfo){ // set up crucial magic int tileSize = 8; @@ -216,6 +500,10 @@ void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* cudaMalloc((void**)&device_vbo, vbosize*sizeof(float)); cudaMemcpy( device_vbo, vbo, vbosize*sizeof(float), cudaMemcpyHostToDevice); + device_original_vbo = NULL; + cudaMalloc((void**)&device_original_vbo, vbosize*sizeof(float)); + cudaMemcpy( device_original_vbo, vbo, vbosize*sizeof(float), cudaMemcpyHostToDevice); + device_cbo = NULL; cudaMalloc((void**)&device_cbo, cbosize*sizeof(float)); cudaMemcpy( device_cbo, cbo, cbosize*sizeof(float), cudaMemcpyHostToDevice); @@ -226,28 +514,93 @@ void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* //------------------------------ //vertex shader //------------------------------ - vertexShadeKernel<<>>(device_vbo, vbosize); + + //cudaMat4 cudaprojection=utilityCore::glmMat4ToCudaMat4(projection); + //utilityCore::printCudaMat4(cudaprojection); + vertexShadeKernel<<>>(device_vbo, vbosize,projection,camInfo); + + //float* localvbo=new float[vbosize]; + //cudaMemcpy(localvbo,device_vbo,vbosize*sizeof(float),cudaMemcpyDeviceToHost); + + //if(frame<=0.5) + //{ + // for(int i=0;i>>(device_vbo, vbosize, device_cbo, cbosize, device_ibo, ibosize, primitives); + primitiveAssemblyKernel<<>>(device_vbo, vbosize, device_cbo, cbosize, device_ibo, ibosize, primitives, device_original_vbo); cudaDeviceSynchronize(); + checkCUDAError("Kernel failed 2!"); //------------------------------ //rasterization //------------------------------ + + //if(frame<0.5f) + //{ + // cudaMat4 cudaprojection=utilityCore::glmMat4ToCudaMat4(projection); + // utilityCore::printCudaMat4(cudaprojection); + + // printf("primitives: %d\n",ibosize/3); + // triangle* localPrimitives=new triangle[ibosize/3]; + // cudaMemcpy(localPrimitives,primitives,ibosize/3*sizeof(triangle),cudaMemcpyDeviceToHost); + // for(int i=0;i>>(primitives, ibosize/3, depthbuffer, resolution); + + //pixel_level_rasterization<<>>(primitives, ibosize/3, depthbuffer, resolution); + cudaDeviceSynchronize(); + checkCUDAError("Kernel failed 3!"); //------------------------------ //fragment shader //------------------------------ - fragmentShadeKernel<<>>(depthbuffer, resolution); + + float minz=100000;float maxz=0; + minz=0.0f; + maxz=1.0f; + //fragment* tmpDbf=new fragment[(int)(resolution.x*resolution.y)]; + //cudaMemcpy(tmpDbf,depthbuffer,resolution.x*resolution.y*sizeof(fragment),cudaMemcpyDeviceToHost); + //for(int i=0;imaxz && tmp<998) maxz=tmp; + //} + //delete tmpDbf; + //printf("minz=%f, maxz=%f\n",minz,maxz); + fragmentShadeKernel<<>>(depthbuffer, resolution,minz,maxz); cudaDeviceSynchronize(); + checkCUDAError("Kernel failed 4!"); + //------------------------------ //write fragments to framebuffer //------------------------------ @@ -255,10 +608,11 @@ void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* sendImageToPBO<<>>(PBOpos, resolution, framebuffer); cudaDeviceSynchronize(); + checkCUDAError("Kernel failed 5!"); kernelCleanup(); - checkCUDAError("Kernel failed!"); + checkCUDAError("Kernel failed 6!"); } void kernelCleanup(){ diff --git a/src/rasterizeKernels.h b/src/rasterizeKernels.h index 5d7a4be..fe74e31 100644 --- a/src/rasterizeKernels.h +++ b/src/rasterizeKernels.h @@ -9,6 +9,7 @@ #include #include #include "glm/glm.hpp" +#include "utilities.h" #if CUDA_VERSION >= 5000 #include @@ -17,6 +18,6 @@ #endif 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,glm::mat4 projection, cameraInfo camInfo); #endif //RASTERIZEKERNEL_H diff --git a/src/rasterizeTools.h b/src/rasterizeTools.h index e9b5dcc..12ce86a 100644 --- a/src/rasterizeTools.h +++ b/src/rasterizeTools.h @@ -16,6 +16,11 @@ struct triangle { glm::vec3 c0; glm::vec3 c1; glm::vec3 c2; + + glm::vec3 n0; + glm::vec3 n1; + glm::vec3 n2; + }; struct fragment{ diff --git a/src/utilities.h b/src/utilities.h index 3e6ef6e..4790b83 100644 --- a/src/utilities.h +++ b/src/utilities.h @@ -22,6 +22,24 @@ const float EPSILON =.000000001; const float ZERO_ABSORPTION_EPSILON =0.00001; const float RAY_BIAS_AMOUNT =0.0002; +struct cameraInfo +{ + float fovy; + float fovratio; + float zNear; + float zFar; + cameraInfo() + { + + } + cameraInfo(float _fovy, float _fovratio,float _zNear,float _zFar) + { + fovy=_fovy; + fovratio=_fovratio; + zNear=_zNear; + zFar=_zFar; + } +}; namespace utilityCore { extern float clamp(float f, float min, float max); extern bool replaceString(std::string& str, const std::string& from, const std::string& to); From 4e139975320f8b8970f1024630de76a0eb8d719a Mon Sep 17 00:00:00 2001 From: heguanyu Date: Wed, 30 Oct 2013 23:04:14 -0400 Subject: [PATCH 2/3] Back culling and anti-aliasing finished 3 features implemented! --- PROJ4_WIN/src/rasterizeKernels.cu.deps | 736 ++++++++++++++++++++++--- bmps/anti-aliasing.png | Bin 0 -> 53508 bytes src/main.cpp | 28 +- src/main.h | 6 + src/rasterizeKernels.cu | 101 +++- src/rasterizeKernels.h | 5 +- src/rasterizeTools.h | 1 + src/utilities.h | 1 + 8 files changed, 775 insertions(+), 103 deletions(-) create mode 100644 bmps/anti-aliasing.png diff --git a/PROJ4_WIN/src/rasterizeKernels.cu.deps b/PROJ4_WIN/src/rasterizeKernels.cu.deps index a33db3d..4f57062 100644 --- a/PROJ4_WIN/src/rasterizeKernels.cu.deps +++ b/PROJ4_WIN/src/rasterizeKernels.cu.deps @@ -382,6 +382,668 @@ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/de 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 e:\gitprojects\project4-rasterizer\src\rasterizeKernels.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/remove.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/execution_policy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/remove.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/iterator_traits.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iterator +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/iterator_traversal_tags.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/host_system_tag.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/execution_policy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/device_system_tag.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/execution_policy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/any_system_tag.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/iterator_traits.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/iterator_categories.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/universal_categories.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/iterator_category_to_traversal.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/iterator_category_to_system.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/select_system.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits/is_metafunction_defined.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits/has_nested_type.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/minimum_system.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits/minimum_type.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/type_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/remove.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/tag.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/remove.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/copy_if.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/copy_if.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/copy_if.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/copy_if.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/functional.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\functional +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfunctional +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxresult +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallobj +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxpmfcaller +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallpmf +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallfun +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xawrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxcallwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxrefwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxmem_fn +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxfunction +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xawrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind0 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxbind1 +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional/placeholder.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional/actor.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/tuple.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/tuple.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional/value.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional/composite.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional/operators/assignment_operator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional/operators/operator_adaptors.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits/result_of.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits/function_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional/actor.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional/argument.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional/operators.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional/operators/arithmetic_operators.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional/operators/relational_operators.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional/operators/logical_operators.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional/operators/bitwise_operators.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/functional/operators/compound_assignment_operators.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/distance.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/distance.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/advance.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/advance.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/advance.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/advance.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/distance.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/distance.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/transform.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/transform.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/transform.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/transform.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/for_each.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/for_each.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/for_each.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/static_assert.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/for_each.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/for_each.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/internal/scalar/for_each.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/function.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/raw_reference_cast.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/raw_pointer_cast.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits/pointer_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/tuple_of_iterator_references.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/reference_forward_declaration.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/use_default.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/raw_reference_cast.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/tuple_transform.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/tuple_meta_transform.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/for_each.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/for_each.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/minmax.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/detail/launch_closure.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/cuda_launch_config.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/detail/launch_closure.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/temporary_array.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/retag.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/retag.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/tagged_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/iterator_adaptor.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/iterator_facade.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/iterator_facade_category.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/is_iterator_category.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/distance_from_result.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/iterator_adaptor_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/pointer.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/pointer.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/contiguous_storage.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/normal_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/is_trivial_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/allocator_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/allocator_traits.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits/has_member_function.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits/is_call_possible.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/contiguous_storage.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/copy_construct_range.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/copy_construct_range.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/copy.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/copy.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/internal_functional.h +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\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/zip_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/zip_iterator_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/minimum_category.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/zip_iterator.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/internal/scalar/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/internal/scalar/copy.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/dispatch/is_trivial_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/internal/scalar/general_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/internal/scalar/trivial_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/copy.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/copy_device_to_device.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/copy_device_to_device.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/copy_cross_system.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/copy_cross_system.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/trivial_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/trivial_copy.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/trivial_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/guarded_cuda_runtime_api.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\thrust/system_error.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/error_code.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/errno.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/error_category.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/error_code.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/error_condition.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/system_error.h +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/system_error.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/error.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\thrust/system/cuda/detail/error.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/trivial_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/default_construct_range.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/default_construct_range.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/uninitialized_fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/uninitialized_fill.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/uninitialized_fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/uninitialized_fill.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/fill.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/generate.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/generate.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/generate.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/generate.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/generate.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/generate.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/generate.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/fill.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/util/align.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/runtime_introspection.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/runtime_introspection.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/util/blocking.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/uninitialized_fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/uninitialized_fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/uninitialized_fill.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/destroy_range.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/destroy_range.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/fill_construct_range.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/fill_construct_range.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/temporary_allocator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/tagged_allocator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/tagged_allocator.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/memory.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/reference.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/reference.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/memory.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/memory.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/malloc_and_free.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/malloc_and_free.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/malloc_and_free.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/bad_alloc.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/malloc_and_free.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/get_value.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/get_value.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/get_value.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/assign_value.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/assign_value.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/assign_value.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/iter_swap.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/iter_swap.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/iter_swap.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/swap.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/swap.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/swap_ranges.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/swap_ranges.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/swap_ranges.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/swap_ranges.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/swap_ranges.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/swap_ranges.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/temporary_buffer.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/temporary_buffer.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/temporary_buffer.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/temporary_buffer.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/temporary_buffer.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/temporary_buffer.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/temporary_allocator.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/allocator/no_throw_allocator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/temporary_array.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/synchronize.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/synchronize.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/detail/launch_calculator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/detail/launch_calculator.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/transform.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/transform.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/transform.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/scan.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/scan.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/scan.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/scan.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits/iterator/is_output_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/any_assign.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/scan_by_key.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/scan_by_key.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/replace.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/replace.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/replace.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/replace.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/replace.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/replace.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/replace.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/scan.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/scan.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/internal/scalar/scan.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/scan.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/scan.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/detail/fast_scan.h +c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\thrust\system\cuda\detail\detail\fast_scan.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/reduce_intervals.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/reduce_intervals.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/internal/decompose.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/extern_shared_ptr.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/block/reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/default_decomposition.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/default_decomposition.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/detail/uninitialized.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/detail/alignment.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/scan_by_key.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/scan_by_key.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/internal/scalar/scan_by_key.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/scan_by_key.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/scatter.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/scatter.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/scatter.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/scatter.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/permutation_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/permutation_iterator_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/scatter.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/scatter.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/scatter.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/copy_if.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/copy_if.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/internal/scalar/copy_if.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/copy_if.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/copy_if.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/transform_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/transform_iterator.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/block/inclusive_scan.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/remove.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/remove.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/internal/scalar/remove.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/remove.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/device_ptr.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/memory.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/device_ptr.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/device_reference.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/device_reference.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/device_vector.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/device_malloc_allocator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/device_malloc.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/device_malloc.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/device_free.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/device_free.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/vector_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/reverse_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/reverse_iterator_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/reverse_iterator.inl +c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/vector_base.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/overlapped_copy.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/equal.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/equal.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/equal.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/equal.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/mismatch.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/mismatch.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/mismatch.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/mismatch.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/find.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/find.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/find.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/find.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/reduce.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/reduce.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/reduce_by_key.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/reduce_by_key.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/internal/scalar/reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/reduce.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/reduce_by_key.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/reduce_by_key.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/internal/scalar/reduce_by_key.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits/algorithm/intermediate_type_from_function_and_iterators.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/reduce_by_key.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/reduce_by_key.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/counting_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/counting_iterator.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/numeric_traits.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/type_traits/iterator/is_discard_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/discard_iterator.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/iterator/detail/discard_iterator_base.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/extrema.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/extrema.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/extrema.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/extrema.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/transform_reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/transform_reduce.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/transform_reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/generic/transform_reduce.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/transform_reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/transform_reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/transform_reduce.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/extrema.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/extrema.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/internal/scalar/extrema.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/extrema.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/find.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/find.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/internal/scalar/find.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/find.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/mismatch.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/mismatch.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/mismatch.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/detail/adl/equal.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cpp/detail/equal.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/system/cuda/detail/equal.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/device_vector.inl +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/host_vector.h +C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/host_vector.inl C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda.h e:\gitprojects\project4-rasterizer\src\glm/glm.hpp e:\gitprojects\project4-rasterizer\src\glm\core/_fixes.hpp @@ -492,81 +1154,7 @@ e:\gitprojects\project4-rasterizer\src\utilities.h e:\gitprojects\project4-rasterizer\src\glm/glm.hpp e:\gitprojects\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\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 e:\gitprojects\project4-rasterizer\src\cudaMat4.h e:\gitprojects\project4-rasterizer\src\glm/glm.hpp e:\gitprojects\project4-rasterizer\src\glm\core/_fixes.hpp diff --git a/bmps/anti-aliasing.png b/bmps/anti-aliasing.png new file mode 100644 index 0000000000000000000000000000000000000000..2527ce16d261966756726431216cee8bc75a0a89 GIT binary patch literal 53508 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 B5)cameraPosition-=cameraDir*0.1f; + //if(y-mousey<-5) cameraPosition+=cameraDir*0.1f; + //else if(y-mousey>5)cameraPosition-=cameraDir*0.1f; + if(y-mousey<-5) modelScale+=glm::vec3(0.2f); + else if(y-mousey>5)modelScale-=glm::vec3(0.2f); } if(mouseStatus==1) { glm::vec3 right=glm::normalize(glm::cross(cameraDir,cameraUp)); - if(x-mousex<-5) cameraPosition-=right*0.1f; - else if(x-mousex>5) cameraPosition+=right*0.1f; + + //if(x-mousex<-5) cameraPosition-=right*0.1f; + //else if(x-mousex>5) cameraPosition+=right*0.1f; + int dx=x-mousex; } if(mouseStatus==2) @@ -172,7 +188,7 @@ void runCuda(){ ibosize = mesh->getIBOsize(); cudaGLMapBufferObject((void**)&dptr, pbo); - cudaRasterizeCore(dptr, glm::vec2(width, height), frame, vbo, vbosize, cbo, cbosize, ibo, ibosize,projection,camInfo); + cudaRasterizeCore(dptr, glm::vec2(width, height), frame, vbo, vbosize, cbo, cbosize, ibo, ibosize,projection,camInfo, modelTransform); cudaGLUnmapBufferObject(pbo); vbo = NULL; diff --git a/src/main.h b/src/main.h index 118e2a7..cfa7ce3 100644 --- a/src/main.h +++ b/src/main.h @@ -72,6 +72,12 @@ cameraInfo camInfo; glm::mat4 projection; glm::mat4 view; +glm::vec3 modelTranslate; +glm::vec4 modelRotation; +glm::vec3 modelScale; + +glm::mat4 modelTransform; + glm::vec3 cameraPosition; glm::vec3 cameraDir; glm::vec3 cameraUp; diff --git a/src/rasterizeKernels.cu b/src/rasterizeKernels.cu index 499f639..a189c0c 100644 --- a/src/rasterizeKernels.cu +++ b/src/rasterizeKernels.cu @@ -22,6 +22,15 @@ float* device_cbo; int* device_ibo; triangle* primitives; +struct terminated +{ + __host__ __device__ + bool operator()(const triangle t) + { + return !t.isVisible; + } +}; + void checkCUDAError(const char *msg) { cudaError_t err = cudaGetLastError(); if( cudaSuccess != err) { @@ -98,10 +107,25 @@ __global__ void clearDepthBuffer(glm::vec2 resolution, fragment* buffer, fragmen f.position.x = x; f.position.y = y; f.position.z=100000000.0f; + f.color=glm::vec3(1,1,1); buffer[index] = f; } } +__global__ void converge(glm::vec2 resolution, fragment* buffer, fragment* antialiasBuffer){ + int x = (blockIdx.x * blockDim.x) + threadIdx.x; + int y = (blockIdx.y * blockDim.y) + threadIdx.y; + int index = x + (y * resolution.x); + if(x<=resolution.x && y<=resolution.y){ + glm::vec3 c(0,0,0); + for(int i=x*2;i0); } } @@ -356,6 +384,8 @@ __global__ void pixel_level_rasterization(triangle* primitives, int primitivesCo } } + + __global__ void rasterizationKernel(triangle* primitives, int primitivesCount, fragment* depthbuffer, glm::vec2 resolution){ int index = (blockIdx.x * blockDim.x) + threadIdx.x; int posx1,posy1, posx2, posy2, posx3, posy3; @@ -428,16 +458,6 @@ __global__ void fragmentShadeKernel(fragment* depthbuffer, glm::vec2 resolution, int y = (blockIdx.y * blockDim.y) + threadIdx.y; int index = x + (y * resolution.x); if(x<=resolution.x && y<=resolution.y){ - //if(maxz-minz>0.00001f) - //{ - // depthbuffer[index].color=(depthbuffer[index].position.z>998.0f)?glm::vec3(0,0,0):glm::vec3(1.0f)*(maxz-depthbuffer[index].position.z)/(maxz-minz); - //} - //else - //{ - // depthbuffer[index].color=(depthbuffer[index].position.z>1000.0f)?glm::vec3(0,0,0):glm::vec3(1.0f); - //} - //depthbuffer[index].color=glm::vec3(1.0f)*(depthbuffer[index].position.z)/(5000.0f); - //depthbuffer[index].color=(depthbuffer[index].position.z>1000.0f)?glm::vec3(0,0,0):glm::vec3(1.0f); ///////NORMAL TEST depthbuffer[index].color=(depthbuffer[index].position.z>1000.0f)?glm::vec3(1,1,1):((depthbuffer[index].normal+glm::vec3(1.0f))*0.5f); @@ -445,7 +465,15 @@ __global__ void fragmentShadeKernel(fragment* depthbuffer, glm::vec2 resolution, /////DEPTH TEST depthbuffer[index].color=(depthbuffer[index].position.z>998.0f)?glm::vec3(0,0,0):glm::vec3(1.0f)*(maxz-depthbuffer[index].position.z)/(maxz-minz); - //// + ////ILLUMINATION + depthbuffer[index].color=(depthbuffer[index].position.z>998.0f)?glm::vec3(0,0,0):glm::vec3(238,201,25)*(1/255.0f)*( + glm::clamp(glm::dot(glm::vec3(0,-1,0),depthbuffer[index].normal),0.0f,1.0f)+ + glm::clamp(glm::dot(glm::vec3(0,1,0),depthbuffer[index].normal),0.0f,1.0f)); + + depthbuffer[index].color=(depthbuffer[index].position.z>998.0f)?glm::vec3(0,0,0):glm::vec3(238,201,25)*(1/255.0f)*( + glm::clamp(glm::dot(glm::vec3(0,-1,0),depthbuffer[index].normal),0.0f,1.0f)); + + //depthbuffer[index].color=glm::vec3(1.0f); } } @@ -462,10 +490,10 @@ __global__ void render(glm::vec2 resolution, fragment* depthbuffer, glm::vec3* f } // 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,glm::mat4 projection, cameraInfo camInfo){ +void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* vbo, int vbosize, float* cbo, int cbosize, int* ibo, int ibosize,glm::mat4 projection, cameraInfo camInfo,glm::mat4 modelTransform){ // set up crucial magic - int tileSize = 8; + int tileSize = 16; dim3 threadsPerBlock(tileSize, tileSize); dim3 fullBlocksPerGrid((int)ceil(float(resolution.x)/float(tileSize)), (int)ceil(float(resolution.y)/float(tileSize))); @@ -517,7 +545,7 @@ void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* //cudaMat4 cudaprojection=utilityCore::glmMat4ToCudaMat4(projection); //utilityCore::printCudaMat4(cudaprojection); - vertexShadeKernel<<>>(device_vbo, vbosize,projection,camInfo); + vertexShadeKernel<<>>(device_vbo, vbosize,projection,camInfo, modelTransform); //float* localvbo=new float[vbosize]; //cudaMemcpy(localvbo,device_vbo,vbosize*sizeof(float),cudaMemcpyDeviceToHost); @@ -538,7 +566,7 @@ void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* //primitive assembly //------------------------------ primitiveBlocks = ceil(((float)ibosize/3)/((float)tileSize)); - primitiveAssemblyKernel<<>>(device_vbo, vbosize, device_cbo, cbosize, device_ibo, ibosize, primitives, device_original_vbo); + primitiveAssemblyKernel<<>>(device_vbo, vbosize, device_cbo, cbosize, device_ibo, ibosize, primitives, device_original_vbo,projection); cudaDeviceSynchronize(); checkCUDAError("Kernel failed 2!"); @@ -571,9 +599,29 @@ void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* // delete localPrimitives; //} - - rasterizationKernel<<>>(primitives, ibosize/3, depthbuffer, resolution); - + ///////BACK CULLING//////////// + int primitivenum=ibosize/3; + + thrust::device_ptr iteratorStart(primitives); + thrust::device_ptr iteratorEnd = iteratorStart + primitivenum; + iteratorEnd = thrust::remove_if(iteratorStart, iteratorEnd, terminated()); + primitivenum = (int)(iteratorEnd - iteratorStart); + + //////BACKCULLING END///////////// +#ifdef ANTIALIAS + fragment* anti_alias_depthbuffer = NULL; + glm::vec2 resolution2(resolution.x*2,resolution.y*2); + dim3 fullBlocksPerGrid2((int)ceil(float(resolution2.x)/float(tileSize)), (int)ceil(float(resolution2.y)/float(tileSize))); + dim3 threadsPerBlock2(tileSize,tileSize); + cudaMalloc((void**)&anti_alias_depthbuffer, 4*(int)resolution.x*(int)resolution.y*sizeof(fragment)); + clearDepthBuffer<<>>(resolution2, anti_alias_depthbuffer,frag); + cudaDeviceSynchronize(); + rasterizationKernel<<>>(primitives, primitivenum, anti_alias_depthbuffer, resolution2); + + +#else + rasterizationKernel<<>>(primitives, primitivenum, depthbuffer, resolution); +#endif //pixel_level_rasterization<<>>(primitives, ibosize/3, depthbuffer, resolution); @@ -596,8 +644,16 @@ void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* //} //delete tmpDbf; //printf("minz=%f, maxz=%f\n",minz,maxz); +#ifdef ANTIALIAS + //printf("%d %d, %d %d\n",fullBlocksPerGrid.x,fullBlocksPerGrid.y, fullBlocksPerGrid2.x,fullBlocksPerGrid2.y); + fragmentShadeKernel<<>>(anti_alias_depthbuffer, resolution2,minz,maxz); + cudaDeviceSynchronize(); + converge<<>>(resolution, depthbuffer, anti_alias_depthbuffer); + cudaDeviceSynchronize(); + cudaFree(anti_alias_depthbuffer); +#else fragmentShadeKernel<<>>(depthbuffer, resolution,minz,maxz); - +#endif cudaDeviceSynchronize(); checkCUDAError("Kernel failed 4!"); @@ -605,6 +661,7 @@ void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* //write fragments to framebuffer //------------------------------ render<<>>(resolution, depthbuffer, framebuffer); + sendImageToPBO<<>>(PBOpos, resolution, framebuffer); cudaDeviceSynchronize(); diff --git a/src/rasterizeKernels.h b/src/rasterizeKernels.h index fe74e31..58a40aa 100644 --- a/src/rasterizeKernels.h +++ b/src/rasterizeKernels.h @@ -6,6 +6,9 @@ #include #include +#include +#include +#include #include #include #include "glm/glm.hpp" @@ -18,6 +21,6 @@ #endif void kernelCleanup(); -void cudaRasterizeCore(uchar4* pos, glm::vec2 resolution, float frame, float* vbo, int vbosize, float* cbo, int cbosize, int* ibo, int ibosize,glm::mat4 projection, cameraInfo camInfo); +void cudaRasterizeCore(uchar4* pos, glm::vec2 resolution, float frame, float* vbo, int vbosize, float* cbo, int cbosize, int* ibo, int ibosize,glm::mat4 projection, cameraInfo camInfo,glm::mat4 modelTransform); #endif //RASTERIZEKERNEL_H diff --git a/src/rasterizeTools.h b/src/rasterizeTools.h index 12ce86a..4792f7c 100644 --- a/src/rasterizeTools.h +++ b/src/rasterizeTools.h @@ -20,6 +20,7 @@ struct triangle { glm::vec3 n0; glm::vec3 n1; glm::vec3 n2; + bool isVisible; }; diff --git a/src/utilities.h b/src/utilities.h index 4790b83..1cfbbf3 100644 --- a/src/utilities.h +++ b/src/utilities.h @@ -22,6 +22,7 @@ const float EPSILON =.000000001; const float ZERO_ABSORPTION_EPSILON =0.00001; const float RAY_BIAS_AMOUNT =0.0002; +#define ANTIALIAS struct cameraInfo { float fovy; From 0029d71754eb3c6ab3566b7643ada76eb83dd50c Mon Sep 17 00:00:00 2001 From: heguanyu Date: Thu, 31 Oct 2013 01:43:48 -0400 Subject: [PATCH 3/3] Everything is completed --- README.md | 238 +- README.md.bak | 132 + bmps/color_interpolation.png | Bin 0 -> 200454 bytes bmps/normal_interpolation.png | Bin 0 -> 210228 bytes objs/smoothcow.obj | 15325 ++++++++++++++++++++++++++++++++ objs/smoothcow.obj.bak | 0 src/main.cpp | 11 +- src/main.h | 2 + src/rasterizeKernels.cu | 41 +- src/rasterizeKernels.h | 2 +- src/utilities.h | 1 + 11 files changed, 15587 insertions(+), 165 deletions(-) create mode 100644 README.md.bak create mode 100644 bmps/color_interpolation.png create mode 100644 bmps/normal_interpolation.png create mode 100644 objs/smoothcow.obj create mode 100644 objs/smoothcow.obj.bak diff --git a/README.md b/README.md index bf34154..97fc46a 100644 --- a/README.md +++ b/README.md @@ -6,181 +6,127 @@ Fall 2013 Due Thursday 10/31/2012 ------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -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. +I got really busy these weeks: 2 onsite interviews in Bay area. Thus I did not have enough time to deal with this project, and just implement something that is not as impressive as the last 3 projects. +Hopefully I'll try more after I got some free moment. ------------------------------------------------------------------------------- -INTRODUCTION: +IMPLEMENTED FEATURES ------------------------------------------------------------------------------- -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. +In this project, I implemented 4 features as listed: anti-aliasing, color interpolation, back-culling and mouse interaction. Besides, I added normal interpolation feature so that it can show some smooth models. -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. +--- +Anti-Aliasing +--- -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. +Anti-aliasing is simple: it rasterize on another depthbuffer with doubled width and height, and doing everything as normal. And the fragment shader is also processed on this larger depthbuffer. +After the fragment shader, it will merge the color of each tile, with size of 2*2, into 1 pixel and write it to the depth buffer, and then render it and output it to the screen. -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. +![screenshot](https://github.com/heguanyu/Project4-Rasterizer/blob/master/bmps/anti-aliasing.png?raw=true) -------------------------------------------------------------------------------- -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 - -The Windows and OSX versions of the project build and run exactly the same way as in Project0, Project1, and Project2. +--- +Color interpolation +--- -------------------------------------------------------------------------------- -REQUIREMENTS: -------------------------------------------------------------------------------- -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: - -* Vertex Shading -* Primitive Assembly with support for triangle VBOs/IBOs -* Perspective Transformation -* Rasterization through either a scanline or a tiled approach -* 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 -* 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. +I'm not quite sure if it is the "Correct color interpretation between points on a primitive", just do it as same as interpolating the depth. I'll illustrate the interpolation method later. +So color interpolation is similar, using the color of each vertex, and then interpolate them. -------------------------------------------------------------------------------- -BASE CODE TOUR: -------------------------------------------------------------------------------- -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. +![screenshot](https://github.com/heguanyu/Project4-Rasterizer/blob/master/bmps/color_interpolation.png?raw=true) +--- +Normal Interpolation +--- -* 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. +THANKS TO Nathan Marshak 's post on the google group, the smooth cow looks brilliant! +![screenshot](https://github.com/heguanyu/Project4-Rasterizer/blob/master/bmps/normal_interpolation.png?raw=true) -* 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. +--- +MOUSE INTERACTION +--- -You will also want to familiarize yourself with: +Instead of a pure camera-interaction, this mouse interaction include both camera and mesh 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 +*When pressing LEFT mouse button + *Move up: mesh zoom in(scale larger) + *Move down: mesh zoom out(scale smaller) +*When pressing MIDDLE mouse button + *It will move the camera according to where your mouse move to. +*When pressing RIGHT mouse button + *It will rotate the camera. + +--- +DEPTH RENDERING +--- +Simply render the mesh based on the vertical distance of the point at the pixel to the camera. It is a nature of the depthbuffer, so it shouldn't count as a feature. +![screenshot](https://github.com/heguanyu/Project4-Rasterizer/blob/master/bmps/depthtest.bmp?raw=true) + +------------------------------------------------------------------- +INTERPOLATION +------------------------------------------------------------------- + +After the vertex shader and primitives assemble, every primitives is represented by 3 vertices, which has the position in the screen space, as well as the depth, color and normal information. So it is important + to interpolate the information of an arbitrary point inside this triangle(in this project it is just the integer points but it can be applied to real number coordinations) + + Lets say that the 3 points are p1(x1,y1), p2(x2,y2), p3(x3,y3) in the screen space. Please note that all these coords are the precise float number, instead of integers on the pixel. + And the point we want is on p(x,y) + + The we got vectors: v21=p2-p1 and v31=p3-p1 and v=p-p1 + So the interpolation here means that we need 2 float numbers t1 and t2, so that t1v21+t2v31=v, or else, find out (1-t1-t2)*p1+t1*p2+t2*p3=p + + It is easy to solve this 2-unknown-2-equations-1-polygon function, and I use det of 2*2 matrix to simplify the calculation. + After getting t1 and t2, what is still need to do is to check whether all of the t1,t2 and 1-t1-t2 are between 0 and 1. If not, this point is out of the triangle, and will not be drawn at all. + + With t1 and t2, it is easy to get + depth=(1-t1-t2)*z1+t1*z2+t2*z3; + color=(1-t1-t2)*c1+t1*c2+t2*c3; + normal=(1-t1-t2)*n1+t1*n2+t2*n3; + + And this is how interpolation works. + ------------------------------------------------------------------------------- -SOME RESOURCES: +PERFORMANCE EVALUATION ------------------------------------------------------------------------------- -The following resources may be useful for this project: - -* 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 -------------------------------------------------------------------------------- -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: +The performance largely depends on the scale of the mesh: the larger it occupied the screen, the slower the rasterizer would be. +In the same scale, anyway, I tested the Back-face Culling performance. -* 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. +All the test have anti-aliasing on so that it is slow enough to embody the real fps -------------------------------------------------------------------------------- -README -------------------------------------------------------------------------------- -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). +Scale level: fps with BFC/ fps without BFC +*Small(default): 36/33 +*Medium: 24/22 +*Large: 13/11 +*Very Large: 8/7 +*Extreme Large: 2/2 -------------------------------------------------------------------------------- -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. +About anti-aliasing -We encourage you to get creative with your tweaks. Consider places in your code -that could be considered bottlenecks and try to improve them. +scale level: fps with anti-aliasing/ fps without anti-aliasing +*small: 60/36 +*medium:58/24 +*large:46/13 +*Very Large: 37/8 +*Extreme Larg: 24/2 + +I'd also tried pixel-parallel rasterization for fun only, however it explode in the cow model. As far as I tested the cube model, it shows a poor performance comparing to the triangle-parallel rasterization +I don't record the data by that time, and the code do not work now after several versions of revisions. It is for FUN only. -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. ------------------------------------------------------------------------------- -THIRD PARTY CODE POLICY +VIDEO LINK ------------------------------------------------------------------------------- -* 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. +http://youtu.be/WsTtFDiekJk ------------------------------------------------------------------------------- -SELF-GRADING +3RD PARTY CODE ------------------------------------------------------------------------------- -* 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. +Nothing except for the base code ---- -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. +------------------------------------------------------------------------------- +SAD STORY +------------------------------------------------------------------------------- +Did you find out the bug of this piece of code? Yes, I wasted 3 hours to find it out. So embarassing. + +![screenshot](https://github.com/heguanyu/Project4-Rasterizer/blob/master/bmps/stupidbug.bmp?raw=true) diff --git a/README.md.bak b/README.md.bak new file mode 100644 index 0000000..0453a04 --- /dev/null +++ b/README.md.bak @@ -0,0 +1,132 @@ +------------------------------------------------------------------------------- +CIS565: Project 4: CUDA Rasterizer +------------------------------------------------------------------------------- +Fall 2013 +------------------------------------------------------------------------------- +Due Thursday 10/31/2012 +------------------------------------------------------------------------------- + +I got really busy these weeks: 2 onsite interviews in Bay area. Thus I did not have enough time to deal with this project, and just implement something that is not as impressive as the last 3 projects. +Hopefully I'll try more after I got some free moment. + +------------------------------------------------------------------------------- +IMPLEMENTED FEATURES +------------------------------------------------------------------------------- + +In this project, I implemented 4 features as listed: anti-aliasing, color interpolation, back-culling and mouse interaction. Besides, I added normal interpolation feature so that it can show some smooth models. + +--- +Anti-Aliasing +--- + +Anti-aliasing is simple: it rasterize on another depthbuffer with doubled width and height, and doing everything as normal. And the fragment shader is also processed on this larger depthbuffer. +After the fragment shader, it will merge the color of each tile, with size of 2*2, into 1 pixel and write it to the depth buffer, and then render it and output it to the screen. + +![screenshot](https://github.com/heguanyu/Project4-Rasterizer/blob/master/bmps/anti-aliasing.png?raw=true) + +--- +Color interpolation +--- + +I'm not quite sure if it is the "Correct color interpretation between points on a primitive", just do it as same as interpolating the depth. I'll illustrate the interpolation method later. +So color interpolation is similar, using the color of each vertex, and then interpolate them. + +![screenshot](https://github.com/heguanyu/Project4-Rasterizer/blob/master/bmps/color_interpolation.png?raw=true) +--- +Normal Interpolation +--- + +THANKS TO Nathan Marshak 's post on the google group, the smooth cow looks brilliant! +![screenshot](https://github.com/heguanyu/Project4-Rasterizer/blob/master/bmps/normal_interpolation.png?raw=true) + +--- +MOUSE INTERACTION +--- + +Instead of a pure camera-interaction, this mouse interaction include both camera and mesh interaction. + +*When pressing LEFT mouse button + *Move up: mesh zoom in(scale larger) + *Move down: mesh zoom out(scale smaller) +*When pressing MIDDLE mouse button + *It will move the camera according to where your mouse move to. +*When pressing RIGHT mouse button + *It will rotate the camera. + +--- +DEPTH RENDERING +--- +Simply render the mesh based on the vertical distance of the point at the pixel to the camera. It is a nature of the depthbuffer, so it shouldn't count as a feature. +![screenshot](https://github.com/heguanyu/Project4-Rasterizer/blob/master/bmps/depthtest.bmp?raw=true) + +------------------------------------------------------------------- +INTERPOLATION +------------------------------------------------------------------- + +After the vertex shader and primitives assemble, every primitives is represented by 3 vertices, which has the position in the screen space, as well as the depth, color and normal information. So it is important + to interpolate the information of an arbitrary point inside this triangle(in this project it is just the integer points but it can be applied to real number coordinations) + + Lets say that the 3 points are p1(x1,y1), p2(x2,y2), p3(x3,y3) in the screen space. Please note that all these coords are the precise float number, instead of integers on the pixel. + And the point we want is on p(x,y) + + The we got vectors: v21=p2-p1 and v31=p3-p1 and v=p-p1 + So the interpolation here means that we need 2 float numbers t1 and t2, so that t1v21+t2v31=v, or else, find out (1-t1-t2)*p1+t1*p2+t2*p3=p + + It is easy to solve this 2-unknown-2-equations-1-polygon function, and I use det of 2*2 matrix to simplify the calculation. + After getting t1 and t2, what is still need to do is to check whether all of the t1,t2 and 1-t1-t2 are between 0 and 1. If not, this point is out of the triangle, and will not be drawn at all. + + With t1 and t2, it is easy to get + depth=(1-t1-t2)*z1+t1*z2+t2*z3; + color=(1-t1-t2)*c1+t1*c2+t2*c3; + normal=(1-t1-t2)*n1+t1*n2+t2*n3; + + And this is how interpolation works. + + +------------------------------------------------------------------------------- +PERFORMANCE EVALUATION +------------------------------------------------------------------------------- + +The performance largely depends on the scale of the mesh: the larger it occupied the screen, the slower the rasterizer would be. +In the same scale, anyway, I tested the Back-face Culling performance. + +All the test have anti-aliasing on so that it is slow enough to embody the real fps + + +Scale level: fps with BFC/ fps without BFC +*Small(default): 36/33 +*Medium: 24/22 +*Large: 13/11 +*Very Large: 8/7 +*Extreme Large: 2/2 + +About anti-aliasing + +scale level: fps with anti-aliasing/ fps without anti-aliasing +*small: 60/36 +*medium:58/24 +*large:46/13 +*Very Large: 37/8 +*Extreme Larg: 24/2 + +I'd also tried pixel-parallel rasterization for fun only, however it explode in the cow model. As far as I tested the cube model, it shows a poor performance comparing to the triangle-parallel rasterization +I don't record the data by that time, and the code do not work now after several versions of revisions. It is for FUN only. + + +------------------------------------------------------------------------------- +VIDEO LINK +------------------------------------------------------------------------------- +http://youtu.be/WsTtFDiekJk + +------------------------------------------------------------------------------- +3RD PARTY CODE +------------------------------------------------------------------------------- +Nothing except for the base code + + +------------------------------------------------------------------------------- +SAD STORY +------------------------------------------------------------------------------- +Did you find out the bug of this piece of code? Yes, I wasted 3 hours to find it out. So embarassing. + + diff --git a/bmps/color_interpolation.png b/bmps/color_interpolation.png new file mode 100644 index 0000000000000000000000000000000000000000..891d85e2a78b5dfa83ca64df91b77842c714750e GIT binary patch literal 200454 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

lndsH4TVfG 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

>Fbb95Mk9Ma*xhQ(%H5l=`616FEgrsZvo%gVe4q zaNTmwC{j6O%gq4{zYmx5NJsji(Gifnvy{}&nNdRR{_~F{P!xG#b%7x%yb=tcKs1Ub zQ53ZbMmZd&xv`vBPQ7UFvN$Rm^-xAu7*MmQ{Q@$Q$|tM5F^}TI)hA<(V;1MuB4*=c zWo3_zOUG`VEJtnM@Cg7VKn5rQOvRBz+IPrMB0?NZ#qYc?e)ww@knQiN`@O{Put|`$ zutL^QWHhl(%+=g&FN7i9iFNlszQ82O!nI2?n6p2|0E78glxd(Oq;}e$%iyLz5 zOl64$B|*giT(((ZB#a897D|Uv5o)YB3>1PUs9Z6PN|9(HjTMujCLD7Z?gun3SGs%= ztijSywU-9VgbG9ajrXPBe7bEz!-b}m`uv@I{(kn@OUe3lvNn@6O1(3$mR9K2(#tdR z_3nk^i?2MiwU+HVy5ITaQ`6smPdvF=eCP}1(ptH+Wi$SJgnN=2m}8F%+=MPo4+6+w^Epj@w9`#xRIBOU37L`OjO z4$?ePfKy5B#?9KSE6QfEot7?^_0T9o&?;CBqLB?rMPp1jb1#*oh^dRL{iqqs)W8sd zV@z}a6+ufRi72u1#;CH#B*^uLY!W%en4%#@a(Lj4kws;pS1VRd`lk1Fm|F)jfC*qK zn2OU9NtmSKyK3kDT>SD+@RM)EV><`u2$F6$qzXl$C}e|dAZi@7u`{Y#KACIE>*3dT##1x-$S;_Z1zd`yrNhzY0^DFw=a_u9fN5`|f~vd0)X z!ak5;49F2VP>jSuNk~~X!U^uG4h+lDY2TegquceaZ-m{L4_%&EliK9YM4a5AR3sIy z33o=l`%lr*I!&6w-J1#7P^Vs}PN#{^yh+XL`I%GQYwaT7@eP^i%W%M>p%k5RcMeU7 z8bOh01U>e~L?cx| zrV00f3=e3`plAX^ph>

  • 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 literal 0 HcmV?d00001 diff --git a/bmps/normal_interpolation.png b/bmps/normal_interpolation.png new file mode 100644 index 0000000000000000000000000000000000000000..022de3d57070d71f637108d81f5eddf02b3915f3 GIT binary patch literal 210228 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�Z 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 + delete loader; loadedScene = true; } @@ -130,10 +131,14 @@ void getmousePos(int x, int y) if(mouseStatus==1) { glm::vec3 right=glm::normalize(glm::cross(cameraDir,cameraUp)); - + glm::vec3 realup=glm::normalize(glm::cross(cameraDir,right)); //if(x-mousex<-5) cameraPosition-=right*0.1f; //else if(x-mousex>5) cameraPosition+=right*0.1f; int dx=x-mousex; + int dy=y-mousey; + + cameraPosition+=right*(dx*0.02f)+realup*(dy*0.02f); + } if(mouseStatus==2) @@ -177,6 +182,8 @@ void runCuda(){ vbo = mesh->getVBO(); vbosize = mesh->getVBOsize(); + nbo=mesh->getNBO(); + nbosize=mesh->getNBOsize(); float newcbo[] = {0.0, 1.0, 0.0, 0.0, 0.0, 1.0, @@ -188,7 +195,7 @@ void runCuda(){ ibosize = mesh->getIBOsize(); cudaGLMapBufferObject((void**)&dptr, pbo); - cudaRasterizeCore(dptr, glm::vec2(width, height), frame, vbo, vbosize, cbo, cbosize, ibo, ibosize,projection,camInfo, modelTransform); + cudaRasterizeCore(dptr, glm::vec2(width, height), frame, vbo, vbosize, cbo, cbosize,nbo, nbosize, ibo, ibosize,projection,camInfo, modelTransform); cudaGLUnmapBufferObject(pbo); vbo = NULL; diff --git a/src/main.h b/src/main.h index cfa7ce3..e05db9b 100644 --- a/src/main.h +++ b/src/main.h @@ -60,6 +60,8 @@ float* cbo; int cbosize; int* ibo; int ibosize; +float* nbo; +int nbosize; //------------------------------- //----------CUDA STUFF----------- diff --git a/src/rasterizeKernels.cu b/src/rasterizeKernels.cu index a189c0c..d984079 100644 --- a/src/rasterizeKernels.cu +++ b/src/rasterizeKernels.cu @@ -17,6 +17,7 @@ glm::vec3* framebuffer; fragment* depthbuffer; float* device_vbo; +float* device_nbo; float* device_original_vbo; float* device_cbo; int* device_ibo; @@ -177,7 +178,7 @@ __global__ void vertexShadeKernel(float* vbo, int vbosize,glm::mat4 projection, } //TODO: Implement primative assembly -__global__ void primitiveAssemblyKernel(float* vbo, int vbosize, float* cbo, int cbosize, int* ibo, int ibosize, triangle* primitives, float* origin_vbo, glm::mat4 projection){ +__global__ void primitiveAssemblyKernel(float* vbo, int vbosize, float* cbo, int cbosize, float* nbo, int nbosize, int* ibo, int ibosize, triangle* primitives, float* origin_vbo, glm::mat4 projection){ int index = (blockIdx.x * blockDim.x) + threadIdx.x; int primitivesCount = ibosize/3; if(index1000.0f)?glm::vec3(1,1,1):((depthbuffer[index].normal+glm::vec3(1.0f))*0.5f); + //depthbuffer[index].color=(depthbuffer[index].position.z>1000.0f)?glm::vec3(1,1,1):((depthbuffer[index].normal+glm::vec3(1.0f))*0.5f); - /////DEPTH TEST - depthbuffer[index].color=(depthbuffer[index].position.z>998.0f)?glm::vec3(0,0,0):glm::vec3(1.0f)*(maxz-depthbuffer[index].position.z)/(maxz-minz); + ///////DEPTH TEST + //depthbuffer[index].color=(depthbuffer[index].position.z>998.0f)?glm::vec3(0,0,0):glm::vec3(1.0f)*(maxz-depthbuffer[index].position.z)/(maxz-minz); - ////ILLUMINATION - depthbuffer[index].color=(depthbuffer[index].position.z>998.0f)?glm::vec3(0,0,0):glm::vec3(238,201,25)*(1/255.0f)*( + //////ILLUMINATION + float yratio=y/resolution.y; + depthbuffer[index].color=(depthbuffer[index].position.z>998.0f)?glm::vec3(0.5f*yratio,0.3f*(1-yratio),0.8f):glm::vec3(238,201,25)*(1/255.0f)*(0.1f+//Ambient Light glm::clamp(glm::dot(glm::vec3(0,-1,0),depthbuffer[index].normal),0.0f,1.0f)+ glm::clamp(glm::dot(glm::vec3(0,1,0),depthbuffer[index].normal),0.0f,1.0f)); + //depthbuffer[index].color=(depthbuffer[index].position.z>998.0f)?glm::vec3(0,0,0):depthbuffer[index].color*(0.1f+//Ambient Light + // glm::clamp(glm::dot(glm::vec3(0,-1,0),depthbuffer[index].normal),0.0f,1.0f)+ + // glm::clamp(glm::dot(glm::vec3(0,1,0),depthbuffer[index].normal),0.0f,1.0f)); + //depthbuffer[index].color=(depthbuffer[index].position.z>998.0f)?glm::vec3(0,0,0):glm::vec3(238,201,25)*(1/255.0f)*( + // glm::clamp(glm::dot(glm::vec3(0,-1,0),depthbuffer[index].normal),0.0f,1.0f)); - depthbuffer[index].color=(depthbuffer[index].position.z>998.0f)?glm::vec3(0,0,0):glm::vec3(238,201,25)*(1/255.0f)*( - glm::clamp(glm::dot(glm::vec3(0,-1,0),depthbuffer[index].normal),0.0f,1.0f)); - //depthbuffer[index].color=glm::vec3(1.0f); } } @@ -490,7 +494,7 @@ __global__ void render(glm::vec2 resolution, fragment* depthbuffer, glm::vec3* f } // 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,glm::mat4 projection, cameraInfo camInfo,glm::mat4 modelTransform){ +void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* vbo, int vbosize, float* cbo, int cbosize, float* nbo, int nbosize,int* ibo, int ibosize,glm::mat4 projection, cameraInfo camInfo,glm::mat4 modelTransform){ // set up crucial magic int tileSize = 16; @@ -528,6 +532,10 @@ void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* cudaMalloc((void**)&device_vbo, vbosize*sizeof(float)); cudaMemcpy( device_vbo, vbo, vbosize*sizeof(float), cudaMemcpyHostToDevice); + device_nbo = NULL; + cudaMalloc((void**)&device_nbo, nbosize*sizeof(float)); + cudaMemcpy( device_nbo, nbo, nbosize*sizeof(float), cudaMemcpyHostToDevice); + device_original_vbo = NULL; cudaMalloc((void**)&device_original_vbo, vbosize*sizeof(float)); cudaMemcpy( device_original_vbo, vbo, vbosize*sizeof(float), cudaMemcpyHostToDevice); @@ -566,7 +574,7 @@ void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* //primitive assembly //------------------------------ primitiveBlocks = ceil(((float)ibosize/3)/((float)tileSize)); - primitiveAssemblyKernel<<>>(device_vbo, vbosize, device_cbo, cbosize, device_ibo, ibosize, primitives, device_original_vbo,projection); + primitiveAssemblyKernel<<>>(device_vbo, vbosize, device_cbo, cbosize, device_nbo,nbosize, device_ibo, ibosize, primitives, device_original_vbo,projection); cudaDeviceSynchronize(); checkCUDAError("Kernel failed 2!"); @@ -600,13 +608,14 @@ void cudaRasterizeCore(uchar4* PBOpos, glm::vec2 resolution, float frame, float* //} ///////BACK CULLING//////////// - int primitivenum=ibosize/3; + int primitivenum=ibosize/3; +#ifdef BACKCULLING thrust::device_ptr iteratorStart(primitives); thrust::device_ptr iteratorEnd = iteratorStart + primitivenum; iteratorEnd = thrust::remove_if(iteratorStart, iteratorEnd, terminated()); primitivenum = (int)(iteratorEnd - iteratorStart); - +#endif //////BACKCULLING END///////////// #ifdef ANTIALIAS fragment* anti_alias_depthbuffer = NULL; diff --git a/src/rasterizeKernels.h b/src/rasterizeKernels.h index 58a40aa..7d0b63f 100644 --- a/src/rasterizeKernels.h +++ b/src/rasterizeKernels.h @@ -21,6 +21,6 @@ #endif void kernelCleanup(); -void cudaRasterizeCore(uchar4* pos, glm::vec2 resolution, float frame, float* vbo, int vbosize, float* cbo, int cbosize, int* ibo, int ibosize,glm::mat4 projection, cameraInfo camInfo,glm::mat4 modelTransform); +void cudaRasterizeCore(uchar4* pos, glm::vec2 resolution, float frame, float* vbo, int vbosize, float* cbo, int cbosize, float* nbo, int nbosize, int* ibo, int ibosize,glm::mat4 projection, cameraInfo camInfo,glm::mat4 modelTransform); #endif //RASTERIZEKERNEL_H diff --git a/src/utilities.h b/src/utilities.h index 1cfbbf3..3631054 100644 --- a/src/utilities.h +++ b/src/utilities.h @@ -23,6 +23,7 @@ const float ZERO_ABSORPTION_EPSILON =0.00001; const float RAY_BIAS_AMOUNT =0.0002; #define ANTIALIAS +//#define BACKCULLING struct cameraInfo { float fovy;