-
Recent Posts
- Computing gradients on grids of pixels and voxels – forward, central, and… diagonal differences February 28, 2021
- Bilinear down/upsampling, aligning pixel grids, and that infamous GPU half pixel offset February 15, 2021
- Is this a branch? January 18, 2021
- Converting wavetables to Ableton Operator AMS waves January 5, 2021
- Why are video games graphics (still) a challenge? Productionizing rendering algorithms December 27, 2020
Categories
Tag Archives: graphics programming
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
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 k-SVD 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
5 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, maths, numpy, postprocessing, programming, python
6 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
3 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
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
6 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
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, physically-based 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 screen-space deferred decals
Screen-space 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
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, far cry 4, graphics, graphics programming, photography, PlayStation 4, postprocessing, programming, 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
New debugging options in CSharpRenderer framework
Hi, minor update to my C#/.NET graphics rendering framework / playground got just submitted to GitHub. I implemented following new features: Surface debugging snapshots One of commentators asked me how to easily display for debug SSAO buffer – I had no easy … Continue reading
Posted in Code / Graphics
Tagged .NET, C#, framework, github, graphics, graphics programming
4 Comments
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
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
Hair rendering trick(s)
I didn’t really plan to write this post as I’m quite busy preparing for Siggraph and enjoying awesome Montreal summer, but after 3 similar discussion with friends developers I realized that the simple hair rendering trick I used during the … Continue reading