Succinct Opacity Micromaps

Teaser

LandscapeSan Miguel

Recently, I presented a bit of my work at the High-Performance graphics conference on compressing a relatively new kind of Vulkan® and DirectX® graphics object: the Opacity Micromap. This object is intended to be used as a relatively cheap memory hint to the hardware ray-tracing pipeline to attempt to cut down on the number of times the expensive AnyHit shader has to be called.

It may still be relatively big however; so in this work we introduce a way to interpret the micromap as a tree structure that in turn can be compressed in a very efficient way: Up to 110 times in some actual content.

You can find the presentation, the slides, and the paper itself among my publications.

Updated Format Specifier Highlighting in Emacs

What feels like ages ago now, I wrote a short post about improving the syntax highlighting of format specifiers for printf style functions (actually, all strings). While it has worked great for a long time, it is about time to give it a bit of a face-lift and at the same time make it even more general.

The first item on the agenda however, is to make the original regexp, manageable. When we finished things up, we were left with the following:

Read more…

BCON23: Custom Data in glTF Files

BCON23

A while back now, I attended the Blender Conference in Amsterdam where I presented a bit of the work I had done related to Blender, glTF and Opacity Micromaps. Despite the 50-min presentation though, I still had a lot of content over that I had to cut out in the interest of time (and presentation coherency). I had hoped to include much of that in this write-up shortly after the conference, but I ended up swamped with work from both Arm and several looming paper deadlines, so I had to postpone it. But here it is now, so better late than never I guess!

Links to the presentation, as well as the slides I used can be found on my publications and presentations page.

Photon Mapping Superluminal Particles

After quite a bit of work, I'm happy to announce my first successfully accepted academic paper: Photon Mapping Superluminal Particles. In this paper we investigated how to render the light generated by particles travelling faster than light relative to the surrounding media, yielding some visually pleasing images.

If you're interested in knowing more, the full paper as well as the presentation at Eurographics 2020 are available via the link above.

Single charged particle inside a Cornell box. Many charged particles with cylinders of varying refractive index. Rendering of our Reed reactor model.

This is hopefully the first of several publications to come during my PhD studies, but for now we'll just have to wait and see what the future holds.

Personal ELPA Archive

There's been a few times over the years when I wanted to install an Emacs package that was not available on any of the common package distributers, such as GNU ELPA or MELPA. Most recently I wanted to install llvm-mode, but that package have recently been removed due to the size of the llvm repository. Previously, I would have just ended up not using the package at all or possibly adding the package to my own configuration repository if I really wanted to use it. This time however, I decided to try to figure out what it would take to setup your own Emacs package distribution server, and as it turns out, with a pre-existing webserver, there's only a few file conventions that need to be fulfilled on the host and client sides to do just that.

Read more…

Clang Format

I often write code in C or C++ and frequently use clang-format to automatically format the code I'm writing. Although, occasionally I get into a situation where I should use a different coding style while I'm in a particular subdirectory.

Read more…

Set Variable in Hook

I've just recently started to use helm-dash for most of my documentation look-ups. I did however find it a bit awkward to configure. For it to work its magic, each major-mode should set helm-dash-docsets to a list of strings with the docsets it should activate. The most straightforward way that I found to do this was this was with a small lambda in the major-mode hook.

Read more…

Comments

Commenting is really a cornerstone of the free and open web, so it's really about time I enabled it for this blog.

I was thinking of using isso as a commenting server, thus having complete control of the entire webstack, but in the end, I decided it was bit too much of a hassle for such a small site this, so I simply decided to configure Nikola to use disqus instead.

Still, if I ever change my mind I can always export things from disqus, so moving things over to isso shouldn't be too difficult.

Update 2024: For now I've simply decided to disable comments, however.

Printf Format Highlighting

Most of my work is done in either C or C++, so I frequently use the printf family of functions to write a wide variety of stuff to the display. Naturally, I'd like the format specifiers to stand out from the rest of the characters in the strings, so for the longest time I used this piece of elisp code to achieve that:

Read more…

Emacs, Elisp and Org Mode

I have a confession to make.

I'm sort of an Emacs fanatic.

Well, perhaps fanatic is a strong word but it does reflect the manner in which I try to integrate my whole workflow into and around it. And so far, I rarely ever have to leave the leave Emacs or the terminal. Best of all, I almost never have move my hand those dreadful decimeters to the right to use the mouse.

Read more…