Release Notes for Version 1.5.9

From C4 Engine Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Release date: April 28, 2009

Core Engine

Shaders

  • The Expand process has been added to the engine. It multiplies the input by 2.0 and then subtracts 1.0. This is useful for expanding values from the [0,1] range to the [−1,1] range. (Note that the Normal Map process already implicitly expands the values read from its texture, so it's not necessary to use an Expand process after a normal map is read.)

Scripts

  • A new Set External Variable method has been added to the Basic tab in the Script Editor. This method can set the value of an object-scope variable in another script to the value of any local variable belonging to the script that is running.

Miscellaneous

  • Bone nodes in a model are now identified by a hash value derived from the bone's name instead of an index number based on the bone's position within the model. What this means is that any skinned mesh can be copied from one skeleton and pasted onto another skeleton as long as the bones that it needs exist in the new skeleton. There is no longer any requirement that the two skeletons have the same number of bones or that they occur in the same order within the skeletal hierarchy.
  • Normal maps can now be compressed using ordinary S3TC when the alpha channel is unused (which disqualifies parallax maps). Compressed normal maps only contain information in the green and alpha channels of the texture after they've been imported. These provide an 8-bit x component and a 6-bit y component for each normal vector, and the z component is reconstituted in a slightly more expensive fragment program.
  • A new ShockwaveEffect class has been added to the engine, and it produces an expanding distortion ring in the scene. This effect is implemented in the Extras plugin module, and the ShellEffect class has also been moved to the Extras plugin.
  • The kControllerLocal flag can now be specified by a controller to indicate that it operates autonomously and does not need to receive messages from remote machines. This flag would ordinarily be set in the controller's Preprocess() function before calling the base class's Preprocess() function, and it prevents the controller from being added to the world's controller array or being assigned a controller index.
  • With this release, official support for PowerPC-based Macs has been discontinued. However, the engine still builds and runs just fine on PowerPC processors.