🎉 Celebrating 25 Years of GameDev.net! 🎉
Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!
![Graphics Programming weekly - Issue 106 — November 10, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-106/histogram_blending.png&key=3b913b2f4d5839be2d0613646df06dc6bb079863a714326d00128cefc6c714ba)
On Histogram-Preserving Blending for Randomized Texture Tiling
- the paper presents a modification of histogram-preserving tiling algorithm discussed in issue 45
- it removes the lengthy 3D optimal transport preprocessing step and replaces it with per-channel lookup table…
![Graphics Programming weekly - Issue 105 — November 3, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-105/MeshShaderPipeline.png&key=bf1b11eb2eb4918b0e8a914b6c09cb44aa8c5357ffa2464d72fe315d49676770)
Dev Preview of New DirectX 12 Features
- the post introduces new D3D12 features available with latest win10 preview version
- DirectX Raytracing Tier 1.1 introduces ExecuteIndirect, dynamic raytracing PSO additions and Inline Raytracing
- Inline Raytracing allows RayQuery to…
![Graphics Programming weekly - Issue 104 — October 27, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-104/Gamma-2.2_sRGB_CCTFs.png&key=01b9641e522edc3f453a9bb3dfc134c858c1e5221b2f9dfcf7b314757c7388c0)
srgb eotf: pure gamma 2.2 function or piece-wise function?
- the article presents the different meaning of the term gamma in different color contexts
- suggest to always use a piece-wise sRGB function
![Graphics Programming weekly - Issue 103 — October 20, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-103/load_store_vulkan.png&key=e5a4ed48952e3acd8ebc57bbe83bcfbd22596258afc77aa2f90b6ee2d82fb5a6)
Vulkan Mobile Best Practice: Picking the Most Efficient Load/Store Operations
- the article describes how the architecture of mobile GPUs is different from PC
- shows why load/store operations have a significant impact on mobile
- present a demo application to profile the va…
![Graphics Programming weekly - Issue 102 — October 13, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-102/botd_rock_detail.png&key=76f0338deaaa6de2109941ab8fd641bd4ccf79abdc0395324fe00c4c27b90d8b)
Surface Gradient Based Bump Mapping Framework
- a mathematical framework for more consistent layering of bump/normal maps using linear surface gradients
- shows the problems with reliance on vertex level tangent space in existing techniques
- how to express existing methods …
![Graphics Programming weekly - Issue 101 — October 6, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-101/rad_faces.jpg&key=7adf53b14b805ec942c94776ec46cfed5043fde4e9f50ed1008927177142d482)
An Introduction To Real-Time Subsurface Scattering
- in-depth article that provides an overview of subsurface scattering techniques used for games
- presents the most common techniques found in games, Texture-Space Diffusion, Screen-Space Subsurface Scattering, and Pre-int…
![Graphics Programming weekly - Issue 100 — September 29, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-100/hair_frostbite.png&key=daca642d34ef4b745070b94fe02729a44c9a414699a3dd85895143c42b87fc48)
Strand-based Hair Rendering in Frostbite
- the presentation shows the new WIP hair rendering system
- a realtime system that is based on hair stands instead of cards
- strands are rasterized into shadow and deep opacity maps
- for performance reasons, a visibility buffer is wr…
![Graphics Programming weekly - Issue 99 — September 22, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-99/normal_discontinuity_2.png&key=d1fb63bd5eb4e4978812f94fe69450414ad9f1d01496df64500f6c1626ad2930)
Improved normal reconstruction from depth
- the article presents what kind of artifacts happen when reconstructing normals from world space positions
- suggests how to reduce the artifacts by selecting triangles that are most likely to have originated from the same object …
![Graphics Programming weekly - Issue 98 — September 15, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-98/gears5.jpg&key=5ad257c34435a08a7a9334ebfb9122afb69e34345dbdbf775a03727443414b07)
The making of Gears 5: how the Coalition hit 60fps - and improved visual quality
- interview discussing the details of the Gear 5 implementation
- all post-processing and UI rendering is done post-upscaling in the output resolution
- using Relaxed Cone Stepping for extra det…
![Graphics Programming weekly - Issue 97 — September 8, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-97/CareerGuide.png&key=5bc97c0bbcf61df405f55e49368e5eff04bbea35742028406f0806efcc4183d4)
Engineering Career Guide [LEAKED]
- guide by Roblox for the career development of rendering engineers
- what jobs are required, how to learn and personally take control of directed development
![Graphics Programming weekly - Issue 96 — August 04, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-96/siggraph_2019.jpg&key=71ce1caceca354faa537384738ed164f223899029c4708ffb54c7051106805b2)
Advances in Real-Time Rendering in Games - Siggraph 2019
- slides for the Advances in Real-Time Rendering in Games are starting to be released
![Graphics Programming weekly - Issue 95 — July 28, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-95/RayTracingSiggraph2019.png&key=d460c550a97448d6d884ce4b1b90c6d5ba32db24da208b13d883d55ecc266adb)
Are we done with Ray Tracing?
- slides for Siggraph 2019 course
- talking about the state of ray-tracing
- state-of-the-art in hardware and software developments
- provides a history and vision of where ray-tracing in games is going to develop
![Graphics Programming weekly - Issue 94 — July 21, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-94/bvh_heatmap.png&key=2d4ec50cabe625abc21a2b259fca3cecf6039947b9c2062d4781d6ca8b7fc94b)
Axis-Aligned Bounding Tetrahedra and Octahedra for Ray Tracing Bounding Volume Hierarchies
- presents Axis-Aligned-Bounding-Tetrahedron (AABT) and Axis-Aligned-Bounding-Octahedron (AABO) as alternative approaches to axis-aligned Bounding Boxes (AABB) to build accelerat…
![Graphics Programming weekly - Issue 93 — July 14, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-93/multithreaded_command_buffer.png&key=3e4746ee38d190b7b0e9f42f6a8a45fcb7c2753b340f550c472db5c6f638e288)
Command buffers for multi-threaded rendering
- explains a renderer architecture that separates command generation from execution
- commands have an associated sort key that is used to determine the execution order
- shows how to handle materials, resource updates and some ad…
![Graphics Programming weekly - Issue 92 — July 7, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-92/SpectralPrimaryDecomposition.png&key=454a4e0800ac21300579493f8f95eed6361b125a7f175397852aab7596dde8b1)
Spectral Primary Decomposition for Rendering with sRGB Reflectance
- the paper presents a new technique that allows the generation of spectral data from sRGB source data
![Graphics Programming weekly - Issue 91 — June 30, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-91/nested_ice.0.jpg&key=a9f4824ec8be9714f0fbe7948390fef21a56709bfee4ef4a0c46b44458fa2e0b)
Nested Dielectrics
- presents a technique that improves the handling of nested dielectrics in ray-tracing
- example for nested dielectrics is “ice cubes in a drink in a glass”
- tracking entering / existing geometry + priority system to handle overlap cases
![Graphics Programming weekly - Issue 90 — June 23, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/fs2_gamut_ab_view.png&key=4fadf926113e7a5239c713cce9ecc56e665b72d1317dfaf846d970825f933308)
Using AMD FreeSync 2 HDR: Gamut Mapping
- explains gamut mapping techniques
- difference perceptual and clipping techniques
- shows how gamut mappings are derived
![Graphics Programming weekly - Issue 89 — June 16, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-89/spherical_caps_importance_sampling.png&key=f3c6ead70c4785f58a9fc1deffe41401ac7f7b2664cbd4fb4b3a432ce5e48e21)
Sampling projected spherical caps with multiple importance sampling
- explains how to combine sampling of projected spherical caps and multiple importance sampling
- source code provided
![Graphics Programming weekly - Issue 88 — June 9, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-88/triangles-are-precious.png&key=ef7d779a2aa23ae72487169e4d8fc805316d17f442be7d59b4823f8926e42f41)
Triangles Are Precious - Let's Treat Them With Care
- the presentation explains the stages a triangle is passing through while being processed for rendering
- starts with a brief look at the software layers
- provides more details on lower-level hardware layers
![Graphics Programming weekly - Issue 87 — June 2, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-87/unity_raytracing.png&key=3b59974b510e5682a74faca471380c148a4bc1f74405d9a7904e1df6d139a3fc)
Leveraging Ray Tracing Hardware Acceleration In Unity
- presents how ray tracing is integrated into the High Definition Render Pipeline (HDRP)
- a brief overview of the Unity raytracing API integration
- shows how different effects have been implemented
- including optimizatio…
![Graphics Programming weekly - Issue 86 — May 26, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-86/article_database.jpg&key=971b74d33ff9d1f82aaf5e66b3f34390f52a0827e455aff227352224f43aa6af)
Graphics Programming Weekly - Database
- database with articles that were previously covered in Graphics Programming Weekly
- central location that aims to make it easier to discover/rediscover graphics programming information
![Graphics Programming weekly - Issue 85 — May 19, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/game_shaders_for_beginners.png&key=d74e7f1afe6475c91db852f46d4ed6aaeca6de077b08f1a0e1fe2ee2c6f14da4)
3D Game Shaders For Beginners
- shader tutorial aimed at beginners that teaches shader fundamentals using Panda3D and GLSL
- starting with the basics of coordinate spaces, and GLSL shaders
- shows how to implementing texturing, lighting, normal mapping
- additionally outlining…
![Graphics Programming weekly - Issue 84 — May 12, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-84/horse_dual_triangle.png&key=4d04dca11c009487262e7d394dc396e466041409781bfff1512b23cbebb97f1b)
Axis-Aligned Bounding Octahedra and The 7-Sided AABB
- describes an alternative bounding structure that is based around axis aligned triangles
- starts with 2D example and extends the concepts to 3D
- comparison against other bound object representations
![Graphics Programming weekly - Issue 83 — May 5, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-83/vulkan.png&key=e9296cecfa2536580344d0ecdacb472959b490e3721d0a4a6442ccbb1bc09290)
A tour of Granite’s Vulkan backend – Part 6
- presents how Granite deals with vkPipeline management
- API designed for user convenience
- hashmaps used for control of the different state combinations
- pre-warmed with information from previous runs using Fossilize
![Graphics Programming weekly - Issue 82 — April 28, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-82/granite.png&key=8f1dae77d912e0af2a093be907bbd74a15a82c5b5a1bf43ea9a7083d26c661c6)
A tour of Granite’s Vulkan backend – Part 4
- shows the window system abstraction
- can be used to render to a window or into an offscreen render target
- how to allocate temporary data that is only required for the duration of the frame
![Graphics Programming weekly - Issue 81 — April 21, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/marbles.png&key=047dcf2feb3884d6312d10695594771f97b9df76c9813ad6cddda40a20eeff08)
Write-up: Magical Marbles
- explains how to create a layering parallax effect to simulate the inside of a marble using ray marching
![Graphics Programming weekly - Issue 80 — April 14, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-80/vulkan_gpu_debug.png&key=2c366b33bcb647be65681fae947e43e2f4c57d3690b952628f46bfe2eb474adb)
Debugging VK_ERROR_DEVICE_LOST with Nvidia Device Diagnostics
- vulkan extension that allows progress markers to be inserted into the Vulkan command stream
- these can be used to detect the range of draw commands that have caused a GPU device error
- a short overview of how …
![Graphics Programming weekly - Issue 79 — April 7, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-79/3dfx_Voodoo.png&key=706cba8fcb995d0517271f0452c3b87051894cc0795238ba3aa01a1ae18a9748)
Missed the content for March? Don’t worry. Monthly summaries are availbale on my patreon: https://www.patreon.com/jendrikillner
THE STORY OF THE 3DFX VOODOO1- provides a look at the 3DFX VOODOO1 GPU from the mid-90s
- shows how the hardware and rendering pipeline was d…
![Graphics Programming weekly - Issue 78 — March 31, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/bunny-reflecting.jpg&key=c862510b7d6a7875ab6c244f398479c2d518609911c168f88222a4f48de053f0)
Missed the content for March? Don’t worry. The summary is now availbale on my patreon: https://www.patreon.com/jendrikillner
GPU Path Tracing in Unity – Part 3- part 3 of tutorial series in building a path tracer in Unity
- shows how to trace a ray against a triangle a…
![Graphics Programming weekly - Issue 77 — March 17, 2019](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-77/wow_d3d12.jpg&key=0795e6ab6c91c676e9bb9bda513b100b913c70d7bb244b53a70ee7a0d73dbf06)
There will be no newsletter next week. I am at GDC all week. Will be returning as usual on April 1st.
World of Warcraft uses DirectX 12 running on Windows 7- the latest update adds support to run the D3D12 game on windows 7
- user mode d3d12 implementation without win1…
Advertisement
Popular Blogs
Advertisement