
Recent Posts
 Transforming “noise” and random variables through nonlinearities March 16, 2022
 Fast, GPU friendly, antialiasing downsampling filter March 7, 2022
 Exposure Fusion – local tonemapping for realtime rendering February 28, 2022
 Light transport matrices, SVD, spectral analysis, and matrix completion February 15, 2022
 Insider guide to tech interviews January 4, 2022
Categories
Author Archives: bartwronski
Transforming “noise” and random variables through nonlinearities
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 blue noise, graphics, graphics programming, image processing, jax, mathematics, maths, noise, programming, python
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 filtering, graphics, graphics programming, image processing, jax, postprocessing, signal processing
3 Comments
Exposure Fusion – local tonemapping for realtime 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
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 nonalgebraic problems, like light transport. This is very common in some domains of computer science / electrical engineering (seeing everything as … Continue reading
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 “preprint” / 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 image processing, linear algebra, machine learning, maths, signal processing
Leave a comment
Study of smoothing filters – SavitzkyGolay filters
Last week I saw Daniel Holden tweeting about SavitzkyGolay 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 algorithms, digital signal processing, image processing, maths, python, signal processing
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
Modding Korg MS20 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 analog gear, electronics, korg, ms20, music, synthesizers, synths
2 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 algorithms, digital signal processing, filtering, graphics, image processing, jax, postprocessing, signal processing
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 algorithms, image processing, linear algebra, machine learning, maths, neural networks
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 – 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
Superfast voidandcluster 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 blue noise, dithering, graphics programming, jax, numpy, python
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
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 digital signal processing, gpu, image processing, libraries, numpy, sampling, signal processing, upsampling
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 assembly, cpu, gpu, optimizations, profiling, programming, simd
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 ableton, digital signal processing, dsp, fourier, frequency domain, numpy, python, synthesis
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
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
You must be logged in to post a comment.