Graphics - gusenov/kb GitHub Wiki
- videoinfographica — блог о видео, дизайне, графике и маркетинге
- Modeling and recognition of 2D/3D images
- Learn Computer Graphics From Scratch!
- Anton's OpenGL 4 Tutorials book
- Beginning PBR Texturing. Learn Physically Based Rendering with Allegorithmic’s Substance Painter by Abhishek Kumar
- Raspberry Pi GPU Audio Video Programming by Jan Newmarch
- Computer Graphics from Scratch. A Programmer's Introduction to 3D Rendering by Gabriel Gambetta
- Declarative 3D for the Web Architecture Community Group
- Computer Graphics from Scratch. A Programmer's Introduction to 3D Rendering by Gabriel Gambetta - 248 pages
- John Vince
- Quaternions for Computer Graphics by John Vince - 181 pages
- A Primer on Bézier Curves
- Shadertoy
- Computer Graphics and Computer Animation: A Retrospective Overview by Wayne E. Carlson
3D
- pikuma / Learn 3D Computer Graphics Programming from Scratch learn how a 3D software renderer works by coding a complete 3D rasterizer from scratch in C.
- Making a 3D Modeler, in C, in a Week by Daniel Hooper
- РБК / Лучшие программы для 3D-моделирования
- Blender
- SketchUp
- Autodesk 3ds Max
- Autodesk Maya
- ZBrush
- Rhino
Pixar
- Khan Academy / Pixar in a Box
- Pixar Graphics Technologies
- Pixar's RenderMan Advanced Technology from Pixar Animation Studios for Rendering VFX and Animation
- The Science Behind Pixar
- API Design for C++
OpenUSD
- PixarAnimationStudios/OpenUSD Universal Scene Description
- The Alliance for OpenUSD (AOUSD)
OpenGL
Wikipedia
- Category:Computer graphics data structures
- Category:Geometric data structures
- Fraps
- Шаблон:ATI
- Template:3D software
- Template:Vector graphics markup languages
- Template:Image processing software
- Visual computing is a generic term for all computer science disciplines dealing with images and 3D models, such as computer graphics, image processing, visualization, computer vision, virtual and augmented reality and video processing.
- Screen space ambient occlusion
- Deferred shading
- OpenGL Shading Language
- OpenGL Mathematics
- Двоичное разбиение пространства метод рекурсивного разбиения евклидова пространства в выпуклые множества и гиперплоскости. В результате объекты получают представление в виде структуры данных, называемой BSP-деревом.
- GLScene is a free OpenGL-based library for Delphi, C++ and Free Pascal.
- OpenSceneGraph is an open-source 3D graphics application programming interface (library or framework), used by application developers in fields such as visual simulation, computer games, virtual reality, scientific visualization and modeling.
- Ray casting is the methodological basis for 3D CAD/CAM solid modeling and image rendering.
- Lightmap is a data structure used in lightmapping, a form of surface caching in which the brightness of surfaces in a virtual scene is pre-calculated and stored in texture maps for later use.
- 2.5D
- Sprite (computer graphics) is a two-dimensional bitmap that is integrated into a larger scene, most often in a 2D video game.
- OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, real-time, open-source, 3D rendering engine.
- SpeedTree is a group of vegetation programming and modeling software products
- Path tracing
- Space partitioning is the process of dividing a space (usually a Euclidean space) into two or more disjoint subsets.
- Binary space partitioning is a method for space partitioning which recursively subdivides a Euclidean space into two convex sets by using hyperplanes as partitions.
- Cel shading (toon shading) is a type of non-photorealistic rendering designed to make 3-D computer graphics appear to be flat by using less shading color instead of a shade gradient or tints and shades.
- Shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene—a process known as shading.
- Category:Computer graphics algorithms
- Shading refers to the depiction of depth perception in 3D models (within the field of 3D computer graphics) or illustrations (in visual art) by varying the level of darkness.
- Category:Shading
- Shading language is a graphics programming language adapted to programming shader effects (characterizing surfaces, volumes, and objects).
- Category:Shading languages
- Global illumination is a group of algorithms used in 3D computer graphics that are meant to add more realistic lighting to 3D scenes.
- Phong shading is an interpolation technique for surface shading
- Isometric projection is a method for visually representing three-dimensional objects in two dimensions in technical and engineering drawings.
Scene
- Wikipedia
- GitHub
Blender
- Blender Documentation
- Blender 3D: A Beginners 15 Step Exercise Book by Thomas Mc Donald
- Core Blender Development. Understanding the Essential Source Code by Brad E. Hollister - 244 pages
- 3D Game Design with Unreal Engine 4 and Blender by Justin Plowman
- XYZ School / Intro Blender
- agmmnn/awesome-blender: A curated list of awesome Blender addons, tools, tutorials; and 3D resources for everyone.
- Blender Stack Exchange
- Blender 3D Basics. Beginner's Guide. A quick and easy-to-use guide to create 3D modeling and animation using Blender 2.7 by Gordon Fisher - 526 pages
- 3D Scientific Visualization with Blender® by Brian R Kent, PhD - 105 pages
- Introduction to Blender 3.0. Learn Organic and Architectural Modeling, Lighting, Materials, Painting, Rendering, and Compositing with Blender by Gianpiero Moioli - 466 pages
- Squeaky Clean Topology in Blender. Create accurate deformations and optimized geometry for characters and hard surface models by Michael Steppig - 248 pages
- Procedural 3D Modeling Using Geometry Nodes in Blender. Discover the professional usage of geometry nodes and develop a creative approach to a node-based workflow by Siemen Lens - 282 pages
- Hackaday / 3D Navigator For Blender
- YouTube / Aryan / How to Visualize Products in Blender and make Money
- 80.lv
- This Blender Sculpting Shortcuts Add-on Is Perfect For Pen Tablets Get rid of the tedious moving fingers across the keyboard process with Fast Sculpt Assistant, a Blender add-on with a one-key circular menu shortcut featuring various sculpting operations, perfect for pen tablet users.
- the creation process behind a cute 3D anime witch, showing her head gradually turning from a single quad into a complete stylized head model
- Hypnotizing 3D Modeling Time-Lapses by Oniku Nanami
- Blender on a Nokia
- 80.lv / This Madlad Programmer Managed to Run Blender on a Nokia Phone
- LinkedIn / Blender on a NOKIA
Simulation
- Bounce Tumble, and Splash! Simulating the Physical World with Blender 3D by Tony Mullen - 400 pages
- Learn Blender Simulations the Right Way by Stephen Pearson - 368 pages
Scripting
- The Blender Python API: Precision 3D Modeling and Add-on Development by Chris Conlan - 138 pages
- Python Scripting in Blender by Paolo Acampora - 360 pages
- Udemy / Python Scripting in Blender 3x with Practical Projects
- njanakiev/blender-scripting collection of simple to more involved examples to scripting in Blender with Python.
Maya
- Понимая MAYA (С. Цыпцын)
- Beginning VFX with Autodesk Maya. Create Industry-Standard Visual Effects from Scratch by Abhishek Kumar - 400 pages
- Maya Math · A series of videos covering the basics of vector and matrix math and how we can use this in Maya.
Autodesk 3dsMax
- 3ds Max Animation with Biped by Michele Bousquet, Michael McCarthy - 304 pages
Inkscape
- Inkscape by Example. A project-based guide to exploring the endless features of Inkscape and upgrading your skills by István Szép - 230 pages
- The Book of Inkscape. The Definitive Guide to the Graphics Editor by Dmitry Kirsanov
Cloud
- Microsoft Docs
Rendering
- KDAB / Physically Based Rendering (PBR) in 10 minutes
- 3D Graphics Rendering Cookbook. A comprehensive guide to exploring rendering algorithms in modern OpenGL and Vulkan by Sergey Kosarevsky, Viktor Latypov - 670 pages
- Real-Time 3D Rendering with DirectX® and HLSL. A Practical Guide to Graphics Programming by Paul Varcholik - 592 pages
- Building a PS1 style retro 3D renderer
- How Unreal Renders a Frame
- Real-Time Rendering Resources
- GitHub
Engines
- Evolution of Programmable Models for Graphics Engines (High Performance Graphics 2017)
- LiteFX - Open-source, modern and flexible computer graphics and rendering engine, written in C++20 with support for Vulkan and DirectX 12.
Filament
- Filament
- Best guide to making a PBR render engine
- Support for animations · Issue #458 · google/filament
Three.js
- freeCodeCamp.org / Learn Three.js By Building Five Projects create the renderer, load & apply textures, work with wireframe geometries
Ray Tracing
- Ray Tracing in One Weekend Series by Peter Shirley
- phresnel/metatrace: metatrace is a C++ Compile Time, Whitted Style Ray Tracer, utilizing classic C++98/03 style metaprogramming. All the Ray Tracing is done during compilation.
- NVIDIA Technical Blog
Path tracing
Vulkan
Octree
- The Infinite Loop
- Advanced Octrees
- preliminaries, insertion strategies and maximum tree depth
- An Octree is a recursive, axis-aligned, spatial partitioning data structure commonly used in computer graphics to optimize collision detection, nearest neighbor search, frustum culling and more.
- node representations
- non-static Octrees
- finding neighbor nodes
- preliminaries, insertion strategies and maximum tree depth
- Advanced Octrees
Q&A
NVIDIA
- NVIDIA Research
- NVIDIA / Vertex Shaders
- programmable Vertex Shaders enable an unlimited palette of visual effects that can be rendered in real time
- Objects in a 3D scene are typically described using triangles, which in turn are defined by their vertices.
- A vertex is the corner of the triangle where two edges meet, and thus every triangle is composed of three vertices.
- A vertex shader is a graphics processing function used to add special effects to objects in a 3D environment by performing mathematical operations on the objects' vertex data. Each vertex can be defined by many different variables. For instance, a vertex is always defined by its location in a 3D environment using the x-, y-, and z- coordinates. Vertices may also be defined by colors, coordinates. Vertices may also be defined by colors, textures, and lighting characteristics. Vertex Shaders don't actually change the type of data; they simply change the values of the data, so that a vertex emerges with a different color, different textures, or a different position in space.
- developers can use Vertex Shaders to breathe life and personality into characters and environments, such as fog that dips into a valley and curls over a hill; or true-to-life facial animation such as dimples or wrinkles that appear when a character smiles.
- Examples of vertex shading effects include: matrix palette skinning, which allows programmers to create realistic character animation with up to 32 "bones" per joint, allowing them to move and flex convincingly; deformation of surfaces, which gives developers the power to create realistic surfaces such as waves and water that ripples; and vertex morphing, which is used to morph triangle meshes from one shape to another, providing smooth skeletal animation. These are just a few of the virtually infinite number of effects developers can create using Vertex Shaders. By customizing skinning and motion, developers can create life-like personalities for characters and scenes, thereby intensifying the graphics experience.
- GPUGems 1, 2, 3
Image Processing
- Raspberry Pi Image Processing Programming. With NumPy, SciPy, Matplotlib, and OpenCV by Ashwin Pajankar - 245 pages
Human
- Golaem | human ex machina
- 80 LEVEL
Courses
- Recordings of live online lectures for the Interactive Computer Graphics course, School of Computing, University of Utah by Cem Yuksel
- COMPUTER GRAPHICS (CMU 15-462/662)
- Notes on the introduction to Visual Computing in the Master of Science in Informatics (Mosig) at Grenoble university
- CG Master Academy - Online Courses in Art, Games & VFX
- CSE557: Computer Graphics
- Winter Quarter 1997
- Student notes
- Geometric Transformations
- The Fundamental Problem of Computer Graphics
- Given: A mathematical description of a 2D or 3D scene and a viewing position.
- Find: A value for each pixel in the frame buffer such that the image on the screen is a reasonably accurate picture of what an imaginary viewer at that position would see.
- The Fundamental Problem of Computer Graphics
- Geometric Transformations
- Student notes
- Winter Quarter 1997
Conferences
Intel
- Intel Developer Zone
- Development Tools
- Intel® Graphics Performance Analyzers Improve your game's performance by quickly identifying problem areas.
- Graphics Frame Analyzer Improve your game's performance by quickly identifying problem areas.
- Intel® Graphics Performance Analyzers Improve your game's performance by quickly identifying problem areas.
- Graphics Research Samples
Books
- Computer Graphics: Principles and Practice by Morgan McGuire
- Chapter 15. Ray Casting and Rasterization This is a deep dive (64 pages with code!) on the differences and enough information to implement each in software from scratch.
Camera
Papers
- Permutation Coding for Vertex-Blend Attribute Compression paper+code
- Game engines commonly restrict animations to use 4 bones per vertex. Storing more weights and indices just makes the vertex buffer too big.
- you can compress 8 weights+indices into 48 bits or 13 into 64 bits.