Nate Morrical

2.9K posts

Nate Morrical banner
Nate Morrical

Nate Morrical

@NateMorrical

Senior GPU Arch Eng || University of Utah / SCII || 🏳️‍🌈

Salt Lake City, UT Katılım Kasım 2010
373 Takip Edilen1K Takipçiler
Nate Morrical
Nate Morrical@NateMorrical·
@maxliani I recall DLSS being a bit picky about inputs. Falcor has a working implementation, lifting the camera model from there was how I ultimately got it to work.
English
1
0
0
191
Max Liani
Max Liani@maxliani·
I am trying to add DLSS-RR mode to Workbench. In theory I already have most things from the renderer, exception made for the specific pixel jitter and the motion vectors… It shouldn’t be too hard for me to add either of those. I am curios to compare DLSS with the other denoisers
English
1
0
14
2.8K
Nate Morrical
Nate Morrical@NateMorrical·
I often use Inigo's sdBoxFrame SDF for debugging marchers, but found it odd there's no readily available iBoxFrame ray intersector equivalent. So I made one! shadertoy.com/view/7cf3Dj
English
0
1
3
228
Nate Morrical
Nate Morrical@NateMorrical·
@EricLengyel Iiic, a geo product decomposes vector multiplication into a projection plus a rejection. The scalar here is the projection of the origin onto the plane. The antiscalar seems a bit like +/- rejection of the direction. So it still seems related to me, if only indirectly.
English
0
0
0
38
Eric Lengyel
Eric Lengyel@EricLengyel·
@NateMorrical Since the antiwedge product and antidot product are being taken with different values, I don't think there's a connection with the geometric antiproduct.
English
1
0
0
54
Eric Lengyel
Eric Lengyel@EricLengyel·
When a is a vector and b is any multivector, the geometric product a ⟑ b decomposes as a ⟑ b = a ∧ b + b ∨ (a^★), and b ⟑ a decomposes as b ⟑ a = b ∧ a + (a_★) ∨ b. If a and b are both vectors, these both reduce to a ⟑ b = a ∧ b + a ⋅ b.
English
3
0
8
2.7K
Nate Morrical
Nate Morrical@NateMorrical·
@EricLengyel Err, s = g∨½(r+r̃) + g◦½(r-r̃) First term is a scalar where origin meets plane. Second is antiscalar where the dual of the direction joins the plane. The ½ can be dropped as it's a common constant to both sides. g∨(r+r̃) + g◦(r-r̃) is what made me go "geometric product?"
English
1
0
0
81
Nate Morrical
Nate Morrical@NateMorrical·
@EricLengyel Gave this another go today. Let a ray r = o+v, where o is the origin as a point and v is the direction as a zero-offset trivector. Then g to be a plane. Then o = ½(r+r̃) and v = ½(r-r̃). So s = g∧½(r+r̃) + g◦½(r-r̃) and the intersection between r and g is t = (s_•)/(s_◦)
English
1
0
0
42
Nate Morrical
Nate Morrical@NateMorrical·
@EricLengyel Overall I agree that point based PGA makes a lot more sense. The two operations I mostly find myself struggling with are a∧b★ and a∨b☆. I might be using a plane-based PGA there to try to reason about what those operations are doing in the anti-space. But that's about it
English
1
0
1
68
Nate Morrical
Nate Morrical@NateMorrical·
@EricLengyel So I dug into the etymology behind "join" and "meet", and the latin is also amusingly ambiguous. "Disjoin" can mean "both apart" or "either apart". Eventually I concluded that both systems must be true through duality. Now I wonder why this bothered me in the first place.
English
1
0
0
47
Nate Morrical
Nate Morrical@NateMorrical·
@lisyarus It's like a cube, but with fancy chonky voronoi regions bolted on
English
0
0
1
69
Nikita Lisitsa
Nikita Lisitsa@lisyarus·
I...might've gotten a wee bit sidetracked into modelling uniform polyhedra for a random idea 😅 At least now I know what a rhombicuboctahedron is (the chonky fella on the right)
Nikita Lisitsa tweet media
English
2
0
52
2.3K
Nate Morrical retweetledi
Jiayin Cao
Jiayin Cao@Jiayin_Cao·
I'd like to share @DaqiLin and I co-authored a chapter in the latest GPU Zen 4 book. We cover the engineering details of implementing ReSTIR GI & PT in UE5's NvRTX branch, adopted in NVIDIA's Zorah project showcased at CES and GDC last year. The book is now available on Amazon.
Jiayin Cao tweet media
English
4
23
168
7.2K
Nate Morrical retweetledi
Christoph Peters
Christoph Peters@MomentsInCG·
In 2026, I reprise my role as High-Performance Graphics papers chair, joined by @nmkettunen. The papers deadline is 8 weeks from now. Submit your performance-oriented graphics research and present it in Los Angeles, just before SIGGRAPH (July 17-19 2026)! highperformancegraphics.org/2026/call-for-…
English
0
9
38
2.8K
Nate Morrical
Nate Morrical@NateMorrical·
@EricLengyel Agreed, I believe it might ultimately reduce to the same math after applying something like a vector triple product.
English
0
0
0
46
Nate Morrical
Nate Morrical@NateMorrical·
@keenanisalive Without looking at the comments, I'd guess the top image is yours. My hand wavy guess is that the top appears to have a bottom up construction to it, while the bottom image appears a bit more like a top-down reconstruction, as though the grid was never really necessary.
English
0
0
1
40
Keenan Crane
Keenan Crane@keenanisalive·
I drew one of these by hand, based on a photo. The other is AI generated, based on the same photo. But which is which, and why does it matter, in what context? Is the AI image “slop?” Is mine? Did the AI rip off the photographer’s work? Did I? Did the photographer rip off the fish? Is this just yet another technology, like 3D rendering or digital painting before it? Or is there a distinguishing feature that makes it fundamentally “less creative?” If we use more generative technology trained on photography, will we end up training fewer photographers? What impact did photography have on painting? What if I train on my own art? What if I train on my own laptop? What if I have to build a nuclear power plant? What if I work with a community of artists to build a model under a Creative Commons license? What if a community of artists wants to make money? Is that bad? Is it good? All fair questions, with many shades of gray (or color). Only if the answer is black and white might I question the depth of the analysis.
Keenan Crane tweet media
English
136
36
439
52.5K
Nate Morrical
Nate Morrical@NateMorrical·
@EricLengyel I understand the philosophy of PGA isn't necessarily about compute performance. But it's a real reason I can't use it in practice. I usually can't afford it.
English
1
0
0
84
Nate Morrical
Nate Morrical@NateMorrical·
@EricLengyel By using the first and third blocks of the metric, this seems to avoid increasing arithmetic. But it's not elegant. The "plane" must become mixed grade iiic, so the ray origin/direction pairs with seven unique "plane" bases. This is what we do in real RT code. t=(o•g)/(d•g)
English
1
0
0
39
Nate Morrical
Nate Morrical@NateMorrical·
@EricLengyel Revisiting this idea this morning, I believe this is another flaw in my logic: g•𝕣 = g⊺𝐆𝕣 ≠ g∨𝕣^★. The inner product filters out off-diagonal terms from the interior product. So g•r = 0, because 𝐆 filters out all but e1,e2,e3, and g has none of these.
English
1
0
0
84
Nate Morrical
Nate Morrical@NateMorrical·
@EricLengyel From here I used symmetry between expansions and contractions to simplify. Twitter's char limit isn't great for writing that out. TLDR, I was seeing this "sum of two inner products, then project" pattern, which reminded me of the geometric product.
English
1
0
0
77