Interactive and Anisotropic Geometry Processing Using the Screened Poisson Equation
SIGGRAPH 2011 Paper
This distribution (part of the larger PoissonMesh package) provides a visualization of our real-time, anisotropic geometry processing system.
EXECUTABLE ARGUMENTS (GeometryEditor.exe)
- --in <input triangle mesh>
- This string is the the name of the mesh that is to be edited. The file is assumed to be in PLY format.
- [--depth <maximum octree depth>]
This optional integer specifies the maximum depth of the tree that will be used for defining the finite-elements system. Running at depth d corresponds to solving on a voxel grid whose resolution is no larger than 2^d x 2^d x 2^d. The default value for this parameter is 8.
- [--iters <Gauss-Seidel iterations>]
This optional integer specifies the number of iterations of Gauss-Seidel relaxation that are to be performed at each level of the multigrid solver. The default value for this parameter is 2.
- [--gScaleMax <max scale>]
This optional floating point value specifies the maximum gradient amplification scale. The default value for this parameter is 2.
- [--threads <number of threads>]
This optional integer specifies the number of threads across which the solver should be parallelized. The default value for this parameter is the number of threads on the machine.
- If this optional argument is specified, the code outputs information about running and time and memory usage througout the processing.
- If this optional argument is specified, the code shows a progress bar for the different steps of the system set-up.
- If this optional argument is specified, the system is defined using second-order elements, which have larger support and therefore define a denser system with higher dimension. Otherwise, first-order elements are used.
- Esc: Quit
- p: Toggle curvature plot
- C: Toggle gradient scale color
- O: Write out mesh to disk
- e: Toggles edge mode
- t: Toggles triangle mode
- a and z: Rotates around the x-axis
- q and w: Rotates around the y-axis
- s and x: Rotates around the z-axis
- F9: Toggle CPU/GPU evaluation
- Keyboard [curvature plot disabled]:
- Page Up/Down: Zoom in and out
- Left/Right arrow keys: Decrease/increase spray radius
- Up/Down arrow keys: Decrease/increase gradient scale value
- Space: Reset spray value to 1
- Keyboard [curvature plot enabled]:
- Arrow keys: Shift curvature plot
- Space: Reset curvature plot
- Right mouse: Sprays gradient scale values
- Mouse [curvature plot disabled]:
- Left mouse: Move in the xy-plane
- Left mouse+Shift: Rotate
- Left mouse+Alt: Zoom in and out
- Mouse [curvature plot enabled]:
- Left mouse: Add/remove knots
- The executable provided up was compiled for a 64-bit OS.
- The code was written using CUDA, glew, and glut, and requires the following DLLs to run.
- The source code is included as part of the larger, PoissonMesh, package. To generate the executable, only the Library and GeometryEditor projects need to be compiled.
- The source code was compiled under MSVC 2008 for 64-bit compilation. If you have trouble loading the solution file, it's possible that the Cuda.rules files is not where it's expected to be. This can be fixed by editing the GeometryEditor.vcproj file and pointing the compiler to the write location.
- Apparently, some compilers are choking on the link to cutil_math.h. If that is the case, moving it from the GUI directory to GeometryEditor should address the problem.
- The compiler assumes that the environment variables CUDA_SDK_INC_PATH and CUDA_SDK_LAB_PATH have been set.
- The slider at the top sets the global modulation value (left is smoothing, right is sharpening) and adjusting it over-writes any local modulation values that were set before.
- For the gradient scale visualization, blue corresponds to values less than one (smoothing) while red correspond to values larger than one (sharpening).
- For the curvature plot, the vertical axis corresponds to the fidelity and the horizontal axis corresponds to curvature (negative to positve from left to right).