Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.