¡¡Chinese Journal of Computers   Full Text
  TitleSmooth Line Drawing on Graphics Hardware
  AuthorsZHAO Han-Li1) JIN Xiao-Gang1) SHEN Jian-Bing2) WEI Fei-Fei1) FENG Jie-Qing1)
  Address1)(State Key Laboratory of CAD & CG, Zhejiang University, Hangzhou 310058)
2)(School of Computer Science and Technology, Beijing Institute of Technology, Beijing 100081)
  Year2009
  IssueNo.8(1582¡ª1588)
  Abstract &
  Background
Abstract This paper presents a new object-space based algorithm for rendering a 3D model as a line drawing using graphics hardware, based on the insight that a line drawing can effectively convey shape using remarkably minimal visual content. Suggestive contours, a new type of line can be combined with silhouettes to produce impressive view-dependent line drawing of smooth shapes. In addition, geometry shader, which is newly introduced into the Direct3D 10 pipeline, can process per-triangle primitive data and output zero or more line primitives. This paper proposes a parallelized line drawing approach that directly extracts 3D sparse linear features in geometry shader. The method selects lines at an appropriate scale automatically, and exhibits good frame-to-frame coherence at interactive rates. The implementation of the algorithm is straightforward, and several experimental examples are given at the end of the paper to demonstrate the effectiveness of our approach.
Keywords line drawing; silhouette; suggestive contour; radial curvature; graphics hardware
Background Computer graphics boasts an amazing success story with regard to realistic rendering, while to make pictures photoreal is quite expensive. Fortunately, there is an alternative to communicate visual information that avoids having to worry about a myriad of perhaps unnecessary details. Depicting information about shape by line drawing is clearly effective and natural, having been used for tens of thousands of years. When artists design imagery to portray a scene, they do not just render visual cues veridically. Instead, they select which visual cues to portray and adapt the information each cue carries. Line drawing styles can be found in many contexts, such as cartoon, storytelling, technical illustration, architectural design and medical atlases.
DeCarlo et al. recently augmented the suite of available line types by introducing suggestive contours¡ªFeature lines drawn along zero crossing of radial curvature. Suggestive contours blend visually with true contours and help convey 3D shape. In addition, graphics hardware is becoming more programmable and is increasingly used as a co-processor. The shader model version 4.0 fully supports 32-bit floating-point data format, which meets adequate precision requirement for general-purpose GPU computing (GPGPU). The programmable geometry shader, which is newly introduced into the Direct3D 10 pipeline, can process per-triangle primitive data and output zero or more line primitives.
However, existing smooth line drawing algorithms using graphics hardware are image-space based and implemented in pixel shader, and thus cannot produce stylized effects for lines. This paper proposes an object-space based line drawing approach that directly extracts 3D sparse linear features in geometry shader. The method selects lines at an appropriate scale automatically, and exhibits good frame-to-frame coherence from at interactive rates.
The paper only deals with silhouettes and suggestive contours, as suggestive contours blend visually with silhouettes and can produce a wide range of line drawings. However, our algorithm can also extract other types of lines, as long as they are defined on a triangle face and can be estimated and interpolated from the three vertices of triangle. Our method is different from the method proposed by Ni et al., which draws lines via per-pixel operation in pixel shader and cannot produce stylized effects. Instead, we directly extract lines from 3D meshes in object-space, as the geometry shader has powerful ability to process triangle primitive and can emit line primitive. Nvidia corporation¢Ù has presented an object-space based algorithm to extract silhouettes in geometry shader. However, they only take the edges of underlying triangles into account. Their lines are not smooth, while our approach can produce vivid smooth lines.