Erik Jansson's Avatar

Erik Jansson

@caffeineviking.net

Senior Graphics Programmer at Remedy Entertainment's Northlight rendering team. I post about real-time computer graphics, GPUs and code optimization. Fantasy and sci-fi book aficionado and anime/manga connoisseur. 日本語OK!

576
Followers
403
Following
10
Posts
25.10.2024
Joined
Posts Following

Latest posts by Erik Jansson @caffeineviking.net

Yup, reversing orthographic projection doesn't give better depth precision like perspective projection. It does shuffle around the bits enough to change the results, and in the case of dir. lights it depends a bit on the setup if it's for the better or not. We also changed it for consistency's sake.

24.12.2025 09:40 👍 3 🔁 0 💬 0 📌 0
Preview
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...

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".

16.12.2025 18:51 👍 466 🔁 191 💬 19 📌 12
CONTROL Resonant – Announcement Trailer | The Game Awards 2025
CONTROL Resonant – Announcement Trailer | The Game Awards 2025 Explore a warped Manhattan on the brink of paranatural annihilation in this thrilling action-adventure RPG. Unleash the extraordinary powers of Dylan Faden as he fights for his humanity and survival…

Explore a warped Manhattan on the brink of paranatural annihilation in CONTROL Resonant, a thrilling action-adventure RPG.

Watch the announcement trailer: youtu.be/WhQm-ExRz60

CONTROL Resonant is out in 2026 on PlayStation 5, Xbox Series X|S, PC, and Mac.

#CONTROLResonant

12.12.2025 02:20 👍 1477 🔁 591 💬 75 📌 217
🐇 meshoptimizer v1.0 Mesh optimization library that makes meshes smaller and faster to render

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

08.12.2025 16:56 👍 248 🔁 76 💬 9 📌 1

On my way to GPC together with some other fine folks from Remedy. Looking forward to meeting you all again to talk about graphics and drink Texels!

17.11.2025 13:04 👍 21 🔁 1 💬 3 📌 0
Post image

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...

30.09.2025 17:40 👍 167 🔁 55 💬 1 📌 4
Preview
Anisotropic Scaling in Indiana Jones and the Great Circle and DOOM: The Dark Ages While working on Indiana Jones and the Great Circle and later DOOM: The Dark Ages, it became apparent that both titles are particularly sensitive to anisotropic sampling cost on the Xbox Series con…

A little something I've been meaning to write for a while martinfullerblog.wordpress.com/2025/09/26/a...

Thank you to the awesome people at Machine Games and id Software!

26.09.2025 09:31 👍 64 🔁 19 💬 0 📌 1
Preview
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...

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...

08.09.2025 00:49 👍 152 🔁 53 💬 7 📌 3

Great Siggraph 2025 presentation of Gran Turismo's tonemapping pipeline, which also includes a fantastic introduction to light perception and tonemapping, its origins and how it evolved over the years with display technology, recommended read: blog.selfshadow.com/publications...

14.08.2025 20:35 👍 107 🔁 33 💬 1 📌 3
Post image

Debugging AMD-Specific Issues with Driver Experiments Tool - new article on my blog.
asawicki.info/news_1788_de...

30.07.2025 16:13 👍 22 🔁 3 💬 2 📌 0
Legendary Software Rendering Era | Sean Barrett
Legendary Software Rendering Era | Sean Barrett YouTube video by Wookash Podcast

For that weird, narrow segment of technically-minded programmers who want to know how we programmed 3D graphics in the 90s and also want to know about 80% of the stuff I programmed before RAD, I sat down for a 5 hour interview on the Wookash Podcast.

www.youtube.com/watch?v=T1tX...

19.07.2025 16:20 👍 170 🔁 44 💬 7 📌 3
Post image

All REAC 2025 content is LIVE! Enjoy enginearchitecture.org/2025.htm

03.07.2025 18:45 👍 46 🔁 23 💬 0 📌 2
SIGGRAPH 2025 Course: Physically Based Shading in Theory and Practice

The SIGGRAPH Physically Based Shading course is back this year: blog.selfshadow.com/publications...

10.06.2025 15:19 👍 81 🔁 30 💬 1 📌 0
Post image Post image

Happy to announce my new side project is translating the illest squirrel-based manga of 2025

01.05.2025 05:16 👍 9 🔁 7 💬 1 📌 0
Preview
To Early-Z, or Not To Early-Z Depth In The Logical Rendering Pipeline Where Does Early-Z Fit In? When Does Early-Z Have To Be Disabled? Discard/Alpha Test Pixel Shader Depth Export UAVs/Storage Textures/Storage Buffers Forcing Ear...

In today's new blog post, I try to provide some intuition and clear up some misconceptions about early Z cull behavior on desktop GPUs. Have a read if that interests you!
therealmjp.github.io/posts/to-ear...

14.04.2025 00:52 👍 173 🔁 55 💬 3 📌 0
Lambert model (left), the classic “qualitative” Oren–Nayar QON model (center), and our new EON model (right), all at maximal roughness and the same single-scattering albedo color. The top and bottom rows show front and side-lit cases respectively. The EON model compensates for the energy loss of the QON model, producing similar brightness to the Lambert model combined with the characteristic “flattening” and enhanced backscattering of the Oren–Nayar model.

Lambert model (left), the classic “qualitative” Oren–Nayar QON model (center), and our new EON model (right), all at maximal roughness and the same single-scattering albedo color. The top and bottom rows show front and side-lit cases respectively. The EON model compensates for the energy loss of the QON model, producing similar brightness to the Lambert model combined with the characteristic “flattening” and enhanced backscattering of the Oren–Nayar model.

EON: A practical energy-preserving rough diffuse BRDF; by Portsmouth, Kutz, and Hill. www.jcgt.org/published/00...

31.03.2025 20:37 👍 63 🔁 22 💬 0 📌 0
Preview
Measuring acceleration structures Hardware accelerated raytracing, as supported by DirectX 12 and Vulkan, relies on an abstract data structure that stores scene geometry, known as “acceleration structure” and often referred to as “BVH...

New blog post! "Measuring acceleration structures", in which we will compare BVH costs on various GPU architectures and drivers and attempt to understand the details enough on AMD hardware to make sense of the numbers!

Reposts appreciated :)

zeux.io/2025/03/31/m...

01.04.2025 04:49 👍 125 🔁 56 💬 2 📌 0
Video thumbnail

Today on Digital Foundry - what is RTX Mega Geometry and how does it run in Alan Wake 2? We're looking at efficiency, quality and performance improvements here and curiously, in our tests, it's RTX 20-series and 30-series that benefit most: youtu.be/_SpSLPHvHAs

05.02.2025 14:57 👍 117 🔁 13 💬 2 📌 0
Post image

WIth the Blackwell Whitepaper we are getting more detial about Mega Geometry - long live the CLAS! I have been looking at the added performance (and fidelity) from its usage in Alan Wake 2 and even on older classes of RTX 2000 hardware it is basically "free performance".

29.01.2025 14:21 👍 123 🔁 11 💬 7 📌 1
Preview
GitHub - nvpro-samples/vk_animated_clusters: Sample that uses VK_NV_cluster_acceleration_structure to animate meshes for ray tracing Sample that uses VK_NV_cluster_acceleration_structure to animate meshes for ray tracing - nvpro-samples/vk_animated_clusters

Thanks to a lot of colleagues' great work, happy to share Vulkan samples for RTX Mega Geometry. They should run on all RTX GPUs using today's new drivers

github.com/nvpro-sample...

github.com/nvpro-sample...

github.com/nvpro-sample...

github.com/nvpro-sample...

30.01.2025 14:09 👍 116 🔁 35 💬 2 📌 1
Preview
Massaging the Shader Compiler to emit Optimum Instructions Modern GPU’s feature sophisticated instruction sets for executing shaders. However this blog details how unintiutive it can be to have the shader compiler leverage the optimum instruction. Co…

Another small gem for Graphics Engineers: martinfullerblog.wordpress.com/2025/01/13/m...

13.01.2025 17:56 👍 59 🔁 16 💬 0 📌 0
Preview
Senior Principal Programmer - PlayStation®5 Rendering API United Kingdom, London

This holiday season, give yourself the gift of wondering whether you'd enjoy working on the Playstation graphics stack and making life better for graphics programmers, because we're hiring for our rendering APIs! job-boards.greenhouse.io/sonyinteract...

23.12.2024 17:03 👍 55 🔁 26 💬 4 📌 2
Rendering Tiny Glades With Entirely Too Much Ray Marching
Rendering Tiny Glades With Entirely Too Much Ray Marching YouTube video by Graphics Programming Conference

Here's a recording of my Tiny Glade presentation from the Graphics Programming Conference 2024:

www.youtube.com/watch?v=jusW...

It's an any% speedrun of our GPU-driven rendering, shadows, global illumination, water, and DoF, involving a few weird tricks.

05.12.2024 02:19 👍 456 🔁 109 💬 15 📌 9
Occupancy Explained Through the AMD RDNA™ Architecture
Occupancy Explained Through the AMD RDNA™ Architecture YouTube video by Graphics Programming Conference

The recordings from GPC24 are up, including my talk ! This contains much more information than the slides on their own. Enjoy !
www.youtube.com/watch?v=sHFb...
gpuopen.com/presentation...

04.12.2024 10:38 👍 76 🔁 23 💬 0 📌 1

damn, we must've passed by each other ☹️

luckily, the graphics world is small! I'm sure we'll run into each other somewhere! I've already decided to go to GPC 2025! 🍻

18.11.2024 10:52 👍 0 🔁 0 💬 1 📌 0
Preview
PIX 2104.20: DirectX 12 Agility SDK Support, New Occupancy Graphs, Timing Capture Improvements - PIX on Windows Today we released PIX version 2104.20 - adding support for all new DirectX 12 Agility SDK features including Shader Model 6.6. This release adds support for DXCompiler Slim PDBs, adds new occupancy gr...

Dr. PIX is a hero!

I was trying to find out where the GPU capture actually came from, it's been a while since I made it! It turns out that it was from a PIX update blog post: devblogs.microsoft.com/pix/pix-2104/. I don't think Mr. SSAO is actually involved here, but it looked convincing enough! 😆

16.11.2024 18:50 👍 3 🔁 0 💬 1 📌 0
Dr. PIX

Dr. PIX

That reminds me, I don't think I've shared this one before!

16.11.2024 18:26 👍 14 🔁 1 💬 1 📌 0

It was a blast! 🔥

Looking forward to hanging out with you all again next year!

16.11.2024 15:59 👍 2 🔁 0 💬 1 📌 0

We have a graphics programming meme wall in the rendering room at Remedy and that one is definitely the highlight! 😆

16.11.2024 15:51 👍 8 🔁 0 💬 2 📌 0
3 graphics people drinking some “Texels” branded beer.

3 graphics people drinking some “Texels” branded beer.

Graphics Programming Conference was incredible ❤️

So many notes to go through, ideas to investigate, people to talk to and games to play! 🔥

Thank you so much to the organizers and all the attendees, it was such a pleasure to meet you all 😊

Can we have Texels sponsor next year though? 🍻🙃

16.11.2024 13:55 👍 41 🔁 4 💬 3 📌 0