Here is a markdown checklist based on the content of your provided sources:
Computer Graphics Concepts Checklist
- 2D Transformations
- Translation
- Scaling
- Rotation
- Rotation around a point
- Scaling with respect to a point
- Homogeneous Coordinates
- Purpose and advantages
- Adding an extra coordinate
- Cartesian coordinates
- Representation of points and vectors
- Transformation Matrices
- Translation matrix
- Rotation matrix
- Scaling matrix
- Inverse Transformations
- Combining Transformations
- Order of transformations and non-commutativity of matrix multiplication
- OpenGL 2D Transformations
-
glMultMatrixfunction and column-major order of matrices - Basic transformation functions:
glTranslate,glRotate,glScale - Transformation matrix stacks in OpenGL
-
- 3D Modelling
- Definition and types of 3D models:
- Wireframe
- Characteristics
- Surface
- Focus on outward appearance and illusion of volume
- Elaboration compared to wireframes
- Solid
- Definition
- Characteristics
- Wireframe
- Advantages of Solid Modelling
- Solid Object Definition
- Boundary points
- Interior points
- Closure
- Solid Model Representation Schemes
- Sweep representations
- Usefulness
- Representation using 2D shape and a sweep
- Menu options for sweep representation with 2D primitives
- Boundary representations (B-reps)
- Description based on surface boundaries
- Approximation of curved faces
- Definition of 3D object by a closed 2D surface
- Types: primitive-based and freedom-based
- Spatial-partitioning representations
- Decomposition into adjoining, non-intersecting solids
- Variation in primitive type, size, position, parameterization, and orientation
- Binary Space Partitioning Trees (BSP)
- Similarity to octree encoding
- Division using planes at any position and orientation
- Usefulness for identifying visible surfaces
- Characteristics
- Octree representation
- Hierarchical tree structure
- Divide-and-conquer principle of binary subdivision
- Successive subdivision into quadrants
- Representation for storing information about object interiors
- Use of quad trees for speeding up 3D picking
- Sweep representations
- Definition and types of 3D models:
- Display Devices
- Definition
- Types: analog, digital, and others
- Output Devices
- Role
- Examples
- Types of Output
- Soft copy
- Hard copy
- Communications channel
- Video Monitors (VDTs)
- Image storage in video memory
- Diagonal measurement of monitor size
- Pixels
- Definition
- Resolution
- Web resolution
- Print resolution
- Characteristics
- Raster (Bitmap) Graphics
- Definition
- Bits
- Data size units
- Characteristics
- Common Raster File Formats
- JPEG (.jpeg, .jpg)
- PNG (.png)
- GIF (.gif)
- Common Raster Editing Programs
- Microsoft Paint
- Adobe Photoshop
- Gimp
- Vector Graphics
- Definition
- Characteristics
- Common Vector File Formats
- Illustrator (.ai)
- Encapsulated PostScript (.eps)
- PostScript (.ps)
- Scalable Vector Graphic (.svg)
- Embedding of raster images within vector files
- Color Depth (Bit Depth)
- Definition
- Types:
- Monochrome
- Grayscale
- True color
- Classification of Display Devices
- Analog display devices
- Oscilloscope tubes
- TV CRTs
- Digital display devices
- LED (including OLED) displays
- VF displays
- LCD displays
- TFT-LCD
- Nixie tube displays and PDPs
- Electroluminescent displays (ELDs)
- Others
- Electronic paper
- Nanoelectronics-based displays
- Laser TV
- Analog display devices
- Active vs. Passive Displays
- Active displays
- Passive displays
- Luminescence in Active Displays
- Definition
- Types:
- Photoluminescence
- Cathodoluminescence
- Electroluminescence
- Fluorescence
- Phosphorescence
- Attributes of a Good Display Device
- Pixel resolution
- Display size
- Viewing angle
- Response time
- Aspect ratio
- Brightness (luminance)
- Cathode-Ray Tubes (CRTs)
- Content and objectives
- Components
- Features
- Monitor Features
- Screen size
- Aspect ratio
- Refresh rate
- Color depth
- Electron gun
- Electromagnetic focusing
- Electromagnetic deflection
- Oscilloscope Tubes
- Brightness
- Focus
- Electrostatic focusing and deflection
- Picture (TV) Tubes (Kinescopes)
- Deflecting system
- Phosphor
- Electrostatic focusing and electromagnetic deflection
- Rectilinear scanning
- Intensity modulation by video signal
- Color Picture Tubes
- Screen
- Mask
- Electron gun
- Slot matrix tube
- Flat Panel Displays
- Motivation
- Characteristics
- Seven-segment font for numeric display
- Graphic displays as large dot matrices
- Types requiring continuous refresh
- LED Displays
- Use of light-emitting diodes
- Operation based on injection luminescence
- Availability in various sizes and shapes
- Radiation of red, orange, yellow, or green light
- Characteristics
- Gas Discharge Displays and Plasma Display Panels
- Liquid Crystal Displays (LCDs)
- Use of liquid crystals
- Types of ordering in liquid crystals
- Alignment of molecules upon contact with a solid surface
- Control of molecular direction by electric field
- Use of twisted nematic cells
- Rotation of polarized light
- Change in molecular orientation by electric field
- Structure of a typical LCD cell
- Transmission LCDs
- Color displays using color filters
- Advantages:
- Low power consumption
- Low voltage operation and easy driving by MOS IC drivers
- Disadvantages
- Direct-driven image elements
- Addressing pixels in rows and columns
- TFT-LCDs
- Individual pixel control using transistor switches
- Assembly of TFT-array and color-filter substrates
- Carbon Nanotube Displays
- Electronic Paper (E-paper)
- Definition
- Characteristics
- GPU (Graphics Processing Unit)
- GPU Parallelism
- Similarity to multicore parallelism
- Key challenge: scheduling threads on cores
- Hardware multithreading
- Fine-grain hardware multithreading
- GPU Architectures
- Highly data-parallel processing
- Characteristics:
- High multithreading and thread switching to hide memory latency
- Less reliance on multi-level caches
- Wide and high-bandwidth graphics memory
- Trend toward general-purpose GPUs (GPGPUs)
- Heterogeneous CPU/GPU systems
- GPU Programming Languages and APIs
- DirectX
- OpenGL
- C for Graphics (Cg)
- High-Level Shader Language (HLSL)
- Compute Unified Device Architecture (CUDA)
- GPU Performance vs. CPU
- Higher throughput and throughput per watt for GPUs
- Evolution of GPUs
- Fixed function pipeline (around 2000)
- Programmable vertex and pixel processors (around 2005)
- Unified architecture (post-2006)
- Reasons for GPU Performance
- Parallelism with thousands of cores
- Pipelining
- Hardware multithreading
- Streaming caches instead of multi-scale caching
- Emphasis on throughput rather than latency
- System Architecture with a GPU
- Components
- Interconnection technologies and bandwidths
- High-Performance Graphics Memory
- Use of 3D-stacked memory
- Massively Parallel Architectures
- NVIDIA CUDA
- OpenCL
- Synchronous execution of massive thread counts
- CUDA Memory Hierarchy
- Per-thread registers
- Per-block shared memory
- Global memory
- Read-only, cached constant memory
- CUDA Execution Abstraction
- Block
- 1D, 2D, or 3D
- Thread synchronization and shared memory access within a block
- Grid
- 1D or 2D
- Parallel or sequential execution of blocks
- Kernel execution in grid units
- Limited recursion depth
- Block
- Heterogeneous Computing
- Host
- Device
- CUDA Programming
-
do_something_on_host() -
kernel<<<nBlk, nTid>>>(args) -
cudaDeviceSynchronize() -
do_something_else_on_host() - Function types:
-
__global__ -
__device__ -
__host__
-
-
- Picture Blurring Example
- Matrix Multiplication Performance Engineering
- Resource Balancing
- Determining the optimal number of threads per block
- Register and shared memory availability limitations
- Platform-specific limitations
- Warp Scheduling
- Execution of threads in 32-thread warp units
- SIMD execution within a warp
- Handling conditional statements
- Memory Architecture Caveats
- Shared memory peculiarities
- Slow global memory access
- GPU Parallelism
- Hierarchical Modelling
- Limitations of Linear Modelling
- Symbols and Instances
- Prototype object (symbol) and its appearances (instances)
- Instance transformation
- Symbol-Instance Table
- Relationships in a Car Model
- Limitations of symbol-instance tables
- Structure Through Function Calls
- Use of function calls to represent hierarchical structure
- Limitations
- Graphs
- Definition
- Directed vs. undirected edges
- Cycles
- Trees
- Definition
- Root node, leaf nodes
- Tree Model of a Car
- Directed Acyclic Graphs (DAGs)
- Modelling with Trees
- Placement of information in nodes and edges
- Node contents
- Tree Model of a Robot
- Code representation of relationships
- Easy modification of part appearance
- General Node Structure
- Drawing code or pointer to drawing function
- Linked list of pointers to children
- Matrix relating node to parent
- Generalizations
- Handling multiple children
- Representation of general trees
- Traversal of tree data structures
- Animation
- Dynamic creation and deletion of nodes
- Rendering
- Meaning
- Definition
- Applications
- Benefits
- Process
- Use in video editing
- Four Major Rendering Tasks
- Modeling
- Geometric processing
- Transformations
- Clipping
- Shading
- Hidden-surface removal
- Projection
- Rasterization (scan conversion)
- Display
- Scan Conversion (Rasterization)
- Definition
- Purpose
- Operations
- Interleaved processes
- Scan Conversion Algorithms
- Scan conversion of points
- Modeling coordinates
- Screen coordinates
- Conversion functions
- Scan conversion of lines
- Scan conversion of circles
- Scan conversion of ellipses
- Scan conversion of polygons
- Scan conversion of points
- Line Drawing
- Importance
- Display
- Line drawing algorithm requirements
- Scan Conversion of Lines
- Problem
- Horizontal Line Drawing Algorithm
- Keeping y constant and incrementing x
- Code example
- Arbitrary Line Drawing Algorithms
- Challenges
- Algorithms: DDA and Bresenham’s algorithm
- Digital Differential Analyzer (DDA) Algorithm
- Origin
- Incremental approach
- Basic concept
- Derivation
- Simple algorithm
- Case 1: |m| < 1 and Xstart < Xend
- Case 2: |m| > 1 and Ystart < Yend
- Example
- Bresenham’s Line Drawing Algorithm
- Advantages over DDA
- Basic concept
- Main idea
- Decision parameter (pk)
- Recursive expression for decision parameter
- General solution
- Example
- Circle Drawing
- Direct algorithm
- Inefficiency
- Direct algorithm
- Midpoint Circle Algorithm
- Eight-way symmetry
- Sampling at unit intervals
- Decision parameter (pk)
- Incremental calculation of decision parameters
- Steps
- Example
- Ellipse Drawing
- General ellipse definition
- Ellipse equation
- Difficulty in plotting points directly
- Parametric equation
- General case ellipses
- Drawing methods:
- Polygon approximation
- Rotation
- Midpoint algorithm for aligned axes
- Midpoint Ellipse Algorithm
- Symmetry considerations
- Unit steps in x and y
- Similarity to midpoint circle algorithm
- Initialization
- Steps
- Polygon Filling
- Types:
- Solid fill
- Pattern fill
- Polygon representation
- Displaying polygons
- Types:
- Polygon Filling Algorithms
- Inside-outside tests
- Types:
- Scan fill
- Seed fill
- Boundary fill
- Flood fill
- Scan-line polygon fill
- Locating scan-line intersections with edges
- Sorting intersection points
- Drawing interiors
- Handling corners and edge endpoints
- Basic algorithm
- Speeding up
- Determining edge intersections incrementally
- Active edge table (AET)
- Boundary Fill Algorithm
- 4-connected polygon
- 8-connected polygon
- Example
- Limitations of 4-connected approach
- Flood Fill Algorithm (Span Flood-Fill)
- Motivation
- Steps
- Example
- Implementations
- Modeling as a graph traversal problem
- Code example
- Character Attributes
- Controlling character appearance
- Text attributes
- Bundled attributes
- Antialiasing
- Techniques: increased resolution (sampling), supersampling
- Supersampling
- Scan Conversion Algorithms (Point and Line)
- Four Major Rendering Tasks
- Modeling
- Geometric processing
- Transformations
This checklist summarizes the main topics and subtopics covered in your provided sources. You can use it to track your progress as you learn about computer graphics concepts.