-
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: programming
Progressive image stippling and greedy blue noise importance sampling
Introduction I recently read the “Gaussian Blue Noise” paper by Ahmed et al. and was very impressed by the quality of their results and the rigor of their method. They provide a theoretical framework to analyze the quality of blue … Continue reading
Posted in Code / Graphics
Tagged algorithms, blue noise, dithering, graphics, graphics programming, image processing, jax, programming, python, sampling
3 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 blue noise, graphics, graphics programming, image processing, jax, mathematics, maths, noise, programming, python
Leave a comment
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
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
Analyze your own activity data using Google Takeout – music listening stats example
The goal of this post is to show how to download our own data stored and used by internet services to generate personalized stats / charts like below and will show step-by-step how to do it using colab, Python, pandas, … Continue reading
Posted in Code / Graphics
Tagged colab, data, numpy, programming, python, statistics, visualization
Leave a comment
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
10 Comments
Dithering part three – real world 2D quantization dithering
In previous two parts of this blog post mini-series I described basic uses mentioned blue noise definition, referenced/presented 2 techniques of generating blue noise and one of many general purpose high-frequency low-discrepancy 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 highpass-and-remap
In previous part of the mini-series 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
11 Comments
Dithering part one – simple quantization
Introduction First part of this mini-series will focus on more theoretical side of dithering -some history and applying it for 1D signals and to quantization. I will try to do some frequency analysis of errors of quantization and how dithering … Continue reading
Posted in Code / Graphics
Tagged dithering, mathematica, mathematics, noise, programming, sampling
2 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
9 Comments
Short names are short
Intro This blog post is a counter-argument and response to a post by Bob Nystrom that got very popular few months ago and was often re-shared. I disagree so much that I thought it’s worth sharing my opinion on this topic. … Continue reading
Posted in Code / Graphics
Tagged code design, code style, naming, plug-ins, programming, readability
1 Comment
Technical debt… or technical weight?
Introduction Whole idea for this post came from a very inspiring conversation with my friends and ex-colleagues from Ubisoft that we had over a dinner few months ago. We started to talk about some sophisticated code algorithm – an algorithm … Continue reading
Posted in Code / Graphics
Tagged algorithms, architecture, code design, programming, psychology
2 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
Review: “Multithreading for Visual Effects”, CRC Press 2014
Today I wrote a short review about a book I bought and read recently – “Multithreading for Visual Effects” published by CRC Press 2014 and including articles by Martin Watt, Erwin Coumans, George ElKoura, Ronald Henderson, Manuel Kraemer, Jeff Lait, James Reinders. … Continue reading
Updated Poisson-like generator with GUI and more
Just a super short note: I updated my simple rendering-oriented Poisson-like pattern generator with: Very simple GUI made in PyQt to make experimenting easier. Option to do rotating disk (with minimizing rotated point distance) for things like Poisson bokeh / … Continue reading
Posted in Code / Graphics
Tagged algorithms, Anaconda, antialiasing, graphics programming, mathematica, poisson, programming, pyqt, python, stochastic
Leave a comment
Poisson disk/square sampling generator for rendering
I have just submitted onto GitHub small new script – Poisson-like distribution sampling generator suited for various typical rendering scenarios. Unlike other small generators available it supports many sampling patterns – disk, disk with a central tap, square, repeating grid. It … Continue reading
Posted in Code / Graphics
Tagged algorithms, Anaconda, programming, python, stochastic, supersampling, temporal, tools, winpython
Leave a comment
You must be logged in to post a comment.