- Version ID: 2051
- Size: 80.75 MB
- Published: 2022-06-08
Changelog
New features, options and improvements
-
VR update:
- Single Pass Stereo, cutting number of draw calls by two;
- Variable Rate Shading (aka foveated rendering) for NVIDIA 16…-, 20…- and 30…-gen GPUs;
- Optional single YEBIS pass;
- Support for corner masking optimization (stops shading in areas covered by lens to speed things up);
- ASW 2.0 support for Oculus;
- Also, for Oculus: CSP now updates AC manifest, updates assets to show details about the race, closes AC if its VR element is closed;
- Better OpenComposite (previously known as OpenOVR) support, for both OpenCompositeACC and regular OpenComposite version (fixing crash with
ipdOffset
); - Crashes in VR now shut down AC first and show errors in a separate process, to make sure VR environment would switch back to desktop;
- X-ray rendering for HUD to stop things looking weird if there is some geometry in front of HUD;
- Controllers integration: interact with HUD, adjust rear view mirrors, use touchscreens, press car buttons and more (if car has those set);
- Experimental option to get driver hands to follow VR controllers;
- Optional extra dithering, might help with overly compressed image with Oculus Air Link;
- FPS counter for custom VR mirroring;
-
Custom GamepadFX script updated:
- Improved implementation;
- Separate drifting and racing modes which can be switched while driving;
-
WeatherFX:
- Various improvements for cloud covers;
- Accurate moon eclipses (need to be enabled by WeatherFX scripts to ensure compatibility);
- New API for implementation scripts to create custom effects;
-
Default WeatherFX script:
- Distant thunder effects;
- Rain haze;
- Rain audio;
- Auroras (try February of 2022 on a track further than 60° of latitude, such as Ahvenisto Race Circuit);
- Fixes for fog, fog covering tops of tall buildings;
- Size of planets, sun and the moon fixed;
-
Extra server options:
- An experimental option to pause collisions for a bit if remote car would suddenly jump;
- Explicitly defined timezone and coordinates to ensure lighting would match with custom tracks with no such properties defined;
- Syncing of wheel angles now includes caster;
- Custom cars motion fixed, now shouldn’t cause issues with remote cars acting slightly differently when colliding;
- An extra option for custom cars motion: smooth motion for slower cars helping with cars shaking on larger tracks (can be activated with
CUSTOM_MOTION = 1, SMOOTH
); - Options to reset car if it got stuck in a collision or falling through ground, with optional penalty;
- New core options: force custom cars physics, force custom track physics, hide pit crews to speed up loading (support in CM is coming soon);
- Commands to show a message and override ban message, available as new direct TCP commands or compatible chat commands;
- Issue with some of
EXTRA_RULES
values allowing to access setup menu without going to pits fixed (set new CSP build ID as a minimum required version); - New rule requiring to finish the lap before going through pit penalty (so people couldn’t reverse back through pits instead);
- Set some CSP modules to be required for a server;
- If server requires any CSP module using that option, or requires WeatherFX or RainFX using older methods, live settings reload will be disabled;
- Option to hide default map app;
-
Features for custom server implementations:
- Custom packet format: support for types less than a byte (
CUSTOM_UPDATE_V2
); - Batch update fix fixed (new ID is
BATCH_FIX_V2
); - Servers changing tracks often can specify
FREQUENT_TRACK_CHANGES
feature which will force CSP to update track ID to actual one before connecting;
- Custom packet format: support for types less than a byte (
-
Python:
- Better errors handling;
- Optional caching to speed up loading;
- A compatibility fix: can help if installing an older app breaks a newer app (forces apps to use newest
sim_info
library);
-
New built-in apps (written in Lua):
- Controller tweaks: adjust FFB, gamepad or keyboard control options during the race with changes applying live;
- Mirrors configurator: adjust Real Mirrors with convenient sliders;
- Setup Exchange: publish car setups, load and apply setups made by other people in pits (pits integration is disabled by default, can be enabled in app settings);
-
Remote cars no longer have their steering wheel angle limited by 127°;
-
CSP soundbank with sounds for wipers is included now;
-
Water shader: few fixes, new depth-aware mode for smooth blending, caustics (for both refraction and reflection);
-
New water drain shader for water in water drains filling with rain;
-
New rainbow stickers material for cars;
-
New ChromaFlair car paint;
-
UV2 support for car paints and
nePerPixelMultiMap_AT_NMDetail_stickers
shader, for an extra layer with stickers and similar things; -
Showroom mode: loads showrooms from
content/showroom
with some AC features disabled for faster loading; -
Some misconfigured car soundbanks now get fixed before loading (thanks to Chr0m3 for the solution);
-
ProTyres and Camber Extravaganza apps now function correctly with virtual tyres (such as automatically generated rain tyres);
-
Blown tyres now make a different sound;
-
Few further optimizations for loading speed;
-
AC apps now can be dragged all the way to the top of the screen;
-
GUI controller integration: bind specific keys if necessary (for example, in case you don’t have D-Pads)
-
Updated default GrassFX texture, few small improvements for its shading;
-
Engine explosions now produce more smoke;
-
Android Auto recreation: radio app now allows to add more stations in-game;
-
New Planetarium filter (also, cartoon filter updated);
-
DDS textures now can have LZ4 compression applied to them to reduce file sizes;
-
A new experimental feature for creating custom external AI implementations;
-
New experimental chunks optimization mode increasing FPS on large tracks;
-
Basic chunks optimization now uses adaptive chunk size, increasing performance for tracks with smaller objects grouped in a separate KN5s;
-
Optional clearing of system shaders cache when CSP version changes (enabled by default, solves issue with loading getting stuck with some hardware);
-
Option to stop AC from creating setup folders for every installed track (also saves time during loading);
-
Option to pause rendering if AC is in background;
-
Option to use memory mapping for loading textures and VAO patches (might increase loading speed);
-
Option to use Time-To-Speech for chat messages online.
Fixes
- Issue with new procedural wipers getting deformed, especially in VR, should be fixed now;
- Some replays failing to load fixed;
- Mouse steering fixed;
- Wind not affecting trees fixed;
- Mumble link is more reliable;
- VAO: first version of extra samples now loads correctly;
- Smoke from brakes online fixed;
- Skidmarks now get cleared during loading to avoid having too many layers in a single area, to improve performance;
- Audio pauses when making a screenshot in replays;
- Shadow biases fixed, now taking into account shadow resolution;
- New DDS loader now ignores textures without MIPs;
- Pixelated smoke fixed;
- Issue with new pause menu resulting in broken shading fixed;
- Fix for shading: certain materials that used to change in brightness based on distance to camera now should do it less;
- Godrays not working without
ac.setGodraysCustomColor()
call fixed; - Pause menu not opening correctly on first try fixed;
- Scriptable filters fixed;
- Hold mode for high/low beams button fixed;
- Shader for distant glow fixed, now works better with different fog configurations;
- Compatibility with ReShade improved;
- Hiding car labels on some online servers fixed;
- Issue with fonts rendering causing first draw call of a bit of text to fail fixed;
- GUI controller integration not working with certain controller configurations fixed;
- Android Auto no longer takes screenshots when both pedals are pressed;
- Flickering lighting on tyres for stationary cars fixed;
- AC is considered to be in foreground if VR is active (if not in foreground, certain things like reacting to keyboard presses pause);
- Wind acting on water fixed (now water follows wind direction);
- FOV for Real Mirrors changes with distance in VR as well;
- Driver tags shown for disconnected cars with triple screen fixed;
- Default water normals texture is no longer so overly compressed;
- Overly blurry FSR with VR fixed (although it’s not compatible with SPS at the moment or VRS at all);
- New pause: camera no longer shifts in VR, that looked weird;
- Walking-out-thing no longer breaks with AI flood active;
- TAA flickering on sky/track boundary fixed;
- Flammable objects (such as hay) now work even if they are perfectly aligned with axis;
- Exterior wiper traces now showing on some systems fixed;
- Options to show icon for active manual pits speed limiter and disabled automatic pits speed limiter;
- Manual pits speed limiter resets with session change or restart;
- Refracting headlights: emissive part absorbed by glass is colored accordingly now;
- Sparks flying from contacts with roads don’t fly up as much if car is not moving fast enough or if car is not the right type (can be customized in car config);
- Skidmarks and grass disappearing on some tracks with certain view angles fixed;
- Skidmarks not rendering correctly in triple mode with separate FSR multiplier for sides fixed;
- Refracting headlights no longer break if transparency flag for surface meshes is set;
- A couple of issues related to tyre tester app are fixed;
- Stars map fixed (rolled back to previous correct version);
- Scriptable filters no longer break with TAA;
- Audio switching between interior and exterior of fast moving cars with F5 camera fixed;
- Loading of some unusually saved replays fixed;
- Smaller fixes and stability improvements.
Configs
- New things for dynamic objects on tracks with custom track physics:
- Adjust mass;
- Alter collision properties;
- Enable self-collision (use with caution);
- Replace mesh colliders with geometry colliders;
- Move center-of-gravity;
- Automatically detect boxes and replace their colliders with fitting box colliders, also fixing center-of-gravity;
- Live reload for track cameras;
- New
[BASIC] NEEDS_LIGHTS_FIX = 1
parameter for cars which have their lighting configured for older broken version of CSP and now having lights that are too bright; - New
[BASIC] SPECTATOR_COCKPIT_HR_DISTANCE = N
parameter to increase high-res cockpit distance for spectators, free and track cameras (somewhat fixes dark interior of BMW E30 DTM); - New option for trees: use
MATERIAL_FLAG_0 = 1
with[SHADER_REPLACEMENT_...]
to fade away triangles facing along view direction; - Android Auto recreation: better support for smaller displays, offset no longer breaks clicking;
- Fix for partial reload: now material adjustments, lights and such reload when track conditions are edited;
- Car configs now can override tyre and rim width and offset, to get skidmarks and particles to fit properly on some unusual tyres;
- Car paints: flag to force sharp reflections on clear coat;
- Custom cars physics: get tyres to blow up with suspension damage;
- Custom track physics: slightly randomize spawning positions;
- Material for distant geometry fixed, now it no longer needs options and, with some caveats, doesn’t have any distance limitations;
- Subdivide track meshes (helpful for distant geometry fix applying to a giant plane for the ground, like on Shuto);
- New simple
ksPerPixelAT_NM_emissive
shader for some basic track objects with alpha intxDiffuse
; - New
VRS_FIX
option for shader replacements which should help with some materials getting too dark nearby (and looking horribly with VRS); - Accurate PBR materials for tracks with optional displacement (currently in experimental stage).
Lua
- Custom car physics script:
- Access car state (
ac.StateCar
ascar
, it doesn’t update at physics rate, but for some things it should work all right); - Change CD_GAIN and CL_GAIN for wings;
- Access and alter body damage and tyres inflation (set to 0 to blow them);
- Access more of wheels state;
- Move box colliders;
- File
script.lua
would be loaded only ifdata.acd
is not present, otherwise CSP will search for a file indata.acd
;
- Access car state (
- Improved handling of custom shaders:
- Warnings get printed in log;
- Now it’s possible to load shaders from files and use includes;
- Line numbers in reported messages match;
- Load 3D textures, cubemaps and texture arrays from DDS files;
- Bind textures with number of channels other than 4;
- Library definitions updated to better support updated Lua extension by sumneko;
- Lua interpreter updated to include the latest improvements added by Mike Pall;
- New
ui.GIFPlayer()
helper allowing to use animated GIFs in UI and as textures; - New
os.addDLLDirectory()
function to simplify loading extra DLLs for things like socket library (also,package.add()
now addscpath
as well); - Socket library is included by default now;
- Lua apps now can create new UI elements for car setup, save and load setups, access setup items and change them;
- When creating extra canvases, it’s now possible to specify format, including HDR formats;
- Textures are now reference counted and unload automatically (you’d still need to use
ui.unloadTexture()
to unload textures used in UI); - Functions to render quads and quads with custom shader, function for optimized fullscreen pass for extra canvases;
- Sim value
currentServerTime
stays synced with session change; - Access lap splits in sim state;
- WeatherFX: skip first MIPs when loading a texture, access scene API;
- INI parser fixed (previously, it could occasionally fail);
- Car scripts now can switch to neutral gear (could be bound to a mesh button);
- Car mesh buttons now can be set with local mesh coordinates for moving geometry (like steering wheel buttons);
- Textureless car scripts now can use mesh buttons too;
- Force-apply driver animation: allows to add and blend custom rig movements on top of existing animation;
- See the state of extra canvases with Lua Debug App by assigning them a name with
:setName()
; - GamepadFX: access to gamepad settings and more details about car state;
- Get state of VR controllers, use it to create interactive objects, set controllers vibration or recenter VR headset;
- Instead of
web.loadRemoteModel()
andweb.loadRemoteAnimation()
, there is a newweb.loadRemoteAssets()
function which can be used for both and more; - New functions to get details about drivers: names, teams, nationalities, numbers (uses explicitly set values or, if not set, skin JSONs);
- Any Lua script now runs only after full sim initialization, thus ensuring state of
ac.getSim()
would be valid; - Access shared memory files;
- Physics API: override or offset user steering, access original steering value;
- New physics rigidbodies now can be kinetic (have velocity and impact scene, but not get impacted back) and use geometric colliders instead of mesh one;
- Tracks can allow for scripts to manipulate extra rigidbodies without accessing the rest of physics API, allowing to create dynamic and new kinetic rigidbodies;
- New
physics.setRestrictor()
andphysics.setBallast()
functions for scripts that can alter physics state; - Scene API: new functions for basic set operations on scene references, async loading for new models;
- Text inputs are no longer limited by 256 symbols;
- Web requests no longer throw errors if URL is malformed, instead they return errors via callbacks;
- New parameter for web requests to load headers only, without the payload (not all servers respect
HEAD
method); - Car state: pit speed limiter works correctly (aware of session-specified maximum speed, takes into account manually operating limiter);
- New functions: check if Lua app window is pinned or make a screenshot;
- Check time gap between cars with
ac.getGapBetweenCars()
; - New functions allowing to access extra options and teleport function on server that has it set;
- Base library:
string.split
andstring.trim
reworked and optimized, new string functions including functions adding regular expressions support; - Function
ac.findCarAtPlace()
is fixed; - A lot of other smaller fixes.