SDS Creases

From K-3D

Revision as of 21:30, 16 May 2006 by Tshead (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This page describes a method to add variable sharpness creases to SDS meshes. At this time only creases are supported, not sharp corners. The creases are created by automatically adding edges to the base mesh in much the same way one would add them manually to obtain creases in SDS-modelers that do not support automatic creases. The creases are evaluated by the SDS preview in real-time, and by the MakeCreases filter to export the creased mesh to renderers that don't support creases (but do support SDS).

In order to obtain the creases, edges are added parallel to the edges that have sharpness > 0. For an infinitely sharp crease, the new edges are added over the old edge, for edges with sharpness just greater than 0 the new edges are added near the center of the face. The disadvantage of this is that there is a large gap between sharpness 0.0 and sharpness > 0.0, however small, since new points are added near the centers of the faces adjacent to sharp edges. The advantage of the method is that it consists of just one preprocessing step, after which the normal Catmull-Clark scheme can be applied, so the method works with any renderer that supports SDS, once the MakeCreases filter has been applied to the mesh. For sharpness >= 1, the results are also quite close to what is shown in the Pixar paper, as can be seen in the following examples.

Note: K-3D uses Catmull-Clark for subdivisions

Examples

Subdivision surface sharpness with a cube

The four cylinders below were obtained by subdividing a unit cube, sharpness value is respectively 1, 2, 3 and 1000:

Image:Sds-cylinders.png

The preview shows the extra geometry that is added (forms a cage):

Image:Sds-cylinders-preview.png

To create such a cylinder, start from a 1x1x1 PolyCube, filter it through MakeSDS and select top and bottom edges. Once you're done, alter with SDSCrease and choose sharpness:

Image:Sds-cylinder1-preview.png

To show the extra geometry (and also to pass this geometry to the renderer) alter or filter with MakeCreases:

Image:Sds-cylinder2-preview.png

With an octahedron

Image:Sds-octahedron.png

K-3D, Aqsis and 3Delight differences

A cube gives similar results in all cases

From left to right:

  • 3Delight render
  • Aqsis render
  • K-3D computed, then rendered
  • K-3D preview

Image:Sds-cube.png

Different sharpness on different edges

There is a big difference between K-3D and the 2 others:

3Delight and Aqsis

Image:Sds-variable-creases-3delight-aqsis.png

K-3D

Image:Sds-variable-creases-k3d.png Image:Sds-variable-creases-preview.png

Two more examples where the difference is not dramatic:

Image:Sds-variable-creases2-3delight-aqsis.png

K-3D

Image:Sds-variable-creases2-k3d.png Image:Sds-variable-creases2-preview.png


Pyramid:

Image:Sds-variable-creases-pyramid-3delight-aqsis.png

K-3D

Image:Sds-variable-creases-pyramid-k3d.png Image:Sds-variable-creases-pyramid-preview.png


Bart Janssens <bart dot janssens at lid dot kviv dot be>

Personal tools