RSSAmplifier

Blog

Diary of a Graphics Programmer

diaryofagraphicsprogrammer.blogspot.comRSS feed ↗25 posts

Latest posts

Catching Up / History of The Forge / GPU Zen / Ray Tracing / Holiday Dinner

I just realized I haven't posted here since 2018. There is generally less sharing of information happening now compared to let's say 10 years ago and I seem to have become one of the people who shares less. In my defense, I can bring up good reasons :-) : Being part of an ever-growing company with increasing business and HR needs makes it harder for me to focus on the technical aspects of our work…

Ray Tracing without Ray Tracing API

Following up on my last blog post, where I stated that a Ray Tracing API is bad for game developers and publishers because of the increase in QA effort that it will bring: based on the last 20+ years of graphics development, it is easy to project that when a large part of the ray tracing codebase is owned by a hardware vendor, there will be various bugs introduced with each driver release. For…

Ray Tracing with the DirectX Ray Tracing API (DXR)

Experimental DXR support was added to The Forge today. Let's think about this for a second by starting with a few quotes from a now famous book, that many people have read in the last couple of days/weeks. The quotes are on the first page of the book "Ray Tracing in One Weekend" by Peter Shirley: I've taught many graphics classes over the years. Often I do them in ray tracing, because you are…

Triangle Visibility Buffer

A Rendering Architecture for high-resolution Displays and Console Games ----------------------------------- Document History: - Initial Published March 30th, 2018 - Updated January 22th, 2021 - Updated June 4th, 2021 with a simplified degenerate triangle removal - Updated June 12th, 2021 links to the new Forge Shader Language shaders should work now ----------------------------------- The…

HDR10 - TV setup

We have a large amount of HDR (High-Dynamic Range) TVs in the office due to our work on HDR standards. We run HDR capable content on those TVs frequently. I was recently showing one of our non-HDR demos at a conference. The conference organizer was very nice and they provided an HDR10 TV to us. I was grateful for that because that meant we didn't have to ship a large and heavy TV over a large…

GDCE 2016 - The filtered and culled Visibility Buffer

Here is the executive summary: we built a rendering system that Cluster culls and filters triangles for different views like main view, shadow view, reflection view, GI view etc. at the same time The optimized triangles are used to fill a screen-space Visibility Buffer or more Visibility Buffers for more views We then render lights, shadows, bounce lights with the optimized geometry based on…

Intel Blog: Performance Considerations for Resource Binding in Microsoft DirectX* 12

I wrote another blog entry for Intel. Performance Considerations for Resource Binding in Microsoft DirectX* 12

Implementation of the GPU Pro 5 Screen-Space Glossy Reflection Algorithm

Someone (can't find the name on the website) provided an implementation of a GPU Pro 5 article: http://roar11.com/2015/07/screen-space-glossy-reflections/ Pretty cool!

MVP Award

This year I was honored with an MVP award. This is the tenth time in a row and I am very excited about this. I would like to thank everyone for supporting my nominations for the last 10 years. Here is my MVP page: http://mvp.microsoft.com/en-us/mvp/Wolfgang%20Engel-35704 A lot of things that I do during the year do not find their way onto this blog. Most of the time I am too busy doing these…

Link Collection

Here are some links that show some interesting progress: HUSL is a human-friendly alternative to HSL The Lost Art of C Structure Packing A Picture To Show You Clearly The Effects of Aperture, Shutter Speed and ISO On Images Constant Buffers without Constant Pain What's New in CPUs Since the 80s and How Does It Affect Programmers? JPS+: Over 100x Faster than A* Adaptive Depth Bias for Shadow Maps

Multi-GPU Game Engine

Many high-end rendering solutions for -for example- battlefield simulations can utilize now hardware solutions with multiple consumer GPUs. The idea is to split up computational power in-between 4 - 8 GPUs to increase the level of realism as much as possible. Now with more modern APIs like DirectX 12 and probably Vulcan and before that CUDA, splitting up the rendering pipeline can happen in the…

V Buffer - Deferred Lighting Re-Thought

After eight years I would like to go back to re-design the existing rendering systems, so that they are capable to run more efficiently on high-resolution devices and display more lights with attached shadows. Let's first see where we are: the Light Pre-Pass was introduced in March 2008 on this blog. At this point I had it already running in one R* game for a while. It eventually shipped in a…

Introduction to Resource Binding in Microsoft DirectX* 12

I spent some time to write an article that should explain resource binding in DirectX 12. When I looked at this for the first time I had a tough time to get my head around resource binding ... so I am hoping this article makes it for others easier to understand. Let me know in the comments ... https://software.intel.com/en-us/articles/introduction-to-resource-binding-in-microsoft-directx-12

Reloaded: Compute Shader Optimizations for AMD GPUs: Parallel Reduction

After nearly a year, it was time to revisit the last blog entry. The source code of the example implementation was still on one of my hard-drives and needed to be cleaned-up and released, which I had planned for the first quarter of last year. I also did receive a comment high-lighting a few mistakes I made in the previous blog post and on top of that I wanted to add numbers for other GPUs as…

Compute Shader Optimizations for AMD GPUs: Parallel Reduction

We recently looked more often into compute shader optimizations on AMD platforms. Additionally I had a UCSD class in Winter that dealt with this topic and a talk at the Sony booth at GDC 2014 that covered the same topic. This blog post covers a common scenario while implementing a post-processing pipeline: Parallel Reduction. It uses the excellent talk given by Mark Harris a few years back as a…

DirectX 12 Blog

Finally information about DirectX 12 is published on Matt Sandy's blog . Today I wear my DirectX 12 T-Shirt to work ... below this shirt I am wearing the Mantle T-Shirt (... I was thinking about the order for a while but only this order can make sense ... right?). I had the opportunity to test drive DirectX 12 in the last couple of months and it looks already great. Very excited to work with…

GDC 2014 - Compute Shader Optimizations

I will be speaking at the Sony booth on Wednesday at 5pm on compute shader optimizations. The 15 minute talk will be broadcast on Twitch. The talk will cover performance numbers of three different AMD GPUs: RADEON 6770, RADEON 7750 and RADEON 7850. The main topics are: Sequential Shared Memory (TGSM) Access: utilizing the Memory bank layout When to Unroll Loops in a compute shader Overhead of…

Link Collection

The book "Is Parallel Programming Hard, And, If So, What Can You Do About It?" can be found at https://www.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html An overview on C99 support in Visual Studio 2013 can be found at http://blogs.msdn.com/b/vcblog/archive/2013/07/19/c99-library-support-in-visual-studio-2013.aspx Adaptive Depth Bias for Shadow Maps…

Visual Studio 2013 - C99 support

I think using C99 in game development could be useful for large teams, especially if they are distributed over several locations. So I thought I look a little bit closer on the support of C99 in Visual Studio 2013 (we also use VS 2013 with C99 now in my UCSD class). The new features that are support in VS 2013 are: New features in 2013 - variable decls - _Bool - compound literals - designated…

CSE 190 - GPU Programming UCSD class Winter 2014

GPU Programming With the new console generation and the advances in PC hardware, compute support is becoming more important in games. The new course in 2014 will therefore start with compute and we will spend about a 1/3 of the whole course talking about how it is used on next-gen consoles and in next-gen games. We will also look into several case studies and discuss the feasibility to "re-factor"…

Visual Studio 2013 / Demo Skeleton Programming

I updated my demo skeleton in the google code repository. It is using now Visual Studio 2013, that now partially supports C99 and therefore can compile the code. I updated the compute shader code a bit and I upgraded Crinkler to version 1.4. The compute shader example now also compiles the shader into a header file and then Crinkler compresses this file as part of the data compression. It packs…

Call for a new Post-Processing Pipeline - KGC 2013 talk

This is the text version of my talk at KGC 2013. The main motivation for the talk was the idea of looking for fundamental changes that can bring a modern Post-Processing Pipeline to the next level. Let's look first into the short history of Post-Processing Pipelines, where we are in the moment and where we might be going in the near future. History Probably one of the first Post-Processing…

KGC 2013

I will be a speaker on the Korean Game Developer Conference this year. This is my third time and I am very much enjoying it. This year I want to talk about building a next-gen Post-Processing Pipeline. Most people haven't change their PostFX pipeline algorithms since 6 or 7 years ( ... no re-writing it in compute doesn't count ... also replacing your Reinhard operator with an approx. Hable…

TressFX - Crystal Dynamics and AMD cover TressFX on SIGGRAPH

There were more talks about Confetti's work on TressFX on SIGGRAPH: One talk by Jason Lacroix was: "Adding More Life to Your Characters With TressFX" . Activision's head demo uses TressFX as well: "Digital Ira: High-Resolution Facial Performance Playback" . If you are a registered developer and you need XBOX One or PS4 implementations, send me an e-mail.

SIGGRAPH 2013

I would like to highlight the talk "Crafting a Next-Gen Material Pipeline for The Order: 1886": http://blog.selfshadow.com/publications/s2013-shading-course The 3D Fabric Scanner is a fantastic idea and the results are awesome. Those are next-gen characters. Great work!