-
Notifications
You must be signed in to change notification settings - Fork 65
Rendering References
Angel Ortiz edited this page Aug 24, 2018
·
4 revisions
Here are some of the sources that I found while developing my software Renderer. I hope that by categorizing these and organizing them I might help others who are also building similar projects or just want to learn about some specific beginner topics in CG.
Note that although some sources discuss implementation details using a graphics library such as DirectX or OpenGL — like in any tutorial from LearnOpenGL or Modern OpenGL — I believe they are still relevant even if you are not planning on using any libraries. They are included because they've done a fantastic job explaining concepts in such a way that they can be implemented independent of whatever library you're using.
Feel free to message me with any corrections or dead links you find!
-
1.0 - Computer Graphics & Rendering
- 1.1 - CG Courses
- 1.2 - Graphics Pipeline Overviews
- 1.3 - Rasterization
- 1.4 - Matrix Transforms
- 1.5 - Reverse Z projection Matrix
- 1.6 - Backface Culling
- 1.7 - View Frustrum Culling
- 1.8 - Shading & Illumination Models
- 1.9 - Perspective Correct Texture Mapping
- 1.10 - Tangent Space Normal Mapping
- 1.11 - Understanding Physically Based Rendering
- 1.12 - Testing Models & Textures Resources
- 2.0 - Mathematics
- 3.0 - Software Development
- Learn OpenGL
- TinyRenderer
- 3D software Engine from Scratch David Rousset
- Modern OpenGL Tutorials
- CSC 471:Introduction to computer graphics
- Stanford CS248: Interactive Computer Graphics
- EDAN35 - High Performance Computer Graphics
- Computer Graphics From Scratch - Gabriel Gambetta
- Rendering - CatLikeCoding
- A trip through the Graphics Pipeline 2011 - Fabian Giesen
- OpenGL Rendering Pipeline - Song Ho Ahn
- Life of a triangle - NVIDIA's logical pipeline
- The lost art of 3D rendering without shaders by Matthijs Hollemans
- A Crash Course on Programmable Graphics Hardware - Li-Yi Wei
- Triangle rasterization in practice - Fabian Giesen
- Rasterization Rules - Microsoft
- The Bresenham Line Algorithm- Tom Carter
- A Parallel Algorithm for Polygon Rasterization - Juan Pineda
- Rasterization - Michael Doggett
- The camera Transform - UC Davis
- Frames of Reference and Projection - CGLearn
- Projection Transform - Microsoft
- Viewing II: the mathematics of perspective - Marc Levoy
- Understanding the View Matrix - Jeremiah Van Oosten
- The transformation pipeline – a “Spatial Odyssey” - Ana Mihut
- OpenGL Projection Matrix - Song Ho Ahn
- OpenGL Transformation - Song Ho Ahn
- Depth Precision Visualized - Nathan Reed
- Creating Vast Game Worlds - Emil Persson
- How many floating-point numbers are in the interval [0,1]? - Daniel Lemire
- Projection Matrix Tricks - Eric Lengyel
- Backface culling - Ken Power
- A fast real-time back-face culling approach - Vadim Manvelyan
- A Compact Method for Backface Culling - Osnat Levi
- Fixing frustum culling - Íñigo Quílez
- View frustum culling - Fabian Giesen
- View Frustum Culling Tutorial - Lighthouse3D
- An Exact Algorithm for Finding Minimum Oriented Bounding Boxes - Jukka Jylanki
- Perspective Texturemapping - Mikael Kalms
- Perspective Texture Mapping - Chris Hecker
- The barycentric conspiracy - Fabian Giesen
- Perspective correct barycentric coordinates - Thread
- What's the most efficient way to find barycentric coordinates? - Thread
- Normal Transformation - Jason L. McKesson
- BUMPMAPPING WITH GLSL - Fabien Sanglard
- Textures - Kavita Bala
- SIGGRAPH University - Introduction to "Physically Based Shading in Theory and Practice" - Naty Hoffman
- Physically Based Shading - knarkowicz
- Theory - LearnOpenGL
- PHYSICALLY-BASED RENDERING, AND YOU CAN TOO! - Joe “EarthQuake” Wilson
- Physically Based Rendering - Cook–Torrance - CodingLabs
- Everything has Fresnel - John Hable
- Background: Physics and Math of Shading - Naty Hoffman
- Specular BRDF Reference - Brian Karis
- Using Image Based Lighting (IBL) - Wave Engine Team
- Beyond Blinn - Gotanda
- Microfacet Models for Refraction through Rough Surfaces - Bruce Walter et al
- Specular Showdown in the Wild West - Stephen Hill
- Rendering Resources - Benedikt Bitterli
- 3D Models - NASA
- Morgan McGuire, Computer Graphics Archive, July 2017 (https://casual-effects.com/data)
- CC0 Textures - StruffelProductions
- High-Resolution Light Probe Image Gallery - VGL
- Cerberus Gun Mesh & Textures by Andrew Maximov
- Utah Teapot with closed lid Mesh by Nik Clark
- Fire Hydrant & Chest by @emackey PBR test models
- Louis XIV de France, Louvre, Paris by HoangHiepVu
- Gold, Marble, Painted Metal by CC0Textures.com
- Azulejos Texture by João Paulo
- Elephant, Dragon, Bunny Mesh models from Stanford 3D Scanning Repository
- Essence of linear algebra - 3Blue1Brown's (Must subscribe if you haven't yet!)
- Geometry by Scratchapixel
- Staring Into The Matrix - Joshuea Barczak
- Explaining Homogeneous Coordinates & Projective Geometry - Tom Dalling
- Translation without homogeneous coordinates - Thread
- Programmer’s guide to homogeneous coordinates - Thread
- Homogeneous Coordinates - Song Ho Ahn
- How to Build a CMake-Based Project - Jeff Preshing
- C++ Development using Visual Studio Code, CMake and LLDB - Iván Mejía
- Basic CMake usage - Martin Hořeňovský
- Pixel Manipulation and Surface Flipping - LazyFoo
- Texture Manipulation - LazyFoo
- SDL2 PIXEL DRAWING -GIGI
- Performance Optimization, SIMD and Cache - Sergiy Migdalskiy
- Arrays, Part III: Vectorization - insideLoop
- A Guide to Vectorization with Intel® C++ Compilers
- Thread: my SSE code is slower than normal. why?
- A practical guide to SSE SIMD with C++ - Thomas Tonteri
- SSE Arithmetic - Stefano Tommesani
- A “Hands-on” Introduction to OpenMP - Tim Mattson & Larry Meadows
- Introduction to OpenMP - Tim Mattson (Intel)
- Loop parallelism - Victor Eijkhout
- Game Programming Patterns - Bob Nystrom
- Singleton Considered Stupid - Steve Yegge
- So Singletons are bad, then what? - Thread