Sq42 update, when you can babble off these many techno words they must be competent.
Engineering
Last month’s physics optimizations included improving the intersection routines for SDF baking and adding further culling to AABB tree traversal. The team added g-force calculation to all rigid entities and the ability to add the mass of rigids inside the grid host mass. They gave initial support to adaptive signed-distance-fields (SDF), added exterior shadow geometry (which enables boundary entities within the hosted zone in interior OCs), and now properly support all primitive physics types for interior grids. They also added external impulses to ‘pe_status_dynamics’ and created a grid without explicit geometry. Support was provided for multiple external accelerations too.
For the ongoing G12 renderer work, the team supported the optional execution of stages, added debug names to all constant buffers (and made it mandatory), and undertook custom material CB and layer-blend support. Legacy pipeline resets were removed from the begin/end render pass to the locations of the legacy Gen12 switch, which currently saves up to 2000 API calls.
Engineering merged the deferred and deferred-display-mapped pipelines, implemented the TSAA stage, and promoted the following stages to ‘stable:’ Tonemapping, DepthOfField, MotionBlur, Optics, Colorgrading, OpticsExposure. They removed save/load resource-binding code on the begin/end render pass, saving around 500 API calls per-frame. Parameterized common depth functions were also added so they don't access global constants, as was depth down-sampling.
Work on the atmosphere, clouds, and unified raymarcher continued in earnest, which led to cloud data that now properly interacts with the atmosphere segment it injects into (via corrected luminance integration and transmittance evaluation). The team added support for the injection of (existing) spherical clouds into the unified atmospheric raymarcher, now using uniformly distributed sample locations when integrating over hemispheres. This significantly improves LUT integration results, removes several artifacts, and converges much quicker.
A new atmospheric multi-scatter LUT was added that supports infinite scattering orders, while the current multi-scatter LUT was rebalanced due to excessive brightness. The team also refined soft-edge computation for spherical clouds to reduce aliasing and improved the visible sun-disc evaluation when computing sunlight. This evaluation is fully integrated into the wider atmospheric lighting system and impacts direct and indirect lighting. An imbalance of computed brightness between regular and injection passes was completed; now clouds appear with consistent brightness in both regular atmospheres and via unified raymarching. The team provided support for separate Rayleigh and Mie inscatter LUTs in the current atmospheric code path too, which fixes several false color artifacts. The new LUT parameterization better supports high atmospheres and, among other things, fixes the very prominent halo around the silhouette of a planet's dark side.
The team sped up and unified the optical depth pre-computations in the absorption layers of atmospheres. Among other things, this allows them to add an ozone layer to Earth-like planets, which will emphasize blue skies and enable correct shading during twilight. It also supports the physically plausible fine-tuning of atmospheres. They now use solar irradiance throughout the evaluation of atmospheric lighting to give a much-improved evaluation of sun radiance for points outside of planetary atmospheres. This enables twilight casting, atmospheric scattering, and allows the sun's angular radius to project objects onto a planet's penumbra region.
General system work involved several fixes to ISPC integration (a special compiler that generates highly optimized SSE code for heavy duty jobs running on CPUs). The team implemented support for static stationary zone groups and concave geometries as vis areas and fixed the method they find vis areas and portals by name.