Evgeny Efanov's profile

Porsche 911 GT3R on Monaco POV

Since the goal of this video was to make it look as realistic as possible, the cars and the track had to look the part. From the very start of this project I knew I wanted it to be set in Monaco, and in the rain as well, and it had to be done well since Monaco is such an iconic track. That proved to be a challenge and a lot of reference footage and images was carefully studied to replicate the real life look of the track, the leading car (McLaren) and the interior of the POV car.
Driver glove detail.
A closeup on the leading car showcasing the shading of the exterior of the car.
The most important part for this kind of video is the animation, since it basically makes or breaks the realism of it. The first piece of the puzzle is getting the cars to behave as they would in the real world. Thankfully Unreal Engine has a great Chaos Vehicles physics system designed specifically for that, both cars were rigged and configured in a way that matched their real world counterparts, and that includes specs like torque curve, gearing ratios, suspension stiffness, max engine RPM, mass, wheel size and dimensions of the cars, among others. Getting those values right proved to be very useful down the road when doing sound for the video, but more on that in the sound section. After the cars were rigged it was time to actually record their movement, but it was quite hard to get right manually, so instead I created a simplistic AI system so that the cars would drive themselves on the spline path (racing line) that I set up for them. The system looks at the tangents of the spline ahead and generates throttle, brake and turn inputs based on that.
McLaren engine setup.
Footage recorded while testing and setting up the values for the AI.
In this video you can see 2 markers in front of the car: red and blue. Curvature of the spline at Red marker position is what AI uses to calculate the turning inputs, Blue is for throttle/break inputs. The higher the speed of the car, the farther ahead it looks at the spline.
Putting two cars on the track at the same time had some unforeseen consequences.
Getting the cars to drive correctly is half of the puzzle, the other (I would argue more important) half is the camera animation since it is what the viewer sees the most in the video. Tackling the camera animation wasn't easy, the approach chosen was to use a VR headset and pretend to be driving while roughly doing the head movements that a real driver would be subjected to based on the inertia of the car. However that proved to be insufficient (skill issue), so a lot of manual tweaking had to be done using Unreal's Additive Tracks and Perlin Noise Override tracks in sequencer.
Test take of a VR camera recording.
Next in line after getting the cars and camera animation to look acceptable are the miscellaneous items: steering wheel, hands of the driver, and any of the physics based items in the interior. Steering wheel was animated manually based on the recorded turning inputs from the AI car, the hands of the driver were "glued" to the steering wheel using a custom Control Rig with IK chains for the hands, IK targets were parented to the steering wheel. Physics based safety net was rigged and animated using Animation Blueprints. Rear view mirror bouncing on the chicane turn and the windshield wiper shaking were done using sequencer's noise tracks.
Control Rig setup for the driver.
Physics AnimBlueprint setup for the safety net. Different controllers are for different parts of the net.
Weather effects were the most challenging aspect of this video. Starting off with the rain itself, it's a CPU+GPU Niagara particle system that moves with the POV car. The particles that get left behind the car get recycled back into the view so that there's no visible "shower rain" effect where you can see the particles spawning in front of you. The particles themselves get rotated into the view of the camera, giving greater sense of speed. When a CPU rain particle hits the ground it produces a rain splash particle in its place. To increase the coverage of rain splashes there's another particle system that just spawns rain splashes regardless of the rain particles.

Rain moving with the POV car.
Tyre mist consists of 2 Niagara particle systems:  the mist that gets sprayed right under the tyre near the ground and larger "clouds" of mist rising behind the car. In the tunnel only the smaller ground mist particles are active, while the larger ones get activated when the car gets out of tunnel.
I tried simulating it properly per particle and exporting it to a VDB, then importing into Unreal, but it gave me too much trouble with that approach.
Test footage of a proper VDB per particle tyre mist simulation.
Tyre mist particles.
Finally, the windshield droplets required some creative thinking. I've tried 3 different approaches: mesh simulation in Blender, realtime Niagara 2D particle system that gets fed into the material of the windshield (this is the way it's done in videogames), and a 2D particle system that is done offline and then rendered as an image sequence and is then fed into windshield material. Blender approach was too unstable and hard to control, pure Niagara particle system gave me a lot of issues with culling and collision accuracy (I know for a fact it is possible to achieve a perfect simulation accuracy through Grid2D particles but I don't know enough about it at the moment to implement that) so I ended up doing a mix: a Niagara 2D particle simulation that gets rendered, then I do some post processing on it in After Effects, and then render that as an image sequence and use that in a material of the windshield. You can see the resulting image sequence below.
Windshield droplet simulation texture that gets fed into the windshield material.
Postprocessing included adding grain, some color adjustments, glare and a rolling shutter effect so the image kind of "bounces" around, which gives it that extra little bit of realism.
Sound was done by splicing up some youtube videos together, then applying reverb for the tunnel part of the video, then converting the whole audio track into mono, applying some clipping so it sounds authentic, and finally lowering the bitrate to 80kb/s.

Sound credits:
2022 24 Hours of Spa Qualifying Lap Porsche 911 GT3R by KevTse (https://www.youtube.com/watch?v=GSKV6DZddbc)
McLaren 650S GT3 claims Bathurst Lap Record - 2m 01.286s by
McLaren Automotive (https://www.youtube.com/watch?v=k3nlWPMQTbg)
Asset credits:
Porsche 911R GT3 - Project CARS 2
McLaren 650S GT3 - Project CARS 2
Monaco Track - F1 2018
Driver - F1 2018
Yachts - Evermotion
Track Marshals - GTA V
Umbrella - kowbassen on Sketchfab
Chainlink Fence - GIR_ on Sketchfab

Render time: 22 days on 1xRTX4090 at 3840x2160 with Intel OpenImage Denoiser
Porsche 911 GT3R on Monaco POV
Published:

Owner

Porsche 911 GT3R on Monaco POV

Published: