Release Notes for Version 7.0

From C4 Engine Wiki
Jump to navigation Jump to search

Release date: March 22, 2023

Core Engine

  • The Color4C class has been renamed to Color4U to reflect the fact that it has unsigned components. There are also new classes called Color2U, Color2S, and Color4S, where the number 2 or 4 indicates the number of channels, and the letter U or S indicates unsigned or signed.
  • Support for the Open Data Description Language (OpenDDL) has been updated to version 3.0.
  • The unbounded string class String<> can now store any string that occupies 16 bytes or less (including terminator) without having to allocate additional memory.

Graphics Manager

  • Complete support for proper sRGB color handling has been implemented throughout the engine.
  • The engine now renders into a 16-bit floating-point multisampled frame buffer to support HDR lighting. Tone mapping occurs when this frame buffer is resolved into the a single-sampled image.
  • Histogram-based exposure has been added to the engine. This uses a compute shader to calculate an average log luminance of the scene from which an exposure scale is derived. The luminances of the final render are scaled by this amount before tone mapping is applied. Special effects are counter-exposed by the reciprocal of the exposure scale of the previous frame so they don't become insanely bright in dark scenes.
  • The term radiosity has been replaced by illuminance to reflect the fact that we are dealing with visible light, and not general radiation.
  • The format of illuminance spaces has been changed so that color luminance is stored in an RGB9E5 texture format, allowing high dynamic range. Chromaticity is now stored in an RGBA4444 texture format, and there is a 1:1 correspondence with each luminance sample.
  • The game rendering resolution has been decoupled from the resolution of the display. The world is now rendered at a fixed resolution, specified by the application or chosen by the user, and scaled to the size of the window or display. The user interface is always rendered on top at the full display resolution.
  • Many of the rendering techniques in the engine have been improved. These include screen-space ambient occlusion, parallax mapping, cascaded shadow maps, and halo effects. The details about how most of these work can be found in Foundations of Game Engine Development, Volume 2: Rendering (FGED2).
  • A new atmospheric shadowing effect has been added to the engine. This renders light beams / god rays using the information in the cascaded shadow map. This technique is also described in detail in FGED2.
  • Wherever possible, shading now takes place in a coordinate system aligned to the world-space axes.
  • The shader LOD capabilities have been removed from the engine. They were rarely worth the effort.

Animation

  • The engine now supports dual quaternion skinning. This can be enabled in the Skin Controller to perform higher quality vertex interpolation that tends to preserve volume better at a slightly higher computational cost.

Interface Manager

  • The full capabilities of Slug 6.5 have been integrated into the engine. All text goes through Slug, and widgets for icons and picture albums are available.
  • Mutators have been renamed to Sprockets. Sprockets are attached to widgets in order to animate them in some way.

Effect Manager

  • There are new icon and picture effects that can be used to apply Slug-based content to other surfaces.

World Manager

  • The impostor system has received a major upgrade.

Tools

World Editor

  • All editor icons have been updated to vector graphics.
  • Paint space now support flow maps. These can be drawn in the World Editor using the new tools in the Paint Page.
  • When illuminance spaces are being generated, the overall progress is now shown in taskbar.

Texture Tool

  • The texture import tool has been divided into two parts, one that handles ordinary texture maps and one that handles normal, parallax, and horizon maps. There are different console commands, itexture and inormal, to invoke these importers.

Shader Editor

  • Interpolant processes are now colored blue to make them easier to identify in a shader graph.
  • The Minimum and Maximum processes can now take an optional third operand. If three operands are supplied, then the result is the least or greatest of all three inputs.

Font Importer

  • Font importing capabilities have been upgraded to Slug 6.5. In particular, .otf files are supported in addition to .ttf files.

In Progress

There are several new features that are in progress as of this release:

  • The engine is transitioning from OpenGL to Vulkan. Some code is present in version 7.0, but it is not complete.
  • A new physically-based metallic material attribute is in progress.
  • A new fur shader is in progress.
  • The way that terrain is textured is being updated.