
Recent Posts
 Processing aware image filtering: compensating for the upsampling July 20, 2021
 Comparing images in frequency domain. “Spectral loss” – does it make sense? July 6, 2021
 On leaving California and the Silicon Valley June 28, 2021
 Neural material (de)compression – datadriven nonlinear dimensionality reduction May 30, 2021
 Superfast voidandcluster Blue Noise in Python (Numpy/Jax) April 21, 2021
Categories
Tag Archives: graphics
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
5 Comments
Neural material (de)compression – datadriven nonlinear dimensionality reduction
In this post I come back to something I didn’t expect coming back to – dimensionality reduction and compression for whole material texture sets (as opposed to single textures) – a significantly underexplored topic. In one of my past posts … Continue reading
Why are video games graphics (still) a challenge? Productionizing rendering algorithms
Intro This post will cover challenges and aspects of production to consider when creating new rendering / graphics techniques and algorithms – especially in the context of applied research for real time rendering. I will base this on my personal … Continue reading
Compressing PBR material texture sets with sparsity and kSVD dictionary learning
Introduction In this blog post, I am going to continue exploration of compressing whole PBR texture sets together (as opposed to compressing each texture from the set separately) and using the fact that those textures are strongly correlated. In my … Continue reading
Posted in Code / Graphics
Tagged compression, graphics, graphics programming, image processing, linear algebra, machine learning, maths, PBR, rendering, signal processing, textures
6 Comments
Dimensionality reduction for image and texture set compression
In this blog post I am going to describe some of my past investigations on reducing the number of channels in textures / texture sets automatically and generally – without assuming anything about texture contents other than correspondence to some … Continue reading
Posted in Code / Graphics
Tagged compression, graphics, image processing, linear algebra, machine learning, maths, PBR, physicallybased shading, textures
10 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
4 Comments
How (not) to test graphics algorithms
Intro Siggraph 2019 is sadly over, but as always I came back super inspired and grateful for meeting many friends. Conferences are mostly not about seeing the presentations – but about all the interesting and inspiring discussions, and one of … Continue reading
Posted in Code / Graphics
Tagged code design, code style, graphics, graphics programming, programming, siggraph, testing, tests
4 Comments
Cull that cone! Improved cone/spotlight visibility tests for tiled and clustered lighting
In this blog post, I will present some common spotlight culling techniques and propose one small improvement that is able to correct results of cheap, tiled / clustered culling on the CPU/GPU with almost negligible ALU cost. If you know … Continue reading
Posted in Code / Graphics
Tagged cone, culling, geometry, graphics, ideas, lighting, mathematica, mathematics, occlussion, programming, sphere, spot, visibility
9 Comments
Small float formats – R11G11B10F precision
While this post is not yet dithering related, it is in a way a part of my series about dithering. You can check index of all parts here or check the previous part. I will talk here about use of … Continue reading
Posted in Code / Graphics
Tagged float, floating point, floats, graphics, mathematica, mathematics, noise, programming, quantization, rendering
6 Comments
Dithering part three – real world 2D quantization dithering
In previous two parts of this blog post miniseries I described basic uses mentioned blue noise definition, referenced/presented 2 techniques of generating blue noise and one of many general purpose highfrequency lowdiscrepancy sampling sequences. In this post, we will look … Continue reading
Posted in Code / Graphics
Tagged bayer, blue noise, dithering, fourier, graphics, graphics programming, interleaved gradient noise, mathematica, mathematics, maths, noise, programming, sampling
7 Comments
Dithering part two – golden ratio sequence, blue noise and highpassandremap
In previous part of the miniseries I covered dithering definition and how dithering changes error characteristics of simple 1D quantization and functions. In this part I will try to look at what blue noise is, but first wanted to have a … Continue reading
Posted in Code / Graphics
Tagged blue noise, dithering, golden ratio, graphics, graphics programming, low discrepancy, noise, programming
10 Comments
Dithering in games – mini series
This an opening post of mini blog post series about various uses of dithering for quantization and sampling in video games. It is something most of us use intuitively in every day work, so wanted to write down some of … Continue reading
Posted in Code / Graphics
Tagged blue noise, dithering, graphics, graphics programming, mathematica, noise, programming, sampling
7 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
White balance and physically based rendering pipelines. Part 2 – practical problems.
White balance and lighting conditions After this long introduction (be sure to check part one if you haven’t!), we can finally go to the problem that started whole idea for this post (as in my opinion it is unsolved problem – … Continue reading
Posted in Code / Graphics, Travel / Photography
Tagged assassin's creed, color management, graphics, graphics programming, IBL, ideas, image based lighting, panoramas, PBR, photogrammetry, photography, physicallybased shading, srgb, the witcher 2: assassins of kings, white balance, witcher 2
7 Comments
White balance and physically based rendering pipelines. Part 1 – introduction.
This is part one of the whole article. Part two is here. In this two posts (started as one, but I had to split it to make it more… digestible) I’m going to talk a bit about the white balance. First … Continue reading
Fixing screenspace deferred decals
Screenspace deferred decals are a very popular technique. There were so many presentations and blog posts about it that I will just list couple of them (just a first google search results page to be honest…) in no particular order: … Continue reading
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
Processing scanned/DSLR photos of film negatives in Lightroom
The topic I wanted to cover in this post is nondestructive workflow for “developing” photographed or scanned negatives – in this case B&W film. Why even bother about film? Because I still love analog photos as a hobby. 🙂 I wrote … Continue reading
Posted in Travel / Photography
Tagged 35mm, adobe, analog, film, graphics, Lightroom, medium format, photography, photoshop, scanning, Voigtlander
5 Comments
You must be logged in to post a comment.