All Projects → luisnts → Awesome Computer Graphics

luisnts / Awesome Computer Graphics

Licence: cc0-1.0
🔺😎 A curated list of awesome stuff to learn computer graphics

Projects that are alternatives of or similar to Awesome Computer Graphics

Curated resources
📚 Curated lists for programming, books, movies, music, games, etc
Stars: ✭ 116 (-24.68%)
Mutual labels:  computer-science, programming, math
Computational Graphics Thu 2018
Computational Graphics - THU Spring 2018
Stars: ✭ 104 (-32.47%)
Mutual labels:  graphics, computer-graphics
Tinyraycaster
486 lines of C++: old-school FPS in a weekend
Stars: ✭ 1,383 (+798.05%)
Mutual labels:  graphics, computer-graphics
Papers We Love
Papers from the computer science community to read and discuss.
Stars: ✭ 50,845 (+32916.23%)
Mutual labels:  computer-science, programming
Bezierpath Length
A simple API to get the length of a CGPath, UIBezierPath or NSBezierPath, written in Swift.
Stars: ✭ 78 (-49.35%)
Mutual labels:  graphics, math
Sortingalgorithm.hayateshiki
Hayate-Shiki is an improved merge sort algorithm with the goal of "faster than quick sort".
Stars: ✭ 84 (-45.45%)
Mutual labels:  computer-science, programming
Yocto Gl
Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics
Stars: ✭ 1,391 (+803.25%)
Mutual labels:  graphics, computer-graphics
Sophus
C++ implementation of Lie Groups using Eigen.
Stars: ✭ 1,048 (+580.52%)
Mutual labels:  graphics, math
Aardvark.base
Aardvark is an open-source platform for visual computing, real-time graphics and visualization. This repository is the basis for most platform libraries and provides basic functionality such as data-structures, math and much more.
Stars: ✭ 117 (-24.03%)
Mutual labels:  graphics, math
Tinyrenderer
A brief computer graphics / rendering course
Stars: ✭ 11,776 (+7546.75%)
Mutual labels:  graphics, computer-graphics
Spatialmath Python
Create, manipulate and convert representations of position and orientation in 2D or 3D using Python
Stars: ✭ 78 (-49.35%)
Mutual labels:  graphics, math
Cs Books Pdf
编程电子书pdf,计算机常用电子书整理(高质量/附下载链接)包括 Java, Python, Linux, Go, C, C++, 数据结构与算法, AI人工智能, 计算机基础, 面试, 设计模式, 数据库, 前端等编程书籍。
Stars: ✭ 140 (-9.09%)
Mutual labels:  computer-science, programming
Graphics Algorithm
3D图形学算法Code。包括软渲染、光线追踪、PBR等等~
Stars: ✭ 67 (-56.49%)
Mutual labels:  graphics, computer-graphics
Shoebot
Easy vector graphics with Python
Stars: ✭ 88 (-42.86%)
Mutual labels:  graphics, computer-graphics
Julia.jl
Curated decibans of Julia programming language.
Stars: ✭ 1,083 (+603.25%)
Mutual labels:  computer-science, programming
From Junior To Senior
My study plan for going from junior to senior software developer
Stars: ✭ 104 (-32.47%)
Mutual labels:  computer-science, math
Blog
About math, programming and procedural generation
Stars: ✭ 37 (-75.97%)
Mutual labels:  programming, math
Jglm
Java OpenGL Mathematics Library
Stars: ✭ 44 (-71.43%)
Mutual labels:  graphics, math
Frontend Computer Science
A list of Computer Science topics important for a Front-End Developer to learn 📝
Stars: ✭ 113 (-26.62%)
Mutual labels:  computer-science, programming
Bezierpath Polygons
Adds a convenience initalizer to UIBezierPath for generating n-sided regular polygon paths – with rounded corners support – in Swift!
Stars: ✭ 138 (-10.39%)
Mutual labels:  graphics, math

Awesome Computer Graphics Awesome

The Awesome CG List! A collection of various resources to learn computer graphics, including books, tutorials, online courses, and more. Name a CG topic, chances are this list contains some stuff about it (if not, it will someday!).

If you want to contribute, please read the Contribution Guidelines

Contents

What is computer graphics?

Computer graphics is a knowledge area about how to create images using computers, to put it simply. Generally this is done by processing data representing information what you want to draw, for example: objects, colors, light. Anything about visual and digital creations have used CG in some way: games, movies, etc.

How to get started?

Before showing a lot of books, videos, and materials, first you need to know what is bare-minimum to begin with computer graphics. It boils down to two main topics: programming and math. About programming, learn the basics, it's recommended to learn C/C++ as they are used frequently in this area. Concerning math, learn linear algebra and geometry, there are books in this list focused on math fundamentals for CG, pick one and work on it.

I want to learn more advanced stuff

Assuming you know programming and math, then you can get more practical. It's a good approach to get a project about a topic like global illumination, or GPU programming to deepen your knowledge on this area. Examples of projects are: path tracers, photon mapping, shader programming. Recommended projects are the PBRT, the ray tracer from the Physically Based Rendering book, and the ray tracer with photon mapping, from the Realistic Image Synthesis Using Photon Mapping. Also, watching tutorials for Shader Toy and experimenting on it is a good idea.

Books

  • Real-Time Rendering, by Tomas Akenine-Moller, one of the best on high performance graphical applications, very detailed explanations and contains many examples to illustrate its topics.

  • Ray Tracing in One Weekend, by Peter Shirley, a free book to get you implementing a basic ray tracer in C++, the catch is: this one is very short (about 40 pages), you'll learn the minimum to create a ray tracer to generate amazing images in a very short amount of time!

  • Ray Tracing: The Next Week, by Peter Shirley, builds on top of the first books' project, adding more effects, like textures and motion blur.

  • Ray Tracing: The Rest of Your Life, by Peter Shirley, last book of the series, exposes more mathematical themes necessary to build more complex and complete renderers.

  • Physically Based Rendering: From Theory to Implementation, by Matt Pharr, teaches how to create a ray tracer to render realistic images. A thorough explanation of the technique, with as much code the theory behind it, and has a free online version!

  • 3D Math Primer for Graphics and Game Development, by Fletcher Dunn, this book gives more focus to the math necessary for game development.

  • Fundamentals of Computer Graphics, by Steve Marschner, introduces graphics concepts.

  • Ray Tracing from the Ground Up, by Kevin Suffern, guides you through the task of implement a ray tracer, starting with a bare-bones project, and every chapter introduces a new concept to add to the renderer.

  • Advanced Global Illumination, by Philip Dutre, its focus are fundamentals to understand realistic image synthesis, such as light transport.

  • Realistic Image Synthesis Using Photon Mapping, by Henrik Jensen, teaches math and algorithms to implement the photon mapping rendering process. It even has a complete C++ implementation of the technique!

  • The Book of Shaders, by Patricio Gonzalez and Jen Lowe, a online book focused on pratical teaching of GLSL fragment shaders, full of (editable!) code examples of how they work.

Tools

  • OpenGL, one of the most, if not the most popular graphics API.
  • Vulkan, created by the same guys from OpenGL with the intent to provide an API with better performance than its predecessor.
  • Bonzomatic, live-coding editor for OpenGL pixel shaders, where the results appear on background as you edit the code.

Courses

Sites

  • ScratchAPixel, teaches image rendering from basic to advanced.
  • Learn OpenGL, resource site, contains tutorials by topic, code examples and even has a pdf version of its contents.
  • OpenGL tutorial, tutorial for learning OpenGL 3.3 or higher.
  • Learn Vulkan, teaches the modern API, created by the same team that created OpenGL.
  • Shader Toy, site to create, visualize, and share GLSL shaders.
  • Real-Time Rendering recommended books, list of recommended books on the Real-Time Rendering's site.
  • Jendrik Illner's blog, Illner works for Ubisoft as a 3D programmer, every week he posts a summary of articles about 3D graphics, like shader tutorials, real-time rendering papers, etc.
  • Ray Tracey's blog, Sam Lapere's blog, leads the scientific team at EPFL Blue Brain Project. Lots of post about real time rendering.
  • Inigo Quilez's site, articles and shader demos from the co-creator of Shadertoy.

Projects/Repositories

  • PBRT, source code for pbrt, the renderer described in the third edition of "Physically Based Rendering: From Theory To Implementation".
  • tinyrenderer, course of computer graphics teaching how Opengl and rendering works, teaching how to build a simpler version of OpenGL.
  • Ray Tracing in One Weekend repository, ray tracer code based on Ray Tracing in One Weekend's book.
  • Fragmentarium, program to edit and visualize GLSL shaders, mainly focused on fractals and generative systems
  • Business Card Ray Tracer, as the name suggests, it's a very small ray tracer, 35 lines (minified) and file size is 1377 bytes.
  • Small PT, path tracer made in 99 lines in C++.
  • Marble Marcher, a game where you get to move a marble through fractal stages as fast as possible to reach the goal. This game is entirely ray marched, giving it a lot of cool visual effects ray tracing is not able to generate.
  • 3D Game Shaders For Beginners, A step-by-step guide on how to implement SSAO, depth of field, lighting, normal mapping, and more for your 3D game.

Miscellaneous

License

CC0

To the extent possible under law, Luís Santos has waived all copyright and related or neighboring rights to this work.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].