rob cupisz's Avatar

rob cupisz

@robcupisz.bsky.social

Tech Lead at Unity Demo Team. Rendering, tech art. Lighting, VFX. Time Ghost, Enemies, The Heretic, Adam https://twitter.com/robcupisz

378 Followers  |  79 Following  |  16 Posts  |  Joined: 27.09.2023  |  2.1391

Latest posts by robcupisz.bsky.social on Bluesky

Performance: some more alu in per particle output compute, and more alu per pixel, but no texture read. No extra attributes needed.

You’d struggle to measure any perf delta, even with tons of embers covering the screen, as other costs dominate (particle compute, vertex, blend).

27.01.2025 19:07 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

There is also some control over variable circle of confusion size, making it dependent on camera focus distance and aperture.

An exaggerated shallow depth of field:

27.01.2025 12:22 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image Post image

This bit of the vfx graph deals with output. Projects the particle velocity, then aligns and scales the quad accordingly.

Also some black body radiation. If a particle speeds up, I’m assuming it got hit by a micro gust -> more oxygen -> brighter for a moment.

27.01.2025 12:19 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image Post image

The shader calculates the swept disc shape, plus some soft edges, as the circle of confusion from a real lens would not have sharp edges.

It fills the entire quad not to waste fill, assuming the quad will be stretched to target proportions.

27.01.2025 12:18 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

Now we implement that swept disc shape in a shader, and put it on a quad.

The quad needs to be parallel to the camera plane, and aligned with the velocity projected onto that plane.

An ember flying towards/away from the camera degrades to a circle of confusion on a square quad.

27.01.2025 12:17 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Note how it matches the shapes we’ve seen in the ref - at least for most embers, which are small enough glowing points to form a regular circle of confusion.

The order of operations is important here: circle of confusion β€œhappens” first, then moves across the sensor.

27.01.2025 12:15 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Both of these things mean that they’ll typically be quite a bit out of focus, and travel far while the frame is being exposed.

Here’s a photo of a charger light I took with my 200/f4 lens. In focus, out of focus, then with progressively longer motion.

Also merry xmas, or smth.

27.01.2025 12:14 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

So how do real embers look like when recorded by a camera?

They’re flakes and small bits of burning material.

Since they’re not that bright, they’re usually shot in darker scenes, with wide aperture lenses and longer exposure times.

Ref from ActionVFX
www.actionvfx.com/collections/...

27.01.2025 12:12 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

Needed to hold up close to the camera as well

27.01.2025 12:11 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

This is my vfx test scene for Time Ghost, the Unity demo we’ve shown recently.

The escape sequence needed tons of flying embers. Usually out of focus to some degree, and motion blurred, as that’s how we’re used to seeing them on screen.

repo: github.com/robcupisz/fl...

27.01.2025 12:09 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

For the love of our eyeballs, do not align your ember particles to velocity!

Don’t give them that comet texture either, ugh.

Let’s make
✨physically based flying embers✨

A Unity vfx graph implementation and explanation below. 🧡

27.01.2025 12:07 β€” πŸ‘ 61    πŸ” 15    πŸ’¬ 2    πŸ“Œ 0
Video thumbnail

Some tech details: discussions.unity.com/t/making-of-...

18.10.2024 23:43 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

And here’s the environment scene with tons of interactive ECS grass you can run through. There’s also a time of day anim using scenario blending.

Download: assetstore.unity.com/packages/slu...

18.10.2024 23:33 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

…also featuring ML-based cloth deformation, running in Unity Sentis.

Download: assetstore.unity.com/packages/slu...
Some tech details: discussions.unity.com/t/making-of-...

18.10.2024 23:32 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Time Ghost | Unity 6
YouTube video by Unity Time Ghost | Unity 6

…from our latest, equally real-time, Unity demo:

youtu.be/o1JIK5W3DRU

18.10.2024 23:01 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

First Time Ghost scenes released! ✨

We’ve just published two projects: showcasing the character and the grassy environment scene.

Have a look at the real-time hair simulation…

18.10.2024 22:58 β€” πŸ‘ 13    πŸ” 1    πŸ’¬ 2    πŸ“Œ 1

@robcupisz is following 20 prominent accounts