Horde3D SDK Change Log
You can find out here what has changed in the Horde3D SDK releases.
Version [1.0.0]
Core Engine
- Added support for OpenGL 4.
- Added support for new types of shaders - geometry, tessellation, compute.
- Added ability to set camera projection matrix.
- Added more fine-grained control over blend modes in shader contexts.
- Removed global render device pointer. Render device is now instantiated by the renderer.
- Added compute shaders GPU timing state.
- Horde3D now works on big-endian systems.
- Added support for Shader storage buffer object (SSBO).
- Debug view now can be renderered to textures as well.
- Implemented H3D_DEBUGGER_OUTPUT on non-windows platforms.
- Added h3dGetModelAnimParams API function, removed "AnimTimeF" and "AnimWeightF" parameters.
- Fixed 16 bit indices decision.
- Added "h3dutShowInfoBox" helper function to display benchmark result in a nicer way.
- Added ability to take screenshots in-memory.
- Added ability to query render device capabilities, like compute shaders support.
- Bugs fixed.
ColladaConv
- Changed modelName to parameter instead of a global variable.
- Endianness-aware generation of resource.
Samples
- New sample framework, based on GLFW version 3.2.1
- New samples - Particle vortex and Tessellator that demonstrate the use of compute and tessellation shaders.
- Default resolution for samples is HD (1280*720) now.
Version [1.0.0] Beta5
Core Engine
- Added support for 3d/volume textures.
- Added support for input gamma correction (sRGB texture support).
- Refactored overlay system and h3dShowOverlay: layers were removed and overlays are batched for better performance.
- Changed overlay coordinate system to go from (0,0) to (aspect,1) for better compatibility with different screen aspect ratios.
- Refactored extension system.
- Exchanged current XML parser by RapidXml.
- Removed requirement that resource data has to be null-terminated.
- Removed restriction that resource names may not contain colons.
- Improved particle spawning: particles are created along emitter's motion vector to avoid blobs when framerate is low.
- Added particle parameter 'drag' with which particles can inherit the velocity of their emitter.
- Added support for weighted additive animations.
- Added support for negative morpher weights.
- Added support for individual viewport settings for each camera and removed API functions h3dSetupViewport/h3dGetViewportParams.
- Added API function h3dResizePipelineBuffers to change the output buffer size.
- Renamed API function getPipelineRenderTargetData to getRenderTargetData and added support for reading out the backbuffer directly.
- Added color intensity multiplier for light nodes.
- Introduced scene node flags to give more control over where nodes should be processed.
- Removed API function h3dSetNodeActivation which is redundant due to new node flags.
- Optimized deferred shading by drawing light volumes.
- Added more CPU timing stats.
- Added basic GPU timing stats (requires ARB_timer_query to work).
- Removed most of the deprecated OpenGL fixed function calls.
- Introduced FX sampler parameter 'Texture' for specifying default textures.
- Introduced FX context state 'ZEnable'.
- Added backface culling configuration to FX context.
- Changed declaration of FX samplers to include type.
- Added support for single float uniforms.
- Added shader uniform 'nodeId' which contains the object's node handle.
- Changed overlay shader vertex attributes.
- Replaced all built-in GLSL vertex attributes by custom ones.
- Removed vertex attribute 'bitangent' as it can be derived in the shader.
- Replaced fixed-function modelview and projection matrices by custom uniforms (viewMat, viewMatInv, projMat, viewProjMat, viewProjMatInv).
- Renamed uniform 'viewer' to 'viewerPos'.
- Merged uniform 'lightCosCutoff' into w component of 'lightDir'.
- Simplified particle vertex shader and removed unnecessary attributes and uniforms from renderer.
- Added log messages to the debugger output (Win only).
- Fixed several issues in shadow mapping implementation.
- Fixed a plenty of different bugs.
Utility Lib
- Changed filename of default engine log file to 'Horde3D_Log.html'.
- Added utility function h3dutScreenshot.
- Added utility function h3dutCreateGeometryRes to create dynamic geometry resources.
ColladaConv
- Implemented batch processing that can be used to recompile an entire asset repository.
- Improved parsing performance.
- Improved COLLADA compatibility and fixed several bugs.
Samples
- Updated sample framework to GLFW version 2.7
- Added possibility to freeze camera.
- Set window resolution of samples to widescreen format by default.
- Fixed precision issues in deferred shading pipeline.
- Switched to Blinn-Phong shading model.
Version [1.0.0] Beta4
- Changed license from LGPL to Eclipse Public License.
- Refactored API to be clearer and less verbose; replaced namespaces by prefixes.
- Changed API error handling: usage errors (e.g. invalid function parameters) are no longer indicated by a return value but can be retrieved with a new error function.
- Implemented more powerful API for accessing resource data. Resource data is organized as elements, parameters and streams now.
- Enabled read and write access to all mipmaps and slices (cubemap faces) of Texture resources.
- Reorganized geometry vertex data as three streams to which API provides full read and write access.
- Enabled creation of dynamic cubemap textures and 2D textures with different pixel formats.
- Improved animation system: Layers are defined explicitly now and it is possible to have several animations on the same layer. The blend weights of animations that share the same layer get normalized. See documentation for more details.
- Replaced XML based shader FX syntax by a custom CgFX-like syntax.
- Removed fixed-function alpha test from shader FX section (alpha testing can be done in shaders).
- Added more stats for animation time and estimated video memory footprint of textures and geometry.
- Added visualization of skeletons in debug view.
- Fixed bounding box update when using hardware skinning.
- Disabled some log messages (e.g. message when scene node is added).
- Fixed many smaller bugs and did a lot of internal refactorings.
- Improved Collada support: polylists are supported now.
- Fixed several other issues in ColladaConv.
- Added simple benchmark mode to samples (can be activated with command line argument -bm).
- Added AlphaTest flag in model shader.
- Improved documentation style and layout.
Version [1.0.0] Beta3
- Refactored shader system: new shader file format without XML CDATA sections, support for #include directive and automatic permutation generation based on flags.
- Replaced texture unit configuration in materials by named samplers (pipeline command BindBuffer was changed and UnbindBuffers added).
- Added more configurable render states to shader contexts.
- Added configurable sampler states to shader format (resource flags NoTexFiltering and NoTexRepeat were removed).
- Adapted all sample shaders to refactored shader system and implemented a single übershader for models.
- Refactored LOD system: models can have LOD meshes now (Group node params MinDist and MaxDist were removed).
- Optimized scene management by implementing a basic spatial graph.
- Optimized performance of adding nodes to large scene graphs.
- Added support for loading DDS files (cube maps must be stored as dds now; vertical cross layout no longer supported).
- Merged Texture2D and TextureCube resources to a single Texture resource.
- Removed POT conversion of NPOT textures.
- Added color support for overlays (added shader uniform and modified API function showOverlay and utility function showText).
- Extended utility function showFrameStats.
- Changed overlay coordinate system origin from bottom-left to top-left in order to make overlay system more intuitive.
- Exposed camera transformation to pipeline fullscreen-quad passes.
- Added nicer looking info box for frame stats.
- Added engine option DumpFailedShaders for dumping corrupt shader code to a file.
- Added API function getNextResource for iterating over resources.
- Added API function finalizeFrame which should be called after all rendering for the current frame has been done.
- Added API function setMaterialSampler.
- Replaced API function resize by setupViewport.
- Added API function checkNodeVisibility to find out if a node is visible.
- Renamed API function calcCameraProjectionMatrix to getCameraProjectionMatrix since it just returns the matrix now instead of recalculating it.
- Renamed AnisotropyFactor to MaxAnisotropy in EngineOptions enum.
- Renamed resource Effect to ParticleEffect in order to avoid confusion with shader effects (also adapted emitter node params and default file extension).
- Did many smaller bug fixes, code cleanups and optimizations in engine core.
- ColladaConv update: Removed shader name command line parameter since it is usually not required with übershaders.
- ColladaConv update: ColladaConv writes skinning shader flag to materials when the model has joints.
- Added support for node libraries to ColladaConv.
- Added support for polygon tags to ColladaConv.
Version [1.0.0] Beta2
- Implemented simple animation compression scheme and updated animation format to version 3.
- Reduced shadow map aliasing by taking into account exclusively visible geometry when calculating PSSM crop matrix.
- Implemented occlusion culling for light sources (light sources can be completely occluded by geometry).
- Fixeded several bugs in scene graph and animation system.
- Integrated several smaller fixes to improve cross-platform compatibility (especially thanks to Codepoet).
- Did a few other smaller bug fixes and code improvements.
- Replaced makefiles by CMake build scripts (thanks to Codepoet and swiftcoder).
- Added API function getStat and EngineStats enum for reading statistic values like triangle and batch count.
- Added utility function showFrameStats to display frame statistics.
- Added API functions setResourceParami, setResourceParamf, getResourceParamstr and setResourceParamstr.
- Added EffectResParams enum and MaterialResParams enum to query and modify resource parameters.
- Added MaxNumMessages to EngineOptions enum for setting the maximum number of log messages.
- Modified castRay API function (and added getCastRayResult) to support querying several intersection points (thanks to CodePoet).
- Added API function hasEmitterFinished to check if an emitter is no longer active.
- Modified API function queryUnloadedResource to take an index for querying the n-th unloaded resource.
- Added API function isResourceLoaded to check if a resource has been loaded.
- Added API functions getNodeParamstr and setNodeParamstr.
- Added SceneNodeParams enum.
- Removed API functions getNodeName, setNodeName, getNodeAttachmentString (replaced by get/setNodeParamstr with SceneNodeParams enum).
- Changed API function addNodes to return 0 when an unloaded scenegraph resource is specified.
- Changed return value of API function init to true if engine is already initialized.
- Added GLFW source to SDK distribution.
- Added support for non baked transformation data in ColladaConv.
- Fixed serious texture seam bug and other smaller issues in ColladaConv.
- Improved font rendering and updated sample font texture.
- Added enhanced shadow map bias calculation to sample shaders (commented out by default since it requires SM3).
- Fixed bug in sample parallax mapping shader.
- Updated documentation with geometry and animation format specifications (thanks to Codepoet).
Version [1.0.0] Beta1
- Implemented occlusion culling for models and emitters.
- Implemented API based render-to-texture for rendering reflections and other effects which require several cameras.
- Implemented stereo rendering.
- Implemented orthographic projections and added Orthographic to CameraParams enum.
- Implemented node sorting and added rendering order param for some pipeline commands.
- Implemented software skinning and added SoftwareSkinning to ModelNodeParams enum.
- Improved all log messages and added more error messages.
- Made it possible to call render-function several times.
- Implemented resource cloning for Geometry resources.
- Made it possible to specify an empty string for cloneResource to let the engine generate a unique name.
- Added API function createTexture2D.
- Added API function clearOverlays.
- Removed API function setMeshUniform (functionality available via resource cloning).
- Made it possible to set the Geometry resource for Model nodes.
- Added MaxLogLevel to EngineOptions enum.
- Added OutputBufferIndex CameraParams enum to select left or right eye for stereo rendering.
- Added OutputTex to CameraParams enum.
- Renamed Texture2DResParams to TextureResParams and added Width, Height, Comps and HDR params.
- Removed OcclusionCulling from EngineOptions and added it to CameraNodeParams enum.
- Renamed a few API parameters for more clearness.
- Disallowed colon character for resource names (reserved for internal use).
- Changed Shader attribute 'name' to 'source' in Material resources for more consistency.
- Added flag to pipeline lighting commands to disable shadows for a pass.
- Made many smaller improvements and optimizations.
- Improved directory structure for extensions.
- Reverted Utility Library to be a separate DLL again instead of an extension.
- Extended utility function loadResourcesFromDisk to take several search paths.
- Completely rewrote usage guide to offer more information.
Version [0.15.0]
- Implemented an extension mechanism with support for new node and resource types. Created the official Terrain extension as proof of concept.
- Realized the Utility Library as extension instead as separate DLL.
- Added API function checkExtension.
- Added support for anti-aliasing to render targets (many thanks to Jasmine Langridge).
- Added SampleCount and WireframeMode to EngineOptions enum.
- Realized pipelines as resources.
- Removed API function loadPipelineConfig.
- Added API function setPipelineStageActivation and added XML attribute 'enabled' to Pipeline 'Stage' element.
- Modified API function addCameraNode and added PipelineRes to CameraNodeParams enum.
- Replaced API function getRenderTargetData by getPipelineRenderTargetData.
- Removed default Camera node (PrimeTimeCam).
- Added camera parameter to API render function.
- Removed API functions getActiveCamera and setActiveCamera.
- Added camera parameter to Utility function pickNode.
- Relocated API functions getResourcePath and setResourcePath from engine core to Utility Library.
- Removed Integration Library class and added C-compatible API functions getNodeAttachmentString and checkNodeTransformFlag as replacement.
- Replaced node-specific get/set functions by global ones. Added API functions getNodeParami, setNodeParami, getNodeParamf and setNodeParamf.
- Changed numbers of API enums.
- Changed all API function paramters from unsigned int to int for better compatibility with other programming languages like C#.
- Changed handles from unsigned int to int.
- Changed all Utility Library parameters from unsigned int to int.
- Modified resource management: the resource path is no more part of the resource name and the name must solely be unique for the resource type.
- Modified API functions queryUnloadedResource and loadResource to use handles instead of names.
- Modified API function removeResource to return the number of references that the application is still holding.
- Added API functions getResourceParami and getResourceParamf.
- Removed API enum ResourceData and added GeometryResParams and AnimationResParams enums instead.
- Implemented resource cloning mechanism exposed by the API function cloneResource. Currently cloning is only working for a few resource types.
- Added API function getResourceName.
- Added API function setShaderPreambles that can define a standard header for all shaders (e.g. for platform-specific defines).
- Implemented a line encoding for shader errors.
- Removed API function getMeshData since the data can be directly accessed at the Geometry resource now.
- Extended MeshNodeParams enum and added ModelNodeParams and JointNodeParams enum.
- Added API function setNodeParent to relocate a node in the scene graph.
- Renamed scene graph resource node attributes px, py, pz to tx, ty, tz since they represent a translation rather than a position. Support for the previous format is still there but will be removed in the future.
- Fixed a few bugs in material and pipeline system.
- Implemented material link mechanism enabling a pipeline stage and material to include another material.
- Modifed samples to use GLFW DLL instead of static library.
- Updated samples to use ambient lighting and made shaders more suitable for other applications.
- Improved parallax mapping shader of samples (using iterative parallax mapping).
- Replaced NVTriStrip in ColladaConv by a custom algorithm that is smaller and delivers better results.
- Removed ColladaConv option '-opt' and added '-noopt' instead. Geometry optimization is now enabled by default.
Version [0.14.0]
- Added support for loading Photoshop PSD files.
- Slightly modified pipeline syntax to make binding of render buffers more generic and powerful.
- Added four additional texture stages to be used by materials and pipeline.
- Added pipeline command to set material uniforms.
- Added optional attribute 'context' to pipeline lighting commands.
- Added multiplicative blend mode for shaders.
- Rewrote animation system to be smaller and faster.
- Replaced animation mask string by a start node and improved additive mixing.
- Added more texture resource flags and material options.
- Renamed API flag ResourceFlags::NoCompression.
- Added API function to read render target pixel data.
- Added two new API functions to find scene nodes with specified attributes.
- Changed the semantics of the getNodeChild API function to just return a direct child by a specified index.
- Renamed some API parameters for consistency. This should not break any code.
- Modification: API function clear also resets pipeline now.
- Modification: All emitter attributes can be set now using API function setEmitterParam.
- Critical modification: Parameters from node type specific set-functions are no longer forwarded to child nodes when applied to a node of an inappropriate type.
- Replaced SDL by GLFW for the samples. This should fix some OpenGL initialization problems on ATI cards.
- Made a plenty of internal code improvements (e.g. use of smart pointers for resources).
- Replaced TinyXML by a faster and smaller parser written by Frank Vanden Berghen.
- Fixed several smaller bugs in engine core.
- Improved ColladaConv to better handle arbitrary geometry/controller instances at scene nodes.
- Improved ColladaConv to support generic animation names.
Version [0.13.0]
- Extended pipeline (access to depth texture, explicit size) config and changed syntax.
- Replaced corona image loading library with Sean Barret's public domain stbi code.
- Changed cubemap format from horizontal to vertical cross for better tool compatibility.
- Added support for Radiance RGBE HDR textures.
- Made geometry format stream based for more flexibility (still support for older format).
- Made it possible to attach meshes to joints; also updated Collada Converter to support this.
- Fixed compilation problems on some Linux systems.
- Optimized morphing.
- Made all pointers in API and utility functions safe for NULL arguments.
- Added API function castRay for ray collision queries.
- Added API function calcCameraProjectionMatrix which returns camera projection matrix.
- Added API function setLightContexts for specifying light shader contexts.
- Added shader uniform frameBufSize.
- Modification: Particle texture coordinates now stored in shader attribute 'texCoord0'.
- Modification: Renamed vertex shader attribute 'bones' to 'joints'.
- Modification: Default shadow map size is 1024 now.
- Began implementing a modular shader library.
- Made many other smaller improvements to engine core.
- Added utility function pickNode for picking of scene nodes with window coordinates.
- Implemented HDR pipeline for Knight sample.
- Fixed crash of samples on widescreen displays when switching to fullscreen mode.
- Made several improvements to Collada Converter for more robustness.
- Added parameter 'anim' to Collada Converter for exporting animations only.
- Added output of morph target names to scene graph files in Collada Converter.
Version [0.12.0]
- Made basic Parallel Split Shadow Map implementation (still many opportunities for improvements).
- Added shader uniforms shadowMapSize, shadowSplitDists and shadowMats.
- Modification: Camera view matrix is also stored in gl_ModelViewMatrix for deferred shading.
- Made engine platform independent and added precomiled libraries for Linux x86.
- Modified resource system to allow reloading of resources.
- Added API function unloadResource to unload (but not remove) a resource and prepare it for reloading.
- Implemented queue based message system which replaces automatic output to EngineLog.html file.
- Added API function getMessage to return an entry from the message queue.
- Added utility function dumpMessages which writes all messages to the EngineLog.html file.
- Changed camera node parameters to take plane coordinates which is necessary for asymmetric viewing frustums.
- Replaced API function overwriteCameraPlanes by function setupCameraView.
- Made all name and identifier string operations in the engine case-sensitive.
- Reduced maximum number of joints to 75. This is necessary because of the additional PSSM uniforms.
- Changed directory structure.
- Changed samples over to using SDL.
- Modified skybox from samples to use cubemap texture.
- Improved sample deferred shading pipeline by adding ambient pass.
- Switched default pipeline of Chicago sample to forward shading.
Version [0.11.1]
- Added API function getNodeAABB which returns the axis aligned bounding box of a scene node.
- Added API function getNodeParent which returns the parent node of a scene node.
- Added engine option DebugViewMode which renders geometry in wireframe mode.
- Changed pointer in setNodeTransformMatrix to const.
- Optimization: Changed vertex buffer layout to be 32 byte aligned.
- Optimization: Vertex indices are converted to 16 bit if possible.
- Optimization: Implemented scissor test for light sources to reduce fillrate consumption.
- Optimization: Shadowmap is updated now only when light is visible.
- Optimization: Improved culling for lighting passes.
- Reduced number of available texture channels from four to two to get 32 byte aligned vertex layout.
- Optimized sample shaders and fixed some issues.
- Made several other bugfixes and smaller improvements in engine core.
- Improved compatibility of Knight sample for older hardware by modifying post processing shader.
- Switched default pipeline of Chicago sample to deferred shading which is faster now than the forward path.
- Improved compatibility of Collada converter regarding materials.
Version [0.11.0]
- Implemented Horde3D Integration Library which gives applications more control over scene graph and simplifies integration with other middleware.
- Implemented particle systems. Particles are fully integrated into the pipeline making it easy to let them cast shadows or receive lighting.
- Increased joint limit from 59 to 79 joints by changing shader skinning uniforms.
- Introduced shader uniforms worldMat and worldNormalMat.
- Added hierarchical class system for materials which is accessible from the pipeline configuration.
- Made it possible to set the blend mode and depth mask for shader contexts. This enables the creation of translucent materials.
- Added possibility to set engine options in pipeline configuration.
- Made it possible to attach all node types to all other nodes with exception of Joints and Meshes.
- Added API function loadPipelineConfig to load or reload a pipeline configuration.
- Added API function getActiveCamera which returns the currently active camera node.
- Added API function setNodeName to set the name of a scene node.
- Added API function setMaterialUniform to overwrite material uniform values.
- Added API function findResource to get the handle to a created resource using its name.
- Removed pipelineConfig parameter from API function init.
- Modified getMeshData function to take additional parameter.
- Modified API function setMeshUniform to take additional parameter which makes it possible to apply uniform values to all children.
- Added Material parameter to LightNodeParams enum which makes it possible to configure the light source material/shader.
- Fixed a plenty of smaller bugs.
- Fixed problems with lighting in sample skinning shader.
- Dramatically improved performance of Collada Converter by avoiding quadratic complexity.
Version [0.10.0]
- Added NoQuery flag for addResource to exclude resource from being listed with queryUnloadedResource.
- Introduced new Code resource type for shader programs.
- Added pipeline configuration filename to init function.
- Introduced new Camera scene node type.
- Added default camera node.
- Removed old camera functions (getCamParams, setCamParams, setViewParams).
- Removed utility function setupViewerParams.
- Added function to set active camera.
- Removed underlays and changed overlay layer param to uint. Video textures for AR can be done using other projective techniques.
- Added API function to get scene node name.
- Added API function to set scene node transformation matrix directly.
- Added additive animations.
- Modified light node: it now has a material instead of a texture which also replaces the projective texture attribute.
- Added lighting and shadowmap context names to function addLightNode.
- Modified geometry resource format; four mapping channels are available now.
- Implemented flexible rendering pipeline.
- Made it possible to define arbitrary shader context names.
- Removed shader params from shader resources. The renderer now detects automatically which attributes are used.
- Changed material format to support uniforms.
- Added API function to set mesh uniform values.
- Bugfix: getNodeTransform returns rotation in angles now instead of radians.
- Fixed some problems with removeNode.
- Made node parameters in scene graph resource consistent with API.
- Made a plenty of optimizations, mainly for reducing CPU overhead.
- Optimization: Collada converter sorts vertex buffers for linear memory layout.
Version [0.9.0]
- Modified API style to be more flexible for specific scene node functionality.
- Changed API function for showing overlays to take 4 points instead of 2 extreme points.
- Added function to set frustum parameters.
- Added utility function to setup perspective frustum.
- Removed parameter fov from setCamParams.
- Modified resize function to take position of viewport.
- Added function which returns resource type.
- Added flags parameter to addResource.
- Added resource flag for disabling texture compression.
- Changed updateResource API function.
- Added 'Unknown' value to ResourceTypes and SceneNodeTypes.
- Optimized scene graph to make updates only when needed.
- Made it possible to attach scene nodes to joints.
- Modification: Root node has no more value 0 but is defined as constant with value 1.
- Modification: Joints and meshes can be hierarchical now.
- Modification: LOD is only available for Group nodes.
- Added projective texture parameter for Light nodes.
- Implemented getting and setting of joint transformation for procedural animation.
- Added animation blending and mixing.
- Implemented animation for objects without skin.
- Implemented inter-frame interpolation for animations.
- Modification: Collada tool stores vertices in local space and applies world transformation in scene graph.
- Modification: Material references in scene graph include model name as subdirectory when converted.
- Modification: Converter now uses geometry name (if available) instead of id as morph target name.
- Modified animation format to use relative transformations and decomposed values.
Version [0.8.0]
- Added API getter-functions for most setter-functions.
- Added API function to access resource data and node data. This makes it it possible to read out geometry data and use it for collision detection or physics.
- Added API function to update resource data (implemented for 2D texture images).
- Added API function to iterate over child nodes.
- Added API function to get node type.
- Added FOV for spot lights.
- Changed coordinate systems to be right-handed for better compatibility with other libraries and tools.
- Changed XML attributes for node position in SceneGraphResource from x, y, z to px, py, pz.
- Added obligatory scene node attributes for Mesh containing the vertex range of the batch.
- Modification: Layer of overlays can be negative meaning that they are drawn as underlays before scene objects are rendered.
- Modification: Joints are part of the scene graph now.
- Modification: Scene graph files don't need to have a Group as root any more, instead any scene node type can be used as root.
- Modified shadow mapping implementation to make use of PCF. The blurring of the shadow term texture in a post-processing step has been removed resulting in much better performance.
- Removed ShadowMapSoft option from scene node parameters.
- Improved skinning implementation. Skinned vertices are in world space now instead of bone space.
- Modified geometry resource format to be compatible with new skinning implementation and to use less memory.
- Made many other smaller bugfixes and improvements in engine core.
- Added utility function to create texture resource data from raw image data.
- Added utility function to free memory allocated by the utility library.
- Changed command line arguments of Collada tool.
- Extended Collada tool to handle assets with several skin modifiers.
- Made other smaller improvements to Collada tool.
Version [0.7.0]
- Added new API function for setting morph target weights.
- Changed geometry resource format to include morph data.
- Added loading, interpolation and rendering of morph targets to engine core.
- Changed initial model node bounding box calculation to respect initial skinning pose.
- Added parsing and export of morph targets to Collada tool.
- Made other smaller improvements to Collada tool.
Version [0.6.1]
- Fixed problems with shadows on older ATI hardware by unrolling for-loops in the blur shaders.
- Reduced joint maximum from 60 to 59 to avoid shader register overflows; this will have to be improved in upcoming versions.
- Added cube map support for materials.
- Updated normal calculation for Collada tool to be more robust.
- Made other smaller improvements to Collada tool.
Version [0.6.0]
- Introduced shader context concept.
- Integrated basic shadow mapping implementation with screen-space blurring.
- Added blending for lighting pass so that more than one light source can be used now.
- Added alpha blending for overlays.
- Made smaller bug fixes and code improvements in the engine core.
- Updated Chicago sample to demonstrate shadow mapping.
Version [0.5.1]
- First source code release
- Added log message when G-Buffer creation fails.
Version [0.5.0]
- First public release