
Recent Posts
 Computing gradients on grids of pixels and voxels – forward, central, and… diagonal differences February 28, 2021
 Bilinear down/upsampling, aligning pixel grids, and that infamous GPU half pixel offset February 15, 2021
 Is this a branch? January 18, 2021
 Converting wavetables to Ableton Operator AMS waves January 5, 2021
 Why are video games graphics (still) a challenge? Productionizing rendering algorithms December 27, 2020
Categories
Tag Archives: postprocessing
Bilinear texture filtering – artifacts, alternatives, and frequency domain analysis
In this post we will look at one of the staples of realtime computer graphics – bilinear texture filtering. To catch your interest, I will start with focusing on something that is often referred to as “bilinear artifacts”, trapezoid/starshaped artifact … Continue reading
Posted in Code / Graphics
Tagged blur, filtering, image processing, postprocessing, temporal, temporal supersampling
6 Comments
Using JAX, numpy, and optimization techniques to improve separable image filters
In today’s blog post I will look at two topics: how to use JAX (“hyped” new Python ML / autodifferentiation library), and a basic application that is followup to my previous blog post on using SVD for lowrank approximations and … Continue reading
Posted in Code / Graphics
Tagged bokeh, colab, github, graphics programming, image processing, jax, maths, numpy, postprocessing, programming, python
6 Comments
Separate your filters! Separability, SVD and lowrank approximation of 2D image processing filters
In this blog post, I explore separable convolutional image filters: how can we check if a 2D filter is separable, and how to compute separable approximations to any arbitrary 2D filter represented in a numerical / matrix form using SVD. Continue reading
Posted in Code / Graphics
Tagged algorithms, approximation, blur, bokeh, depth of field, graphics, image processing, linear algebra, numpy, optimizations, postprocessing, python
9 Comments
Local linear models and guided filtering – an alternative to bilateral filter
Intro In this blog post I am going to describe an alternative tool for the graphics and image processing programmers’ toolbox – guided filtering. Guided filtering is a really handy tool that I learned about from my coworkers, and I … Continue reading
Posted in Code / Graphics
Tagged bilateral, graphics, image processing, machine learning, postprocessing, python, signal processing, ssao, upsampling
3 Comments
Separable disklike depth of field
This is a short note accompanying shadertoy: https://www.shadertoy.com/view/lsBBWy . It is direct implementation of “Circularly symmetric convolution and lens blur” by Olli Niemitalo (no innovation on my side, just a toy implementation) and got inspired by Kleber Garcia’s Siggraph 2017 presentation “Circular … Continue reading
Posted in Code / Graphics
Tagged bokeh, depth of field, dof, far cry 4, Gaussian, maths, photography, poisson, postprocessing, separable, witcher 2
2 Comments
Image dynamic range
Intro This post is a second part of my miniseries about dynamic range in games. In this part I would like to talk a bit about dynamic range, contrast/gamma and viewing conditions. You can find the other post in the series here and … Continue reading
Posted in Code / Graphics
Tagged dynamic range, graphics, graphics programming, HDR, mathematica, mathematics, postprocessing, tonemapping, visuals
13 Comments
Localized tonemapping – is global exposure and global tonemapping operator enough for video games?
In this blog post, I wanted to address something that I was thinking about for many years – since starting working on rendering in video games and with HDR workflows and having experience with various photographic techniques. For the title … Continue reading
Posted in Code / Graphics, Travel / Photography
Tagged exposure, film, God of War, graphics, graphics programming, photography, photos, postprocessing, tonemapping
17 Comments
Anamorphic lens flares and visual effects
Introduction There are no visual effects that are more controversial than various lens and sensor effects. Lens flares, bloom, dirty lens, chromatic aberrations… All of those have their lovers and haters. Couple years ago many games used cheap pseudo HDR effect … Continue reading
Posted in Code / Graphics
Tagged algorithms, anamorphic, bokeh, C#, cinematography, depth of field, film, flares, graphics, graphics programming, history, lens, movies, photography, postprocessing, programming
16 Comments
Designing a nextgeneration posteffects pipeline
Hey, it’s been a while since my last post. Today I will focus on topic of posteffects. Specifically, I wanted to talk about nextgen post process pipeline and redesign I worked on while being a part of Far Cry 4 rendering team. … Continue reading
Posted in Code / Graphics
Tagged 1080p, algorithms, far cry 4, graphics, graphics programming, photography, PlayStation 4, postprocessing, programming, Xbox One
6 Comments
CSharpRenderer Framework update
In couple days I’m saying goodbye to my big desktop PC for several next weeks (relocation), so time to commit some stuff to my CSharpRenderer GitHub repository that was waiting for it for way too long. 🙂 Startup time optimizations … Continue reading
Posted in Code / Graphics
Tagged .NET, C#, framework, graphics, graphics programming, postprocessing, programming, tools
15 Comments
Major C#/.NET graphics framework update + volumetric fog code!
As I already promised too many times, here comes major CSharpRenderer framework update! As always, all code available on GitHub. Note that the goal is still the same – not to write most beautiful or fast code, but to provide a … Continue reading
Posted in Code / Graphics
Tagged .NET, algorithms, C#, graphics, graphics programming, postprocessing, supersampling, temporal, temporal supersampling
18 Comments
Digital Dragons 2014 slides
This Friday I gave a talk on Digital Dragons 2014. It was a presentation with tons of new, unpublished content and details about our: Global Illumination solution – full description of baking process, storing data in 2D textures and runtime application Temporal … Continue reading
Posted in Code / Graphics
Tagged assassin's creed, graphics, graphics programming, PlayStation 4, postprocessing, programming, Xbox One
2 Comments
Bokeh depth of field – going insane! part 1
Recently I was working on console version depth of field suitable for gameplay – so simple, high quality effect, running with a decent performance on all target platforms and not eating big percent of budget. There are tons of publications about … Continue reading
Temporal supersampling and antialiasing
Aliasing problem Before I address temporal supersampling, just a quick reminder on what aliasing is. Aliasing is a problem that is very well defined in signal theory. According to the general sampling theorem we need to have our signal spectrum … Continue reading
The future of screenspace reflections
Introduction The technique was first mentioned by Crytek among some of their improvements (like screenspace raytraced shadows) in their DirectX 11 game update for Crysis 2 [1] and then was mentioned in couple of their presentations, articles and talks. In … Continue reading
Posted in Code / Graphics
Tagged algorithms, assassin's creed, graphics, postprocessing, programming, raymarching, raytracing
5 Comments