Difference between revisions of "Vector Drawings from NURBS"

From BRL-CAD
(Tweak vector drawing task)
 
(3 intermediate revisions by 3 users not shown)
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.
+
Without explicit surface representations we cannot (currently) calculate vector forms of significant lines () directly from models using CSG without using raytracing. BRL-CAD can import and raytrace NURBS based models, and focusing on those as a starting point is a valid direction (the completion of the NURBS Boolean project would offer a path for CSG models via NURBS significant lines.) However, a possible alternative approach to directly deal with CSG models is to take the grid results of the rtedge raytrace and use the knowledge inherent in the ray about what object it's 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.
  
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:
+
=References=
http://people.csail.mit.edu/sparis/publi/2009/siggraph/Eisemann_09_A_Visibility_Algorithm.pdf
 
  
 +
* http://www.cs.princeton.edu/gfx/proj/sg08lines/
 +
 +
*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 - 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 19:
 
* 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
 

Latest revision as of 13:07, 5 March 2015

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 () directly from models using CSG without using raytracing. BRL-CAD can import and raytrace NURBS based models, and focusing on those as a starting point is a valid direction (the completion of the NURBS Boolean project would offer a path for CSG models via NURBS significant lines.) However, a possible alternative approach to directly deal with CSG models is to take the grid results of the rtedge raytrace and use the knowledge inherent in the ray about what object it's 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[edit]

  • rtedge
  • src/rt/viewedge.c
  • src/rt/view.c
  • rt

Requirements:

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