Presentation is loading. Please wait.

Presentation is loading. Please wait.

Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Chapter 7: Graphical Primitives.

Similar presentations


Presentation on theme: "Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Chapter 7: Graphical Primitives."— Presentation transcript:

1 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Chapter 7: Graphical Primitives

2 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 This Chapter: we will learn Types of primitives: Points, Lines, and Triangles Attributes of primitives: Per-primitive and Per-Vertex attributes E.g., colors, size, style, etc. Programming with primitives Abstraction + integration into UWBGL

3 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Point Primitives Important because of: Particles! – approximation fire, water, explosions Attributes: Color, size, and texture coordinates Drawing commands: DrawPoint DrawPointList Efficiency! Particles are lots of points

4 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Line Primitives Important for: Hairs, rains, etc. Types: One Line Segment Line Segments or Line Lists Collection of lines (not connected) Line Strips or Polylines Collection of connected lines Line lists/strips Efficient to specify large number

5 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Line: Attributes Per-Vertex Attributes Color Gouraud Shading: linearly change colors from one vertex to the next Texture Coordinate Normal Vector Important for shading hair/rain Per-Primitive Attributes Material properties Line Style/Width

6 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Triangle Primitive Only drawing primitive with area. Geometries/objects in most graphics applications are approximated with triangles.

7 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Types of Triangles Triangle (Lists) Individual vertices Triangle Fan n+2 vertices specify n connected triangles Triangle Strip n+2 vertices specify n connected triangles

8 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Triangle: Attributes Per-Vertex attribute similar as per-vertex attribute of lines: Color, normal, texture coordinates Per-Edge attributes Similar to per-line attributes: Width, style, etc. Per Triangle attribute Material properties Fill style: e.g., wire frame

9 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Color: Usually expressed as: (Red, Green, Blue) or (r, g, b) Usually: Normalized float: 0.0 ≤ r,g,b ≥1.0 Integer: 0.0 ≤ r,g,b ≥255 255: 8-bit per channel ( )

10 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 UWBGL_Lib4: Geometries Common Files/ DrawHelper/ API independent drawing support Geoms/ Geometries (attributes + drawing) E.g., color, shadeMode, FillMode, etc. D3D Files/ D3D_DrawHelper D3D specific drawing support D3D_GraphicsSystem/ D3D API support (GHC, RC, and swap chain) D3D_WindowHandler D3D View/Controller pair support

11 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 UWBGL_Lib4: New classes

12 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 DrawHelper: Interface for drawing

13 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 D3DDrawHelper: class + attributes setting

14 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 D3DDrawHelper: Draw functions

15 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Geometry class: Point

16 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Tutorial 7.1: Drawing Geometries

17 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Tut 7.1: Model Implementation

18 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Tut 7.1: DrawAndMouseHandler

19 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Tut 7.1: The Dialog Window

20 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 UWBGL_Lib5: Primitive Hierarchy

21 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 UWBGL_Lib5: Primitive Hierarchy

22 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 UWB_Primitive base class

23 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 UWB_PrimitivePoint class

24 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 UWB_PrimitiveLine class

25 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 UWB_PrimitiveCircle class

26 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Tutorial 7.2:

27 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Tut 7.2: DrawAndMouseHandler

28 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Primitive: Collisions Attributes of primitive: Appearance (color) vs. Physical (velocity) Graphics: mainly concern with appearance Learn some physical attributes Collision: mathematic intersection

29 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Collision with intersection With n different primitive types Need O(n 2 ) different intersection routines! E.g., line, circle, point: needs Line-Line, Line-Circle, Line-Point, Circle-Circle, Circle-Point, Point-Point In general: n+(n-1)+(n-2) Intersection Math is tedious Complex Invocation logic to determine which of the routines to invoke

30 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Collision with: Bounding volumes Bounds primitive with simple volumes E.g. x/y/z bounds E.g., circle/spheres Collide with the bounding volumes instead!

31 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Bounding Volume considerations Simplicity in math circle/sphere and axes aligned bounding boxes Tightness in bound Void space Approximation False collision and Failed detection Colliding position On bounding circle is different from on object

32 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 UWBGL_Lib6: Bounding Volume Intersects() collide two volumes Returns True/False (no colliding position) Add() Inserts and expends the volume

33 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 UWBGL_Lib6: BoundingBox Class

34 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 UWB_BoundingBox

35 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Primitive: CollisionResponse Primitive class: has a bounding volume CollisionResponse(): collision detected other_location – location of other primitive Change primitive behavior accordingly Knows how to draw bounding volume

36 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Using BoundingVolume Three steps: 1. Get the volume from each primitives 2. Collide the volumes 3. If volumes collide Each primitive must response: CollisionResponse()

37 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Default collision response … Change velocity to repulse away Looks like bouncing away Very rough approximation of elastic collision

38 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Tutorial 7.3: Collision

39 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Lib7: Collection of Primitives PrimitiveList class Subclass of Primitive Behave just like a primitive

40 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Lib7: PrimitiveList Class

41 Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Tutorial 7.4: Many primitives


Download ppt "Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 7 Chapter 7: Graphical Primitives."

Similar presentations


Ads by Google