-
Recent Posts
- Gradient-descent optimized recursive filters for deconvolution / deblurring September 5, 2022
- Progressive image stippling and greedy blue noise importance sampling August 31, 2022
- Removing blur from images – deconvolution and using optimized simple filters May 26, 2022
- Transforming “noise” and random variables through non-linearities March 16, 2022
- Fast, GPU friendly, antialiasing downsampling filter March 7, 2022
Categories
-
Recent Posts
- Gradient-descent optimized recursive filters for deconvolution / deblurring September 5, 2022
- Progressive image stippling and greedy blue noise importance sampling August 31, 2022
- Removing blur from images – deconvolution and using optimized simple filters May 26, 2022
- Transforming “noise” and random variables through non-linearities March 16, 2022
- Fast, GPU friendly, antialiasing downsampling filter March 7, 2022
Archives
- September 2022 (1)
- August 2022 (1)
- May 2022 (1)
- March 2022 (2)
- February 2022 (2)
- January 2022 (2)
- November 2021 (1)
- October 2021 (2)
- July 2021 (2)
- June 2021 (1)
- May 2021 (1)
- April 2021 (1)
- February 2021 (2)
- January 2021 (2)
- December 2020 (1)
- August 2020 (1)
- May 2020 (1)
- April 2020 (2)
- March 2020 (1)
- February 2020 (1)
- January 2020 (1)
- September 2019 (1)
- August 2019 (1)
- May 2018 (1)
- October 2017 (1)
- August 2017 (1)
- April 2017 (2)
- October 2016 (4)
- September 2016 (2)
- August 2016 (1)
- June 2016 (1)
- October 2015 (2)
- March 2015 (2)
- February 2015 (1)
- December 2014 (1)
- October 2014 (1)
- September 2014 (4)
- August 2014 (4)
- July 2014 (2)
- June 2014 (2)
- May 2014 (2)
- April 2014 (3)
- March 2014 (4)
- February 2014 (2)
- January 2014 (3)
Categories
Tag Archives: postprocessing
Fast, GPU friendly, antialiasing downsampling filter
In this shorter post, I will describe a 2X downsampling filter that I propose as a “safe default” for GPU image processing. It’s been an omission on my side that I have not proposed any specific filter despite writing so … Continue reading
Posted in Code / Graphics
Tagged filtering, graphics, graphics programming, image processing, jax, postprocessing, signal processing
6 Comments
Exposure Fusion – local tonemapping for real-time rendering
In this post I want to close the loop and come back to the topic I described ~6y ago! Local tonemapping (I’ll refer to it as LTM) – a component I considered a missing piece in video games rendering, especially … Continue reading
Posted in Code / Graphics
Tagged bilateral, graphics, graphics programming, image processing, postprocessing, tonemapping
Leave a comment
Processing aware image filtering: compensating for the upsampling
This post summarizes some thoughts and experiments on “filtering aware image filtering” I’ve been doing for a while. The core idea is simple – if you have some “fixed” step at the end of the pipeline that you cannot control … Continue reading
Posted in Code / Graphics
Tagged algorithms, digital signal processing, filtering, graphics, image processing, jax, postprocessing, signal processing
7 Comments
Bilinear texture filtering – artifacts, alternatives, and frequency domain analysis
In this post we will look at one of the staples of real-time 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/star-shaped artifact … Continue reading
Posted in Code / Graphics
Tagged blur, filtering, image processing, postprocessing, temporal, temporal supersampling
12 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 follow-up to my previous blog post on using SVD for low-rank approximations and … Continue reading
Posted in Code / Graphics
Tagged bokeh, colab, github, graphics programming, image processing, jax, machine learning, maths, numpy, postprocessing, programming, python
11 Comments
Separate your filters! Separability, SVD and low-rank 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
16 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
7 Comments
Separable disk-like 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 mini-series 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
19 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 next-generation post-effects pipeline
Hey, it’s been a while since my last post. Today I will focus on topic of post-effects. Specifically, I wanted to talk about next-gen 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, bokeh, depth of field, far cry 4, graphics, graphics programming, photography, PlayStation 4, postprocessing, programming, tonemapping, 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
You must be logged in to post a comment.