Development log: November 18, 2011

Zone-based background streaming

Improved streaming

Added a new NodeSector object that allows for background streaming of zone-based resources on demand. It is used to control asynchronous loading of all masks images, meshes and textures that are used by child nodes of the NodeSector. It requires the world to be divided into sectors of nodes based on their location. Please refer to the documentation (UnigineScript / Engine Library / Node-Related Classes / NodeSector Class) for more details.

Improved asynchronous resource loading; no more stalls on loading large masks for ObjectGrass and WorldClutter. Added new console commands that list loaded resources: render_manager_list, sound_manager_list and world_manager_list.

Other changes:

  • Added access to ObjectMesh vertex data into C++ API.
  • Added a custom shader example (data/samples/shaders) with NVIDIA FXAA 3.11 implementation.
  • Added rgb2rgbl shader into core materials (it is used together with post_filter_fxaa postprocess material).
  • Terrain tool is renamed into TerrainMesh.
  • Added new TerrainRelax tool to bake the flattened height map (allows for proper intersection with grass and WorldClutter).
  • New lerp() function for vectors for fast interpolation of vector values.
  • UnigineScript arrays now copy external arrays passed as constructor arguments instead of assigning them.
  • Added a new RPPost counter to the performance profiler to report the postprocess rendering time.
  • Hotkeys don't clear button states for disabled widgets and callbacks.
  • Fixed handling of '[', ']' and '\' symbols for non-English keybord layout.
  • Updated documentation on Skinner and Schemer systems.
  • Added the gradient editor draft.