Graphics

Umbrella for all things to do with graphics programming.

Article

• An introduction to shader derivative functions
★ 0 0
An article giving an interactive introduction to derivative functions in common shading languages. By Giuseppe Portelli.
• Color: From Hexcodes to Eyeballs
★ 0 0
A grand tour of the science behind color, color perception, and how colors are generated by computer displays. By Jamie Wong.
• Point in Polygon Detection Strategies
★ 0 0
Testing whether a point is inside a polygon is a basic operation in computer graphics. Graphics Gems presents an algorithm for testing points against convex polygons (Badouel 1990). This Gem provides algorithms which are from 1.6 to 9 or more times faster for convex polygons. It also presents algorithms for testing non-convex polygons and discusses the advantages and drawbacks of each. Faster, more memory intensive algorithms are also presented, along with an O(log n) algorithm for convex polygons. Code is included for the algorithms discussed.
• Square/Disc Mappings
★ 0 0
Various methods to convert a point on a unit square to a point on a unit disc.
• The History of OpenGL Vertex Data
★ 0 0
An article explaining how OpenGL's APIs for vertex data have evolved over time.

Online Book

• Learn OpenGL
★ 1 0
Introduction to GPU programming with OpenGL

Paper

• Mappings between Sphere, Disc, and Square
★ 0 0
A variety of mappings between a sphere and a disc and between a disc and a square, as well as combinations of both, are used in computer graphics applications, resulting in mappings between spheres and squares. Many options exist for each type of mapping; to pick the right methods for a given application requires knowledge about the nature and magnitude of mapping distortions. This paper provides an overview of forward and inverse mappings between a unit sphere, a unit disc, and a unit square. Quality measurements relevant for computer graphics applications are derived from tools used in the field of map projection, and a comparative analysis of the mapping methods is given.
• Matrix row-column sampling for the many-light problem
★ 0 0
Computing global illumination using the many-lights approach is expensive, this algorithm presents a method ("exploration") for reducing the amount of lights to be sampled.
• Photon Mapping (2 Minute Papers)
★ 0 0
Describes the Photon Mapping solution to light transport.
• Polygonising a scalar field
★ 0 0
Papers describing methods of creating a polygonal representation of a scalar field (e.g. marching cubes with voxels).
• Stochastic Lightcuts
★ 0 0
A solution to the global illumination problem by sampling from many lights. Stochastic Lightcuts is an improvement on the earlier Lightcuts algorithm. Presentation at HPG 2019.

Repository

• Path Tracing with Vulkan tutorial
★ 1 0
This tutorial is a beginner-friendly introduction to writing your own fast, photorealistic path tracer in less than 300 lines of C++ code and 250 lines of GLSL shader code using Vulkan. Here's an example of what you'll render at the end of this tutorial!

Website

• The Beauty of Bresenham's Algorithm
★ 2 0
This page introduces a compact and efficient implementation of Bresenham's algorithm to plot lines, circles, ellipses and Bézier curves.
• Learn OpenGL
★ 1 0
Introduction to GPU programming with OpenGL
• Lights and Shadows
★ 1 0
Discussion and explanation of lights, shadows and the functions for modelling them.
• Graphics Programming Weekly
★ 0 0
A curated collection of articles and talks about graphics programming, curated by Jendrik Illner.

• Advanced Global Illumination Using Photon Mapping
★ 0 0
Photon mapping provides a practical way of efficiently simulating global illumination including interreflections, caustics, color bleeding, participating media and subsurface scattering in scenes with complicated geometry and advanced material models. This class will provide the insight necessary to efficiently implement and use photon mapping to simulate global illumination in complex scenes. The presentation will briefly cover the fundamentals of photon mapping including efficient techniques and datastructures for managing large numbers of rays and photons. In addition, we will describe how to integrate the information from the photon maps in shading algorithms to render global illumination.
• Matrix row-column sampling for the many-light problem
★ 0 0
Computing global illumination using the many-lights approach is expensive, this algorithm presents a method ("exploration") for reducing the amount of lights to be sampled.
• Photon Mapping (2 Minute Papers)
★ 0 0
Describes the Photon Mapping solution to light transport.
• Ray-Traced Irradiance Fields (Real-Time Light Probe Rendering)
★ 0 0
[...] how to combine glossy reflection ray tracing with diffuse ray-traced irradiance field probes. This creates a complete dynamic global illumination solution that scales across all DXR GPUs and minimizes light leaking without requiring manual per-probe or lightmap work by artists.
• Stochastic Lightcuts
★ 0 0
A solution to the global illumination problem by sampling from many lights. Stochastic Lightcuts is an improvement on the earlier Lightcuts algorithm. Presentation at HPG 2019.
• ThinMatrix Single-Channel SDF Font Rendering
★ 0 0
Two OpenGL tutorial videos that give an overview of the basics of setting up single-channel SDF font rendering. Video one covers basic bitmap text rendering, and video two shows how to convert from bitmap to SDF. Video one: https://www.youtube.com/watch?v=mnIQEQoHHCU Video two: https://www.youtube.com/watch?v=d8cfgcJR9Tk

Other

• Code for Concentric Map
★ 0 0
Concentric mapping is a commonly used method for mapping points on a unit square to a unit disc. These are some code samples.
• Gamma Encoding
★ 0 0
How gamma encoding of images works.