Computer graphics roadmap

Share on:

What should I learn and have experience with, if I want to be involved in computer graphics?

Skills / paths

C

  • Algorithms, Programs and Basic support of development
  • Variables, Input and Output in C language
  • Floating point arithmetic Expressions in C language
  • Flow control statements in C language
  • Functions in C language
  • Arrays and strings in C language
  • Structures and Pointers in C language
  • Pointers and dynamic memory allocation in C language
  • Complexity, Searching and Quadratic sorting
  • Linked structures and Trees
  • Recursion, MergeSort, QuickSort introduction
  • Working with files, Modular programming in C language
  • Abstract data types (boolean, complex numbers, queue, stack)

C++

  • From C to C++, non-object-oriented extensions
  • Programming styles, introduction to object-oriented programming
  • Classes and objects in the C++ language
  • Overloaded operators in C++
  • Copying, copy constructor in C++
  • Selected STL components
  • Inheritance, polymorphism in C++
  • Abstract classes in C++
  • Class and function templates in C++
  • Exceptions and exception handling in C++, Abstract data types stack and queue in C++
  • Abstract data types enlargeable array, list, set, and table in C++
  • Associative data structures
  • C++11 extensions

Linear algebra

  • Fields, vectors, and vector spaces
  • Matrices, matrix operations and matrix notation of a system of linear equations
  • Solving systems of linear equations using Gauss elimination method
  • Linear (in)dependence of vectors, linear span, subspace
  • Base, dimension of a vector (sub)space
  • Matrix rank, regularity of a matrix, inverse of matrix and its computation
  • Frobenius theorem on solutions of a system of linear equations
  • Linear manifolds, parametric and non-parametric equations of linear manifolds
  • Permutations, determinant of a matrix
  • Eigenvalues and eigenvectors of matrices
  • Diagonalization of matrices.
  • Abstract vector spaces, infinite-dimensional vector spaces
  • Scalar products, vector norm, orthogonality
  • Scalar products and analytical geometry
  • Linear maps and their matrices
  • Affine transformations, homogeneous coordinates, projections and operations in 3D space as linear maps
  • Introduction to numerical mathematics
  • Solving systems of linear equations on computers
  • Matrix factorizations (LU, SVD, QR): computation and applications
  • Applications of linear algebra: the least-squares method, linear programming, recurrent equations

OpenGL

  • Writing shaders in OpenGL, fundamentals, data, buffers
  • Transformations (coordinate systems, model, view, projection, viewport, gimbal lock)
  • Light and color, illumination and shading models, light and materials in OpenGL
  • Textures and texturing (texture mapping and filtering)
  • Rendering pipeline and framebuffer, operations with fragments.
  • Interaction techniques - input methods, object selection, virtual trackball, Fog and antialiasing
  • Interpolating and approximating curves and surfaces
  • Representation of rotation, quaternions
  • Advanced rendering methods and global illumination

2D graphics

  • GIMP, plugins, Computational methods, convolution, filters
  • 2D bitmap and vector graphics
  • Bitmap image formats

3D graphics

  • Blender + Python

Multimedia

  • Color perception and color spaces for computer graphics
  • Transmission systems of video signal for TV and projection
  • Image data compression for archiving and transmission.
  • Video data storage and transmission and their formats
  • 3D projection technology, object representation, camera
  • 3D modeling techniques - basic principles and tools taxonomy
  • Real-time 3D graphics, level of details (LoD)
  • Architecture and application of graphics cards (GPU)
  • Motion capture for computer graphics

Creative coding

  • Visualization of vector data
  • Data Consumer Attention
  • open data
  • Mutual mapping and visualization of modalities, non-traditional visualization methods
  • SAGE, CAVE
  • Mapping projection - spatial augmented reality
  • point clouds (volumetric data)

Machine vision and image processing

  • Machine vision and physical nature
  • Camera system and image processing
  • Image as a matrix
  • Perspective and geometry of the image
  • Image preprocessing
    • Transformation and correction
    • Spatial and frequency domain filtering
    • Edge
    • Surface
    • Morphology and shape characteristics
  • Video processing
  • Image recognition, object detection, modern trends
  • Modern trends in image processing
  • Working in Jupyter notebook
  • Optical defects, camera calibration
  • segmentation techniques
  • Perspective image
  • Image perspective, 360 ° lenses
  • Work with depth camera
  • Image classification, object detection
  • Basics of measurement with thermocamera
  • Line cameras

Pattern Recognition

  • Bayesian decision theory
  • Learning theory
  • Parametric classifiers
  • Non-parametric classifiers
  • Support vector machines
  • Hierarchical classifiers
  • Pattern recognition using neural networks
  • Classification quality estimation
  • Dimensionality reduction
  • Feature selection
  • Cluster analysis

Computer games

  • Engines
  • Assets
  • Components
  • Patterns
  • Audio
  • Space
  • Physics
  • Graphics
  • AI
  • Multiplayer
  • Design

Modern Visualisation Technologies, virtual reality, immersion

  • Virtual Reality (VR)
  • Augmented reality (AR)
  • Programming for VR and AR
  • Visualization of 2D and 3D data in web environment
  • High-resolution SAGE2: Architecture
  • High Resolution SAGE2: Programming methods
  • Scientific data visualization
  • Fractals as a tool for nature visualization
  • 3D object scanning
  • Technologies of modern displays
  • Videomapping and visualization on buildings

User Interface Design

  • Usability, user centered design
  • The position of UI design in software life cycle
  • User research, ethical aspects, collaborative design. Personae
  • Context analysis, domain analysis, task analysis
  • Methods of designing UI, formal description, models
  • Prototyping user interfaces (paper mock-up, software tools)
  • User interfaces evaluation: predictive and interpretive methods
  • Usability testing, including „“discounted„“ versions
  • Psychological aspects of UI design
  • Navigation and classification
  • User interface design guidelines
  • Special user interfaces
  • Low fidelity/low tech prototyping
  • Cognitive and heuristic walkthrough, inspection
  • User perception, the use of color