Skip to main content
  • Version ID: ????
  • Size: ??.?? MB
  • Published: 2021-10-22

Changelog

New features, options and improvements

  • Dynamic weather conditions online with either a server plugin (documentation is coming soon) or custom acServer implementation;
  • New WeatherFX controller that uses OpenWeatherAPI to sync conditions with real weather dynamically;
  • State of wings used to hide and show additional car geometry is syncing online now;
  • FSR:
    • Whole thing reworked with officially released SDK:
      • Quality presets are different now;
      • Recommended level of sharpening is used now;
      • Option for adjusting MIP bias according to recommendations;
      • Old implementation is still present in case you wouldn’t like the look of the new one;
    • Option to set lower quality setting for left and right sides in triple screen mode;
    • Optional debug mode: hold Space to quickly switch to simple linear upscaling to compare;
  • Smoke fully reworked (apart from tyres heating and spawning logic):
    • New improved shading;
    • Improved smoke-cars collisions;
    • Better support for open-wheelers;
    • Tyre smoke spawns below car with extreme drifting angles;
    • Dust and splashes spawns around car, not just from wheels;
    • Dust flies off dusty wheels;
    • A bit of dust appears for some F1 cars with wooden skidpads when those touch the ground (and can be configured on per-collider basis, similar to sparks);
    • Clouds of dust spawn on collisions;
    • Smaller particles for bits of dirt and smaller splashes spawn in contact points;
    • Long-lasting smoke and dust (lasts for several minutes);
    • When on grass, instead of dust clouds, more subtle soil particles are used (color is set in track config);
    • New look for smoke from exhaust, heated brakes and damaged engine;
    • Smoke won’t show up inside a cockpit;
    • Colored smoke and dust lose saturation with expansion, with new config parameters to adjust the rate;
    • Smoke culling improved for further optimization and smoother transitions;
    • New options to adjust density and on-screen size, to balance between visuals and performance;
    • With ExtraFX, option to get smoke clipped by windows or, instead, rendered behind them;
    • Extra effect with smoke covering whole screen, to get effect of camera stuck in smoke much cheaper;
  • Pieces particles update:
    • Adjusted types chances, size and shading;
    • Collision detection now uses car heightmaps instead of depth buffer for more accurate results;
  • Size of sparks particles fixed, sparks no longer spawn with head-on collisions;
  • TyresFX:
    • Grass and dirt on tyres reworked, textures and rendering both;
    • Soil color is taken into account;
  • GrassFX:
    • Active ExtraFX pass option now properly supports fake car shadows reprojection;
    • Grass deformation updated, now takes into account grass height;
    • If you’re using original AC motion blur, it would affect grass as well now;
  • Smart Shadows:
    • Smooth transition between cascades reworked and is configurable now;
    • Disk shadows filtering removed, PCF is back until I figure out how to do it properly;
  • Nice Screenshots:
    • Old HDR fix thing is now replaced with brightness-based weighted average; much easier to deal with, and it produces better results;
    • Accumulation DOF: options to customize shape and samples distribution for bokeh;
  • New rendering modes: 360°, fisheye, split screen (new Content Manager supports custom modes for AC video settings);
  • Specify joypad index for joypads input mode;
  • Support for VAO patches v5 with spatial AO samples for dynamic objects;
  • New sky mesh with more evenly distributed triangles for better reflections and mirrors;
  • Option to hide console;
  • Option to create portals to other servers online for freeroam servers;
  • Scene tweaks from new photo mode app remain active with app hidden, or without replay (in a single-player race);
  • If VR failed to initialize, there’ll be a warning on loading screen (especially helpful if you accidentally chose wrong render mode);
  • Similar warning would be shown if ExtraFX would fail to initialize because of AC motion blur;
  • Chat shortcuts reworked: new UI system, now don’t trigger change in turbo, different approach for alternative set of messages;
  • Option to unbind digit buttons from changing turbo level;
  • Triple screen tweaks: option to always show driver name tags (with original system);
  • Semi-transparent shadows from smoke, flames, semi-transparent objects and such improved with Bayer dithering;
  • Button for manual control of speed limiter;
  • Online servers can alter speed limiter parameters, disable forced limiter (with configurable penalties), re-enable collisions in pits;
  • Walking out module: settings, improved transition, few fixes, selected car is the controlled one, tool for positioning cars a bit more easily;
  • Custom glare for distant headlights (experimental, disabled by default for now);
  • VR mirroring: option to fill the screen, new modes for anaglyph mode, additional settings;
  • Support for custom track tyres raycasting with a CSP plugin;
  • Option to fix audio alignment (seems like sometimes some AC cameras could break it);
  • Option to hide CPU occupancy warning;
  • Option to add border to AC window just in case;
  • PP-filters now can access additional auto-exposure options, for example, changing how fast AE changes (filters editor got new options in a sub-section of the AE section);
  • Support for secondary clutch axis (CM support is coming soon);
  • Option to hide driver name tags and driver points on track map for certain cars online via server config or extended server API;
  • New driver tags: option to control rendering distance;
  • Small tweaks: option to alter change AC audio volume during the race with buttons;
  • Option to remove 1 GB size cap for replays;
  • Double precision physics engine now enabled by default;
  • Freer camera: use pedals to smoothly control camera speed.

Fixes

  • FSR:
    • Oculus Rift integration fixed;
    • Virtual mirror incorrectly positioned in triple screen fixed;
  • Shader ksPerPixelMultiMap_AT_NMDetail is finally fixed (has been broken from pretty much first builds of CSP);
  • Pieces particles occasionally breaking motion blur fixed;
  • New photo mode app: setting DOF or changing camera FOV doesn’t reset to free camera anymore;
  • Additional caching during loading no more messes up setup menu (there was a problem trying to load a newly made setup);
  • Mumble voice chat audio orientation fixed;
  • Origin shift compatibility:
    • AI recording tool fixed (didn’t render spline correctly);
    • Driver eyes positioning tool fixed (similar issue);
    • ExtraFX bounced light clip plane fixed;
    • WeatherFX clouds and flickering cloud shadows fixed;
    • Case of VR with post-processing disabled fixed;
    • Custom triple splits: misplaced driver names fixed;
    • Shadows from dynamic lights fixed;
  • Fixed interior reflections masking flickering in free camera with AMD GPUs;
  • Interior reflections masking no longer darkens rough reflections that much;
  • AC crashing when CSP is trying to fix certain wiper animations fixed;
  • Accumulation DOF works better with real mirrors;
  • AC shutting down when making screenshots and such with certain mods fixed;
  • Accumulation DOF no longer breaks with ExtraFX motion blur (without accumulation motion blur);
  • Memory leak with SMAA fixed;
  • Possible performance issues with some PP AA modes fixed;
  • AC stuck in setup check with cars with extended physics fixed;
  • Monitor mirrors showing headlights as red and blue fixed;
  • Problems occuring when trying to save and load selected PP-filter are fixed;
  • Option to draw track AO samples removed to stop people from activating it accidentally;
  • VAO patches for cars no longer affect windscreen brightness;
  • Switching VAO sets (with driver/without driver) fixed;
  • Fur material changing scale randomly fixed;
  • Disabling windscreen dirt not always working fixed;
  • FidelityFX CAS now works with FXAA and FXAA 3.11 (fixed) as well as with SMAA;
  • Half-resolution smoke now works with triple screen mode;
  • Shader stPerPixelNM_UVflow with alpha-test now casts shadows properly;
  • Low beams not working properly in replays fixed;
  • Windscreen meshes drawn over driver’s visor (with something like F6 camera) fixed;
  • Shaking chase cameras fixed;
  • Tessellation shaders (flags, bending pieces): fog, shadows and ExtraFX effects are fixed;
  • Randomized wind component getting too large fixed;
  • Crash with downshift protection on older mods without audio event fixed;
  • Shadowed wheels and VAO fade out when car tilts too much;
  • Collision depth is stored in replays now, for deforming walls to work correctly;
  • Fake Shadows generation for cars like McLaren-Mercedes MP4/13 fixed (now ignores seatbelts);
  • Cached car data growing too large with repeated entries fixed;
  • Car heightmap not working correctly with some cars (and resulting in, for example, sparks flying inside) fixed;
  • WeatherFX:
    • PP-filter adjustments are reset when current filter is changed;
    • Default WeatherFX implementation updated and fixed (improved clouds, definitions for cold and hot weather types were missing);
  • Per-pixel fog used in some shaders fixed;
  • Replay clips saving is more stable now;
  • FPS limiter deactivation in new performance stats app fixed;
  • Loading of extra CSP data for older replay versions fixed;
  • Pieces of grass and dirt not really working with car driving backwards fixed;
  • Broken shading (especially shadows) of some skinned meshes fixed;
  • Fake shadows from front wheels sometimes being rendered above everything else in first persion view fixed;
  • Default button (numpad’s plus) for Extra D is fixed;
  • Loading car names from JSON is fixed;
  • GrassFX culled too early in right eye in VR fixed;
  • Incorrect configuration for rotating car objects (in extra_animations.ini) would no longer crash the game;
  • Car wheels jittering back and forth in rare cases when moving slowly fixed;
  • Replays now can record more frames with extra CSP data;
  • Bluish reflections with SSLR fixed (it still needs a lot more fixing though);
  • Cars custom emissives sometimes failing to sync with light sources fixed;
  • Additional replay data breaking when replays run into size limit fixed;
  • Extra-long speculars of SSLR are fixed;
  • Few fixes for headlights range switching with different camera modes;
  • ExtraFX TAA messing up LEDs fixed (with auto-fix active);
  • Python app names in Python profiler tool (and possibly more) getting messed up fixed;
  • Custom raycasting (in general settings) occasionally breaking simulation into brown screen fixed;
  • Extended raycasting (in custom physics) fixed once more;
  • AC crashing in track day mode on some tracks because of tyres issue fixed;
  • Also, AC would no longer crash if there would be meshes and nodes mentioned in camera_facing.ini and sharing the same name;
  • Fixed first shadows split breaking in VR in some cases;
  • Photo mode app: making a motion mode shot no longer freezes AC for a few seconds fixed at the start;
  • Real Mirror no longer breaks after switching driver on and off a few times;
  • Default car setup _ext_default fixed, now loads all the parameters (also now race.ini can define a custom setup to load, optionally fixed);
  • New driver tags: distortion in VR fixed;
  • Advanced culling causing initial skidmarks to appear with a delay fixed;
  • Smaller fixes and stability improvements.

For new content and configs

  • Override car data files related to visuals, such as lods.ini or lights.ini, by creating new files in extension/data_override folder;
  • Colorful shadowing: overall look improved, new parameters;
  • Masking pass shading improved, doesn’t look as messy with darker textures, new parameters;
  • Custom car physics:
    • Create hidden car setup items linked to some AC physics controller (for example, to create a suspension with ride height adapting to car speed);
    • Link clutch damage to exceedingly high torque;
    • Create extra links for any suspension, linking together hubs or attaching hubs to body with distance or fixed joints;
    • New inputs for dynamic physics controllers: DAMAGE_ENGINE, DAMAGE_GEARBOX (0 for original, 1 for fully damaged);
  • Custom track physics:
    • Soft walls fixed, with new MAX_DEPTH option to limit softness for collisions that are too deep (docs are coming);
    • Cars spawned aligned to track surface (optional, controlled by track’s physics config surfaces.ini, enabled by default with custom track physics);
  • Deformable track walls for deep collisions (with soft colliders), for tyre walls and such;
  • TyresFX:
    • New DIRT_OFFSET_K parameter, similar to DAMAGE_OFFSET_K;
    • Option to set custom meshes for different tyres;
  • [MESH_SPLIT_...]:
    • Set split name or material directly, or use existing material;
    • New mode COPY_FLIPPED to fix missing interior windows;
    • New INSERT_TO option to specify new parent for new meshes;
  • Parameter [BOUNCED_LIGHT] AMBIENT_MULT=0.2 for reducing ambient effect on bounced light now that new VAO patches for tracks have light bounces;
  • Parameter [REFLECTIONS_FX] INTERIOR_NODES=… for cars without properly set COCKPIT_HR now works better, affecting more CSP features;
  • New car instrument inputs for KERS;
  • Extra car switches (those extra A/B/C/D functions):
    • New extra E and extra F switches are added;
    • Switches now can have a name set in config to show in car description during loading;
    • Optionally, switch can operate in hold mode (active while button is pressed);
    • Optionally, switch can require stationary car to activate (like a speed key for Bugatty Veyron, for example), or neutral gear, or pressed brake pedal;
  • CSP configs can add extra comments about car features on loading screen;
  • Adjustable wings now can affect several nodes at once (easier to get LODs to work);
  • New ColoredBlackSpecular parameter for car paint shader improving look of multi-colored skins, enables automatically with fourth version;
  • Set soil color for tracks along with dirt and grass color;
  • Option to set soil, dirt and grass colors for different types of surfaces;
  • New track inputs:
    • CAR_DAMAGE_N for amount of damage of Nth car;
    • CAR_DAMAGE for maximum amount of damage of all cars (could be tied to roof lights of ambulances?);
    • ONLINE_RACE switching to 1 for online races;
    • TIME_SMOOTH: time of day in seconds without rounding;
  • In condition expressions, writing condition: prefix when referencing a different condition is no longer needed;
  • In places where previously track parameters could either be a number or reference a condition, now expressions are fully supported as well;
  • CONDITION for track lights and material adjustments now can use expressions too (although, without color support for now);
  • Issue with parameters MOVE_MESH_BEHIND and MOVE_MESH_IN_FRONT_OF unable to reorder elements within same parent is fixed;
  • Track configs now can set flame emitters;
  • New common/particles_track.ini with some presets for track particles (bonfire, stove, flare);
  • New common/displays.ini helping to easily create new quads for digital displays in cars;
  • Macro CustomEmissive_UseDiffuseAlpha fixed, now can use alpha from txDiffuse;
  • If you’re using wing animations to show and hide extra bits, now you can configure it so hidden geometry would actually be hidden, saving draw calls:
    • Car lights now can be bound to wing states, referencing wing ID and using LUT for brightness multiplier;
    • For simple cases with two states where hidden bit is either scaled down or moved far away, CSP should be able to guess things automatically;
    • Tool to quickly generate such animations with corresponding config is available on CSP wiki;
  • When copying coordinates from Objects Inspector, hold Shift for additional precision;
  • Brakes input for cars fixed, now uses [BASIC] BRAKES_THRESHOLD as default threshold;
  • Car config parameter [DATA] DISABLE_DIGITALINSTRUMENTSINI=1 to disable original digital instruments;
  • Track config parameter [DYNAMIC_OBJECTS] DISABLE_ONLINE_SYNC=1 to disable syncing of dynamic objects online and get them to start from initial position for each new connected client;
  • Tracks now can use custom model for static reflections or set shader replacements to act upon a default one (good for hiding trees on tracks like Monaco);
  • Problem with changes to semi-transparent shadows not applying live is fixed.

For new apps and scripts

  • Python apps:
    • Live reload for Python apps with Python apps profiler, including fully automated option;
    • New functions for time control: ac.ext_getWeatherTimeMult(), ac.ext_setWeatherTimeMult(value);
    • New functions for advanced rendering: render to texture, use custom pixel shaders, access virtual mirror texture for custom virtual mirrors;
    • Function to check if VR is active or not;
    • Result of ac.newTexture() is cached now, feel free to re-create those textures each frame (although it would still be faster to save value locally);
  • Lua apps: IMGUI for UI, extra APIs, live icons, fullscreen drawing callback for optional fullscreen HUDs with custom virtual mirror, damage and fuel warning indicators (all optional);
  • WeatherFX:
    • API to create and manipulate dynamic lights for more advanced visual effects;
    • New ac.setSkyV2SunSaturation(number) to adjust sun saturation;
    • New ac.setTrackConditionInput(key, value) function which also allows to override AMBIENT input;
    • Functions to adjust VAO and extra AO samples parameters;
    • New sky-covering clouds using panorama textures as an alternative way to render clouds;
    • Option to load textures asynchonously, new function to unload textures;
    • New cloud material parameter normalFacingExponent for adjusting normal calculation (default value is 0.5);
    • New cloud parameter normalYExponent for shifting whole cloud shape, to get it to look more as if camera is below;
    • New cloud parameter topFogBoost for boosting fog at the top of the cloud;
    • Implementation and controller scripts now can do some work in parallel, reducing load on main core;
    • Controller scripts got new API for making HTTP(S) requests;
  • Lua scripts:
    • New module to create Objects Inspector tools using Lua, with extended API for creating various UI controls;
    • Helper functions: try(block, catch, finally), class() for creating classes easily (uses middleclass);
    • New table functions table.filter(), table.map(), etc.
    • New timer functions setTimeout, setInterval and clear… counterparts (similar to JavaScript);
    • New I/O functions io.exists(), io.load() and io.save() (only for scripts that would have access to I/O);
    • Load and store typed values with ac.storage (could be used to access string values based on keys or, for faster access, create localized holders);
    • ac.load(key) returns nil if no value with such key was stored before;
    • More functions to access more details about simulation state like type names, driver names and nationalities, etc.;
    • Lua scripts being unable to find referenced files nearby fixed;
  • Scriptable displays:
    • Script could be in a separate file (SCRIPT=script.lua, same as LUTs);
    • Access mirror texture to create displays with rear view camera and overlays;
    • Define new cameras (similar to rear view mirror) with optional post-processing and access them in script, for this like parking camera activating with reverse gear;
    • React to clicks on other meshes (optionally limiting area to certain UV coordinates), so they could act like buttons;
    • Change car state: switch headlights, high beams and extra toggles;
    • Control some of car inputs: alter ABS, TC, brake bias, turbo wastegate, engine brake, etc. (could be used to create a dashboard similar to one of BMWs with extra car settings);
    • New display.horizontalBar() function for simple drawing of a progress bar made out of segments;
    • API to create dynamic lights and custom audio events (including an option to load a custom soundbank);
    • API to access nodes and meshes and move them around, hide/show or change their material properties;
  • Scriptable displays for tracks (similar to cars scriptable displays with access to track conditions and ability to set custom condition inputs);
  • New values for car state for Lua scripts: KERS state, number of gears, number of turbos, H-shifter state and more for user controls and for specific cars.