{"id":13516318,"url":"https://github.com/mattdesl/graphics-resources","last_synced_at":"2026-01-26T20:11:15.114Z","repository":{"id":34901310,"uuid":"38935281","full_name":"mattdesl/graphics-resources","owner":"mattdesl","description":":memo: a list of graphic programming resources","archived":false,"fork":false,"pushed_at":"2020-12-30T21:02:56.000Z","size":144,"stargazers_count":1839,"open_issues_count":5,"forks_count":123,"subscribers_count":102,"default_branch":"master","last_synced_at":"2026-01-20T07:57:40.197Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"SchedMD/slurm","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mattdesl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-11T17:59:19.000Z","updated_at":"2026-01-16T04:29:35.000Z","dependencies_parsed_at":"2022-08-08T02:15:53.319Z","dependency_job_id":null,"html_url":"https://github.com/mattdesl/graphics-resources","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mattdesl/graphics-resources","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattdesl%2Fgraphics-resources","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattdesl%2Fgraphics-resources/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattdesl%2Fgraphics-resources/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattdesl%2Fgraphics-resources/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mattdesl","download_url":"https://codeload.github.com/mattdesl/graphics-resources/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattdesl%2Fgraphics-resources/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28787139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T13:55:28.044Z","status":"ssl_error","status_checked_at":"2026-01-26T13:55:26.068Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T05:01:21.304Z","updated_at":"2026-01-26T20:11:15.077Z","avatar_url":"https://github.com/mattdesl.png","language":null,"funding_links":[],"categories":["Technical","Others","**Code**","Meta-links","Related lists","Core","Related","Related Lists"],"sub_categories":["ramanihiteshc@gmail.com","Svelte","Other","Others"],"readme":"# graphics-resources\n\nA few of my bookmarks related to game development and realtime graphics programming.\n\n## Bulk Download\n\nYou 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:\n\n```sh\ngh-readme-scrape mattdesl/graphics-resources resources/ -e pdf,pptx,ppt --rename\n```\n\nThis will download all PDFs and power-point slides into a folder called `resources`.\n\n## Topics\n\n- [Physically Based Rendering](#physically-based-rendering)\n- [Color Space](#color-space)\n- [Light \u0026 Shadow](#light--shadow)\n- [Environments](#environments)\n- [Time](#time)\n- [Post-Processing](#post-processing)\n- [Ray Tracing \u0026 Distance Functions](#ray-tracing--distance-functions)\n- [Text, Lines \u0026 Shapes](#text-lines--shapes)\n- [Non-Photorealistic Rendering](#non-photorealistic-rendering)\n- [Math](#math)\n- [Misc Optimizations](#misc-optimizations)\n- [Collections](#collections)\n- [Bloggers](#bloggers)\n- [Tools](#tools)\n\n## Physically Based Rendering\n\n- [Readings on Physically Based Rendering](https://interplayoflight.wordpress.com/2013/12/30/readings-on-physically-based-rendering/)\n- [The State of Rendering (2013)](https://www.fxguide.com/featured/the-state-of-rendering/)\n- [jMonkeyEngine's Physically Based Rendering (2014)](http://jmonkeyengine.org/299803/physically-based-rendering-part-one/)\n- [CodingLabs: Physically Based Rendering I](http://www.codinglabs.net/article_physically_based_rendering.aspx)\n- [CodingLabs: Physically Based Rendering II](http://www.codinglabs.net/article_physically_based_rendering_cook_torrance.aspx)\n- 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/)\n  - [Physically Based Shader Design in Arnold (2014)](http://blog.selfshadow.com/publications/s2014-shading-course/langlands/s2014_pbs_alshaders_notes.pdf)\n  - [Moving Frostbite to Physically Based Rendering (2014)](http://www.frostbite.com/wp-content/uploads/2014/11/course_notes_moving_frostbite_to_pbr.pdf)\n  - [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)\n  - [Real Shading in Unreal Engine 4 (2013)](http://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_notes_v2.pdf)\n  - [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)\n- [Deferred Shading Tutorial (2005)](http://gamedevs.org/uploads/deferred-shading-tutorial.pdf)\n- [Spherical Harmonic Lighting: The Gritty Details (2003)](http://www.research.scea.com/gdc2003/spherical-harmonic-lighting.pdf)\n- [Spherical Harmonics for Beginners (2013)](https://dickyjim.wordpress.com/2013/09/04/spherical-harmonics-for-beginners/)\n- [A Tiny Improvement of Oren-Nayar Reflectance Model (2012)](http://mimosa-pudica.net/improved-oren-nayar.html)\n- [Plausible Environment Lighting in Two Lines of Code (2013)](http://casual-effects.blogspot.ca/2011/08/plausible-environment-lighting-in-two.html)\n- [Microfacet Models for Refraction through Rough Surfaces (2007)](http://www.cs.cornell.edu/~srm/publications/egsr07-btdf.pdf)\n- [Artist Friendly Metallic Fresnel (2014)](http://jcgt.org/published/0003/04/03/paper.pdf)\n- [Realistic Rendering of Blue Ice (2009)](http://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc09/Salas/Vanessa_Salas_Castillo.pdf)\n- [Advanced WebGL - Irradiance Environment Map (2011)](http://codeflow.org/entries/2011/apr/18/advanced-webgl-part-3-irradiance-environment-map/)\n- [Irradiance Volumes for Games (2012)](http://developer.amd.com/wordpress/media/2012/10/Tatarchuk_Irradiance_Volumes.pdf)\n- [Wolfire Blog - Physically Based Rendering (2015)](http://blog.wolfire.com/2015/10/Physically-based-rendering)\n\n## Color Space\n\n- [CodingLabs: Gamms vs Linear](http://www.codinglabs.net/article_gamma_vs_linear.aspx)\n- [Filmic Games: Linear-Space Lighting (i.e. Gamma) (2010)](http://filmicgames.com/archives/299)\n- [GPU Gems 3: The Importance of Being Linear (2008)](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch24.html)\n\n## Light \u0026 Shadow\n\n- [Shading Effects in Left 4 Dead 2 (2010)](http://www.valvesoftware.com/publications/2010/GDC10_ShaderTechniquesL4D2.pdf)\n- [The Illustrative World of Team Fortress 2 (2008)](http://www.valvesoftware.com/publications/2008/GDC2008_StylizationWithAPurpose_TF2.pdf)\n- [Hardware-Accelerated Global Illumination by Image Space Photon Mapping (2009)](http://graphics.cs.williams.edu/papers/PhotonHPG09/)\n- [Ambient Occlusion Fields (2005)](https://mediatech.aalto.fi/~janne/aofields/)\n- [Phong Illumination Model (2012)](http://www.cs.utexas.edu/~bajaj/graphics2012/cs354/lectures/lect14.pdf)\n\n## Environments\n\n- [Rendering Grass in Real Time with Dynamic Lighting (2005)](http://kevinboulanger.net/grass.html)\n- [Water Flow in Portal 2 (2010)](http://www.valvesoftware.com/publications/2010/siggraph2010_vlachos_waterflow.pdf)\n- [Manipulating UVs through Color Data in Portal 2 (2011)](http://www.valvesoftware.com/publications/2011/gdc_2011_grimes_nonstandard_textures.pdf)\n- [WebGL Sky Rendering (2011)](http://codeflow.org/entries/2011/apr/13/advanced-webgl-part-2-sky-rendering/)\n- [WebGL Terrain and Grass Rendering (2011)](http://codeflow.org/entries/2011/apr/11/advanced-webgl-part-1/)\n- [Zephyros Anemos - WebGL Terrain Rendering](http://www.zephyrosanemos.com/)\n\n## Time\n\n- [Fix your Timestep! (2006)](http://gafferongames.com/game-physics/fix-your-timestep/)\n- [deWiTTERS Game Loop (2009)](http://www.koonsolo.com/news/dewitters-gameloop/)\n- [Fixed Timestep Implementation (2012)](http://lspiroengine.com/?p=378)\n\n## Post-Processing\n\n- [Post Processing in the Orange Box (2008)](http://www.valvesoftware.com/publications/2008/GDC2008_PostProcessingInTheOrangeBox.pdf)\n- [Aggregate G-Buffer Anti-Aliasing (2015)](http://graphics.cs.williams.edu/papers/AggregateI3D15/)\n- [Physically Based Real-Time Lens Flare Rendering (2011)](http://resources.mpi-inf.mpg.de/lensflareRendering/)\n- [John Chapman - Pseudo Lens Flare (2013)](http://john-chapman-graphics.blogspot.ca/2013/02/pseudo-lens-flare.html)\n- [Image Imperfections \u0026 Film Grain Post-Process FX (2013)](http://devlog-martinsh.blogspot.ca/2013/05/image-imperfections-and-film-grain-post.html)\n- [GLSL Cubic Lens Distortion (2011)](http://devlog-martinsh.blogspot.ca/2011/10/glsl-cubic-lens-distortion.html)\n- [Using Lookup Tables to Accelerate Color Transforms (2005)](http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter24.html)\n- [The Skylanders SWAP Force Depth-of-Field Shader (2013)](http://casual-effects.blogspot.ca/2013/09/the-skylanders-swap-force-depth-of.html)\n- [GPU Gems 3: Motion Blur as a Post-Processing Effect (2008)](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch27.html)\n- [GPU Gems 3: Practical Post-Process Depth of Field (2008)](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch28.html)\n\n## Ray Tracing \u0026 Distance Functions\n\n- [Fast Soft-Shadowing on Dynamic Height Fields (2008)](http://www.iro.umontreal.ca/~derek/files/hfvisib.pdf)\n- [Per-Pixel Displacement Mapping with Distance Functions (2005)](http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter08.html)\n- [Raymarching Distance Fields (2013)](http://9bitscience.blogspot.ca/2013/07/raymarching-distance-fields_14.html)\n- [Screen Space Glossy Reflections (2015)](http://roar11.com/2015/07/screen-space-glossy-reflections/)\n\n## Text, Lines \u0026 Shapes\n\n- [Higher Quality 2D Text Rendering (2013)](http://jcgt.org/published/0002/01/04/paper.pdf)\n- [Improved Alpha-Tested Magnification for Vector Textures (2007)](http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf)\n- [Drawing Lines is Hard (2015)](http://mattdesl.svbtle.com/drawing-lines-is-hard)\n- [Material Design on the GPU (2015)](http://mattdesl.svbtle.com/material-design-on-the-gpu)\n- [Polygon Rendering in Ejecta (2012)](http://phoboslab.org/log/2012/09/ejecta)\n- [Lecture: Polygon Triangulation (2014)](https://www.youtube.com/watch?v=qzX8zGMyl4Y\u0026list=PLESnaHRvLM-72xIXf8dL2EOqN8UgAZMj7\u0026index=16)\n- [GPU Gems 3: Rendering Vector Art on the GPU](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch25.html)\n- [Drawing Text with Signed Distance Fields in Mapbox GL (2014)](https://www.mapbox.com/blog/text-signed-distance-fields/)\n- [Multi-Channel SDF Text Rendering (2014)](https://lambdacube3d.wordpress.com/2014/11/12/playing-around-with-font-rendering/)\n- [SDF Rendering of Color Bit Planes (2013)](https://gpuhacks.wordpress.com/2013/07/08/signed-distance-field-rendering-of-color-bit-planes/)\n\n## Non-Photorealistic Rendering\n\n- [Watercolor Inspired Non-Photorealistic Rendering for Augmented Reality (2008)](http://www.cc.gatech.edu/~turk/my_papers/npr_ar_2008.pdf)\n- [Advanced Real-Time Cel Shading in OpenGL (2013)](http://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S12/final_projects/hutchins_kim.pdf)\n- [Stroke-Based Rendering (2002)](http://web.cs.ucdavis.edu/~ma/SIGGRAPH02/course23/notes/S02c23_3.pdf)\n- [Hand Drawn Rendering (2012)](http://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S12/final_projects/mcmullan_ooi.pdf)\n- [Real-Time Ink Dispersion in Absorbent Paper (2005)](http://visgraph.cse.ust.hk/MoXi/moxi.pdf)\n- [\"Nijimi\" Rendering Algorithm for Creating Quality Black Ink Paintings (2003)](http://cgm.cs.ntust.edu.tw/steve/www/paper/Abstract/941129/CG2003/01214460.pdf)\n- [WYSIWYG NPR: Drawing Strokes Directly on 3D Models (2002)](http://gfx.cs.princeton.edu/pubs/Kalnins_2002_WND/wnpr-final.pdf)\n- [Stylized Rendering Using Samples of a Painted Image (2007)](http://graphics.csie.ncku.edu.tw/Paper_Video/TVCG/NPR_2007/TVCG_NPR_2007.pdf)\n\n## Math\n\n- [Essential Mathematics for Games and Interactive Applications (2008)](http://www.amazon.ca/Essential-Mathematics-Games-Interactive-Applications/dp/0123742978)\n- [3D Math Primer for Graphics and Game Development, 2nd Ed (2011)](http://www.amazon.ca/Math-Primer-Graphics-Development-Edition/dp/1568817231)\n- [math-as-code (2015)](https://github.com/Jam3/math-as-code)\n- [CodingLabs: World, View, Projection Matrices](http://www.codinglabs.net/article_world_view_projection_matrix.aspx)\n- [Interactive Introduction to Noise Functions (2013)](http://www.redblobgames.com/articles/noise/introduction.html)\n\n## Misc Optimizations\n\n- [Fast, Branchless Ray/Bounding Box Intersections (2011)](http://tavianator.com/fast-branchless-raybounding-box-intersections/)\n- [Combined Approximation of Fresnel Visibility (2015)](http://www.filmicworlds.com/2015/03/17/combined-approximation-of-fresnelvisibility/)\n- [Compact Normal Storage for Small G-Buffers (2009)](http://aras-p.info/texts/CompactNormalStorage.html)\n- [Normal Mapping without Precomputed Tangents (2013)](http://www.thetenthplanet.de/archives/1180)\n\n## Collections\n\n- [SIGGRAPH Real-Time Rendering Publications](http://kesen.realtimerendering.com/)\n- [List of Realtime Global Illumination Techniques](https://extremeistan.wordpress.com/2014/05/11/realtime-global-illumination-techniques-collection/)\n- [David Arcila's Game Development Resources](https://game-development.zeef.com/david.arcila)\n- [awesome-opengl](https://github.com/eug/awesome-opengl)\n- [Readings on Physically Based Rendering](https://interplayoflight.wordpress.com/2013/12/30/readings-on-physically-based-rendering/)\n\n## Bloggers\n\n- [Aras Pranckevičius](http://aras-p.info/blog/)\n- [Stephen Hill](http://blog.selfshadow.com/)\n- [Sébastien Lagarde](https://seblagarde.wordpress.com/)\n- [Angelo Pesce](http://c0de517e.blogspot.ca/)\n- [Yi-Wen Lin](http://blog.bongiovi.tw/)\n- [Brian Karis](http://graphicrants.blogspot.ca/)\n- [Christian Schüler](http://www.thetenthplanet.de/)\n- [Tom Forsyth](http://home.comcast.net/~tom_forsyth/blog.wiki.html)\n- [Michael Chang](http://mflux.tumblr.com/)\n- [Timothy Lottes](http://timothylottes.blogspot.ca/)\n- [John Chapman](http://john-chapman-graphics.blogspot.ca/)\n- [John Hable](http://www.filmicworlds.com/) (and his [older blog](http://filmicgames.com/))\n- [Philp Rideout](http://prideout.net/blog/)\n- [Mikola Lysenko](http://0fps.net/)\n- [Adrian Courrèges](http://www.adriancourreges.com/blog/)\n- [Martins Upitis](http://devlog-martinsh.blogspot.ca/)\n- [Colin Barré-Brisebois](http://colinbarrebrisebois.com/)\n- [Rory Driscoll](http://www.rorydriscoll.com/)\n- [Real-Time Rendering Blog](http://www.realtimerendering.com/blog/)\n- [Mikael H Christensen](http://blog.hvidtfeldts.net/)\n- [Fabian Giesen](https://fgiesen.wordpress.com/)\n- [Iñigo Quilez](http://www.iquilezles.org/blog/)\n- [Ignacio Castaño](http://www.ludicon.com/castano/blog/)\n- [Jeremy Shopf](http://www.jshopf.net/)\n\n## Tools\n\n- [Disney BRDF Viewer](http://www.disneyanimation.com/technology/brdf.html)\n- [cmft](https://github.com/dariomanesku/cmft) and [cmftStudio](https://github.com/dariomanesku/cmftStudio) - cubemap filtering tools\n- [Modified AMD Cubemapgen](https://seblagarde.wordpress.com/2012/06/10/amd-cubemapgen-for-physically-based-rendering/) - cubemap filtering tool\n- [preview-dds](https://github.com/Jam3/preview-dds) - minimal cross-platform DDS previewer\n- [CrazyBump](http://www.crazybump.com/)\n\n## License\n\nMIT, see [LICENSE.md](http://github.com/mattdesl/graphics-resources/blob/master/LICENSE.md) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattdesl%2Fgraphics-resources","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmattdesl%2Fgraphics-resources","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattdesl%2Fgraphics-resources/lists"}