Date post: | 18-Jan-2016 |
Category: |
Documents |
Upload: | shannon-harmon |
View: | 217 times |
Download: | 0 times |
4/25/02
SKETCH:
Robert C. ZelenikKenneth P. Herndon
John F. Hughes
An Interface for Sketching 3D Scenes
SIGGRAPH ‘96
Presented by Mike Margolis
4/25/02
Human SketchsPros:•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
4/25/02
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
4/25/02
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
4/25/02
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
4/25/02
Strokes•Use first mouse button
•Generally strokes are aligned with three principal axes
4/25/02
Interactors
•Use second mouse button
•No specific visual representation
•Used to manipulate objects in scene
•“Click and Drag”•“Click”
4/25/02
Camera
•Use third mouse button
•Direct manipulation of the camera
4/25/02
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
4/25/02
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
4/25/02
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
4/25/02
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
4/25/02
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
4/25/02
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
4/25/02
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
4/25/02
Editing Geometry
•Modeled after pencil & paper techniques
•Resizing•Shadows•Transformations
- Translation- Rotation
•Objects can be removed from the scene as well
4/25/02
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
4/25/02
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
4/25/02
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
4/25/02
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)
4/25/02
Editing Geometry
•Rotation about a single axis can be performed
•Draw user defined axis and move perpendicular to the line
4/25/02
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
4/25/02
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
4/25/02
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
4/25/02
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
4/25/02
Rendering
•Line drawing effect
•Charcoal effect
•Watercolor effect
4/25/02
Rendering
•Objects assigned random color (can be manipulated)
•Jittery lines rendered intentionally in some effects
4/25/02
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