Computer graphics roadmap
What should I learn and have experience with, if I want to be involved in computer graphics?
Links
- Awesome graphics
- Awesome OpenGL
- Awesome Vulkan
- Awesome computer graphics
- Awesome creative coding
- Awesome Computer Graphics Resources
- Awesome design
- Awesome magictools
- Graphics developer roadmap
- Generative art links
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