Difference between revisions of "Vector Drawings from NURBS"

(new layout, add references)
Line 1: Line 1:
 
BRL-CAD can render hidden line drawings using rtedge, but the images it generates are raster images (consisting of pixels) rather than vector drawings (based on lines and curves).  This is often suboptimal - line drawings are often edited and rescaled using vector based editing programs, and rtedge output must be manually traced in order to be used in those environments.
 
BRL-CAD can render hidden line drawings using rtedge, but the images it generates are raster images (consisting of pixels) rather than vector drawings (based on lines and curves).  This is often suboptimal - line drawings are often edited and rescaled using vector based editing programs, and rtedge output must be manually traced in order to be used in those environments.
  
Without explicit surface representations we cannot (currently) calculate vector forms of significant lines (http://www.cs.princeton.edu/gfx/proj/sg08lines/) directly from models without using raytracing.  However, a possible alternative approach is to take the grid results of the rtedge raytrace and use the knowledge inherent in the ray about what object its returning the pixel from to group pixels into groups based on objects.  From there, the set of xy points in image space could be fitted with spline curves to produce vector representations.
+
=References=
  
For the ambitious, it might even be possible to go beyond lines and bound areas using raytracing results - this paper illustrates possibilities with layered 2D output from 3D models:
+
* http://www.cs.princeton.edu/gfx/proj/sg08lines/
http://people.csail.mit.edu/sparis/publi/2009/siggraph/Eisemann_09_A_Visibility_Algorithm.pdf
+
** Without explicit surface representations we cannot (currently) calculate vector forms of significant lines () directly from models without using raytracing.  However, a possible alternative approach is to take the grid results of the rtedge raytrace and use the knowledge inherent in the ray about what object its returning the pixel from to group pixels into groups based on objects.  From there, the set of xy points in image space could be fitted with spline curves to produce vector representations.
  
 +
*http://people.csail.mit.edu/sparis/publi/2009/siggraph/Eisemann_09_A_Visibility_Algorithm.pdf
 +
** For the ambitious, it might even be possible to go beyond lines and bound areas using raytracing results - this paper illustrates possibilities with layered 2D output from 3D models.
 +
 +
* rtedge
 +
* src/rt/viewedge.c
 +
* src/rt/view.c
 +
* rt
  
 
Requirements:
 
Requirements:
Line 11: Line 18:
 
* Familiarity with C/C++
 
* Familiarity with C/C++
 
* Solid mathematical background (algorithms for fitting curves to points)
 
* Solid mathematical background (algorithms for fitting curves to points)
 
Difficulty:  high
 

Revision as of 13:05, 24 March 2011

BRL-CAD can render hidden line drawings using rtedge, but the images it generates are raster images (consisting of pixels) rather than vector drawings (based on lines and curves). This is often suboptimal - line drawings are often edited and rescaled using vector based editing programs, and rtedge output must be manually traced in order to be used in those environments.

References

  • http://www.cs.princeton.edu/gfx/proj/sg08lines/
    • Without explicit surface representations we cannot (currently) calculate vector forms of significant lines () directly from models without using raytracing. However, a possible alternative approach is to take the grid results of the rtedge raytrace and use the knowledge inherent in the ray about what object its returning the pixel from to group pixels into groups based on objects. From there, the set of xy points in image space could be fitted with spline curves to produce vector representations.
  • rtedge
  • src/rt/viewedge.c
  • src/rt/view.c
  • rt

Requirements:

  • Familiarity with C/C++
  • Solid mathematical background (algorithms for fitting curves to points)