Gameplay improvements, trees, new visual effects and more (Patreon)
Downloads
Content
Had a bit of a hiccup in performance, but things are back to proper mode of operation now, so more new features (and, of course, fixes and documentation) are coming soon! As for this update, there are still a few new interesting things:
Trees (not yet procedural)
Whole thing with trees turned out trickier than I anticipated (generating a tree is one thing, but having to create LODs for it too requires some very different geometry which I’m still investigating). Instead, I went a different direction and added support for existing tree models:
Here is how it looks in motion. With billboards for distant trees and heavy use of instancing to save draw calls and improve performance new system can handle hundreds of thousands of trees with no problem (and can also be used for bushes). Hopefully in the future I’ll be able to figure out procedural generation which will make replacing trees on existing tracks trivial, but at least now creators working on new tracks can use this system to save some time and performance.
Extra FX update
First of all, SSLR got a big update. Improved blurring, improved filtering, but also a couple of much better-quality levels (I finally realized algorithm leaving holes everywhere in a hope of a lucky hit in a few steps is not really as of a tradeoff as I thought it was). Now, instead of holes a simpler algorithm adds a bit of blurriness, and the best Hi-Z algorithm uses a special data structure to find reflections the most accurately, even being able to find a reflection of a single pixel wide cable ten meters from the ground:
SSGI has been removed, as it wasn’t really fitting the direction CSP was taking with bounced light and such. Instead, bounced light effects were extended to now include light bouncing from cars onto the ground. No longer screen-space, it should work faster and not break with view angle changes:
Another big new this is a new Extra FX effect allowing emissive meshes to cast light on surrounding geometry. Currently it needs a car or track config to work in full (considering occasionally strange emissive values I was worried guessing could break some existing mods and such), but configuration is very simple and it can add some interesting visual effects:
Here is a side-by-side comparison. The effect could also be used by tracks to simplify making those emissive meshes actually glow. Also works with skinned meshes and can illuminate whole tracks by itself only (although with the latter one performance does suffer a bit, using it like that is somewhat of an overkill). Note that this is not a screen-space effect, so hands covering dashboard LEDs, for example, won’t stop them from casting light.
Other visual improvements
WeatherFX got a strange new feature mimicking PBR lighting distribution for standard materials. While PBR is already available, it might take some time to upgrade all the content to that method, so this tweak allows for regular materials to look more in-place until then. Main change you’ll notice is horizontal surfaces being noticeably brighter when the sun in low.
Brake Disk FX now uses rim silhouette for reflections and occlusion. A cheap trick, but it really helps to add more depth to wheels without relying on expensive and occasionally failing SSLR:
Shadowed Wheels module now occludes reflections as well. Another easy to compute fix helping reflective rims to look a lot more grounded.
Other changes include updated default WeatherFX implementation with improved fog and other values, optional MIPs for rear mirrors to reduce aliasing and various fixes and core improvements to improve performance and reduce changes of freezes with conditions change. Original AC heat shimmer also got an update, now allowing for car configs to configure the effect in more detail, adjust emission points and directions, link effect to engine temperature and more. Also, new flames should look more like short-lived flashes now.
AI rubberbanding
New option in New Behaviour module allowing to alter AI level based on its position relative to you, making bots in front of you perform worse and bots behind better. More often seen in arcade racing, but it could be useful here in case you’d want to train with bots closer to you.
PS5 DualSense support
CSP also got a full DualSense support: touch panel, LEDs, light bar and more. Gamepad FX script can also access the gyroscope and accelerometer state as well as apply custom resistance to triggers. There is also an experimental “Dualsense Extended” Gamepad FX script using slip force for resistance, but it’s more of an API demo at this stage.
Speaking of gamepads, built-in Control Tweaks app also got a small update allowing to remap buttons (including clutch button and more) live. Plus, CSP now recognizes START button of both wheels and gamepads for starting, pausing and resuming the simulation allowing to play without reaching for a keyboard.
(Also, Dualshock support is coming soon as well if everything would go as planned.)
Rain tyres
That issue with rain tyres being slightly faster than regular ones should be fixed now, with rain tyres properly overheating and having worse grip than regular ones. Extended physics also got a few fixes and a lot of improvements. With all this, RainFX gets one step closer to completion now.
Anticheat
Without going into too much details, CSP should make cheating in online races more difficult now. Hopefully this protection will last for some time. Server admins now can simply set v0.1.79 CSP as a required version (build #2144) and it should make racing fairer.
Other changes
A few other notable things: AC Pro support has been improved, Neck FX now should handle large drifting angles better, live conditions online won’t break simulation. There are also plenty of fixes and optimizations, and new functions for Lua. Here is the whole list of changes.
As always, thank you very much for all the incredible support! Sorry for such a long delay, now that few big things are out of the way I’ll try my best to start releasing updates more frequently.