morgan Profile picture
Roblox Chief Scientist U.Waterloo & McGill Prof. @morgan3d.bsky Known for NVIDIA, Unity, Graphics Codex, Markdeep, G3D, Skylanders, E Ink, Titan Quest, Williams
2 subscribers
Oct 19, 2021 7 tweets 2 min read
This is one case of a general set of really handy math tricks. I'll explain what's going on at an intuitive level in this thread and give the other tricks.

Transformation matrices compose by multiplication: applying transform B to A to vector B is B * A * v.

... Linear intERPolation (lerp) operates on values that compose by addition. To apply lerp to values that compose by multiplication, we need to turn multiplication into addition.

There's a transformation that does this: log (and inverse log is exp, to go back).

...
Sep 15, 2021 4 tweets 1 min read
2021 light microscope photography competition results from Nikon. Science is beautiful:

nikonsmallworld.com
Sep 15, 2021 7 tweets 1 min read
In many cases, Roblox game creation is so easy that it catches me off guard because there is no documentation--since it does what I wanted automatically. Which is ironically hard for an experienced gamedev but excellent for newcomers. Last month I was confused by not being able to figure out how to set "climbable" and "stairs" flags on objects. It turns out that you don't do this in Roblox because the physics & avatar system automatically determine what you can climb/walk up and just deals with it for you.
Aug 23, 2021 8 tweets 3 min read
@Reedbeta Shadow map math is surprisingly simple if you think about it in homogeneous and projected space.

Linear 3D interpolation of any coordinate S becomes 2D linear interpolation of S / dot(S, z), where z is the projective axis of the perspective projection... @Reedbeta ...what shadow mapping is doing is linearly interpolating projected values in both the light's viewpoint and the camera's viewpoint, and then taking them back to 3D via also interpolating 1/z and dividing by it. So, it is "perspective correct" interpolation in two spaces...
Feb 28, 2021 9 tweets 4 min read
Ivan Sutherland cofounded one of the most important 3D graphics companies, received a Turing award, and contributed fundamental work on hardware accelerated graphics, CAD, HCI, and VR.

One of his contributions less well known outside of academia is... "The graphics wheel of reincarnation," described by Myer and Sutherland. This is an observation in the vein of Moore's Law. It means that every ten years or so, the same ideas come back into popularity in graphics. Such as: fixed function shading, vector processing, & ray tracing
Oct 24, 2020 17 tweets 7 min read
@AmazingThew Something life changing I learned early at NVIDIA is that "putting something in hardware" (creating an application-specific integrated circuit, ASIC) usually does not make a program faster. (thread): @AmazingThew At a very high level, processor design is limited by three main factors:

1. Physical area; there's a limit on how large the die/mask can be
2. Power/heat dissipation ("Thermal Design Power" TDP). If you can't get power in or heat out, the chip won't work
3. Clock speed/voltage
Mar 21, 2020 7 tweets 2 min read
When coding, I always maintain a journal in the repo (I happen to use Markdeep for this now) with a TODO list.

Tasks are at the level of one hour for "today" stuff, one day for next week, and then week- or longer level tasks.

I expand the details for the next week on Friday. I expand the one-day tasks into one hour either first or last thing in a day, but ideally as my last action so that I start each day with clear direction.
Oct 15, 2018 12 tweets 3 min read
A thread of notes on the ACM ToG Production Rendering special edition from @Peter_shirley & me. dl.acm.org/citation.cfm?i… Solid Angle Arnold: kicked off the path tracer revolution

Sony Pictures Imageworks Arnold: fork of the SA renderer specialized for Sony

Manuka: Weta's path tracer

Hyperion: Disney's relatively small path tracer

Renderman: Pixar's rebooted renderer, now using path tracing