280 likes | 563 Views
SKETCH:. An Interface for Sketching 3D Scenes. Robert C. Zelenik Kenneth P. Herndon John F. Hughes. SIGGRAPH ‘96. Presented by Mike Margolis. Human Sketchs. Pros: Paper and pen/pencil Low overhead Lack of special knowledge needed to draw (unlike CAD) Easy to make changes
E N D
SKETCH: An Interface for Sketching 3D Scenes Robert C. Zelenik Kenneth P. Herndon John F. Hughes SIGGRAPH ‘96 Presented by Mike Margolis
Human Sketchs • Pros: • Paper and pen/pencil • Low overhead • Lack of special knowledge needed to draw (unlike CAD) • Easy to make changes • Precision is not needed to convey concept • Cons: • Many changes lead to clutter • New viewpoint requires new sketch • Groups of objects cannot be transformed together
Purpose • Bridge gap between hand sketches and CAD systems • Easy to use • Ability to build quick 3D models • Use of human gestures for intuitive control • NPR rendering for “sketch” effect • Use for storyboarding, etc
Interface • Interaction through 3 button mouse • Occasional use of modifier key (shift) • Single orthographic window • User generates “gestures” as opposed to using a menu • Gestures fall into the categories of Strokes and Interactions
Implementation • Processes sequences of strokes and interactors to perform modeling functions with a finite state machine • Mapping between gestures and modeling functions • Tradeoffs must be considered in evolution in gestures: • - Natural gestures • - Effective gestures • - Effective gestures within • system already using similar • gestures for other functions
Strokes • Use first mouse button • Generally strokes are aligned with three principal axes
Interactors • Use second mouse button • No specific visual representation • Used to manipulate objects in scene • “Click and Drag” • “Click”
Camera • Use third mouse button • Direct manipulation of the camera
Creating Geometry • Primitives created with their own gestures: • Cubes, Cones, Cylinders, Sphere, Objects of Revolution, Prisms, Extrusions, Ducts, Superquadrics • Primitives use an axis-aligned stroke to guide geometry • Can create more complex objects from primitives • Some objects can not be made at all though: • Freeform surfaces, 3D ducts
Placing Geometry • Once object is created, it must be placed in scene • Four rules of placement: • 1) Salient features project onto their corresponding gestures • 2) New objects are instantiated with existing object in contact when possible • 3) Certain invariants of junctions in line drawings that indicate placement or dimension of geometry • 4) CSG subtraction is inferred automatically from direction of gesture strokes • Generally, the rules generate good placement choices
Placing Geometry • Rule 1: Determines placement in scene except for translation along view direction • Rule 2: Resolves placement by requiring salient vertex be in contact when possible
Placing Geometry • Project ray from orthographic plane (viewscreen) into 3D scene • Find the surface the ray intersects with and instantiate object with contact of salient vertex here at this point in the 3D scene
Placing Geometry • Rule 3 exploits invariants of vertex junctions (e.g. T-Junction) • Ray cast along “T” gesture line and compared with intersected plane’s -- as defined by the bar of the “T” -- normal
Placing Geometry • If the calculation is within the tolerance, the gesture defining new primitive is extended to create contact with the surface • If not within tolerance, object is translated along viewing vector to see if they meet. If they don’t, the primitive gesture remains the same
Placing Geometry • Rule 4 allows for Constructive Solid Geometry (CSG) subtraction • Gesture strokes drawn into existing surface to create primitive • Using an interactor, CSG subtraction will subtract the primitive from the indicated volume
Editing Geometry • Modeled after pencil & paper techniques • Resizing • Shadows • Transformations • Translation • Rotation • Objects can be removed from the scene as well
Editing Geometry • Resizing is done by “oversketching” • Drawing two coincident lines in opposite directions parallel to existing edge • Length of lines indicate the magnitude of the resizing
Editing Geometry • Shadows help viewer to determine depth of a scene • Identify object and draw impressionistic lines for shadow • Use a static point light source for entire scene • Displacement of shadow helps determine new position for the shadowed object
Editing Geometry • Translation of objects can be performed • Some constraints – kept simple to keep the system robust, fast, and easy to understand • Default translation • -Along plane that the object was created • (e.g. Bottom plane of cube) • -Two directions of translation with this method
Editing Geometry • Translation can be further cosntrained • Single-axis translation along user defined axis • (1D translation) • Translation about one of three axis-aligned planes • (2D translation) • Translation about one of three axis-aligned planes, with a contact constraint (used to help with depth placement)
Editing Geometry • Rotation about a single axis can be performed • Draw user defined axis and move perpendicular to the line
Grouping Objects • Objects can be grouped together • Grouping can be bidirectional or unidrectional • Each geometric object stores information about objects that to which it is grouped • Transformations can be applied to groups at one time • Group geometry can be copied • Grouping is automatically performed according to algorithm
Grouping Objects • Choice of bi-directional and uni-directional grouping is determined using inherent way that people view horizontal and vertical relationships of objects (i.e. Effects of gravity) • Table model: • Leg is grouped to floor • Top is grouped to leg and therefore the floor • Floor is not grouped to leg or top
Grouping Objects • Objects can be Lassoed to explicitly form groups • Accomplished by projecting geometric center of lasso and the crease vertices into film plane • Determines objects “inside” lasso and then transformations and copying can be applied
Rendering • Want effect to convince user that scene is not precision • Scene should be an estimate of distances – not accurate ones • Achieved through “Sketchy” (NPR) rendering
Rendering • Line drawing effect • Charcoal effect • Watercolor effect
Rendering • Objects assigned random color (can be manipulated) • Jittery lines rendered intentionally in some effects
Future Work • Some flaws in the application that need fixing • SKETCH user control is saturated – how do we overcome this barrier without making it less intuitive? • Use of different input devices? (tablet, etc) • How can we relate “Sketches” to more accruate representations