2 <name>Marching Cubes Isosurfaces</name>
3 <description><![CDATA[This sample extracts a geometric isosurface from a volume dataset using the marching cubes algorithm. It uses the scan (prefix sum) function from the Thrust library to perform stream compaction. ]]></description>
4 <whitepaper></whitepaper>
5 <minspec>SM 1.0</minspec>
6 <keywords>OpenGL, isosurface, marching cubes</keywords>
7 <scope>2:Graphics Interop,1:CUDA Advanced Topics,3:Physically-Based Simulation</scope>
9 <file>..\..\doc\Thrust_license.txt</file>
10 <file>data\Bucky.raw</file>
11 <file>data\ref_march_cubes.ppm</file>
12 <file>data\posArray.bin</file>
13 <file>data\normalArray.bin</file>
14 <file>data\compVoxelArray.bin</file>
17 <qatest>-dump=0 -file=posArray.bin</qatest>
18 <qatest>-dump=1 -file=normalArray.bin</qatest>
19 <qatest>-dump=2 -file=compVoxelArray.bin</qatest>
21 <cudaapi>cudaGLSetGLDevice</cudaapi>
22 <cudaapi>cudaGraphicsMapResources</cudaapi>
23 <cudaapi>cudaGraphicsUnmapResources</cudaapi>
24 <cudaapi>cudaGraphicsResourceGetMappedPointer</cudaapi>
25 <cudaapi>cudaGraphicsRegisterResource</cudaapi>
26 <cudaapi>cudaGraphicsGLRegisterBuffer</cudaapi>
27 <cudaapi>cudaGraphicsUnregisterResource</cudaapi>
28 <keyconcepts level="advanced">OpenGL Graphics Interop</keyconcepts>
29 <keyconcepts level="advanced">Vertex Buffers</keyconcepts>
30 <keyconcepts level="advanced">3D Graphics</keyconcepts>
31 <keyconcepts level="advanced">Physically Based Simulation</keyconcepts>
33 <!-- *** Additional project definition information *** -->
34 <!-- Libraries that the project should be linked against. Document may contain any number of "libraries" elements. -->
35 <!-- Attributes "os" and "arch" are optional and may be used in any combination. -->
36 <!-- "framework" attribute will be ignored on platforms other then Mac OS X -->
37 <library>GLU</library>
39 <library os="macosx" framework="true">GLUT</library>
40 <library os="linux">X11</library>
41 <library os="linux">GLEW</library>
42 <library os="linux">glut</library>
44 <!-- Either absolute or relative to sample -->
45 <library-path os="windows" arch="x86_64">../../common/lib/x64</library-path>
46 <library-path os="windows" arch="Win32">../../common/lib/Win32</library-path>
47 <library-path os="linux" arch="x86_64">../../common/lib/linux/x86_64</library-path>
48 <library-path os="linux" arch="i686">../../common/lib/linux/i686</library-path>
49 <library-path os="macosx">../../common/lib/darwin</library-path>
51 <!-- Either absolute or relative to sample -->
52 <include-path>./</include-path>
53 <include-path>../</include-path>
54 <include-path>../../common/inc</include-path>
56 <!-- Can be either "separate" or "whole", omitting this element means that sample can be compiled either way -->
57 <devicecompilation>whole</devicecompilation>
59 <!-- These options will be passed to NVCC compiler as is and for all files -->
60 <nvcc-compiler file="marchingCubes_kernel.cu"></nvcc-compiler>
61 <sm-arch>sm10</sm-arch>
62 <sm-arch>sm20</sm-arch>
63 <sm-arch>sm30</sm-arch>
65 <!-- One of "exe|dll|lib" (exe is default) -->
68 <!-- By default IDE will open file "samplename.(cu|cpp) -->
69 <primary-file>marchingCubes.cpp</primary-file>
71 <!-- Collection of [OS][:arch] tokens -->
72 <supported-env>linux:x86_64, linux:i686, windows7, macosx:x86_64, macosx:i686, :arm</supported-env>