Quantcast
Channel: Aras' website
Browsing latest articles
Browse All 256 View Live

Image may be NSFW.
Clik here to view.

Another cool MSVC flag: /d1reportTime

A while ago I found about a fairly useful Visual C++ flag that helps to investigate where the compiler backend/optimizer spends time – /d2cgsummary, see blog post. Turns out, there is a flag that...

View Article


Image may be NSFW.
Clik here to view.

'Infinite' sky shader for Unity

I saw a discussion today that lamented lack of “infinite projection” in Unity, so here’s a quick post about that. Unity today (at least in 2017/2018 versions) uses “reversed Z” projection, but does not...

View Article


Image may be NSFW.
Clik here to view.

Two years in a build team!

Whoa! Has it been two years already since I stopped doing graphics programming?! How does one end up on a build team? I switched to the “build system” team by having two extremely short chats: …and...

View Article

Image may be NSFW.
Clik here to view.

Replacing a live system is really hard

So! Turns out my “two years in a build team” post was almost the end of my time there :) I’ve started a new thing & new work area, and am wrapping up some of my leftover build team work as we...

View Article

Image may be NSFW.
Clik here to view.

Clang Build Analyzer

So! A while ago I worked on adding -ftime-trace support for Clang. That landed and shipped in Clang 9.0 in September of 2019, so \(^O^)/ Looks like it will also be coming to Sony development tools soon...

View Article


Image may be NSFW.
Clik here to view.

It's Raining Cubes

So a dozen years ago I wrote “hey, 4 kilobyte intros are starting to get interesting”. Fast forward to 2019, and we made an attempt to make a 4KB demo with my team at work. None of us have any previous...

View Article

Image may be NSFW.
Clik here to view.

Fourteen years at Unity o_O

Looks like I’ve been working at Unity for 14 years. What?!?! So here’s another blog post that looks at the past without presenting any useful information, similar to the ones from two, four, ten,...

View Article

Image may be NSFW.
Clik here to view.

Various details about Handles

I wanted to fix one thing about Unity editor Handles, and accidentally ended up fixing some more. So here’s more random things about Handles than you can handle! What I wanted to fix For several years...

View Article


Image may be NSFW.
Clik here to view.

Black Hole Demo

I made a demo with my kid, and it somehow managed to get 1st place at a (small) demoparty! The story of this demo started around year 2006 (!). I had just started working at Unity in Copenhagen, and...

View Article


Image may be NSFW.
Clik here to view.

Texture Compression in 2020

I’ve spent some time looking at various texture compression formats and libraries (the ones meant for GPUs, i.e. “ASTC, BC7” kind, not the “PNG, JPG” kind). Here’s a fully incomprehensible chart to set...

View Article

Image may be NSFW.
Clik here to view.

Texture Compression on Apple M1

In the previous post I did a survey of various GPU format compression libraries. I just got an Apple M1 MacMini to help port some of these compression libraries to it, and of course decided to see some...

View Article

Image may be NSFW.
Clik here to view.

EXR: Lossless Compression

One thing led to another, and I happened to be looking at various lossless compression options available in OpenEXR image file format. EXR has several lossless compression options, and most of the...

View Article

Image may be NSFW.
Clik here to view.

EXR: Zip compression levels

In the previous blog post I looked at lossless compression options that are available in OpenEXR. The Zip compression in OpenEXR is just the standard DEFLATE algorithm as used by Zip, gzip, PNG and...

View Article


Image may be NSFW.
Clik here to view.

EXR: Zstandard compression

In the previous blog post I looked at OpenEXR Zip compression level settings. Now, Zip compression algorithm (DEFLATE) has one good thing going for it: it’s everywhere. However, it is also from the...

View Article

Image may be NSFW.
Clik here to view.

EXR: libdeflate is great

Previous blog post was about adding Zstandard compression to OpenEXR. I planned to look into something else now, but a github comment from Miloš Komarčević and a blog post from Matt Pharr reminded me...

View Article


Image may be NSFW.
Clik here to view.

EXR: Filtering and ZFP

In the previous blog post I looked at using libdeflate for OpenEXR Zip compression. Let’s look at a few other things now! Prediction / filtering As noticed in the zstd post, OpenEXR does some filtering...

View Article

Gradients in linear space aren't better

People smarter than me have already said it (Bart Wronski on twitter), but here’s my take in a blog post form too. (blog posts? is this 2005, grandpa?!) When you want “a gradient”, interpolating colors...

View Article


Speeding up Blender .obj export

This tweet by @zeuxcg sparked my interest: If you think of Ryu as the gold standard of shortest correctly rounded floating point output, note that there’s still active research happening in this area,...

View Article

Curious lack of sprintf scaling

Some days ago I noticed that on a Mac, doing snprintf calls from multiple threads shows curious lack of scaling (see tweet). Replacing snprintf with {fmt} library can speed up the OBJ exporter in...

View Article

Optimizing Oklab gradients

An example how one might optimize Oklab color space gradients by… not doing anything related to Oklab itself! The case at hand I wrote about Oklab previously in the “gradients in linear space aren’t...

View Article

Speeding up Blender .obj import

A while ago I wrote about speeding up Blender’s Wavefront OBJ exporter. All that landed into Blender 3.2. And since that was quite a nice experience, I started to look into the OBJ importer… Existing...

View Article


Comparing .obj parse libraries

Wavefront .obj file format is a funny one. Similar to GIF, it’s a format from the 1990s, that absolutely should not be widely used anymore, yet it refuses to go away. Part of the appeal of OBJ is...

View Article


Comparing BCn texture decoders

PC GPUs use “BCn” texture compression formats (see “Understanding BCn Texture Compression Formats” by Nathan Reed or “Texture Block Compression in Direct3D 11” by Microsoft). While most of the interest...

View Article

Swallowing the elephant into Blender

Some years ago Matt Pharr wrote an excellent blog post series, “Swallowing the elephant”, in which he describes various optimizations done in pbrt using Disnay’s Moana Island Scene. Recently I was...

View Article

Float Compression 0: Intro

I was playing around with compression of some floating point data, and decided to write up my findings. None of this will be any news for anyone who actually knows anything about compression, but eh,...

View Article


Float Compression 1: Generic

Introduction and index of this series is here. We have 94.5MB worth of data, and we want to make it smaller. About the easiest thing to do: use one of existing lossless data compression libraries, or...

View Article

Float Compression 2: Oodleflate

Introduction and index of this series is here. In the previous part I looked at generic lossless data compressors (zlib, lz4, zstd, brotli), and was thinking of writing about data filtering next. But...

View Article

Float Compression 3: Filters

Introduction and index of this series is here. In the previous parts we saw that using generic data compression libraries, we can get our 94.5MB data down to 33.8MB (zstd level 7) or 29.6MB (oodle...

View Article

Float Compression 4: Mesh Optimizer

Introduction and index of this series is here. The previous post investigated some lossless filtering of data, before passing it to a regular compression library. Our result so far is: 94.5MB of data...

View Article



Float Compression 5: Science!

Introduction and index of this series is here. Previous post was about mis-using meshoptimizer compression for compressing totally non-mesh data, for pretty good results. This time, let’s look at...

View Article

Float Compression 6: Filtering Optimization

Introduction and index of this series is here. Several posts ago we learned that filtering the data can make it more compressible. Out of several simple filters that I tried, “reorder data items...

View Article

Float Compression 7: More Filtering Optimization

Introduction and index of this series is here. In the previous post I explored how to make data filters a bit faster, using some trivial merging of filters, and a largely misguided attempt at using...

View Article

Float Compression 8: Blosc

Introduction and index of this series is here. Several people have asked whether I have tried Blosc library for compressing my test data set. I was aware of it, but have not tried it! So this post is...

View Article


Float Compression 9: LZSSE and Lizard

Introduction and index of this series is here. Some people asked whether I have tested LZSSE or Lizard. I have not! But I have been aware of them for years. So here’s a short post, testing them on “my”...

View Article

Gaussian Splatting is pretty cool!

SIGGRAPH 2023 just had a paper “3D Gaussian Splatting for Real-Time Radiance Field Rendering” by Kerbl, Kopanas, Leimkühler, Drettakis, and it looks pretty cool! Check out their website, source code...

View Article

Making Gaussian Splats smaller

In the previous post I started to look at Gaussian Splatting. One of the issues with it, is that the data sets are not exactly small. The renders look nice: But each of the “bike”, “truck”, “garden”...

View Article


Making Gaussian Splats more smaller

Previous post was about making Gaussian Splatting data sizes smaller (both in-memory and on-disk). This one is still about the same topic! Now we look into clustering / VQ. Spherical Harmonics take up...

View Article


Gaussian explosion

Over the past month it seems like Gaussian Splatting (see my first post) is experiencing a Cambrian Gaussian explosion of new research. The seminal paper came out in July 2023, and starting about...

View Article

Two years ago: left Unity

I left Unity at start of 2022. So for this lazy Tuesday afternoon, figured I can share the rambles I wrote in my goodbye email. No big insights there, just old man reminiscing. And hey the text is...

View Article

I accidentally Blender VSE

Two months ago I started to contribute a bit of code to Blender’s Video Sequence Editor (VSE). Did you know that Blender has a suite of video editing tools? Yeah, me neither :) Even the feature page...

View Article

Crank the World: Playdate demo

You know Playdate, the cute yellow console with a crank? I think I saw it in person last year via Inês, and early this year they started to have Lithuania as a shipping destination, so I got one. And...

View Article


Kyrgyzstan Trip 2024

Just spent 10 days around in Kyrgyzstan, so here’s a bunch of pictures! Overall this was a “botanical trip”. There’s a local group of gardeners and related people, who do journeys through various...

View Article

More Blender VSE stuff for 4.2

I did a bunch of work for Blender 4.1 video sequence editor, and since no one revoked my commit access, I continued in the same area for Blender 4.2. Are you one of the approximately seven Blender VSE...

View Article


Random thoughts about Unity

Unity has a problem From the outside, Unity lately seems to have a problem or two. By “lately”, I mean during the last decade, and by “a problem or two”, I mean probably over nine thousand problems....

View Article

Vector math library codegen in Debug

This will be about how when in your C++ code you have a “vector math library”, and how the choices of code style in there affect non-optimized build performance.Backstory A month ago I got into the...

View Article


A year in Blender VSE land

Turns out, now is exactly one year of me working on the video sequence editor (VSE).Going pretty well so far! What I managed to put into Blender 4.1 and 4.2 is in the previous blog posts. Blender 4.3...

View Article

Verbosity of coding styles

Everyone knows that different code styles have different verbosity. You can have very dense code that implements a path tracer in 99 lines of C, or on the back of a business card (one, two). On the...

View Article

Doom in Blender VSE

You know how in Blender Video Sequence Editor (VSE) you can create Color strips, and then their color is displayed in the timeline? You can create many of them, and when sufficiently zoomed out, the...

View Article

Surface-Stable Fractal Dither on Playdate

Rune Skovbo Johansen has a really sweet Surface-Stable Fractal Dithering technique, where the dither dots “stick” to 3D surfaces, yet the dot density adapts to the view distance and zoom level.Some...

View Article


US New Orleans Trip 2025

We just spent a week-and-a-bit in southern part of United States, so here’s a bunch of photos and some random thoughts!Aistė went for a work related conference in New Orleans, and we (myself and our...

View Article

Browsing latest articles
Browse All 256 View Live