Skip to content

Latest commit

 

History

History
145 lines (88 loc) · 26.8 KB

README.md

File metadata and controls

145 lines (88 loc) · 26.8 KB

Awesome Computer Graphics Awesome

This is a comprehensive list of resources related to computer graphics, including books, courses, tools, websites, and projects. I try to keep it updated.

Events

2025

Name Date Location Description Links
VISIGRAPP February 26–28, 2025 Rome, Italy The 20th International Conference on Computer Vision Theory and Applications Site
IEEE VR March 8-12, 2025 Saint-Malo, France The Premier International Conference on Virtual Reality and 3D User Interfaces Site
GDC March 17-21, 2025 San Francisco, USA The largest annual conference for game developers, covering all aspects of game creation, from design to business Site WIKI
Eurographics May 12–16, 2025 London, UK The 46th Annual Conference of the European Association for Computer Graphics Site WIKI
EuroVis June 2-6, 2025 Luxemburg Visualization techniques and research Site
SIGGRAPH August 10–14, 2025 Vancouver, Canada The largest exhibition in computer graphics and interactive techniques Site WIKI
Gamescom August 20-24, 2025 Cologne, Germany One of the biggest gaming events, showcasing the latest in game development and interactive entertainment Site WIKI
I3D May, 2025 (TBD) TBD I3D is the leading conference for real time 3D computer graphics and human interaction Site
CGI July, 2025 (TBD) TBD It is one of the oldest annual international conferences on computer graphics WIKI
Pacific Graphics October, 2025 (TBD) Asia-Pacific region The 33rd Pacific Conference on Computer Graphics and Applications
MIGS November 2025 (TBD) Montreal, Canada A leading game development event focusing on design, programming, business, and art
ICAT-EGVE December, 2025 (TBD) TBD A merger of the International Conference on Artificial Reality and Telexistence (ICAT) and the Eurographics Symposium on Virtual Environments (EGVE)

Books

If you're looking to dive deeper into computer graphics, these books are great resources to learn from:

Book Description Link
Real-Time Rendering by Tomas Akenine-Moller It is an excellent resource for high-performance graphical applications. It offers detailed explanations and contains many examples to illustrate its topics. This book is considered one of the best in the field, and it's a must-read for those interested in real-time rendering techniques. Amazon Site
Physically Based Rendering: From Theory to Implementation by Matt Pharr Matt Pharr's book teaches how to create a ray tracer for rendering realistic images. It provides a thorough explanation of the technique, along with as much code as theory behind it. The book also has a free online version, making it accessible for everyone. Amazon Site
The Graphics Codex by Morgan McGuire This book is a collection of articles on computer graphics. It covers a wide range of topics, from the basics of rendering to advanced techniques. It's a great resource for those looking to learn more about computer graphics. App store Site
Ray Tracing in One Weekend by Peter Shirley This free book by Peter Shirley helps you implement a basic ray tracer in C++. It covers the minimum required to create a ray tracer for generating amazing images in a short amount of time. It's perfect for those looking to get started quickly with ray tracing techniques. PDF
Ray Tracing: The Next Week by Peter Shirley The book builds on the first one by adding more effects, like textures and motion blur. It provides a deeper understanding of ray tracing and allows readers to expand their knowledge and improve their rendering projects. PDF
Ray Tracing: The Rest of Your Life by Peter Shirley The last book in Peter Shirley's series delves into the mathematical themes necessary for building more complex and complete renderers. This book will help readers enhance their rendering capabilities and deepen their understanding of the underlying concepts. PDF
3D Math Primer for Graphics and Game Development by Fletcher Dunn Fletcher Dunn's book focuses on the math necessary for game development. It covers a wide range of mathematical concepts and provides practical examples to help readers understand and apply these concepts in real-world situations. Site Amazon
Fundamentals of Computer Graphics by Steve Marschner Steve Marschner's book is a great resource for those interested in computer graphics. It covers a wide range of topics, including 2D and 3D graphics, ray tracing, and rendering. It also provides a thorough explanation of the mathematics behind the techniques. Amazon
Computer Graphics: Principles and Practice in C by James D. Foley This book is a great resource for those interested in computer graphics. It covers a wide range of topics, including 2D and 3D graphics, ray tracing, and rendering. It also provides a thorough explanation of the mathematics behind the techniques. Amazon
Ray Tracing from the Ground Up by Kevin Suffern Kevin Suffern's book guides readers through implementing a ray tracer, starting with a bare-bones project. Each chapter introduces a new concept to add to the renderer, making it easy for readers to understand and follow along with the process. Amazon
Advanced Global Illumination by Philip Dutre Philip Dutre's book focuses on the fundamentals of realistic image synthesis, such as light transport. It provides a comprehensive overview of global illumination techniques, helping readers understand and apply these concepts to their rendering projects. Amazon
Realistic Image Synthesis Using Photon Mapping by Henrik Jensen Henrik Jensen's book focuses on the fundamentals of realistic image synthesis, such as light transport. It provides a comprehensive overview of global illumination techniques, helping readers understand and apply these concepts to their rendering projects. Amazon
Realistic Image Synthesis Using Photon Mapping by Henrik Jensen Henrik Jensen's book focuses on the fundamentals of realistic image synthesis, such as light transport. It provides a comprehensive overview of global illumination techniques, helping readers understand and apply these concepts to their rendering projects. Amazon

Courses

Course Description Link
Introduction to Computer Graphics by Cem Yuksel and Jacob Haydel This project-based course introduces students to the fundamentals of computer graphics, including 2D and 3D graphics and computer animation. Learners are gain familiarity with key algorithms, data structures, and mathematical foundations. The course covers a broad range of topics rather than delving deeply into specific subjects, with further specialization available in other university offerings. The recommended textbook is "Fundamentals of Computer Graphics" by Marschner and Shirley. All lectures are conducted online via video conferencing. Youtube Course Site Author's site
Interactive Computer Graphics by Cem Yuksel and Elie Diaz This course delves into the fundamental concepts of interactive rendering in computer graphics, with a focus on 3D information applications such as video games and visualization. You will learn advanced rendering techniques, writing complex GPU shaders, implementing modern interactive rendering methods, and GPU programming for interactive rendering using APIs like OpenGL and GLSL, while also being allowed to explore other graphics APIs. It is recommended to watch Introduction to Computer Graphics by Cem Yuksel and Jacob Haydel at first Youtube Course Site Author's site

Sites

  • Immersive Math by J. Ström, K. Åström, and T. Akenine-Möller. It is a groundbreaking online book featuring fully interactive figures, designed to make learning math more engaging and intuitive. Also, the site provides a unique and innovative approach to mastering linear algebra, making it an invaluable resource for students, educators, and professionals looking to deepen their understanding of this fundamental mathematical discipline.

  • The Book of Shaders by Patricio Gonzalez and Jen Lowe. Patricio Gonzalez and Jen Lowe's site is focused on the practical teaching of GLSL fragment shaders. It's filled with editable code examples that demonstrate how shaders work, making it an excellent resource for those looking to get hands-on experience with shader programming.

  • ScratchAPixel. Teaches image rendering from basic to advanced. It offers a wealth of information on various rendering techniques, making it an excellent resource for both beginners and experienced developers looking to improve their skills.

  • Learn OpenGL. A comprehensive resource site that contains tutorials by topic, code examples, and even a PDF version of its contents. It's a great place to start for anyone looking to learn OpenGL 3.3 or higher, as it provides easy-to-follow instructions and practical examples.

  • WebGL Fundamentals. This resource provides a thorough understanding of WebGL and its underlying principles, ensuring that you grasp the latest techniques and approaches such as 3D rendering, lighting, 2D transformations, 3D perspectives, camera operations, shaders and GLSL, image processing, geometry, textures, and much more. There are also WebGL2 Fundamentals and WebGPU Fundamentals.

  • OpenGL tutorial. This tutorial site is dedicated to helping users learn OpenGL 3.3 or higher. It covers a wide range of topics and provides useful resources to help users get started with and master OpenGL.

  • Learn Vulkan. Tutorial for learning Vulkan API. It provides a step-by-step guide to help users understand and utilize the powerful features of Vulkan in their projects.

  • Real-Time Rendering recommended books. A list of recommended books on the Real-Time Rendering website. This list provides a valuable starting point for anyone looking to expand their knowledge of computer graphics and real-time rendering techniques.

  • Casual effects by Morgan McGuire. Morgan McGuire's site is a great resource for those interested in learning about real-time rendering techniques. It provides a wealth of information on various rendering techniques, making it an excellent resource for both beginners and experienced developers looking to improve their skills.

  • Turtletoy is an interactive web-based platform that allows users to create, explore, and share generative art using Turtle Graphics. The website provides a simple JavaScript-based scripting environment for designing 2D graphics, and patterns. Users can browse the gallery to discover and learn from other artists' creations, or experiment with their own designs using the accessible turtle-based programming language.

Shader editors

  • ShaderToy is a popular online platform for creating, sharing, and exploring GLSL shaders. It provides a rich set of features, including live coding, real-time previews, and a vast library of user-contributed shaders.

  • ShaderFrog is an online shader editor and asset manager that allows users to create, edit, and export shaders for use in Three.js, Unity, and other game engines. It supports visual shader editing and also offers a text-based editor for advanced users.

  • ComputeToys is an innovative and experimental WebGPU compute shader editor designed to help developers explore the capabilities of the WebGPU API for creating high-performance graphics applications in the browser. Currently, the editor supports only Chrome (version 113 and above) due to the limited support for WebGPU in other browsers. The user-friendly interface and tools available on the site enable developers to gain insights into WebGPU's potential while awaiting broader browser adoption.

  • Alma is a platform designed to unleash your creativity with generative graphics through an interactive and experimental playground. By composing nodes, you can effortlessly craft WebGL shaders without writing a single line of code. Link to the Github repo.

  • GLSL Sandbox is a shader editor that allows users to write shaders using the GLSL language. It provides real-time previews, editable shader code, and a gallery.

  • The Interactive Shader Format (ISF) Editor is an online tool for creating and editing GLSL shaders in the ISF format, which is commonly used in VJ software, live performance applications, and interactive installations.

  • Shader Park is an interactive web-based platform that enables users to create, explore, and share 3D shaders using a JavaScript library or directly using GLSL. The site offers a GLSL editor, providing boilerplate raymarching code for rendering Signed Distance Field (SDF) shapes, while still allowing users to implement their own. The platform's focus is on the JavaScript library, and the GLSL API is not extensively documented. Users can create and color SDFs using functions like surfaceDistance and shade, or implement custom raymarchers. The Shader Park community is encouraged to contribute to the documentation and examples through its GitHub repository.

Blogs

  • Jendrik Illner's blog. Jendrik Illner, a 3D programmer at Ubisoft, shares weekly summaries of articles about 3D graphics, including shader tutorials, real-time rendering papers, and more. This blog is a valuable resource for keeping up-to-date with the latest developments in the field.

  • Alan Wolfe's blog. Alan Wolfe's blog is a comprehensive resource covering a wide range of topics related to math, programming, computer graphics, and more. With posts grouped into various categories, the blog offers insights into original research, inventions, programming techniques, game development, machine learning, and other technical subjects.

  • Inigo Quilez's site. This site features articles and shader demos from the co-creator of ShaderToy, Inigo Quilez. It's a valuable resource for learning about shaders and experimenting with various techniques.

  • Ray Tracey's blog. Sam Lapere shares numerous posts about real-time rendering on his blog. It's an excellent resource for those looking to stay informed about the latest advancements in real-time rendering techniques.

Tools

  • RenderDoc is a free and open-source graphics debugging tool that allows developers to capture and analyze frames from DirectX, Vulkan, and OpenGL applications. It provides a user-friendly interface to inspect the pipeline state, shader inputs and outputs, textures, and buffers of a captured frame, helping developers to diagnose and fix graphics issues. RenderDoc is widely used in game development and has become an essential tool for graphics programmers.

  • Spector.js is a free and open-source tool for debugging and profiling WebGL applications. It allows developers to capture frames, inspect the WebGL state, and profile the performance of WebGL applications. Spector.js provides an easy-to-use UI that displays the captured frames along with their associated WebGL calls, helping developers to diagnose and fix issues related to WebGL state changes and performance. It can be integrated into any WebGL application and has become a popular tool among web developers who work with WebGL.

  • Xcode is Apple's integrated development environment for macOS, which includes tools for profiling Metal applications.

  • Intel Graphics Performance Analyzers is a suite of tools that allows you to profile graphics performance of different APIs including DirectX, OpenGL, Vulkan.

Awesome lists

API

Games/Engine/Plugins for engines

WebGL