Raytracing Director at Nvidia. Previously: Tech Lead for RenderMan at Pixar, Architect of Glimpse Renderer at Animal Logic 🇮🇹🇦🇺🇺🇸🇨🇦 Views are my own.

Joined July 2013
815 Photos and videos
Max Liani retweeted
Hollywood has spent nearly $600 million trying to bring Matt Damon home. Have they considered maybe he just doesn’t want to come back?
521
7,100
61,867
3,186,582
Maybe I see this in rosy retrospection, but I feel that the work I did many years ago to create the Glimpse production renderer still feels to me the most insane project I ever started.
3
25
3,425
About 3.5 years ago I did some experiment to improve the behavior of microfacet normals at glancing angles. Many surfaces become highly reflective even though having high roughness. Check the discussion in the thread. Here is my implementation reusing equations you already have:
There's a neat short paper from Eurographics this year that evaluates how well microfacet shading models actually predict measured reflectance. The answer is: not nearly as well as one would hope! (1/3) ssteinberg.xyz/2026_surface_…
3
20
237
20,952
A sketch from my notes for intuition:
1
27
2,229
Cut tool. It does more or less what you'd expect from a cut tool. Snap to points and edges, fractional placement, cut across faces, slice. No support for edge loops yet.
3
53
4,829
Add Polygon second pass: "predictive snap points" and numerical input to finetune distance and direction of the current point position in respect to previous.
1
55
4,883
I need to revamp my modeling operators, especially those that require user interaction. Here is first attempt at the Add Polygon operator. It's a first pass, it needs some work.
2
1
50
4,351
It allows to attach to existing points, control the projection plane, using exiting points as hinge. Holding shift it helps draw orthogonal and 45deg edges, and snap along constrained directions on existing points nearby. It uses color for winding order feedback.
4
960
I like tools and workflow improvements! But not on a daily basis. I don’t like daily revolutions… I really don’t. How can one decide how much to invest in learning or inventing new techniques if what you did yesterday is already obsolete today?
1
22
2,329
I feel everyone is running around scattering in different direction screaming in excitement (or panic, I can’t tell)… it’s exhausting.
1
11
1,117
Now go and read the comments! All the greedy, selfish people are there trying to justify why they voted red. It’s hilarious 🤣
Everyone in the world has to take a private vote by pressing a red or blue button. If more than 50% of people press the blue button, everyone survives. If less than 50% of people press the blue button, only people who pressed the red button survive. Which button would you press?
1
3
1,951
Be careful letting agents develop features and fix bugs. The fix may be correct but in my experience they seem to be prone of producing relatively naive algorithms with high complexity, or delegate the heavy lifting 1/2
2
30
5,870
I.e. dump data to some “smart” container first, which may reduce complexity, but add memory cost (even if a transient peak) or fragment the heap. Take the productivity boost, but don’t act blind and greedy. Always check the resulting code and make it worth of your signature 2/2
1
16
1,602
Alright, I made some further improvements to the tree view, which now draws in constant time (in respect to the scene complexity). Here is a test with 16 million transform nodes viewable in the scroll area. Without screen recording, the whole app renders at 8kHz.
2
3
57
5,889
I had to create a flat cache for the line drawn and that lets me jump to the visible band of TreeNode lines I need. I still rely on the nested structure, so it isn't a flat list... but a few hops in the cache reconstruct the nesting context to initialize ImGui::TreePush/TreePop
2
7
1,579
With that many nodes it takes a sensible fraction of a second to invalidate and rebuild the cache when the scene structure changes, or a node is expanded/collapsed, changing the flattened list.
1
7
1,404
I played a bit with the UX of interacting with the tree view. The common operations are selection and re-parent. I want to control both with the same gesture. So, if the drag&drop is mostly vertical -> reparent. If it widens to the side, it becomes marquee selection. Yes, no?
4
1
42
5,770
The typical implementation requires one to click-drag on empty space to start a selection marquee. Somehow that feels ok for a file explorer window, but I find it annoying and limiting in a scene hiearchy tree view.
2
2
901
I am not sure why I am doing this, but I optimized further the scene tree view as it was getting a bit slow and clunky to operate when I had many nodes expanded. It's not cheap, it's still the most expensive part of the program to draw.
2
33
3,777
That's a test with 1 million lines in the tree view, which is likely much more than one can reasonably expect to interact with. I am happy my take on multi selection works and feel zippy.
1
5
1,218
dear imgui offers a convenient ImGuiListClipper to draw only a range of a long list. In this case I am not relying on that because my data structure is not a flat list. For widgets out of view, I call a cut down version of TreeNode and that feels good enough for now.
2
8
1,182