Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/mattdesl/graphics-resources

:memo: a list of graphic programming resources
https://github.com/mattdesl/graphics-resources

Last synced: about 1 month ago
JSON representation

:memo: a list of graphic programming resources

Lists

README

        

# graphics-resources

A few of my bookmarks related to game development and realtime graphics programming.

## Bulk Download

You can use [gh-readme-scrape](https://github.com/mattdesl/gh-readme-scrape) to bulk download some of the content here for offline reading. For example:

```sh
gh-readme-scrape mattdesl/graphics-resources resources/ -e pdf,pptx,ppt --rename
```

This will download all PDFs and power-point slides into a folder called `resources`.

## Topics

- [Physically Based Rendering](#physically-based-rendering)
- [Color Space](#color-space)
- [Light & Shadow](#light--shadow)
- [Environments](#environments)
- [Time](#time)
- [Post-Processing](#post-processing)
- [Ray Tracing & Distance Functions](#ray-tracing--distance-functions)
- [Text, Lines & Shapes](#text-lines--shapes)
- [Non-Photorealistic Rendering](#non-photorealistic-rendering)
- [Math](#math)
- [Misc Optimizations](#misc-optimizations)
- [Collections](#collections)
- [Bloggers](#bloggers)
- [Tools](#tools)

## Physically Based Rendering

- [Readings on Physically Based Rendering](https://interplayoflight.wordpress.com/2013/12/30/readings-on-physically-based-rendering/)
- [The State of Rendering (2013)](https://www.fxguide.com/featured/the-state-of-rendering/)
- [jMonkeyEngine's Physically Based Rendering (2014)](http://jmonkeyengine.org/299803/physically-based-rendering-part-one/)
- [CodingLabs: Physically Based Rendering I](http://www.codinglabs.net/article_physically_based_rendering.aspx)
- [CodingLabs: Physically Based Rendering II](http://www.codinglabs.net/article_physically_based_rendering_cook_torrance.aspx)
- SIGGRAPH Shading Courses: [2012](http://blog.selfshadow.com/publications/s2012-shading-course/), [2013](http://blog.selfshadow.com/publications/s2013-shading-course/) and [2014](http://blog.selfshadow.com/publications/s2014-shading-course/)
- [Physically Based Shader Design in Arnold (2014)](http://blog.selfshadow.com/publications/s2014-shading-course/langlands/s2014_pbs_alshaders_notes.pdf)
- [Moving Frostbite to Physically Based Rendering (2014)](http://www.frostbite.com/wp-content/uploads/2014/11/course_notes_moving_frostbite_to_pbr.pdf)
- [Crafting a Next-Gen Material Pipeline for *The Order: 1886* (2013)](http://blog.selfshadow.com/publications/s2013-shading-course/rad/s2013_pbs_rad_notes.pdf)
- [Real Shading in Unreal Engine 4 (2013)](http://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_notes_v2.pdf)
- [Physically Based Shading in Call of Duty: Black Ops (2013)](http://blog.selfshadow.com/publications/s2013-shading-course/lazarov/s2013_pbs_black_ops_2_notes.pdf)
- [Deferred Shading Tutorial (2005)](http://gamedevs.org/uploads/deferred-shading-tutorial.pdf)
- [Spherical Harmonic Lighting: The Gritty Details (2003)](http://www.research.scea.com/gdc2003/spherical-harmonic-lighting.pdf)
- [Spherical Harmonics for Beginners (2013)](https://dickyjim.wordpress.com/2013/09/04/spherical-harmonics-for-beginners/)
- [A Tiny Improvement of Oren-Nayar Reflectance Model (2012)](http://mimosa-pudica.net/improved-oren-nayar.html)
- [Plausible Environment Lighting in Two Lines of Code (2013)](http://casual-effects.blogspot.ca/2011/08/plausible-environment-lighting-in-two.html)
- [Microfacet Models for Refraction through Rough Surfaces (2007)](http://www.cs.cornell.edu/~srm/publications/egsr07-btdf.pdf)
- [Artist Friendly Metallic Fresnel (2014)](http://jcgt.org/published/0003/04/03/paper.pdf)
- [Realistic Rendering of Blue Ice (2009)](http://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc09/Salas/Vanessa_Salas_Castillo.pdf)
- [Advanced WebGL - Irradiance Environment Map (2011)](http://codeflow.org/entries/2011/apr/18/advanced-webgl-part-3-irradiance-environment-map/)
- [Irradiance Volumes for Games (2012)](http://developer.amd.com/wordpress/media/2012/10/Tatarchuk_Irradiance_Volumes.pdf)
- [Wolfire Blog - Physically Based Rendering (2015)](http://blog.wolfire.com/2015/10/Physically-based-rendering)

## Color Space

- [CodingLabs: Gamms vs Linear](http://www.codinglabs.net/article_gamma_vs_linear.aspx)
- [Filmic Games: Linear-Space Lighting (i.e. Gamma) (2010)](http://filmicgames.com/archives/299)
- [GPU Gems 3: The Importance of Being Linear (2008)](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch24.html)

## Light & Shadow

- [Shading Effects in Left 4 Dead 2 (2010)](http://www.valvesoftware.com/publications/2010/GDC10_ShaderTechniquesL4D2.pdf)
- [The Illustrative World of Team Fortress 2 (2008)](http://www.valvesoftware.com/publications/2008/GDC2008_StylizationWithAPurpose_TF2.pdf)
- [Hardware-Accelerated Global Illumination by Image Space Photon Mapping (2009)](http://graphics.cs.williams.edu/papers/PhotonHPG09/)
- [Ambient Occlusion Fields (2005)](https://mediatech.aalto.fi/~janne/aofields/)
- [Phong Illumination Model (2012)](http://www.cs.utexas.edu/~bajaj/graphics2012/cs354/lectures/lect14.pdf)

## Environments

- [Rendering Grass in Real Time with Dynamic Lighting (2005)](http://kevinboulanger.net/grass.html)
- [Water Flow in Portal 2 (2010)](http://www.valvesoftware.com/publications/2010/siggraph2010_vlachos_waterflow.pdf)
- [Manipulating UVs through Color Data in Portal 2 (2011)](http://www.valvesoftware.com/publications/2011/gdc_2011_grimes_nonstandard_textures.pdf)
- [WebGL Sky Rendering (2011)](http://codeflow.org/entries/2011/apr/13/advanced-webgl-part-2-sky-rendering/)
- [WebGL Terrain and Grass Rendering (2011)](http://codeflow.org/entries/2011/apr/11/advanced-webgl-part-1/)
- [Zephyros Anemos - WebGL Terrain Rendering](http://www.zephyrosanemos.com/)

## Time

- [Fix your Timestep! (2006)](http://gafferongames.com/game-physics/fix-your-timestep/)
- [deWiTTERS Game Loop (2009)](http://www.koonsolo.com/news/dewitters-gameloop/)
- [Fixed Timestep Implementation (2012)](http://lspiroengine.com/?p=378)

## Post-Processing

- [Post Processing in the Orange Box (2008)](http://www.valvesoftware.com/publications/2008/GDC2008_PostProcessingInTheOrangeBox.pdf)
- [Aggregate G-Buffer Anti-Aliasing (2015)](http://graphics.cs.williams.edu/papers/AggregateI3D15/)
- [Physically Based Real-Time Lens Flare Rendering (2011)](http://resources.mpi-inf.mpg.de/lensflareRendering/)
- [John Chapman - Pseudo Lens Flare (2013)](http://john-chapman-graphics.blogspot.ca/2013/02/pseudo-lens-flare.html)
- [Image Imperfections & Film Grain Post-Process FX (2013)](http://devlog-martinsh.blogspot.ca/2013/05/image-imperfections-and-film-grain-post.html)
- [GLSL Cubic Lens Distortion (2011)](http://devlog-martinsh.blogspot.ca/2011/10/glsl-cubic-lens-distortion.html)
- [Using Lookup Tables to Accelerate Color Transforms (2005)](http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter24.html)
- [The Skylanders SWAP Force Depth-of-Field Shader (2013)](http://casual-effects.blogspot.ca/2013/09/the-skylanders-swap-force-depth-of.html)
- [GPU Gems 3: Motion Blur as a Post-Processing Effect (2008)](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch27.html)
- [GPU Gems 3: Practical Post-Process Depth of Field (2008)](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch28.html)

## Ray Tracing & Distance Functions

- [Fast Soft-Shadowing on Dynamic Height Fields (2008)](http://www.iro.umontreal.ca/~derek/files/hfvisib.pdf)
- [Per-Pixel Displacement Mapping with Distance Functions (2005)](http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter08.html)
- [Raymarching Distance Fields (2013)](http://9bitscience.blogspot.ca/2013/07/raymarching-distance-fields_14.html)
- [Screen Space Glossy Reflections (2015)](http://roar11.com/2015/07/screen-space-glossy-reflections/)

## Text, Lines & Shapes

- [Higher Quality 2D Text Rendering (2013)](http://jcgt.org/published/0002/01/04/paper.pdf)
- [Improved Alpha-Tested Magnification for Vector Textures (2007)](http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf)
- [Drawing Lines is Hard (2015)](http://mattdesl.svbtle.com/drawing-lines-is-hard)
- [Material Design on the GPU (2015)](http://mattdesl.svbtle.com/material-design-on-the-gpu)
- [Polygon Rendering in Ejecta (2012)](http://phoboslab.org/log/2012/09/ejecta)
- [Lecture: Polygon Triangulation (2014)](https://www.youtube.com/watch?v=qzX8zGMyl4Y&list=PLESnaHRvLM-72xIXf8dL2EOqN8UgAZMj7&index=16)
- [GPU Gems 3: Rendering Vector Art on the GPU](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch25.html)
- [Drawing Text with Signed Distance Fields in Mapbox GL (2014)](https://www.mapbox.com/blog/text-signed-distance-fields/)
- [Multi-Channel SDF Text Rendering (2014)](https://lambdacube3d.wordpress.com/2014/11/12/playing-around-with-font-rendering/)
- [SDF Rendering of Color Bit Planes (2013)](https://gpuhacks.wordpress.com/2013/07/08/signed-distance-field-rendering-of-color-bit-planes/)

## Non-Photorealistic Rendering

- [Watercolor Inspired Non-Photorealistic Rendering for Augmented Reality (2008)](http://www.cc.gatech.edu/~turk/my_papers/npr_ar_2008.pdf)
- [Advanced Real-Time Cel Shading in OpenGL (2013)](http://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S12/final_projects/hutchins_kim.pdf)
- [Stroke-Based Rendering (2002)](http://web.cs.ucdavis.edu/~ma/SIGGRAPH02/course23/notes/S02c23_3.pdf)
- [Hand Drawn Rendering (2012)](http://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S12/final_projects/mcmullan_ooi.pdf)
- [Real-Time Ink Dispersion in Absorbent Paper (2005)](http://visgraph.cse.ust.hk/MoXi/moxi.pdf)
- ["Nijimi" Rendering Algorithm for Creating Quality Black Ink Paintings (2003)](http://cgm.cs.ntust.edu.tw/steve/www/paper/Abstract/941129/CG2003/01214460.pdf)
- [WYSIWYG NPR: Drawing Strokes Directly on 3D Models (2002)](http://gfx.cs.princeton.edu/pubs/Kalnins_2002_WND/wnpr-final.pdf)
- [Stylized Rendering Using Samples of a Painted Image (2007)](http://graphics.csie.ncku.edu.tw/Paper_Video/TVCG/NPR_2007/TVCG_NPR_2007.pdf)

## Math

- [Essential Mathematics for Games and Interactive Applications (2008)](http://www.amazon.ca/Essential-Mathematics-Games-Interactive-Applications/dp/0123742978)
- [3D Math Primer for Graphics and Game Development, 2nd Ed (2011)](http://www.amazon.ca/Math-Primer-Graphics-Development-Edition/dp/1568817231)
- [math-as-code (2015)](https://github.com/Jam3/math-as-code)
- [CodingLabs: World, View, Projection Matrices](http://www.codinglabs.net/article_world_view_projection_matrix.aspx)
- [Interactive Introduction to Noise Functions (2013)](http://www.redblobgames.com/articles/noise/introduction.html)

## Misc Optimizations

- [Fast, Branchless Ray/Bounding Box Intersections (2011)](http://tavianator.com/fast-branchless-raybounding-box-intersections/)
- [Combined Approximation of Fresnel Visibility (2015)](http://www.filmicworlds.com/2015/03/17/combined-approximation-of-fresnelvisibility/)
- [Compact Normal Storage for Small G-Buffers (2009)](http://aras-p.info/texts/CompactNormalStorage.html)
- [Normal Mapping without Precomputed Tangents (2013)](http://www.thetenthplanet.de/archives/1180)

## Collections

- [SIGGRAPH Real-Time Rendering Publications](http://kesen.realtimerendering.com/)
- [List of Realtime Global Illumination Techniques](https://extremeistan.wordpress.com/2014/05/11/realtime-global-illumination-techniques-collection/)
- [David Arcila's Game Development Resources](https://game-development.zeef.com/david.arcila)
- [awesome-opengl](https://github.com/eug/awesome-opengl)
- [Readings on Physically Based Rendering](https://interplayoflight.wordpress.com/2013/12/30/readings-on-physically-based-rendering/)

## Bloggers

- [Aras Pranckevičius](http://aras-p.info/blog/)
- [Stephen Hill](http://blog.selfshadow.com/)
- [Sébastien Lagarde](https://seblagarde.wordpress.com/)
- [Angelo Pesce](http://c0de517e.blogspot.ca/)
- [Yi-Wen Lin](http://blog.bongiovi.tw/)
- [Brian Karis](http://graphicrants.blogspot.ca/)
- [Christian Schüler](http://www.thetenthplanet.de/)
- [Tom Forsyth](http://home.comcast.net/~tom_forsyth/blog.wiki.html)
- [Michael Chang](http://mflux.tumblr.com/)
- [Timothy Lottes](http://timothylottes.blogspot.ca/)
- [John Chapman](http://john-chapman-graphics.blogspot.ca/)
- [John Hable](http://www.filmicworlds.com/) (and his [older blog](http://filmicgames.com/))
- [Philp Rideout](http://prideout.net/blog/)
- [Mikola Lysenko](http://0fps.net/)
- [Adrian Courrèges](http://www.adriancourreges.com/blog/)
- [Martins Upitis](http://devlog-martinsh.blogspot.ca/)
- [Colin Barré-Brisebois](http://colinbarrebrisebois.com/)
- [Rory Driscoll](http://www.rorydriscoll.com/)
- [Real-Time Rendering Blog](http://www.realtimerendering.com/blog/)
- [Mikael H Christensen](http://blog.hvidtfeldts.net/)
- [Fabian Giesen](https://fgiesen.wordpress.com/)
- [Iñigo Quilez](http://www.iquilezles.org/blog/)
- [Ignacio Castaño](http://www.ludicon.com/castano/blog/)
- [Jeremy Shopf](http://www.jshopf.net/)

## Tools

- [Disney BRDF Viewer](http://www.disneyanimation.com/technology/brdf.html)
- [cmft](https://github.com/dariomanesku/cmft) and [cmftStudio](https://github.com/dariomanesku/cmftStudio) - cubemap filtering tools
- [Modified AMD Cubemapgen](https://seblagarde.wordpress.com/2012/06/10/amd-cubemapgen-for-physically-based-rendering/) - cubemap filtering tool
- [preview-dds](https://github.com/Jam3/preview-dds) - minimal cross-platform DDS previewer
- [CrazyBump](http://www.crazybump.com/)

## License

MIT, see [LICENSE.md](http://github.com/mattdesl/graphics-resources/blob/master/LICENSE.md) for details.