Daily Pathtracer Part 3: C# & Unity & Burst
Introduction and index of this series is here. As promised in the last post, let’s port our path tracer to C#, both outside & inside of Unity. This will also contain a brief example of Unity 2018.1...
View ArticleDaily Pathtracer Part 4: Fixes & Mitsuba
Introduction and index of this series is here. The path tracer right now is small, neat and wrong. Some folks pointed on on twitterverse that there’s double lighting due to light sampling; there’s an...
View ArticleDaily Pathtracer Part 5: Metal GPU!
Introduction and index of this series is here. Let’s make a super-naïve implementation for a GPU! Did I mention that it’s going to be super simple and not optimized for GPUs at all? I did, good. This...
View ArticleDaily Pathtracer Part 6: D3D11 GPU
Introduction and index of this series is here. In the previous post, I did a naïve Metal GPU “port” of the path tracer. Let’s make a Direct3D 11 / HLSL version now. This will allow testing performance...
View ArticleDaily Pathtracer Part 7: Initial SIMD
Introduction and index of this series is here. Let’s get back to the CPU C++ implementation. I want to try SIMD and similar stuffs now! Warning: I don’t have much (any?) actual experience with SIMD...
View ArticleDaily Pathtracer 8: SSE HitSpheres
Introduction and index of this series is here. In the previous post, I talked about concept of SIMD, structure-of-arrays layout, and one (not good) approach of “let’s use SSE for float3 struct”. Just...
View ArticleDaily Pathtracer 9: A wild ryg appears
Introduction and index of this series is here. In the previous post, I did a basic SIMD/SSE implementation of the “hit a ray against all spheres” function. And then of course, me being a n00b at SIMD,...
View ArticleDaily Pathtracer 10: Update C#&GPU
Introduction and index of this series is here. Short post; nothing new. Just wanted to update C#, Unity (C#+Burst) and GPU implementations with the larger scene and optimizations from previous blog...
View ArticleDaily Pathtracer 11: Buffer-Oriented
Introduction and index of this series is here. I’ll try to restructure the path tracer a bit, from a “recursion based” approach into a “buffer based” approach.“But why?” I had a thought of playing...
View ArticleDaily Pathtracer 12: GPU Buffer-Oriented D3D11
Introduction and index of this series is here. In the previous post, I changed the CPU path tracer from recursion (depth first) based approach to “buffer based” (breadth first) one. It got slightly...
View ArticlePathtracer 13: GPU threadgroup memory is useful!
Introduction and index of this series is here. Oh, last post was exactly a month ago… I guess I’ll remove “daily” from the titles then :) So the previous approach “let’s do one bounce iteration per...
View ArticlePathtracer 14: iOS
Introduction and index of this series is here. I wanted to check out how’s the performance on a mobile device. So, let’s take what we ended up with in the previous post, and make it run on iOS. Initial...
View ArticleIceland Vacation 2018
Hello! End of June & start of July we were traveling in Iceland, so here’s some photos and stuff. I’ve heard that some folks somehow don’t know that Iceland is absolutely beautiful. How?! Here’s my...
View ArticlePathtracer 15: Pause & Links
Sailing out to sea | A tale of woe is me I forgot the name | Of where we’re heading – Versus Them “Don’t Eat the Captain“ So! This whole series on pathtracing adventures started out without a clear...
View ArticleRandom list of Demoscene Demos
I just did a “hey kids, let me tell you about demoscene” event at work, where I talked about and and showed some demos I think were influential over the years, roughly sorted chronologically. Here’s...
View ArticleDaily Pathtracer Part 1: Initial C++
Introduction and index of this series is here. Let’s make an initial implementation very similar to Ray Tracing in One Weekend (seriously, just buy that minibook). Source code is here on github.“Main”...
View ArticleDaily Pathtracer Part 4: Fixes & Mitsuba
Introduction and index of this series is here. The path tracer right now is small, neat and wrong. Some folks pointed on on twitterverse that there’s double lighting due to light sampling; there’s an...
View ArticlePathtracer 15: Pause & Links
Sailing out to sea | A tale of woe is me I forgot the name | Of where we’re heading – Versus Them “Don’t Eat the Captain“ So! This whole series on pathtracing adventures started out without a clear...
View ArticlePathtracer 16: Burst SIMD Optimization
Introduction and index of this series is here. When I originally played with the Unity Burst compiler in “Part 3: C#, Unity, Burst”, I just did the simplest possible “get C# working, get it working on...
View ArticleSPIR-V Compression: SMOL vs MARK
Two years ago I did a small utility to help with Vulkan (SPIR-V) shader compression: SMOL-V (see blog post or github repo). It is used by Unity, and looks like also used by some non-Unity projects as...
View Article