What You See Is What You Snap:
Published in the 2005 ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games, Washington, D.C. (I3D)
We present a simple yet effective snapping technique for constraining the motion of the cursor of an input device to the surface of 3D models whose geometry is arbitrarily deformed by a programmable hardware fragment and vertex processor. The technique works in image space and thus snaps the cursor to the geometry actually rendered instead of the geometry originally submitted to the rendering pipeline. We also present a method to establish a correspondence between snapped geometry in image space and object space, and an efficiency improvement based on the control of frequency of frame buffer accesses. Performance tests are conducted and compared against the standard picking and snapping algorithm used by the D3DX library of the Microsoft Direct3D API. We conclude by emphasizing the feasibility of our algorithm when facing the new advances of the graphics hardware for deforming geometry on the GPU.
Snapping to a sphere deformed in the vertex shader (3.05MB compressed AVI)
Minimum requirements and licensing
The demo executable requires MS DirectX 9.0c Runtime, a graphics board with support to ps_2_0 shaders and floating point render targets. The source code was created with MS Visual Studio .NET 2002 and is released under the LGPL license:
Copyright (C) 2005 Harlen Costa Batagelo