WebGL and Computer Graphics

WebGL (Web Graphics Library) is a low-level JavaScript API that brings the power of hardware-accelerated computer graphics to the web browser without the need for plug-ins. By providing a direct interface to a computer's Graphics Processing Unit (GPU) based on the OpenGL ES standard, WebGL enables developers to create and render complex, interactive 2D and 3D graphics, data visualizations, and games directly within an HTML canvas element. This technology effectively bridges the gap between high-performance, native graphics applications and the universal accessibility of the web, allowing for rich, visually compelling experiences to run on any compatible device.

  1. Fundamentals of Computer Graphics
    1. The Digital Image
      1. Pixels and Resolution
        1. Definition of a Pixel
          1. Pixel Components and Structure
            1. Image Resolution and Aspect Ratio
              1. Display Resolution vs. Image Resolution
                1. Pixel Density and DPI
                2. Color Models
                  1. RGB Color Model
                    1. Red, Green, Blue Components
                      1. Additive Color Mixing
                        1. RGB Value Ranges
                        2. RGBA Color Model
                          1. Alpha Channel and Transparency
                            1. Premultiplied Alpha
                            2. HSV Color Model
                              1. Hue Component
                                1. Saturation Component
                                  1. Value Component
                                  2. HSL Color Model
                                    1. Hue Component
                                      1. Saturation Component
                                        1. Lightness Component
                                        2. Color Model Conversions
                                          1. RGB to HSV Conversion
                                            1. RGB to HSL Conversion
                                              1. HSV to RGB Conversion
                                            2. Color Depth and Image Representation
                                              1. Bit Depth Concepts
                                                1. 8-bit Color Depth
                                                  1. 16-bit Color Depth
                                                    1. 24-bit Color Depth
                                                      1. 32-bit Color Depth
                                                      2. Color Representation Methods
                                                        1. Indexed Color
                                                          1. True Color
                                                            1. High Dynamic Range
                                                            2. Bitmap Image Structure
                                                              1. Pixel Array Organization
                                                                1. Memory Layout
                                                            3. Coordinate Systems
                                                              1. 2D Coordinate Systems
                                                                1. Cartesian Coordinates
                                                                  1. X and Y Axes
                                                                    1. Origin Point
                                                                    2. Screen Coordinate System
                                                                      1. Origin Location
                                                                        1. Y-axis Direction
                                                                          1. Pixel Coordinates
                                                                        2. 3D Coordinate Systems
                                                                          1. Cartesian 3D Coordinates
                                                                            1. X, Y, and Z Axes
                                                                              1. Right-hand Rule
                                                                                1. Left-hand Rule
                                                                                2. Coordinate System Handedness
                                                                                  1. Right-handed Systems
                                                                                    1. Left-handed Systems
                                                                                      1. Conversion Between Systems
                                                                                    2. Coordinate Space Transformations
                                                                                      1. World Space
                                                                                        1. Global Coordinate System
                                                                                        2. Screen Space
                                                                                          1. Display Coordinates
                                                                                          2. Normalized Device Coordinates
                                                                                            1. NDC Range and Properties
                                                                                            2. Viewport Transformation
                                                                                              1. Mapping NDC to Screen
                                                                                          3. Geometric Primitives
                                                                                            1. Points
                                                                                              1. 2D Point Representation
                                                                                                1. 3D Point Representation
                                                                                                  1. Point Size and Rendering
                                                                                                  2. Lines
                                                                                                    1. Line Segments
                                                                                                      1. Start and End Points
                                                                                                      2. Polylines
                                                                                                        1. Connected Line Segments
                                                                                                        2. Line Equations
                                                                                                          1. Parametric Form
                                                                                                            1. Slope-Intercept Form
                                                                                                          2. Triangles
                                                                                                            1. Triangle Representation
                                                                                                              1. Vertex Order
                                                                                                              2. Triangle Properties
                                                                                                                1. Area Calculation
                                                                                                                  1. Normal Vectors
                                                                                                                2. Polygons
                                                                                                                  1. Polygon Definition
                                                                                                                    1. Polygon Types
                                                                                                                      1. Convex Polygons
                                                                                                                        1. Concave Polygons
                                                                                                                        2. Polygon Winding Order
                                                                                                                          1. Clockwise Winding
                                                                                                                            1. Counter-clockwise Winding
                                                                                                                        3. Rendering Approaches
                                                                                                                          1. Rasterization
                                                                                                                            1. Rasterization Process
                                                                                                                              1. Scan Conversion
                                                                                                                                1. Fragment Generation
                                                                                                                                  1. Advantages of Rasterization
                                                                                                                                    1. Limitations of Rasterization
                                                                                                                                    2. Ray Tracing
                                                                                                                                      1. Ray Tracing Process
                                                                                                                                        1. Ray-Object Intersection
                                                                                                                                          1. Recursive Ray Tracing
                                                                                                                                            1. Advantages of Ray Tracing
                                                                                                                                              1. Limitations of Ray Tracing
                                                                                                                                            2. Graphics Pipeline Overview
                                                                                                                                              1. Pipeline Stages
                                                                                                                                                1. Application Stage
                                                                                                                                                  1. Geometry Processing Stage
                                                                                                                                                    1. Rasterization Stage
                                                                                                                                                      1. Pixel Processing Stage
                                                                                                                                                      2. Application Stage
                                                                                                                                                        1. Scene Setup
                                                                                                                                                          1. Data Preparation
                                                                                                                                                            1. CPU Processing
                                                                                                                                                            2. Geometry Processing Stage
                                                                                                                                                              1. Vertex Processing
                                                                                                                                                                1. Primitive Assembly
                                                                                                                                                                  1. Clipping
                                                                                                                                                                  2. Rasterization Stage
                                                                                                                                                                    1. Triangle Setup
                                                                                                                                                                      1. Fragment Generation
                                                                                                                                                                        1. Interpolation
                                                                                                                                                                        2. Pixel Processing Stage
                                                                                                                                                                          1. Fragment Shading
                                                                                                                                                                            1. Per-fragment Operations
                                                                                                                                                                              1. Framebuffer Output