What You See Is What You Snap:
Snapping to Geometry Deformed on the GPU

Published in the 2005 ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games, Washington, D.C. (I3D)

Pre-print full paper (915KB PDF), color plates (1.45MB PDF)

Demo application (760KB), source code (511KB)

Abstract

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.

BibTeX entry

@INPROCEEDINGS{BT05,
  AUTHOR = {Harlen Costa Batagelo and Wu, Shin-Ting},
  TITLE = {What You See Is What You Snap: Snapping to Geometry Deformed on the GPU},
  BOOKTITLE = {2005 ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games},
  PUBLISHER = {ACM Press},
  MONTH = {April},
  YEAR = {2005},
  URL = {www.dca.fee.unicamp.br/projects/mtk/batagelo},
}

Videos

Snapping to a sphere deformed in the vertex shader (3.05MB compressed AVI)
Snapping to a sphere deformed in the vertex and fragment shader (7.12MB compressed AVI)
3D painting with the extended snapping algorithm (17.0MB 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

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

Back to main page