Giter Club home page Giter Club logo

graphics-study's Introduction

Graphics Programming Resources

A hand-picked list of graphics programming resources maintained by graphics programming virtual meetup attendees.

Contents

Table of Contents

Beginner friendly

Here is a list of resources suitable for beginners, though intermediate or advanced folks can also benefit from them.

  • Learn OpenGL - Learn OpenGL is the definitive resource for learning real-time renderer techniques as beginners. Even though it is an OpenGL tutorial, it also teaches rendering techniques at the same time.
  • Ray Tracing in One Weekend series - Those three short books explain basic concepts of path tracing and implement a software renderer from scratch.
  • 🎥 CMU's introductory to Computer Graphics course - A comprehensive introduction to various topics in computer graphics.
  • Catlike Coding - Focuses on C# and shaders in Unity.
  • Book Of Shaders - The author introduces shaders from an artistic perspective, and the book covers many topics that more engineering-focused resources such as "Learn OpenGL" won't cover.

Meta-links

Resources that curate other resources. Some meta links are omitted here if they are mentioned in other categories.

Overview

Books

Courses

Advice

Math

Tutorials

Books

Homogeneous Coordinate

Rotation

Geometric Algebra

Curves and Surfaces

Implementing Math Library

Circular/Spherical harmonics

Geometry

Ray Tracing

Intro to Ray Tracing

Ray Tracing Books

Ray Tracing Courses

  • Dartmouth Rendering Algorithms (Fall21) - The course nicely fills the gap between a Ray Tracing in One Weekend style toy renderer to a more general and fully-fledged renderer that PBRT describes.

Algorithms

BVH

Sampling & Variance Reduction

Intersection

Denoising

GPU Ray Tracing

See also APIs

Rasterization

Graphics Pipeline

Shading Techniques

Culling

Depth Buffer

Software Rasterization

Graphics Effects

Normal Mapping

Shadow

Ambient Occlusion

Reflection

Transparency

Ray Marching and SDF

Line, Edge, and Outline Drawing

Triangulated line

Outline

Text Rendering

Tessellation

Voxel Rendering

Volume Rendering

  • Structured Volume Sampling - MIT-licensed implementation of the Structured Volume Sampling technique, along with a simple framework for comparing other techniques.

Dithering

  • Dithering on the GPU - describe a novel algorithm for ordered dithering based on an arbitrary palette

Sprite Rendering

Atmosphere Scattering

Grass Rendering

PBR

See also Assets/Materials for PBR materials

Textures

Mipmapping

Texture Compression

Texture Bombing

Shader Programming

Compute

Introduction to compute shader

GPU Architecture

Parallel Algorithms

Atomics

Color, HDR, and Tone Mapping

Sampling and anti-aliasing

See also Ray Tracing/Sampling & Variance Reduction

Animation

Geometry

Geometry representations

Iso-surface methods

Libraries

  • Geometry Central - A modern C++ library of data structures and algorithms for geometry processing, with a particular focus on surface meshes.

Physics and Simulation

Physics-Based Animation

Attractors

APIs

Ray Tracing API

OpenGL

  • docs.gl - OpenGL API Documentation.
  • GLConstantsTranslator - This page has the names of most OpenGL constants with their respective decimal and hex values. It is useful when certain functions return GL constants.

Tutorials

Meta-links

Best Practices

Vulkan

  • Spec - It is a good idea to keep it open while doing Vulkan Programming.

Tutorials

Meta-links

Swapchain & frame resources

Renderpass & Dynamic Rendering

Bindless/Descriptor indexing

Synchronization

Vulkan Compute

Libraries

  • vk-bootstrap - Library that simplifies the Vulkan initialization boilerplate.
  • VulkanMemoryAllocator - Memory allocation library that simplifies Vulkan memory allocation and provides decent performance.
  • volk - Meta-loader for Vulkan that allows you to dynamically load entry points required to use Vulkan. It also simplifies the use of Vulkan extensions.
  • SPIRV-Reflect - Can be used to extract descriptors and push constant information from SPIRV.

Performance Best Practice

Others

DirectX 12

Resource Binding & Bindless

WebGL

WebGPU

Tutorials

  • Learn wgpu - Tutorial of WebGPU API using Rust and the wgpu library.

System Design

Renderer Architecture

GPU-driven rendering

Scene Description

  • Siggraph 2019 Hydra - Presentation slides for Hydra, which is an open-source framework to transport live scene graph data to renderers.

General Programming

Meta-links

Engine Development

Performance Optimization

High-level Programming

Game loop

Floating-point numbers

Memory Allocation & Management

Tools/libraries

Debuggers

Profilers

A bunch of graphics debuggers above also have profiling capabilities.

Denoiser

Assets

Polygonal Model & Scene

Materials

  • ambientCG - Public Domain materials for Physically Based Rendering.
  • Physically Based - A database of physically based values for CG artists

Voxel Data

graphics-study's People

Contributors

lesleylai avatar 0xbama avatar shlomif avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.