Please use this approach instead of dynamic emissive map! That feature might be removed soon.
Procedural grass reworked:
Now with geometric fins;
Fully customizable cascades;
Cars move grass when driving by;
For now, without parameters, that will be returned back soon;
New Python functions:
Everything reworked using more error-prone approach, fixing a few bugs in the process;
If you’ll notice any incompatibilities in API, please let me know, will fix asap;
Switch to strict mode to get errors if arguments are wrong, instead of patch silently returning default value as it was doing before;
Python profiler app now also shows log and error messages, renamed to Python Apps Debug;
Profiling and error handling for Python apps now should work within extra callbacks as well;
PBR shaders updated:
Specular ambient added (temporary solution until I’ll figure out how to do it properly);
Works properly with dynamic lights;
Overly occluded reflections fixed;
New option for txDetailNormal in PBR format, containing normals, occlusion and specular level (inverted roughness);
Lights guessing now would work with a single mesh for all four turning indicators;
Dynamic navigators;
INIpp format updated:
Breaking change: indices now start with 1 instead of 0, to make it less awkward when working with expressions (which were already using 1 because of Lua);
New features:
Generators;
Refer to mixins anywhere, with inline parameters and optional shorter syntax;
Auto-indexing values;
Vectors support;
A lot of bugfixes;
Twice as fast;
Now with automatic tests to ensure new features won’t break anything!
For more information, check out INIpp repo and its README;
Includable configs with templates:
New custom_emissive.ini allowing to set turning lights and what not in just a couple of lines;
New selflighting.ini helping to speed up a bit adding extra light sources for headlights lighting up the car;
Glass: brightness adjustment option, option to use normal map and, if needed, to use alpha-channel from normal map;
Car paints: tiling fix is now optional, use ApplyTilingFix = 0 to disable it;
Interior PBR materials: new Material_LeatherDetailed template with PBR detail texture, new options;
A lot of new stuff for navigators;
Extra FX: new MASK_GBUFFER option for headlights glass, allowing to get local reflections from behind it, but dimmer;
Alpha-to-coverage thing rolled back for now;
Dirt particles use track colors from Tyres FX, this time properly;
A bit of tonemapping for SSLR to reduce aliasing caused by too bright objects being reflected;
Analog odometers:
Now background color is used properly;
Use fonts from content/fonts;
Options for scaling fonts vertically and for a vertical offset for fonts;
Car inputs:
Options INPUT_ADD and INPUT_MULT (not really needed with INPUT_LUT, but it might be easier sometimes to just use a simple way of setting it);
Options INPUT_THRESHOLD_LOWER_INC and INPUT_THRESHOLD_UPPER_INC using less-or-equal or greater-or-equal check;
New SEATBELT input (free camera with hidden driver for now);
SSLR works better with semi-transparent objects (not as bad as before) like semi-trasparent puddles with new water shader;
Adaptive shadow boundaries now should shift closer if something is very close to camera;
New digital screen shader acting like overlay for existing meshes;
Option for terrain casting shadows: will cast shadows as double-sided when sun is low;
Option for disabling track cameras LOD distance multiplier, enabled by default;
Option for filling missing textures in SHADER_REPLACEMENT_...;
Option to disable side culling;
Water shader: option to use alpha-channel from txNormal;
Default frequency for blinking emissives changed to 2.2 Hz (apart from turning lights);
New car paints got damages and dirt back;
Mesh filters in cars: filter by LOD;
New options for car lights:
OFFSET and OFF_OFFSET, three numbers, for fine-tuning position without reassigning guessed value;
ONESIDED, either LEFT or RIGHT: same as setting MIRROR=0 and POSITION=X, …, where X was old MIRROR value, but guessing-friendly;
PREFER_FRONT, for position guessing (if mesh was split in two bits, front and rear) or picking custom emissive properly;
Option to add extra sharpness to local reflections for certain materials or meshes;
Custom analog instruments:
POS_OFFSET_START and POS_OFFSET_END fixed;
Option for scaling with SCALE_START and SCALE_END;
New LOWER_BOUND option;
A lot of various fixes and stability improvements.