Urho3D 1.4 release category:

Source package

Binary package

Changelog

  • Direct3D11 and OpenGL 3 rendering. Shader Model 2 support removed.
  • Experimental Emscripten support.
  • Raspberry-Pi 2 support.
  • Overhauled build system with better out-of-source build support & source tree reorganization.
  • Add host-tool building support for cross-compiling build which makes enabling of Lua/LuaJIT on Android build easier to configure than before and also makes new URHO3D_PACKAGING build option possible.
  • Add new engine parameter to set the location of the asset/resource prefix path. This addition makes new URHO3D_MACOSX_BUNDLE build option possible.
  • Add proper precompiled header (PCH) support for GCC/Clang compiler toolchains (and their derivatives).
  • Add compiler cache (ccache) support to build system for host systems where ccache is installable. The support is available for both native and cross-compiler toolchains.
  • Crowd navigation and dynamic navigation mesh using the DetourCrowd and DetourTileCache libraries.
  • 2D rendering improvements and optimization.
  • Allow materials to use any texture unit; up to 8 consecutive material texture units available for desktop graphics.
  • Depth-only rendering pass and readable hardware depth support.
  • Cubemap support and using programmatically defined rendertargets in renderpaths.
  • Vertex and index buffer access from script through VectorBuffer.
  • UI can be rendered to a texture with a renderpath command.
  • Uncompressed DDS support: generic decode to 8-bit RGBA.
  • Dynamic audio types instead of hardcoded.
  • Dynamic cursor image type definitions.
  • Added various material techniques.
  • Allow reading Data/CommandLine.txt on all platforms, if Urho3DPlayer is started without parameters.
  • LOD level support in Terrain collision shape.
  • Reduce cost of rendering multiple materials with same shader parameter values, reduce shader switching cost on D3D9, and other rendering efficiency optimizations.
  • Refactored event subscription mechanism with Lua.
  • Add SpritePacker utility.
  • User configurable indentation for XML and JSON files.
  • Controls class moved away from Network subdirectory to allow using when Urho3D is built without networking.
  • MOBILE_GRAPHICS & DESKTOP_GRAPHICS defines for graphics capability level, to avoid hardcoded platform checks.
  • Remove bell sound when pressing Alt key combinations on Windows.
  • 8-bit time stamp added to client controls sent over the network. Allow to intercept attribute updates from network. These features should allow writing custom clientside prediction.
  • Return hit submesh index in raycast to StaticModel.
  • Fill mode added to materials.
  • AngelScript script objects can be stored in a Variant.
  • Improved attribute registration: class name and variant type not needed.
  • Add new rake tasks to facilitate configuring/generating and building Urho3D project, including external project using Urho3D library.
  • Update PugiXml to 1.5.
  • Update STB libraries to latest.
  • Editor: particle effect editor window.
  • Editor: sound type editor window.
  • Editor: remember script attributes and restore them if a compile error occurs.
  • Editor: remember custom var names globally in the editor configuration.
  • Editor: button-based editor for bitmask attributes.
  • Editor: duplicate operation.
  • Editor: resource browser improvements.
  • Editor: renderpath can be chosen.
  • Editor: allow running without Urho2D compiled in.
  • Editor: inspector lock.
  • Editor: ensure correct gizmo size in orthographic mode.
  • Editor: copy camera transform operation.
  • Editor: do not allow to set a dialog modal in the UI editor.
  • Fix mouse stutter by using SDL_PollEvent() instead of SDL_PumpEvents().
  • Fix various missing script bindings.
  • Fix missing editor grid after scene revert.
  • Fix StaticModelGrup alpha materials rendering only 1 instance.
  • Fix missing attribute side effects (ApplyAttributes) in attribute animation.
  • Fix billboard render sorting from several views on the same frame.
  • Fix editor to load UI assets from executable directory to prevent using old UI assets from user’s resource directories.
  • Fix UI element drag showing “not accepted” mistakenly.
  • Fix WritePackedQuaternion() always returning false.
  • Fix uninitialized variable in Shader class.
  • Fix wrong camera aspect ratio after modifying orthographic size.
  • Fix “lightvolumes” render path command not allowing custom shader defines.
  • Fix AnimatedSprite2D not hiding child sprites when disabled.
  • Fix missing export specifiers for some Urho3D classes.
  • Fix additive particle scale modification making the particle size negative.
  • Fix screen orientation issue on iOS 8.
  • Fix multiple view rendering for 2D drawables.
  • Fix Bullet friction on Clang compiler.
  • Fix textures left bound in multiple units on OpenGL.
  • Fix infinite loop in ResourceCache::AddPackageFile().
  • Fix corrupt network message reception by updating kNet library.
  • Fix NaN check working incorrectly on GCC.
  • Fix possible wrong logic when a component is removed from a scene node, as opposed to being destroyed.
  • Fix tab escape sequences in the generated script documentation.
  • Fix warnings that leak into Urho3D applications.
  • Fix being able to create a REPLICATED component into a LOCAL node.
  • Fix negative light direction from Assimp with certain 3D file formats.
  • Fix spot light FOV handling with Assimp.
  • Fix incorrect partial terrain update and improve terrain update worst-case performance.
  • Fix incorrect rendering to backbuffer after post-process pingponging on OpenGL.
  • Fix crash when calling FixInterpolation() incorrectly on a compressed sound resource.
  • Fix AngelScript compile on VS2015.
  • Fix crash with null materials in 2D rendering.
  • Fix kNet WinXP compatibility.
  • Fix possible threaded resource load issues with XML files.
  • Fix missing null checks in AnimatedSprite2D.
  • Fix window drag behavior with hidden mouse on Linux; require click in window before re-enabling hidden mouse on all desktop OS’es.
  • Fix erratic hidden mouse move when used together with touch input.
  • Fix black screen on OSX after fullscreen/windowed switch.
  • Fix incorrectly working AngelScript native calls on Clang / Windows.
  • Fix building of 32-bit Linux software package on 64-bit host system and add options for build system to produce correct “LIB_SUFFIX” for 64-bit Debian and RPM packages.
 

Urho3D 1.32 release category:

Source package

Binary package

Changelog

  • Finalized Urho2D functionality, including 2D physics using Box2D, sprite animation and tile maps
  • Threaded background resource loading. Must be manually triggered via ResourceCache or by loading a scene asynchronously
  • Attribute and material shader parameter animation system
  • Customizable onscreen joystick for mobile platforms. Used in examples
  • Touch camera control in examples on mobile platforms
  • Touch emulation by mouse
  • Multi-touch UI drag support
  • Consistent touch ID’s across platforms
  • Absolute, relative and wrap modes for the operating system mouse cursor
  • Support for connecting & removing joysticks during runtime
  • Negative light & light brightness multiplier support
  • Transform spaces for Node’s translate, rotate & lookat functions
  • Scrollable console
  • Selectable console command interpreter (AngelScript, Lua, FileSystem)
  • Touch scroll in ScrollView & ListView
  • UI layout flex scale mode
  • Custom sound streams from C++
  • LogicComponent C++ base class with virtual update functions similar to ScriptObject
  • Signed distance field font support
  • JSON data support
  • Matrix types in Variant & XML data
  • Intermediate rendertarget refactoring: use viewport size to allow consistent UV addressing
  • ParticleEmitter refactoring: use ParticleEffect resource for consistency with ParticleEmitter2D and more optimal net replication
  • Expose LZ4 compression functions
  • Support various cube map layouts contained in a single image file
  • Configurable Bullet physics stepping behavior. Can use elapsed time limiting, or a variable timestep to use less CPU
  • Default construct math objects to zero / identity
  • Mandatory registration for remote events. Check allowed event only when receiving
  • Teapot & torus builtin objects
  • FXAA 3.11 shader
  • Triangle rendering in DebugRenderer (more efficient than 3 lines)
  • Material/texture quality and anisotropy as command line options and engine startup parameters
  • Spline math class, which the SplinePath component uses
  • Console auto-show on error
  • DrawableProxy2D system for optimizing 2D sprite drawing
  • Possibility to decouple BorderImage border UV’s from element size
  • Editor & NinjaSnowWar resources split into subdirectories
  • UI hover start & end events
  • UI drag cancel by pressing ESC
  • Allowed screen orientations can be controlled. Effective only on iOS
  • Rendering sceneless renderpaths
  • Define individual material passes as SM3-only
  • Support for copying ListView text to system clipboard
  • Async system command execution
  • Generic attribute access for Lua script objects
  • Use Lua functions directly as event subscribers
  • Touch gesture recording and load/save
  • AssetImporter option to allow multiple import of identical meshes
  • Automatically create a physics world component to scene when necessary
  • GetSubimage function in the Image class
  • Possibility to clone existing components from another scene node
  • Improve terrain rendering on mobile devices
  • Refactoring of camera facing modes in BillboardSet & Text3D
  • Additive alpha techniques for particle rendering
  • Possibility to use CustomGeometry component for physics triangle mesh collision
  • Access to 2D node coordinates for convenience when using 2D graphics features
  • Save embedded textures in AssetImporter
  • Use best matching fullscreen resolution if no exact match
  • Use SDL_iPhoneSetAnimationCallback instead of blocking main loop
  • Allow fast partial terrain updates by modifying the heightmap image
  • API for setting image pixels by integer colors
  • Refactor to remove the separate ShortStringHash class
  • Deep clone functionality in Model resource
  • Zone can define a texture which is available to shaders. Not used by default
  • Allow logging from outside the main thread
  • Log warnings for improper attempts to use events from outside main thread
  • Improved CustomGeometry dynamic updates
  • ConvexCast function in PhysicsWorld
  • Screen to world space conversion functions in Viewport class
  • Allow sending client rotation to server in addition to position
  • Allow accessing and modifying the engine’s next timestep
  • DeepEnabled mechanism for disabling node or UI element hierarchies and then restoring their own enabled state
  • Allow to prevent closing a modal window with ESC
  • Per-viewport control of whether debug geometry should render
  • Optional interception of resource requests
  • Readded optional slow & robust mode to AreaAllocator
  • Optionally disable RigidBody mass update to allow fast adding of several CollisionShape components to the same node
  • Runtime synchronization of resource packages from server to client
  • Disable multisample antialiasing momentarily during rendering. Used by default for UI & quad rendering
  • Glyph offset support in Font class
  • Font class internal refactoring
  • Allow to create AngelScript script objects by specifying the interface it implements
  • Window position startup parameters
  • Functions to get time since epoch & modify file’s last modified time
  • Optionally auto-disable child elements of a scroll view when touch scrolling
  • Allocate views permanently per viewport to allow querying for drawables, lights etc. reliably
  • Allow to specify material techniques/passes that should not be used on mobile devices
  • Reduced default shadow mapping issues on mobile devices
  • Minor rendering optimizations
  • Build system: possibility to build Urho3D without networking or 2D graphics functionality
  • Build system: improved generated scripting documentation
  • Build system: improved support for IDE’s in CMake scripts
  • Build system: support up to Android NDK r10c and 64-bit ABIs
  • Build system: numerous other improvements
  • Editor: resource browser
  • Editor: spawn window for random-generating objects
  • Editor: allow either zoom or move from mouse wheel
  • Editor: locate object by doubleclicking node in hierarchy
  • Editor: take screenshots with F11, camera panning
  • Editor: button in value edit fields that allows editing by mouse drag
  • Updated SDL to 2.0.3.
  • Updated AngelScript to 2.29.1
  • Updated assimp
  • Updated Recast/Detour
  • Fix MinGW build issues
  • Fix techniques referring to wrong shaders
  • Fix Node::LookAt() misbehaving in certain situations
  • Fix resize event not reporting correct window size if window is maximized at start
  • Fix PhysicsWorld::GetRigidBodies() not using collision mask
  • Fix zone misassignment issues
  • Fix Lua not returning correctly typed object for UIElement::GetChild() & UIElement::GetParent()
  • Fix uninitialized variables in 2D physics components
  • Fix quad rendering not updating elapsed time uniform
  • Fix forward rendering normal mapping issues by switching calculations back to world space
  • Fix wrong logging level on Android
  • Fix multiple subscribes to same event on Lua
  • Fix missing Octree update in headless mode
  • Fix crash when using FreeType to access font kerning tables
  • Fix ReadString() endless loop if the string does not end
  • Fix shadow mapping on OS X systems with Intel GPU
  • Fix manually positioned bones being serialized properly
  • Fix file checksum calculation on Android
  • Fix accelerometer input on Android when device is flipped 180 degrees
  • Fix missing or misbehaving Lua bindings
  • Fix crashes in physics collision handling when objects are removed during it
  • Fix shader live reload if previous compile resulted in error
  • Fix named manual textures not recreating their GPU resource after device loss
  • Fix skeleton-only model not importing in AssetImporter
  • Fix terrain raycast returning incorrect position/normal
  • Fix animation keyframe timing in AssetImporter if start time is not 0
  • Fix storing Image resources to memory unnecessarily during cube/3D texture loading
  • Fix to node transform dirtying mechanism and the TransformChanged() script function
  • Fix returned documents directory not being writable on iOS
  • Fix click to emptiness not closing a menu
  • Fix FileWatcher notifying when file was still being saved. By default delay notification 1 second
  • Fix .txml import in the editor
  • Fix erroneous raycast to triangles behind the ray
  • Fix crash when multiple AnimatedModels exist in a node and the master model is destroyed
  • Fix missing Matrix4 * Matrix3x4 operator in script
  • Fix various compile warnings that leak to applications using Urho3D
  • Fix DebugHud update possibly being late one frame
  • Fix various macros not being usable outside Urho3D namespace
  • Fix erroneous layout with wordwrap text elements
  • Fix debug geometry rendering on flipped OpenGL viewports
  • Fix kNet debug mode assert with zero sized messages
  • Fix not being able to stop and restart kNet server
  • Fix AreaAllocator operation
  • Fix possible crash with parented rigidbodies
  • Fix missing network delta update if only user variables in a Node have been modified
  • Fix to only search for June 2010 DirectX SDK, as earlier SDK’s will fail
  • Fix wrong search order of added resource paths
  • Fix global anisotropic filtering on OpenGL
  • Fix animation triggers not working if trigger is at animation end
  • Fix CopyFramebuffer shader name not being used correctly on case-sensitive systems
  • Fix UI elements not receiving input when the window containing them is partially outside the screen to the left
  • Fix occlusion rendering not working with counterclockwise triangles
  • Fix material shader parameter animations going out of sync with other animations when the object using the material is not in view
  • Fix CPU count functions on Android
 

Urho3D website revamp category:

We have recently revamped our website while preserving its original minimal theme as much as possible. Although the appearance does not change much, under the hood we have made a number of changes to make the website design becomes more responsive and to make the documentation viewing easier than before, from large screen monitor down to small mobile devices. What makes this possible is the adoption of Bootstrap front-end framework.

We have also added two new features to the website:

  1. Document-switcher which allows user to see the evolution of the documentation pages from different releases and the current HEAD revision.
  2. Disqus commenting service which allows user to comment on the news post entries. Tell us what do you think by leaving us a comment.
 

Urho3D 1.31 release category:

Source package

Binary package

Changelog

  • Extensive build system improvements, especially for using Urho3D as a library in an external project.
  • LuaJIT support.
  • Improved Lua bindings, Lua coroutine support, automatic loading of compiled Lua scripts (.luc) if they exist.
  • HDR rendering, 3D textures, height fog and several new post process shaders.
  • Shader refactoring. Need for XML shader descriptions & ShaderCompiler tool removed.
  • Reflection / refraction rendering support.
  • 2D drawable components: StaticSprite2D, AnimatedSprite2D, ParticleEmitter2D.
  • ToolTip & MessageBox UI elements. UI logic improvements.
  • Optimized text rendering + dynamic population of font textures for improved batching.
  • AngelScript DelayedExecute for free functions, and event handling for any script object, not just ScriptInstances
  • Editor: added grid, toolbar, camera view presets, camera orbit, mouse wheel zoom, multiple viewports and orthographic camera.
  • Borderless window mode, possibility to change application icon.
  • SDL GameController support, raw key codes support.
  • Optimized shadow rendering on mobile devices. Low quality mode avoids dependent texture reads.
  • HttpRequest class runs in a background thread to avoid blocking.
  • Compressed package file support using the LZ4 library.
  • Cone parameters in SoundSource3D for directional attenuation.
  • Variant GetPtr() safety refactoring. Uses WeakPtr to store RefCounted subclasses. Use GetVoidPtr() to store unsafe arbitrary pointers.
  • Improved work queue completion events. Work items are now RefCounted to allow persisting them as necessary.
  • Allow to disable automatic execution of AngelScript & Lua from the engine console.
  • Added shader variations, for example ambient occlusion texture and better emissive color support.
  • Added examples.
  • Update SDL to 2.0.1
  • Update AngelScript to 2.28.1.
  • Update FreeType to 2.5.0.
  • Fix partial texture updates, both Direct3D9 & OpenGL.
  • Fix long-standing audio click bug.
  • Fix kinematic rigidbodies to apply impulses correctly to dynamic bodies.
  • Plus many more improvements and bugfixes.
 

New Urho3D file release system category:

As Google Code no longer allows new upload of binary packages and GitHub pages or repositories are not convenient for them, all our future release of binary packages and snapshot build artifacts from Travis CI will be uploaded to sourceforge.net/projects/urho3d. The packages for Urho3D releases will be in their respective release folder. While those snapshot packages will always be available in ‘Snapshots’ folder to indicate that they are auto generated by CI build without human QA, so users who download them should manage their expectation on the quality or stability of the binaries in the package.