We are deep at work on a bunch of bigger features spanning all the way from a new improved document editing model, to support for handling very large worlds. Unfortunately they aren’t ready to be rolled out just yet, but rest assured they are well worth waiting for.
In the meantime we still have the April release for you with a some smaller features and bunch of fixes and improvements.
If you are already running The Machinery, this new release should pop up in your Downloads tab. Otherwise, get it from our download page and have a look at this quick introduction video. We are also working on a book about The Machinery. Note that the book is still a work in progress.
If you find bugs in this release or have requests for specific features, post them to our issue tracker. For more general discussions, hit us up on GitHub discussions or Discord.
Key highlights in this release are:
Euler Angle Ordering
The Machinery now allows rotation Euler angles to be specified in any axis order. This lets you use the axis order that is most natural for the object you are working with. To select a particular axis order, right click on the Rotation field label in the properties editor:
Note that, internally, the angles are still represented by quaternions, not Euler angles. This means, for example, that you can’t set the rotation around an axis to 1000 degrees, because there is no way of representing multiple full rotation “turns” using quaternions. (The quaternion rotation of an object that has made a full turn is identical to that of an object that hasn’t rotated at all.)
Mesh Shader Support
The Machinery now has support for Mesh Shaders when running on Turing powered Nvidia GPUs through the VK_NV_mesh_shader Vulkan extension.
Rendering using a mesh shader is possible by writing a shader that implements the two new stages
mesh_shader and submitting a draw call with the
tm_renderer_draw_type set to
Support for Mesh Shaders should be considered an early preview. We are currently not shipping with any examples of how to use them, and we have no plans of building features that exclusively dependent on them.
- Thanks to Tisten for multiple fixes:
- Thanks to tlein for multiple fixes:
- Thanks to matias-eduardo for improving the canvas component #941
- Thanks to jamesmintram for fixes to the animation blend UI #925
- Added support for generic graph node connectors.
- The Sequence node now grows dynamically as you add new connectors.
- Added runtime errors when a required connector isn’t valid. #1225
In Editornode for detecting if the graph is running in the editor.
- Fix for “propagate to prototype” not working correctly after creating a subgraph that consists of instantiated nodes.
- We have added fixed stages. There is first, pre update, update, post update, last stage. After each stage a Engines or Systems Commands are executed. Within a Stage you can still order your Engines, Systems with
.[before/after]_me. Note that there is also a
shutdownstage. These stages are only executed once: At the beginning and at the end of the Entity Context Lifetime.
- Only the
Reload Eventis now triggered when an Entity Graph is Reloaded. #1237
- Assets won’t be propagated if the Simulation is paused. #1237
- Fix for clones not being named correctly when duplicated via the Entity Tree context Menu. #1243
- Fix for erroneously showing
Removed From Instancefor components in some specific prototype chains. #1234
- Moved “Create Prototype from Entity” out of the “‘Advanced” sub context menu.
- The code for managing workspaces has been broken out from
docking.cinto at new
- Fixed a performance issue where
tick_version()could cause significant stalls if a lot of objects were changed in one operation. #1258
- Simplified setup for GPUSim systems spawning into other GPUSim systems by splitting out indirect dispatch arguments for emitter spawning into its own argument section.
- Better dirty version tick mechanism when propagating through multiple graph instances.
- Added ability to request a RenderDoc capture from the render graph API
VK_ACCESS_SHADER_READ_BITare now always set for images created with
- Vulkan: Fix for incorrectly requesting blend capabilities even for non normalized integer image formats in