├── .gitignore ├── .npmignore ├── package.json ├── LICENSE.md └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | bower_components 2 | node_modules 3 | *.log 4 | .DS_Store 5 | bundle.js 6 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | bower_components 2 | node_modules 3 | *.log 4 | .DS_Store 5 | bundle.js 6 | test 7 | test.js 8 | demo/ 9 | .npmignore 10 | LICENSE.md -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "graphics-resources", 3 | "version": "1.0.0", 4 | "description": "a list of graphic programming resources", 5 | "main": "index.js", 6 | "license": "MIT", 7 | "author": { 8 | "name": "Matt DesLauriers", 9 | "email": "dave.des@gmail.com", 10 | "url": "https://github.com/mattdesl" 11 | }, 12 | "dependencies": {}, 13 | "devDependencies": {}, 14 | "scripts": { 15 | "test": "node test.js" 16 | }, 17 | "keywords": [ 18 | "graphic", 19 | "blogs", 20 | "list", 21 | "link", 22 | "awesome", 23 | "resources", 24 | "resource", 25 | "tutorial", 26 | "tutorials", 27 | "guide", 28 | "guides", 29 | "opengl", 30 | "webgl", 31 | "glsl", 32 | "hlsl", 33 | "dx10", 34 | "game", 35 | "programming", 36 | "graphics", 37 | "gfx" 38 | ], 39 | "repository": { 40 | "type": "git", 41 | "url": "git://github.com/mattdesl/graphics-resources.git" 42 | }, 43 | "homepage": "https://github.com/mattdesl/graphics-resources", 44 | "bugs": { 45 | "url": "https://github.com/mattdesl/graphics-resources/issues" 46 | } 47 | } -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) 2015 Matt DesLauriers 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all 12 | copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 18 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 19 | OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 20 | OR OTHER DEALINGS IN THE SOFTWARE. 21 | 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # graphics-resources 2 | 3 | A few of my bookmarks related to game development and realtime graphics programming. 4 | 5 | ## Bulk Download 6 | 7 | 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: 8 | 9 | ```sh 10 | gh-readme-scrape mattdesl/graphics-resources resources/ -e pdf,pptx,ppt --rename 11 | ``` 12 | 13 | This will download all PDFs and power-point slides into a folder called `resources`. 14 | 15 | ## Topics 16 | 17 | - [Physically Based Rendering](#physically-based-rendering) 18 | - [Color Space](#color-space) 19 | - [Light & Shadow](#light--shadow) 20 | - [Environments](#environments) 21 | - [Time](#time) 22 | - [Post-Processing](#post-processing) 23 | - [Ray Tracing & Distance Functions](#ray-tracing--distance-functions) 24 | - [Text, Lines & Shapes](#text-lines--shapes) 25 | - [Non-Photorealistic Rendering](#non-photorealistic-rendering) 26 | - [Math](#math) 27 | - [Misc Optimizations](#misc-optimizations) 28 | - [Collections](#collections) 29 | - [Bloggers](#bloggers) 30 | - [Tools](#tools) 31 | 32 | ## Physically Based Rendering 33 | 34 | - [Readings on Physically Based Rendering](https://interplayoflight.wordpress.com/2013/12/30/readings-on-physically-based-rendering/) 35 | - [The State of Rendering (2013)](https://www.fxguide.com/featured/the-state-of-rendering/) 36 | - [jMonkeyEngine's Physically Based Rendering (2014)](http://jmonkeyengine.org/299803/physically-based-rendering-part-one/) 37 | - [CodingLabs: Physically Based Rendering I](http://www.codinglabs.net/article_physically_based_rendering.aspx) 38 | - [CodingLabs: Physically Based Rendering II](http://www.codinglabs.net/article_physically_based_rendering_cook_torrance.aspx) 39 | - 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/) 40 | - [Physically Based Shader Design in Arnold (2014)](http://blog.selfshadow.com/publications/s2014-shading-course/langlands/s2014_pbs_alshaders_notes.pdf) 41 | - [Moving Frostbite to Physically Based Rendering (2014)](http://www.frostbite.com/wp-content/uploads/2014/11/course_notes_moving_frostbite_to_pbr.pdf) 42 | - [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) 43 | - [Real Shading in Unreal Engine 4 (2013)](http://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_notes_v2.pdf) 44 | - [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) 45 | - [Deferred Shading Tutorial (2005)](http://gamedevs.org/uploads/deferred-shading-tutorial.pdf) 46 | - [Spherical Harmonic Lighting: The Gritty Details (2003)](http://www.research.scea.com/gdc2003/spherical-harmonic-lighting.pdf) 47 | - [Spherical Harmonics for Beginners (2013)](https://dickyjim.wordpress.com/2013/09/04/spherical-harmonics-for-beginners/) 48 | - [A Tiny Improvement of Oren-Nayar Reflectance Model (2012)](http://mimosa-pudica.net/improved-oren-nayar.html) 49 | - [Plausible Environment Lighting in Two Lines of Code (2013)](http://casual-effects.blogspot.ca/2011/08/plausible-environment-lighting-in-two.html) 50 | - [Microfacet Models for Refraction through Rough Surfaces (2007)](http://www.cs.cornell.edu/~srm/publications/egsr07-btdf.pdf) 51 | - [Artist Friendly Metallic Fresnel (2014)](http://jcgt.org/published/0003/04/03/paper.pdf) 52 | - [Realistic Rendering of Blue Ice (2009)](http://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc09/Salas/Vanessa_Salas_Castillo.pdf) 53 | - [Advanced WebGL - Irradiance Environment Map (2011)](http://codeflow.org/entries/2011/apr/18/advanced-webgl-part-3-irradiance-environment-map/) 54 | - [Irradiance Volumes for Games (2012)](http://developer.amd.com/wordpress/media/2012/10/Tatarchuk_Irradiance_Volumes.pdf) 55 | - [Wolfire Blog - Physically Based Rendering (2015)](http://blog.wolfire.com/2015/10/Physically-based-rendering) 56 | 57 | ## Color Space 58 | 59 | - [CodingLabs: Gamms vs Linear](http://www.codinglabs.net/article_gamma_vs_linear.aspx) 60 | - [Filmic Games: Linear-Space Lighting (i.e. Gamma) (2010)](http://filmicgames.com/archives/299) 61 | - [GPU Gems 3: The Importance of Being Linear (2008)](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch24.html) 62 | 63 | ## Light & Shadow 64 | 65 | - [Shading Effects in Left 4 Dead 2 (2010)](http://www.valvesoftware.com/publications/2010/GDC10_ShaderTechniquesL4D2.pdf) 66 | - [The Illustrative World of Team Fortress 2 (2008)](http://www.valvesoftware.com/publications/2008/GDC2008_StylizationWithAPurpose_TF2.pdf) 67 | - [Hardware-Accelerated Global Illumination by Image Space Photon Mapping (2009)](http://graphics.cs.williams.edu/papers/PhotonHPG09/) 68 | - [Ambient Occlusion Fields (2005)](https://mediatech.aalto.fi/~janne/aofields/) 69 | - [Phong Illumination Model (2012)](http://www.cs.utexas.edu/~bajaj/graphics2012/cs354/lectures/lect14.pdf) 70 | 71 | ## Environments 72 | 73 | - [Rendering Grass in Real Time with Dynamic Lighting (2005)](http://kevinboulanger.net/grass.html) 74 | - [Water Flow in Portal 2 (2010)](http://www.valvesoftware.com/publications/2010/siggraph2010_vlachos_waterflow.pdf) 75 | - [Manipulating UVs through Color Data in Portal 2 (2011)](http://www.valvesoftware.com/publications/2011/gdc_2011_grimes_nonstandard_textures.pdf) 76 | - [WebGL Sky Rendering (2011)](http://codeflow.org/entries/2011/apr/13/advanced-webgl-part-2-sky-rendering/) 77 | - [WebGL Terrain and Grass Rendering (2011)](http://codeflow.org/entries/2011/apr/11/advanced-webgl-part-1/) 78 | - [Zephyros Anemos - WebGL Terrain Rendering](http://www.zephyrosanemos.com/) 79 | 80 | ## Time 81 | 82 | - [Fix your Timestep! (2006)](http://gafferongames.com/game-physics/fix-your-timestep/) 83 | - [deWiTTERS Game Loop (2009)](http://www.koonsolo.com/news/dewitters-gameloop/) 84 | - [Fixed Timestep Implementation (2012)](http://lspiroengine.com/?p=378) 85 | 86 | ## Post-Processing 87 | 88 | - [Post Processing in the Orange Box (2008)](http://www.valvesoftware.com/publications/2008/GDC2008_PostProcessingInTheOrangeBox.pdf) 89 | - [Aggregate G-Buffer Anti-Aliasing (2015)](http://graphics.cs.williams.edu/papers/AggregateI3D15/) 90 | - [Physically Based Real-Time Lens Flare Rendering (2011)](http://resources.mpi-inf.mpg.de/lensflareRendering/) 91 | - [John Chapman - Pseudo Lens Flare (2013)](http://john-chapman-graphics.blogspot.ca/2013/02/pseudo-lens-flare.html) 92 | - [Image Imperfections & Film Grain Post-Process FX (2013)](http://devlog-martinsh.blogspot.ca/2013/05/image-imperfections-and-film-grain-post.html) 93 | - [GLSL Cubic Lens Distortion (2011)](http://devlog-martinsh.blogspot.ca/2011/10/glsl-cubic-lens-distortion.html) 94 | - [Using Lookup Tables to Accelerate Color Transforms (2005)](http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter24.html) 95 | - [The Skylanders SWAP Force Depth-of-Field Shader (2013)](http://casual-effects.blogspot.ca/2013/09/the-skylanders-swap-force-depth-of.html) 96 | - [GPU Gems 3: Motion Blur as a Post-Processing Effect (2008)](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch27.html) 97 | - [GPU Gems 3: Practical Post-Process Depth of Field (2008)](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch28.html) 98 | 99 | ## Ray Tracing & Distance Functions 100 | 101 | - [Fast Soft-Shadowing on Dynamic Height Fields (2008)](http://www.iro.umontreal.ca/~derek/files/hfvisib.pdf) 102 | - [Per-Pixel Displacement Mapping with Distance Functions (2005)](http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter08.html) 103 | - [Raymarching Distance Fields (2013)](http://9bitscience.blogspot.ca/2013/07/raymarching-distance-fields_14.html) 104 | - [Screen Space Glossy Reflections (2015)](http://roar11.com/2015/07/screen-space-glossy-reflections/) 105 | 106 | ## Text, Lines & Shapes 107 | 108 | - [Higher Quality 2D Text Rendering (2013)](http://jcgt.org/published/0002/01/04/paper.pdf) 109 | - [Improved Alpha-Tested Magnification for Vector Textures (2007)](http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf) 110 | - [Drawing Lines is Hard (2015)](http://mattdesl.svbtle.com/drawing-lines-is-hard) 111 | - [Material Design on the GPU (2015)](http://mattdesl.svbtle.com/material-design-on-the-gpu) 112 | - [Polygon Rendering in Ejecta (2012)](http://phoboslab.org/log/2012/09/ejecta) 113 | - [Lecture: Polygon Triangulation (2014)](https://www.youtube.com/watch?v=qzX8zGMyl4Y&list=PLESnaHRvLM-72xIXf8dL2EOqN8UgAZMj7&index=16) 114 | - [GPU Gems 3: Rendering Vector Art on the GPU](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch25.html) 115 | - [Drawing Text with Signed Distance Fields in Mapbox GL (2014)](https://www.mapbox.com/blog/text-signed-distance-fields/) 116 | - [Multi-Channel SDF Text Rendering (2014)](https://lambdacube3d.wordpress.com/2014/11/12/playing-around-with-font-rendering/) 117 | - [SDF Rendering of Color Bit Planes (2013)](https://gpuhacks.wordpress.com/2013/07/08/signed-distance-field-rendering-of-color-bit-planes/) 118 | 119 | ## Non-Photorealistic Rendering 120 | 121 | - [Watercolor Inspired Non-Photorealistic Rendering for Augmented Reality (2008)](http://www.cc.gatech.edu/~turk/my_papers/npr_ar_2008.pdf) 122 | - [Advanced Real-Time Cel Shading in OpenGL (2013)](http://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S12/final_projects/hutchins_kim.pdf) 123 | - [Stroke-Based Rendering (2002)](http://web.cs.ucdavis.edu/~ma/SIGGRAPH02/course23/notes/S02c23_3.pdf) 124 | - [Hand Drawn Rendering (2012)](http://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S12/final_projects/mcmullan_ooi.pdf) 125 | - [Real-Time Ink Dispersion in Absorbent Paper (2005)](http://visgraph.cse.ust.hk/MoXi/moxi.pdf) 126 | - ["Nijimi" Rendering Algorithm for Creating Quality Black Ink Paintings (2003)](http://cgm.cs.ntust.edu.tw/steve/www/paper/Abstract/941129/CG2003/01214460.pdf) 127 | - [WYSIWYG NPR: Drawing Strokes Directly on 3D Models (2002)](http://gfx.cs.princeton.edu/pubs/Kalnins_2002_WND/wnpr-final.pdf) 128 | - [Stylized Rendering Using Samples of a Painted Image (2007)](http://graphics.csie.ncku.edu.tw/Paper_Video/TVCG/NPR_2007/TVCG_NPR_2007.pdf) 129 | 130 | ## Math 131 | 132 | - [Essential Mathematics for Games and Interactive Applications (2008)](http://www.amazon.ca/Essential-Mathematics-Games-Interactive-Applications/dp/0123742978) 133 | - [3D Math Primer for Graphics and Game Development, 2nd Ed (2011)](http://www.amazon.ca/Math-Primer-Graphics-Development-Edition/dp/1568817231) 134 | - [math-as-code (2015)](https://github.com/Jam3/math-as-code) 135 | - [CodingLabs: World, View, Projection Matrices](http://www.codinglabs.net/article_world_view_projection_matrix.aspx) 136 | - [Interactive Introduction to Noise Functions (2013)](http://www.redblobgames.com/articles/noise/introduction.html) 137 | 138 | ## Misc Optimizations 139 | 140 | - [Fast, Branchless Ray/Bounding Box Intersections (2011)](http://tavianator.com/fast-branchless-raybounding-box-intersections/) 141 | - [Combined Approximation of Fresnel Visibility (2015)](http://www.filmicworlds.com/2015/03/17/combined-approximation-of-fresnelvisibility/) 142 | - [Compact Normal Storage for Small G-Buffers (2009)](http://aras-p.info/texts/CompactNormalStorage.html) 143 | - [Normal Mapping without Precomputed Tangents (2013)](http://www.thetenthplanet.de/archives/1180) 144 | 145 | ## Collections 146 | 147 | - [SIGGRAPH Real-Time Rendering Publications](http://kesen.realtimerendering.com/) 148 | - [List of Realtime Global Illumination Techniques](https://extremeistan.wordpress.com/2014/05/11/realtime-global-illumination-techniques-collection/) 149 | - [David Arcila's Game Development Resources](https://game-development.zeef.com/david.arcila) 150 | - [awesome-opengl](https://github.com/eug/awesome-opengl) 151 | - [Readings on Physically Based Rendering](https://interplayoflight.wordpress.com/2013/12/30/readings-on-physically-based-rendering/) 152 | 153 | ## Bloggers 154 | 155 | - [Aras Pranckevičius](http://aras-p.info/blog/) 156 | - [Stephen Hill](http://blog.selfshadow.com/) 157 | - [Sébastien Lagarde](https://seblagarde.wordpress.com/) 158 | - [Angelo Pesce](http://c0de517e.blogspot.ca/) 159 | - [Yi-Wen Lin](http://blog.bongiovi.tw/) 160 | - [Brian Karis](http://graphicrants.blogspot.ca/) 161 | - [Christian Schüler](http://www.thetenthplanet.de/) 162 | - [Tom Forsyth](http://home.comcast.net/~tom_forsyth/blog.wiki.html) 163 | - [Michael Chang](http://mflux.tumblr.com/) 164 | - [Timothy Lottes](http://timothylottes.blogspot.ca/) 165 | - [John Chapman](http://john-chapman-graphics.blogspot.ca/) 166 | - [John Hable](http://www.filmicworlds.com/) (and his [older blog](http://filmicgames.com/)) 167 | - [Philp Rideout](http://prideout.net/blog/) 168 | - [Mikola Lysenko](http://0fps.net/) 169 | - [Adrian Courrèges](http://www.adriancourreges.com/blog/) 170 | - [Martins Upitis](http://devlog-martinsh.blogspot.ca/) 171 | - [Colin Barré-Brisebois](http://colinbarrebrisebois.com/) 172 | - [Rory Driscoll](http://www.rorydriscoll.com/) 173 | - [Real-Time Rendering Blog](http://www.realtimerendering.com/blog/) 174 | - [Mikael H Christensen](http://blog.hvidtfeldts.net/) 175 | - [Fabian Giesen](https://fgiesen.wordpress.com/) 176 | - [Iñigo Quilez](http://www.iquilezles.org/blog/) 177 | - [Ignacio Castaño](http://www.ludicon.com/castano/blog/) 178 | - [Jeremy Shopf](http://www.jshopf.net/) 179 | 180 | ## Tools 181 | 182 | - [Disney BRDF Viewer](http://www.disneyanimation.com/technology/brdf.html) 183 | - [cmft](https://github.com/dariomanesku/cmft) and [cmftStudio](https://github.com/dariomanesku/cmftStudio) - cubemap filtering tools 184 | - [Modified AMD Cubemapgen](https://seblagarde.wordpress.com/2012/06/10/amd-cubemapgen-for-physically-based-rendering/) - cubemap filtering tool 185 | - [preview-dds](https://github.com/Jam3/preview-dds) - minimal cross-platform DDS previewer 186 | - [CrazyBump](http://www.crazybump.com/) 187 | 188 | ## License 189 | 190 | MIT, see [LICENSE.md](http://github.com/mattdesl/graphics-resources/blob/master/LICENSE.md) for details. 191 | --------------------------------------------------------------------------------