Sign in

Mikkel Gjoel

@gjoel.bsky.social
1.1K followers 305 following 15 posts

Chair Raving Graphics Programmer loopit.dk/publications shadertoy.com/user/hornet

PostsRepliesMedia
Reposted by Mikkel Gjoel
Arseny Kapoulkine @zeux.io · 16h
New blog post! In "Billions of triangles redux" we take another stab at improving various parts of clustered level of detail pipeline to make Zorah smaller and nicer! zeux.io/2026/09/30/b...
14411
Reposted by Mikkel Gjoel
Soufiane KHIAT @soufianekhiat.bsky.social · 05/09/2026
Alwan 2.0.0 is out. Colour science in pure C11, first public release. Almost a year! No dependencies. f32 and f64 in one binary. A core that compiles unchanged as C, HLSL, GLSL and Halide. MIT. github.com/soufianek... 1/28
22412
Reposted by Mikkel Gjoel
Arseny Kapoulkine @zeux.io · 25/09/2026
meshoptimizer 1.3 is out! Featuring a new voxel remesher, support for normal generation, several simplification improvements and various optimizations and fixes. GitHub stars and reposts appreciated! meshoptimizer was started 10 years ago; excited for the years to come! github.com/zeux/meshopt...
29426
Reposted by Mikkel Gjoel
Morten Vassvik @vassvik.bsky.social · 20/08/2026
Rational photometric blackbody radiation approximations: www.shadertoy.com/view/ffcSRl
1132
Reposted by Mikkel Gjoel
ceruleite.bsky.social @ceruleite.bsky.social · 15/08/2026
Slides for SIGGRAPH 2026 Advances in Real-Time Rendering in Games course's talk on Variable Rate Ray Tracing in Call of Duty: Modern Warfare 4 by Michał Olejnik from Activision are now online - enjoy!! advances.realtimerendering.com/s2026/index....
14724
Reposted by Mikkel Gjoel
ceruleite.bsky.social @ceruleite.bsky.social · 14/08/2026
Slides for SIGGRAPH 2026 Advances in Real-Time Rendering in Games course's talk on Adaptive Tessellation and Subdivision by John Hable are now online - enjoy!! advances.realtimerendering.com/s2026/index....
0167
Reposted by Mikkel Gjoel
ceruleite.bsky.social @ceruleite.bsky.social · 03/08/2026
Slides for SIGGRAPH 2026 Advances in Real-Time Rendering in Games course's talk on SPEEDING UP PATH TRACING VIA ORCA (ONLINE RADIANCE CACHE ACCELERATION) by @jontology2.bsky.social from EA SEED are now online - enjoy!! advances.realtimerendering.com/s2026/index....
14217
Reposted by Mikkel Gjoel
ceruleite.bsky.social @ceruleite.bsky.social · 03/08/2026
Slides for SIGGRAPH 2026 Advances in Real-Time Rendering in Games course's talk on SMOLDER — REAL-TIME VOLUMETRIC EFFECT RENDERING IN GLACIER AND 007 FIRST LIGHT by @lexdev.net from IO Interactive are now online - enjoy!! advances.realtimerendering.com/s2026/index....
05419
Reposted by Mikkel Gjoel
Todd Vaziri @tvaziri.com · 18/07/2026
IT'S HERE AND IT'S SPECTACULAR "Nolan's CGI is really just Invisible CGI", by Jonas Ussing @themovierabbithole.bsky.social youtu.be/AFLcP-t0-kI
youtu.be
NOLAN'S CGI is really just INVISIBLE CGI ("no CGI" part 6)
YouTube video by The Movie Rabbit Hole
727984
Reposted by Mikkel Gjoel
Arseny Kapoulkine @zeux.io · 30/06/2026
meshoptimizer 1.2 is out! Featuring support for tangent generation, a significantly faster vertex decoder for Intel/AMD CPUs, several new smaller algorithms (cluster position compression, triangle filtering, clusterlod BVH) and more. GitHub stars and boosts appreciated! github.com/zeux/meshopt...
07521
Reposted by Mikkel Gjoel
Pekka Väänänen @pekkavaa.bsky.social · 29/06/2026
A new article: Revisiting Yliluoma’s ordered dither algorithm 30fps.net/pages/revisi... It's a deep dive to a single "color selection algorithm" used for ordered dithering. Nothing groundbreaking but I did uncover a neat simplified version that works OK. It's technical but with visual examples.
A graphic showing a side-by-side comparison of three versions of the same image, each processed with a different dithering algorithm.
The image consists of three vertical panels arranged horizontally, with a text summary located at the bottom. Each panel features a stylized bird from the Big Buck Bunny animated short. A yellow beak and large eyes, sitting on a branch. A blue-to-pink gradient sky and green leaves in the background.

The three panels:

Yliluoma's 2nd dithering algorithm: Dithered result with the most noise.
EMA-Constant: Significantly smoother result.
Knoll (10% strength): Smooth result similar to EMA-Constant.

Text at the bottom:
Summary: This article discusses Yliiluoma's 2011 ordered dither algorithm (left), explains its internals in greater detail than other treatments, presents new simplified variants (middle), and compares the results to a state-of-the-art algorithm (right). Source code is included at the end.
A 2x2 grid comparing four versions of the same pixel-art scene from the 1999 Chrono Cross video game: three characters in a detailed interior room with curtains and windows. Each version uses a different dithering technique.

The images are labeled (top-left to bottom-right): "EMA-Exact", "EMA-Constant", "Knoll (20% strength)", and "Knoll (10% strength)".
22612
Mikkel Gjoel @gjoel.bsky.social · 15/06/2026
390
Reposted by Mikkel Gjoel
Jiayin Cao @jiayincao.bsky.social · 08/06/2026
I'm happy to share my latest blog post. In this post, I document how I implemented forward-mode automatic differentiation in my custom shading language and used it to drive mipmap selection in my offline renderer. agraphicsguynotes.com/posts/proced...
agraphicsguynotes.com
Procedural UV Derivatives Evaluation in SORT Renderer
In this post, I want to talk about a topic I have been meaning to write about for quite a few years: texture UV derivatives evaluation in my offline renderer, SORT (Simple Open Source Ray Tracer), whi...
0306
Reposted by Mikkel Gjoel
Pekka Väänänen @pekkavaa.bsky.social · 01/06/2026
A new article on my website about a small thing that has bothered me for a long time: Should you normalize RGB values by 255 or 256? 30fps.net/pages/255-vs...
A number line where 3-bit integers in the range [0..7] being mapped to real numbers with two approaches: the standard (top) and alternative (bottom).

On the X-axis we’ve got a number line and the locations of brown circles on it represent the decoded floating-point values. The numbers inside are the integer inputs. Each integer has arrows pointing to it; these show a range of floating-point values that round to it. I’ll call these ranges “bins” in the rest of this article.
47118
Reposted by Mikkel Gjoel
Yining Karl Li @yiningkarlli.bsky.social · 23/05/2026
There's a new paper out in JCGT by @jamportz.bsky.social et al. that proposes a super simple modification of existing microfacet models to implement a retroreflection model. What's interesting is that although insanely simple, the model fits measured data pretty well! jcgt.org/published/00...
28817
Reposted by Mikkel Gjoel
Bent Stamnes @gloom303.com · 19/05/2026
I'm looking to hire a full-time 3D artist with Cinema4D/Blender/Octane/Redshift experience with a strong portfolio. The position is in the UK and you must live the most a few hours outside of London - sorry, but there are reasons for this. If you or someone you know are interested, DM me!
266
Reposted by Mikkel Gjoel
Yining Karl Li @yiningkarlli.bsky.social · 13/05/2026
Here's an awesome new blog post by Maxime Heckel on rendering realistic skies and atmospheres. There's a ton of really cool interactive widgets illustrating each of the steps; I highly recommend giving it a read and giving the interactive widgets a try! blog.maximeheckel.com/posts/on-ren...
blog.maximeheckel.com
On Rendering the Sky, Sunsets, and Planets - The Blog of Maxime Heckel
This article explores how to render realistic skies and atmospheres in real time in the browser with shaders, from simple sky domes, to entire planets using shaders, raymarching, Rayleigh and Mie scat...
25816
Reposted by Mikkel Gjoel
nicebyte @nicebyte.bsky.social · 12/04/2026
INTRODUCTION TO SPHERICAL HARMONICS FOR GRAPHICS PROGRAMMERS finally done. gpfault.net/posts/sph.html
gpfault.net
Introduction to Spherical Harmonics for Graphics Programmers
1027886
Reposted by Mikkel Gjoel
Mike Turitzin @miketuritzin.bsky.social · 10/04/2026
At long last, the Teardown talk from the 2025 Graphics Programming Conference has been posted 🎉 youtube.com/watch?v=IM1D... (as well as another drop of some other great-looking stuff, check the channel)
youtube.com
Raytracing Voxels in Teardown and Beyond
YouTube video by Graphics Programming Conference
06813
Reposted by Mikkel Gjoel
Arseny Kapoulkine @zeux.io · 02/04/2026
meshoptimizer 1.1 is out! github.com/zeux/meshopt... Featuring two new major features, meshlet topology compression and opacity micromaps, as well as a few smaller features and improvements! More information in the infographic and release above :) Boosts and repository stars are welcome!
510335
Reposted by Mikkel Gjoel
Rune Skovbo Johansen @runevision.bsky.social · 30/03/2026
My erosion filter is out! Video, blog post, and shader source. It emulates erosion without simulation, so it's fast, GPU friendly, and trivial to generate in chunks. Explainer video: www.youtube.com/watch?v=r4V2... Companion blog post: blog.runevision.com/2026/03/fast... #ProcGen #vfx #GameDev
17557169
Mikkel Gjoel @gjoel.bsky.social · 27/03/2026
I am not sure I can overstate how useful this tool is. Not sure if your game is paging out GPU-memory to system-memory? Well now you know :) github.com/jonasmr/demo...
image showing demo tracker in use, in an obvious case where one program is using more GPU than the machine has.
15417
Reposted by Mikkel Gjoel
Kostas Anagnostou @kostasanagnostou.bsky.social · 05/03/2026
Graphics Programming Conference 2025 presentation recordings are now online: www.youtube.com/watch?v=iRVL...
youtube.com
Battlefield 6: Pushing visual fidelity while optimizing for all hardware
YouTube video by Graphics Programming Conference
04814
Reposted by Mikkel Gjoel
Dominik Lazarek @domlaz.bsky.social · 05/03/2026
Our GPC 2025 talks are up on YT now! youtu.be/fXakIV1OFes?... youtu.be/mvCoqCic3nE?...
youtu.be
Visibility Buffer and Deferred Rendering in DOOM: The Dark Ages
YouTube video by Graphics Programming Conference
03415
Reposted by Mikkel Gjoel
Xor @xordev.com · 10/02/2026
Here are some techniques I discovered through 14 years of shader programming:
422648
Reposted by Mikkel Gjoel
Morten Vassvik @vassvik.bsky.social · 03/02/2026
A colleague sent me this: www.youtube.com/watch?v=8jVo... No further comments needed, it's **very** good. I've seen some of his videos in the past, but I missed this one. Glad I saw it.
youtube.com
Pushing Simulation to the Limit to Find Order in Chaos
YouTube video by Drew's Campfire
12510
Reposted by Mikkel Gjoel
Brian Karis @briankaris.bsky.social · 02/02/2026
I'm finally writing up how Nanite Tessellation works. The first few blogs posts are up. More will be coming. graphicrants.blogspot.com/2026/02/nani...
graphicrants.blogspot.com
Nanite Tessellation
Nanite Tessellation, aka Nanite Dynamic Tessellation, aka Nanite Dynamic Displacement was the next major feature I worked on after Nanite it...
116250
Reposted by Mikkel Gjoel
Alan Wolfe @demofox.bsky.social · 20/01/2026
This post shows how to get different constants for the R2 low discrepancy sampling sequence which have the same properties, but are smaller valued, so behave better in floating point at high sample counts. www.martysmods.com/a-better-r2-...
0237
Reposted by Mikkel Gjoel
jb @jbakergraphics.bsky.social · 09/01/2026
really digging this for a light config UI
1212
Reposted by Mikkel Gjoel
Philip Hammer @phammer.bsky.social · 06/01/2026
Slides are up for our talk at the Graphics Programming Conference (GPC), with @domlaz.bsky.social and myself. #GPC25 #DOOM graphicsprogrammingconference.com/archive/2025...
graphicsprogrammingconference.com
Graphics Programming Conference
The Graphics Programming Conference is a conference for graphics programmers, from student to industry veteran, taking place in November in Europe.
0359
Reposted by Mikkel Gjoel
ceruleite.bsky.social @ceruleite.bsky.social · 29/12/2025
#SIGGRAPH2025 Advances in Real-Time Rendering in Games course talk recording of "MEGALIGHTS: STOCHASTIC DIRECT LIGHTING IN UNREAL ENGINE 5" by @knarkowicz.bsky.social‬ and @tiagocostav.bsky.social‬ from @epicgames.alt.store.ap.brid.gy is now online: youtu.be/dmmN8_c8Tb0?... Enjoy!
youtu.be
SIGGRAPH 2025 Advances in RT Rendering: Megalights: Stochastic Direct Lighting in Unreal Engine 5
YouTube video by SIGGRAPH Advances in Real-Time Rendering
06116
Reposted by Mikkel Gjoel
ceruleite.bsky.social @ceruleite.bsky.social · 29/12/2025
#SIGGRAPH2025 Advances in Real-Time Rendering in Games course talk recording of "FAST AS HELL: IDTECH8 GLOBAL ILLUMINATION" by @idsoftwaretiago.bsky.social from id Software is now online: youtu.be/VTrdeqMMMK0?... Enjoy!
youtu.be
SIGGRAPH 2025 Advances in Real-Time Rendering in Games: Fast as Hell: idTech8 Global Illumination
YouTube video by SIGGRAPH Advances in Real-Time Rendering
04517
Reposted by Mikkel Gjoel
Christoph Peters @momentsingraphics.bsky.social · 17/12/2025
A presentation recording (ca. 10 minutes) and the PDF slides for my transmittance estimation paper are available now: momentsingraphics.de/SiggraphAsia...
0246
Reposted by Mikkel Gjoel
Alan Wolfe @demofox.bsky.social · 26/12/2025
Blue noise for object placement youtu.be/24EmhUJeIAs?...
youtu.be
Blue Noise Made My Game Feel… Alive? (Outer Wilds-like Devlog)
YouTube video by Helvetica Scenario
0479
Reposted by Mikkel Gjoel
Sebastian Aaltonen @sebaaltonen.bsky.social · 16/12/2025
My "No Graphics API" blog post is live! Please repost :) www.sebastianaaltonen.com/blog/no-grap... I spend 1.5 years doing this. Full rewrite last summer and another partial rewrite last month. As Hemingway said: "First draft of everything is always shit".
sebastianaaltonen.com
No Graphics API — Sebastian Aaltonen
Graphics APIs and shader languages have significantly increased in complexity over the past decade. It’s time to start discussing how to strip down the abstractions to simplify development, improve pe...
19475194
Reposted by Mikkel Gjoel
Ritesh Oedayrajsingh Varma @rovarma.bsky.social · 11/12/2025
New article! What do you do when profiling your code shows the slowdown isn't in your code, but deep in the kernel? Why, you grab the kernel source and go spelunking. How a routine profiling session turned into a Linux kernel patch: rovarma.com/articles/fro...
rovarma.com
From profiling to kernel patch: the journey to an eBPF performance fix | Ritesh Oedayrajsingh Varma
A story about how an innocent profiling session led to a change to the Linux kernel that makes eBPF map-in-map updates much faster.
13012
Reposted by Mikkel Gjoel
Alan Wolfe @demofox.bsky.social · 09/12/2025
Real-Time Polygonal-Light Shading with Linearly Transformed Cosines Adam Badke implemented LTC in Gigi and it is now in the Gigi browser. Adam's Repo: github.com/b1skit/LTCAr... LTC paper: eheitzresearch.wordpress.com/415-2/
A rendering of the LTC technique implemented in GigiThe render graph of the LTC implementationThe Gigi viewer showing the LTC implementation running
0395
Reposted by Mikkel Gjoel
Arseny Kapoulkine @zeux.io · 08/12/2025
After nine years of development, meshoptimizer has reached its first major version, 1.0! This release focuses on improvements in clusterization and simplification as well as stabilization. Here's a release announcement with more details on past, present and future; please RT! meshoptimizer.org/v1
meshoptimizer.org
🐇 meshoptimizer v1.0
Mesh optimization library that makes meshes smaller and faster to render
924975
Reposted by Mikkel Gjoel
Kimmo Lahtinen @gimblll.com · 18/11/2025
This is Sektori! A twin-stick shooter I've been making (and documenting the journey) since April 2021. And it finally launched TODAY on Steam, PS5 and Xbox! Here's a fresh launch trailer, all shares highly appreciated. More game info in replies. #indiegame #ps5 #xbox #steam #indiedev #gamedev
25352154
Reposted by Mikkel Gjoel
Adam Sawicki @asawicki.info · 25/11/2025
All Sources of DirectX 12 Documentation - a new post on my blog asawicki.info/news_1794_al...
asawicki.info
All Sources of DirectX 12 Documentation
0329
Reposted by Mikkel Gjoel
Inigo Quilez @iquilezles.bsky.social · 25/11/2025
Here's some cute bounding box functions for 2D shapes. A longer list here: iquilezles.org/articles/bbo...
325247
Reposted by Mikkel Gjoel
Christoph Peters @momentsingraphics.bsky.social · 06/11/2025
RGB rendering is founded on lies and perpetuated by misconceptions about the practicality of spectral rendering. My new blog post series describes a spectral GPU path tracer. Part 1 focuses on how to make it work with existing RGB assets. momentsingraphics.de/SpectralRend...
37720
Reposted by Mikkel Gjoel
Guillaume Boissé @gboisse.bsky.social · 05/11/2025
New blog post! Behind the scenes of some of the techniques involved in making our last PC demo 💫 gboisse.github.io/posts/this-i...
111438
Reposted by Mikkel Gjoel
Arseny Kapoulkine @zeux.io · 30/09/2025
New blog post! In "Billions of triangles in minutes" we'll walk through hierarchical cluster level of detail generation of, well, billions of triangles in minutes. Reposts welcome! zeux.io/2025/09/30/b...
116655
Reposted by Mikkel Gjoel
ceruleite.bsky.social @ceruleite.bsky.social · 30/09/2025
#SIGGRAPH2025 Advances in Real-Time Rendering in Games course talks slides posted: "Adaptive Voxel-Based Order-Independent Transparency" shipping in the upcoming Call of Duty: Black Ops 7 by Michal Drobot from Activision Central Tech is now online: advances.realtimerendering.com/s2025/index....
08122
Reposted by Mikkel Gjoel
Xor @xordev.com · 17/09/2025
mini.gmshaders.com/p/tonemaps
mini.gmshaders.com
GM Shaders Mini: Tonemaps
How to conquer washed out lights and ugly color banding
0386
Reposted by Mikkel Gjoel
Ari Arnbjörnsson @flassari.bsky.social · 11/09/2025
Profile.
8795153
Reposted by Mikkel Gjoel
Christoph Kubisch @pixeljetstream.bsky.social · 10/09/2025
Anpther major update to our cluster lod ray tracing sample. Zorah scene available as glTF raw.githubusercontent.com/nvpro-sample... BLAS caching github.com/nvpro-sample... BLAS merging github.com/nvpro-sample... Special thanks to Adam Marrs, Pyarelal Knowles for ideas and Chris Perrella for zorah.
Computer graphics image of a classical building with intricate geometric details in ornaments. Rendering and scene statistics
0459
Reposted by Mikkel Gjoel
mjp @mjp123.bsky.social · 08/09/2025
I've got a new blog post for all of you fine folks! It runs through the additions to D3D12 since it was released, and finishes up with some of the things that have changed for me personally in my code. (And yes it's really been 10 years 👴). therealmjp.github.io/posts/ten-ye...
therealmjp.github.io
Ten Years of D3D12
For those of us that have been using it from the start, it can be hard to believe that Direct3D 12 has been around for nearly ten years now. Windows 10 was released on July 29th 2015, and D3D12 has be...
715153
Reposted by Mikkel Gjoel
idsoftwaretiago.bsky.social @idsoftwaretiago.bsky.social · 26/08/2025
Slides from my SIGGRAPH 2025 and CEDEC 2025 talks “Fast as Hell: idTech 8 Global Illumination”, are now publicly available through the Advances in Real-Time Rendering in Games course. Lecture recordings will be available soon on the course's YouTube channel.
110027