Wheels, motion blur and motion vectors

Hey everyone!

I sure I speak for all of us using vehicles that motion blur is a big problem for wheels.

This happens because “motion blur in UE4 is linear”.

Epic explains it pretty well in The Human Race video, here:
[video]https://youtu.be/A0BfZoFZyBs?t=31m45s[/video]

Now, as I see it, Epic is blending through different wheels (based on speed), and these wheels are moving slowly. That’s fair enough, but what I don’t understand is how they achieve that perfect motion blur effect.

I did try to move the wheel slower, but it looks nothing like their version:

b8b064505d50041a4890799f6769796b71451420.jpeg

Help me, Epic, you’re my only hope! :smiley:

Same problems here with wheel motion blur, and I want Extract motion vector gbuffer.

The problem is within the motion vectors themselves.

As you can see in the video, the faster the wheel spins, the more the vectors have the tendency to be linear.

What I’m looking for is to clamp the motion vectors somehow.

So, screen percentage 300% helps a bit, but not much. Also, it’s pretty much unplayable (duh).

The search continues! :smiley:

c25d82d9556b1297b5dda6c8d7e1a11b559e38e4.jpeg

Maybe you can fake it with material or extra animation in the wheel instead of just hopng that the built-in motion blur does it perfect…
I would bet for a fake solution, really.

I’m really curious how Epic did it in The Human Race, though. I’m not expecting the built-in motion blur to work out of the box, rather I’m waiting to see if anyone who worked on it can give some hints.

Old school technique with motion blur was to render scene multiple times with substeps to accumulate buffer. This is insanely costly but gives nice algorithm that can be used with modern techniques. For correct motion blur for wheels you would need to render spinning wheel multiple times during when shutter is open. So let say your 4ms shutter speed and you render same wheel 4 times in time T, T - 1ms, T - 2 ms and T - 3ms. Also can use alpha testing instead of blending. I think they are doing just like that in The Human Race.

That went waaaay over my head. :smiley:

How do I get started with this solution?

Really old school would be to have disc model with pre-blurred texture :slight_smile:

Yeah, exactly. Maybe have a kit of variants. 3 or 4 positions that you pre-rendered or even in an atlas if you want. And you just transition those nicely.

Alex from what I seen on the behind the scenes cut. They didn’t use animation on the car. They used film, and mocap. So this was Ue4 that retargets a body on their actual car. The wheel images your seeing are of the actual film, and weren’t created in engine. Old school game tricks change wheel image as vehicle speeds. So you would start with a transparent texture, and move to one pre blurred, and basically play a flip book with the vehicles speed. This is really evident in games from the 90’s. As sometimes when turning corners in a game like test drive 5 you’ll notice the blurred image being stuck, and not moving at all. So in the 90’s essentially you placed a round pane at the edge of the wheel, and have about 8 textures that are blurred. Speed up the flip book as your car speeds up, but if speed decelerates below set amount than go back to transparent to show the wheel. Even new games are doing this, but without the pane. You can watch a project cars video like this. https://www.youtube.com/watch?v=SNKjM-LHLdk and see that real physics dont apply. I think the cv joints in rear axle sometimes slow down as car goes faster, and at times the wheel images will glitch, and get stuck. Problems happen when hooking turns, or doing burn outs. because it doesnt detect wheel spin, but speed.

Car is fully CG so wheels are too.

They used actual wheel mesh to get proper lighting.

I seen that blackbird. The car that they had as a prototype.
They were showing them retargeting a body onto that car.
If The entire car modelled for cg then it’s really, really good.
I haven’t seen graphics that good in any racing game. Ever.

Yeah, they did. You can see the wheel react to lighting in the making of video.

I did manage to cobble something together, but I don’t think it looks quite like what Epic did (obviously):


Obviously, there’s a problem:

That’s pretty good. I just re watched the livestream, and it’s impressive. I hope to see the answer. Not only for wheels, but it can do a lot for rendering fast movements. At exactly 24.05 it shows a screen shot of the car with a black inverse domed wheel. Then at 27.41 a large piece of the tire is inside the concrete. This is all on the gdc 2017 video. There is a gigantic graphics card station next to the guy at 24.05. I’m wondering how much they boosted the game engine to get this effect. Im sure we’re talking HP sitting on that desk. That has to be at, or near 100fps, or more. Theres a nice console command for forcing fps also. That bmw wheel looks so much better.

It would suck if they turned out to be using Screen Percentage 500 :smiley:

EDIT: At 24:16 you can see the motion blur artifacts on the wheels.

Yeah it’s pretty neat. I followed this post in hope for an Epic answer. I’m hoping that it’s not some paid premium solution created by the company with all the laser scanners, and doohickeys. LOL What throws me off is them using the exact same wheels 99% of the time. At that clip I see some motion blur, but also see the transparent body. So it makes me think they arent using 3d wheels in this scene, but rather the body retargeted onto the frame, and those shadow dome rims of the 3d model went behind the actual wheels on the fancy go cart. Which would absolutely explain the model hes working on not having wheels, and being retargeted into a movie scene. That motion blur capture could come from them retargeting in real time. The rendering in this is better than most newer racing games. As you really cant tell the real car from the false one. wheels included. The cgi is really that good. After seeing the smart people do all this. I will return to my game that now looks like a bag of rotten trash. but i like it.

Same here, I’m waiting on Epic’s input here. :frowning:

… and this is how Unity handles motion blur with Temporal AA:

https://youtu.be/A0BfZoFZyBs?t=31m45s Thats how they did the effect, I guess this is WIP/private stuff.