Shane Simms
banner
shaneasimms.bsky.social
Shane Simms
@shaneasimms.bsky.social
VFX artist living in Melbourne, learning to write tools in C++ ⌨️
Currently learning about path tracing 🔮
Asking because I'm thinking of switching to Linux soon - why did you choose Mint? I've been looking at Rocky primarily because of the stable support for VFX tools
June 18, 2025 at 2:55 AM
This is so cool, is there any possibility of some of the dice models being made available for download? Would love to have a 2D6
May 24, 2025 at 6:28 AM
Added support for nested dielectrics based on "Simple Nested Dielectrics" by Schmidt & Budge
May 16, 2025 at 7:46 AM
(More maths)
February 25, 2025 at 12:12 AM
Added importance sampling for textures. These images were rendered with the same number of samples before and after importance sampling the environment light
February 24, 2025 at 11:52 PM
Added normal mapping and fixed some edge cases, made a scene to demo the current features
February 9, 2025 at 9:22 AM
Added emission patterns for lights, and added an environment light
January 21, 2025 at 10:49 PM
Refactored everything, improved memory management, added pattern interface, added texture pattern
January 21, 2025 at 1:11 AM
(Maths stuffs)
December 3, 2024 at 1:33 AM
Finally got microfacet transmission working! 🔮
December 3, 2024 at 1:32 AM
Implemented a specular glass shader. Had to tweak a lot of my integration code to get it to work with transmission. Going to attempt a microfacet version next
November 11, 2024 at 6:20 AM
Read Heitz' 2018 paper on GGX VNDF sampling a week ago, then tried to remember how it works and implemented it today. Really simple and elegant, and less noise!
November 11, 2024 at 6:20 AM
Went on a side quest inspired by OPSR - now I'm roughening over paths using an attenuation factor (gamma) to improve control over blurring out caustics and reducing fireflies
November 11, 2024 at 6:19 AM
Heard that the STL RNG can be slow. Looked into XORShift RNGs. The seed is multiplied by matrices covering all possible seed values until a repeat. The matrices in XORShift RNGs use bitwise operations so are very cheap. Only 1% faster but fun! Total speed increase: ~11%
November 11, 2024 at 6:19 AM
Decided to try and optimise starting with some low-hanging fruit. Made tweaks to the BVH, then implemented a better triangle intersection algorithm where rays are transformed to simplify cross products, and transforms are stored per ray ahead of time to save computation
November 11, 2024 at 6:18 AM
So I derived a sampling strategy for Trowbridge-Reitz as well. Still sampling invisible microfacets though
November 11, 2024 at 6:18 AM
Made a Veach inspired scene for testing and found and fixed some more bugs
November 11, 2024 at 6:17 AM
Multiple light sources, layered BSDFs (just additive for now), fixed a whole lotta bugs and edge cases
November 11, 2024 at 6:16 AM
Got Beckmann microfacet distribution working, added an analytic ring light (inspired by Max Liani), also now adjusting roughness after rough bounces to spread out caustics, accounted for a bunch of edge cases and fixed a load of bugs
November 11, 2024 at 6:16 AM
Found the Beckmann distribution on pbr-book.org, and derived sampling based that. It's not ideal as I'm sampling the whole distribution, including invisible microfacets, so a lot of samples will be useless. One day I'll learn a better strategy
November 11, 2024 at 6:15 AM
(I don't know how to derive any Fresnel functions either, but I've memorised the standard dielectric Fresnel function after using it in a lot of places. I understand that the derivation involves Maxwell's equations, which I'm keen to learn more about)
November 11, 2024 at 6:14 AM
I remembered how to derive the Cook-Torrance BRDF! But never learned how to derive any NDFs / masking-shadowing functions... I have no choice but to Google some, but I will derive the BRDF sampling by myself. Added NDF derivation to my list of things to learn later
November 11, 2024 at 6:14 AM