Author Archives: bartwronski

Removing blur from images – deconvolution and using optimized simple filters

In this post, we’ll have a look at the idea of removing blur from images, videos, or games through a process called “deconvolution”. We will analyze what makes the process of deblurring an image (blurred with a known blur kernel) … Continue reading

Posted in Code / Graphics | 4 Comments

Transforming “noise” and random variables through non-linearities

This post covers a topic slightly different from my usual ones and something I haven’t written much about before – applied elements of probability theory. We will discuss what happens with “noise” – a random variable – when we apply … Continue reading

Posted in Code / Graphics | Tagged , , , , , , , , , | Leave a comment

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 , , , , , , | 3 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 , , , , , | Leave a comment

Light transport matrices, SVD, spectral analysis, and matrix completion

In this post I’ll describe a small hike into the landscape of using linear algebra methods for analyzing seemingly non-algebraic problems, like light transport. This is very common in some domains of computer science / electrical engineering (seeing everything as … Continue reading

Posted in Code / Graphics | Tagged , , | 1 Comment

Insider guide to tech interviews

I’ve been meaning to write this post for over a year… an unofficial insider guide to tech interviews! This is the essence of the advice I give my friends (minus personal circumstances and preferences) all the time, and I figured … Continue reading

Posted in Code / Graphics | 6 Comments

Procedural Kernel (Neural) Networks

Last year I worked for a bit on a fun research project that ended up published as an arXiv “pre-print” / technical report and here comes a few paragraph “normal language” description of this work. Neural Networks are taking over … Continue reading

Posted in Code / Graphics | Tagged , , , , | Leave a comment

Study of smoothing filters – Savitzky-Golay filters

Last week I saw Daniel Holden tweeting about Savitzky-Golay filters and their properties (less smoothing than a Gaussian filter) and I got excited… because I have never heard of them before and it’s an opportunity to learn something. When I … Continue reading

Posted in Code / Graphics | Tagged , , , , , | Leave a comment

Practical Gaussian filtering: Binomial filter and small sigma Gaussians

Gaussian filters are the bread and butter of signal and image filtering. They are isotropic and radially symmetric, filter out high frequencies extremely well, and just look pleasant and smooth. In this post I will cover two of my favorite … Continue reading

Posted in Code / Graphics | Tagged , , , , , , , | 3 Comments

Modding Korg MS-20 Mini – PWM, Sync, Osc2 FM

Almost every graphics programmer I know is playing right now with some electronics (virtual high five!), so I won’t be any different. But I decided to make it “practical” and write something that might be useful to others – how … Continue reading

Posted in Audio / Music / DSP | Tagged , , , , , , | 4 Comments

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 , , , , , , , | 7 Comments

Comparing images in frequency domain. “Spectral loss” – does it make sense?

Recently, numerous academic papers in the machine learning / computer vision / image processing domains (re)introduce and discuss a “frequency loss function” or “spectral loss” – and while for many it makes sense and nicely improves achieved results, some of … Continue reading

Posted in Code / Graphics | Tagged , , , , , | 3 Comments

On leaving California and the Silicon Valley

Beginning of the year, my wife and I made a final call – to leave California, “as soon as possible”. To be fair, we talked about this for a long time; a few years, but without any concrete date or … Continue reading

Posted in Travel / Photography | 11 Comments

Neural material (de)compression – data-driven 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

Posted in Code / Graphics | Tagged , , , , , , , , , , | 5 Comments

Superfast void-and-cluster Blue Noise in Python (Numpy/Jax)

This is a super short blog post to accompany this Colab notebook. It’s not an official part of my dithering / Blue Noise post series, but thematically fits it well and be sure to check it out for some motivation … Continue reading

Posted in Code / Graphics | Tagged , , , , , | 1 Comment

Computing gradients on grids of pixels and voxels – forward, central, and… diagonal differences

In this post, I will focus on gradients of image signals defined on grids in computer graphics and image processing. Specifically, gradients / derivatives of images, height fields, distance fields, when they are represented as discrete, uniform grids of pixels … Continue reading

Posted in Code / Graphics | Tagged , , , , , | 8 Comments

Bilinear down/upsampling, aligning pixel grids, and that infamous GPU half pixel offset

It’s been more than two decades of me using bilinear texture filtering, a few months since I’ve written about bilinear resampling, but only two days since I discovered a bug of mine related to it. 😅 Similarly, just last week … Continue reading

Posted in Code / Graphics | Tagged , , , , , , , | 11 Comments

Is this a branch?

Let’s try a new format – “shorts”; small blog posts where I elaborate on ideas that I’d discuss at my twitter, but they either come back over and over, or the short form doesn’t convey all the nuances. I often … Continue reading

Posted in Code / Graphics | Tagged , , , , , , | 7 Comments

Converting wavetables to Ableton Operator AMS waves

This blog post comes with Ableton Operator AMS “wavetables” here. In Ableton’s FM synth you can use different types of oscillator waves as your operators (both carriers as well as modulators), as well as draw custom ones: What is not … Continue reading

Posted in Audio / Music / DSP | Tagged , , , , , , , | 3 Comments

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

Posted in Code / Graphics | Tagged , , , , , , , , | 4 Comments