Changelog
Version 1.0.2 [wip]
Filmmaker v0.4.3
- Added options for animating actor properties
util_export_asset command
can now export retargeted models- Fixed depth buffer issues if camera nearZ or farZ is set to 0
LuxCoreRender
- Added volumetric lighting options
- Added subdivision options for materials
- Added option for enabling PhotonGI cache
Engine
- Added new animation system
- Added animation math expression system
- Added animation driver system
- Add entity component member system
FixFixed translucent objects causing depth rendering issuesFixFixed eyes_updown / eyes_rightleft flex controllers not working correctlyFixFixed crash instance when trying to import some Source Engine materials with invalid texture referencesFixFixed crash instance when importing some Source Engine mapsFixFixed issue where some meshes would appear invisible if the actor has a skin > 0FixFixed textures with format ABGR8888 getting imported with swapped color channels
Lua
- Add new Lua API documentation
- Added CompositeComponent:GetEntities, :GetRootGroup, :AddChildGroup, :GetChildGroups
- Lua
Version 1.0.1 [2021-06-22]
Filmmaker v0.4.2
- Improve retargeting performance
- Fix various retargeting issues
- General retargeting improvements
- Update default material hair settings
Engine
- Added updated Lua documentation and ZeroBrane configuration files
- Updated "lua_help" documentation database
- Added "TF2" and "HL1" demo gamemodes
- Fixed random crashes on some hardware
- Fixed issue where game could freeze permanently during shutdown
- Fixed Lua JIT-Compiler not being enabled
- Fixed importing glTF models saving material files in wrong location
- Fixed exporting maps not working in some cases when the map name has a "." in the name
- Fixed crash on startup with certain launch parameters
- Fixed automatic asset reloading on asset file change not working
- Fixed issue where Steam locations wouldn't get mounted properly on new Steam installations
- Added additional crash dump debug information
- Transitioned AI-nav file-format to UDM system
- Transitioned Lua documentation file-format to UDM system
Lua
- Added Skeleton:IsRootBone string parameter overload
- Added Skeleton:GetBoneHierarchy
- Added phys.Transform.IDENTITY, :GetAngles, :SetAngles, :GetForward, :GetRight, :GetUp, .x, .y, .z, .pitch, .yaw, .roll, phys.ScaledTransform.IDENTITY
- Added CompositeComponent:ClearEntities
- Add EVENT_UPDATE_BONE_POSES and EVENT_ON_BONE_POSES_FINALIZED animated component events
- Added table.copy
- Added engine.library_exists
- Added ents.PlayerComponent:SetFlashlightEnabled, :ToggleFlashlight, :IsFlashlightEnabled
- General LuaDoc improvements
Version 0.9.15 [2021-05-30]
Filmmaker v0.4.1
- Added console commands: pfm_max_fps, pfm_asset_icon_size
- Added bone visualization to retarget editor
- Retarget rigs can now be auto-generated from existing rigs if a match can be found
- Various retargeting improvements
- Fixed "hair" settings in material editor not working
- Fixed PFM not showing up in new game menu
- Fixed material editor and explorer not working properly
Engine
- Added console commands: udm_validate, asset_clear_unused, asset_clear_unused_textures, asset_clear_unused_models, asset_clear_unused_materials, cache_version_target, loc_reload
- Added launch option: -audio_api <audioApi>
- Added game mount priority options
- Physics engine can now be toggled between PhysX and Bullet
- Bullet is now the default physics engine
- Audio engine is now implemented as a module (can be changed in options)
- Assets are now automatically cleared from memory when not in use
- Transition particle system format to UDM
- Fixed entities appearing invisible in some cases
- Fixed various character animation issues
- Fixed character eyes not working correctly if entity is scaled
- Fixed issue where models with a "." in the name could not get imported properly
- Fixed maps not being rendered if map was compiled without BSP
- Fixed crash when generating reflection probes
- Fixed crash when loading map with invalid world model
- Fixed various crash instances
- Fixed various shader/rendering issues
Lua
- Added debug.beep and debug.print
- Added phys.CollisionObject:SetAlwaysAwake, :IsAlwaysAwake
- Added math.map_value_to_fraction and math.map_value_to_range
- Added locale.set_text
- Added composite and animated2 entity components
- Added util.DirectoryChangeListener class
- Added animation.Channel, .Slice, .Animation2, .Pose, .Player classes
- Added ents.Entity:SetUuid
- Added ents.RenderComponent:GetRenderModeProperty
- Added ents.EyeComponent:GetEyePose
- Added udm.PropertyWrapper:GetChildCount, :HasValue and :ToAscii
- Added ents.AnimatedComponent:GetLayeredAnimations, :ApplyLayeredAnimations
- Added game.Model.Animation:GetBoneId
- Added ents.IteratorFilterModel
- Added asset.delete, .determine_type_from_extension, .get_legacy_extension, .get_binary_udm_extension, .get_ascii_udm_extension, .determine_format_from_data, .determine_format_from_filename, .matches, .relative_path_to_absolute_path, .absolute_path_to_relative_path, .get_udm_format_extension, .get_asset_root_directory, .exists, .find_file, .is_loaded
- Added file.find_absolute_path
- Added new overload for file.remove_file_extension with parameter to specify which extensions to remove
- Added udm.AssetData:SetData
- Added gui.find_focused_window, gui.get_primary_window, gui.find_window_under_cursor, gui.get_base_elements, gui.add_base_element
- Added gui.Element:GetRootElement, :GetRootWindow
- Added shader.BasePbr base class
- Added prosper.create_window, prosper.WindowCreateInfo and prosper.Window classes
- Fixed ents.Entity:SetEnabled Lua binding not behaving correctly in certain cases
- Scripts loaded with lua_exec and lua_exec_cl now auto reload when changed (Unless"nocache" argument is set)
- util.register_class now defines a default constructor and tostring method
- util.register_class now returns class object (or nil) instead of boolean
Version 0.9.14 [21-04-16]
Filmmaker
- Added animation and flex retargeting system
- Transform widget can now be toggled between world/local/view space
- Added basic posing and animating capabilities
- Improved hair rendering quality with LuxCoreRender
- Added hair configuration options to material editor
- Added live raytracing preview
Engine
- Added "util_export_asset" option to export assets to Source Engine model/material/texture format with optional fake pbr conversion
- Transitioned asset file formats to UDM system
- Added console commands: "udm_convert", "save", "crash", "debug_render_memory_budget" and "debug_render_memory_stats"
- Exporting model with glTF exporter now includes additional UV sets (such as lightmap UVs)
- Fixed rare random deadlock issue
- Added entity UUIDs to uniquely identify entities
- Added additional crash dump debug information
Lua
- Added asset.get_supported_extensions, asset.export_texture_as_vtf, asset.TYPE_MAP
- Added ents.GetUuid, ents.AttachableComponent:GetBone
- Added Quaternion:Distance
- Added class ents.IteratorFilterUuid
- Added udm library
- Added game.get_material
- Added util.BSPTree.Node:GetIndex
- Added game.Material:Reset
- Added game.Model.Animation.Load, game.Model.FlexAnimation.Load
- Added game.Model.Mesh.Sub:Copy
- Added game.Model.Animation:GetBoneId
- Added game.Model.Eyeball:GetUpperLidFlexIndices, :GetUpperLidFlexAngles, :GetLowerLidFlexIndices, :GetLowerLidFlexAngles, :GetUpperLidFlexIndex and :GetLowerLidFlexIndex
- Added game.Model.FCOPY_BIT_FLEX_ANIMATIONS flag
- Added ents.ModelComponent:GetBodyGroups, :SetBodyGroups
- Added ents.AnimatedComponent:GetBaseAnimationFlags, :SetBaseAnimationFlags, :GetLayeredAnimationFlags, :SetLayeredAnimationFlags, ents.AnimatedComponent:SetAnimatedRootPoseTransformEnabled, :IsAnimatedRootPoseTransformEnabled, :AddRootPoseBone, :SetRootPoseBoneId, :GetRootPoseBoneId and ents.AnimatedComponent.FPLAYANIM_LOOP
- Added ents.LightComponent:SetMorphTargetsInShadowsEnabled, :AreMorphTargetsInShadowsEnabled, .BakeSettings.globalLightIntensityFactor and .import_lightmap_atlas
- Added ents.ReflectionProbeComponent:GetIBLMaterialFilePath, :CaptureIBLReflectionsFromScene and :RequiresRebuild
- Added prosper.ImageCreateInfo:FLAG_ALLOCATE_DISCRETE_MEMORY_BIT, FLAG_DONT_ALLOCATE_MEMORY_BIT, FLAG_SRGB_BIT, FLAG_NORMAL_MAP_BIT
- Added prosper.Image:IsSrgb, :IsNormalMap, :SetSrgb, :SetNormalMap and :Convert
- Added prosper.Mesh:ClearBuffers
- Added ents.LightMapComponent:SetLightmapAtlas
- Added ents.RenderComponent:ClearBuffers
- Removed game.Model.Eyeball:GetUpperFlexDesc, :GetLowerFlexDesc, :GetUpperTarget, :GetLowerTarget, .lowerLidFlexDesc and .upperLidFlexDesc
Version 0.9.13 [2021-03-14]
Filmmaker
- Fully integrated LuxCoreRender
- Added support for transparent backgrounds/skies when rendering with LuxCoreRender
- Added new render tool commands (LuxCoreRender only):
- preview: Creates a preview image of what's been rendered so far and opens it in the default image program
- pause: Pauses the current render
- resume: Resumes the current render
- stop: Stops the render and uses what's been rendered so far to generate the final image
- suspend: Creates a .rsm-file, which can be used to continue the render at a later date
- export: Exports the entire scene in a LuxCoreRender format (including models and textures), which can be used to render it with the standalone LuxCoreRender program
- Fixed issue where importing textures via drag-and-drop would not generate mipmaps
Engine
- Updated build instructions
- Morph targets now affect shadows
- Increased bone limit from 512 to 1024
- Added console commands "strip_weapons" and "cl_render_frustum_culling_enabled"
- Reduced number of entities with unnecessary tick/logic events to improve performance
- Characters now blink if no eyeballs are defined in the model, but blink flex controllers exist
- Added UDM data format for unifying asset file formats
- Fixed issue where viewmodel entities would use incorrect field of view
- Fixed viewmodel not appearing in some cases if viewmodel was changed after weapon was deployed
- Changed entity component net event system so net events no longer have to be registered on the server before they are registered on the client
- Merged cengine with client library and engine with shared
Lua
- Removed gamemode system and replaced it with gamemode entity components
- Allows changing gamemodes on the fly, as well as running multiple different gamemodes at the same time
- Added "player" and "gamemode" entity component types (and sub-directories)
- All entity components can now have individual tick/logic events instead of relying on the logic component
- Added udm library for loading/saving/working with udm assets
- Added ents.ModelComponent:GetBodyGroups and :SetBodyGroups
- Added math.Quaternion:Distance
- Added ents.PhysicsComponent:EnableCollisions, :DisableCollisions, :SetCollisionsEnabled, :SetSimulationEnabled and :IsSimulationEnabled
- Added ents.CharacterComponent:SetMoveController and :GetMoveController
- Added util.DataStream:WriteVertex, :ReadVertex
- Added Vector:GetYaw and :GetPitch
- Added util.generate_uuid_v4
- Added ents.register_component_net_event
- Added ents.AttachableComponent.FATTACHMENT_MODE_FORCE_TRANSLATION_IN_PLACE, FATTACHMENT_MODE_FORCE_ROTATION_IN_PLACE and FATTACHMENT_MODE_FORCE_IN_PLACE
Version 0.9.12 [2021-02-08]
Filmmaker
- Added support for rendering with LuxCoreRender
- Added fur rendering options with LuxCoreRender
Engine
- Massive general performance improvements
- Added automatic rendering instancing system
- Added flex animation system
- Added new bloom/glow implementation
- Added lightmap baking with Cycles
- Added console commands debug_render_octree_dynamic_find, debug_render_stats, render_vsync_enabled, render_draw_static, render_draw_dynamic, render_translucent, cl_render_shadow_lod_bias, render_queue_worker_thread_count, debug_textures, sky_override, render_queue_entities_per_worker_job, render_queue_worker_jobs_per_batch, render_instancing_threshold and render_instancing_enabled
- Fixed issue where camera would move upwards continuously in fullscreen windowed resolution mode
- Fixed first LOD being skipped when importing Source Engine models
- Fixed model LODs not working
- Fixed various crash bugs
- Fixed bone scaling not working correctly in some cases
Lua
- Added ents.RenderComponent:GetLocalRenderBounds, ents.RenderComponent:GetLocalRenderSphereBounds, ents.RenderComponent:GetAbsoluteRenderBounds, ents.RenderComponent:GetAbsoluteRenderSphereBounds, ents.RenderComponent:SetLocalRenderBounds, ents.RenderComponent:ShouldCastShadows, ents.RenderComponent:ShouldDraw, ents.RenderComponent:ShouldDrawShadow, ents.RenderComponent.EVENT_ON_RENDER_MODE_CHANGED and ents.RenderComponent.EVENT_UPDATE_INSTANTIABILITY
- Added util.DataBlock:GetVector2
- Added game.Material.detail_blend_mode_to_enum and game.Material.DetailBlendMode enums
- Added ents.SceneComponent:GetRenderQueue, ents.SceneComponent:BuildRenderQueue and ents.SceneComponent.CreateInfo
- Added math.Vector:ToScreenUv
- Added game.set_default_game_render_enabled, game.is_default_game_render_enabled, game.render_scenes, game.set_debug_render_filter and game.update_render_buffers
- Added game.RENDER_FLAG_TRANSLUCENT_BIT
- Added util.ImageBuffer:SwapChannels
- Added prosper.get_api_identifier, prosper.get_api_abbreviation, prosper.wait_for_current_swapchain_command_buffer_completion, prosper.create_primary_command_buffer and prosper.create_secondary_command_buffer
- Added prosper.CommandBuffer:Flush
- Added game.DrawSceneInfo.FLAG_FLIP_VERTICALLY_BIT, game.DrawSceneInfo.FLAG_DISABLE_RENDER_BIT and game.DrawSceneInfo.flags
- Added classes game.RenderQueue, game.DepthStageRenderProcessor, game.LightingStageRenderProcessor, shader.GameWorld, game.Model.FlexAnimation and game.Model.FlexAnimation.Frame
- Added ents.ModelComponent:SetMaxDrawDistance, ents.ModelComponent:GetMaxDrawDistance and ents.ModelComponent.EVENT_ON_RENDER_MESHES_UPDATED
- Added ents.AnimatedComponent:AreSkeletonUpdateCallbacksEnabled, ents.AnimatedComponent:SetSkeletonUpdateCallbacksEnabled, ents.AnimatedComponent.EVENT_ON_SKELETON_UPDATED, ents.AnimatedComponent.EVENT_ON_BONE_MATRICES_UPDATED and ents.AnimatedComponent.EVENT_ON_BONE_BUFFER_INITIALIZED
- Added util.BSPTree:FindLeafNodesInAABB
- Added ents.LightmapComponent.bake_lightmaps, ents.LightmapComponent:SetExposure, ents.LightmapComponent:GetExposure, ents.LightmapComponent:GetExposureProperty and ents.LightmapComponent.BakeSettings
- Added ents.FlexComponent:PlayFlexAnimation, ents.FlexComponent:StopFlexAnimation, ents.FlexComponent:GetFlexAnimationCycle, ents.FlexComponent:SetFlexAnimationCycle and ents.FlexComponent:SetFlexAnimationPlaybackRate
- Added game.Model:GetFlexAnimations, game.Model:GetFlexAnimationNames, game.Model:GetFlexAnimationCount, game.Model:AddFlexAnimation, game.Model:LookupFlexAnimation, game.Model:GetFlexAnimation, game.Model:GetFlexAnimationName, game.Model:ClearFlexAnimations, game.Model:RemoveFlexAnimation, game.Model.AddFlexControllerId, game.Model.SetFlexControllerValue, game.Model.LookupLocalFlexControllerIndex, game.Model:GetLOD and game.Model.Mesh:RemoveSubMesh
- Added game.RasterizationRenderer:ReloadPresentationRenderTarget
- Added file.to_relative_path
- Added geometry.calc_point_on_triangle and geometry.calc_triangle_area
- util.save_image now has an option for saving cubemap textures
- Removed ents.SceneComponent:PrepareRender, ents.TransformComponent:GetPosProperty, ents.TransformComponent:GetRotationProperty, ents.TransformComponent:GetScaleProperty, game.draw_scene, ents.RenderComponent:GetRenderBounds, ents.RenderComponent:SetRenderBounds, ents.RenderComponent:GetRenderSphereBounds, ents.RenderComponent:GetRenderModeProperty, ents.RenderComponent:SetDepthBias, ents.RenderComponent:GetDepthBias, game.DrawSceneInfo.flipVertically and ents.RenderComponent.RENDERMODE_AUTO
- Changed parameters of ents.SceneComponent:Render and ents.RenderComponent:UpdateRenderBuffers
Version 0.9.11 [2020-11-11]
Filmmaker
- Cycles render settings are now saved with the project
- Changed frame render order when rendering animations with external render tool for easier quality control
- Added support for detail maps when rendering with Cycles
- Fixed emission textures having no effect when rendering with Cycles
- Fixed IOR value being set improperly when opening material in material editor
- Fixed material editor not updating properly when switching to a different material
- Fixed HDR output format not working properly when rendering with Cycles
- Changed default gamma correction value when rendering with Cycles to 2.2 (was 2.4 before)
Engine
- Added support for $detail, $detailscale, $detailblendfactor, $detailblendmode and $detailtint VMT parameters
- Added CS: GO to default game mount list
- Fixed issue where entities with morph target animations would get visually corrupted if they were made invisible and then visible again
- Fixed issue where ingame cursor position would mismatch actual cursor position in fullscreen windowed resolution mode
- Fixed issue where camera would move upwards continuously in fullscreen windowed resolution mode
Lua
- Replaced class game.Scene with ents.SceneComponent
- Added ents.SceneComponent.OcclusionCullingMethod enums
- Added game.Material.DetailBlendMode enums
- Added game.Material.detail_blend_mode_to_enum
- Added ents.SceneComponent:SetOcclusionCullingMethod
- Added game.Model:GetBodyGroupMesh
- Added game.Material:SetShader
- Added ents.Entity:GetBodyGroup and :SetBodyGroup overloads for body group IDs
- Added ents.BaseEntityComponent:Save, ents.BaseEntityComponent:Load and ents.BaseEntityComponent:Copy
- Added ents.Entity:RemoveFromAllScenes and ents.Entity:AddChild
- Added debug.breakpoint (Only available if
-luaext
was specified in the launch options) - Added math.Mat4:ApplyProjectionDepthBiasOffset
- Added ents.RenderComponent:SetReceiveShadows and ents.RenderComponent:IsReceivingShadows
- Added ents.EyeComponent:ClearViewTarget
- Added util.DataBlock:GetVector2
- Renamed game.create_scene to ents.create_scene
- util.remove now has a second argument for removing objects safely (if available)
- toboolean and toint now accept numbers and booleans as arguments
- Changed parameter order of ents.create_prop
Version 0.9.10
Filmmaker
- Added Cycles option for setting the number of frames to the end of a clip or session
- Render jobs now take up a lot less disk space for animations (static geometry is now stored shared instead of every frame)
- Slightly improved overall rendering speed
- Fixed rendering taking up your entire CPU resources when rendering with your GPU
- Fixed an issue where rendering several times consecutively could slow your PC down to a crawl
- Fixed VR renders being flipped horizontally
- Fixed a denoising issue which caused less than optimal denoising quality
- Fixed issue where the tiles in the final image would have mismatching sample counts and some tiles would be lower quality as a result
- Fixed render preview not being interactable when rendering VR images
- Fixed potential crash when doing a preview render with the Vulkan renderer being used
Engine
- Minor occlusion culling performance optimizations
- Greatly improved reflection probe rendering speed
- Fixed issue where entities would get rendered with error materials if their skin would exceed the max skin count of their model
- Fixed bone scaling not working correctly
- Fixed massive performance hit for light sources that cast shadows in the past, but had shadow casting disabled
- Fixed BSP occlusion culling not working for imported Source Engine maps
- Fixed meshes not being rendered if entity skin exceeds maximum skin count
- Improved lightmap implementation
- Various minor bug fixes and improvements
- Improved loading times when starting a game
Lua
- Added class util.Version
- Added exec
- Added ents.create_prop
- Added ents.AnimatedComponent:SetBindPose and ents.AnimatedComponent:GetBindPose
- Added ents.LightMapComponent:UpdateLightmapUvBuffers, ents.LightMapComponent:ReloadLightmapData and ents.LightMapComponent:SetLightmapAtlas
- Added ents.LightMapReceiverComponent:UpdateLightmapUvData
- Added gui.Element:InjectMouseClick and gui.Element:InjectKeyPress
- Added ents.Entity:IsDisabled and ents.Entity:IsTurnedOff
- Added util.Path:CreateFilePath and util.Path:CreatePath
- Added ents.MapComponent:GetMapIndex
- Added ents.AnimatedComponent:PlayAnimation overloads for playing animations by id
- Added util.DataBlock:ToString
- Added game.Model.Frame:Copy, game.Model.Skeleton.Bone:IsAncestorOf and game.Model.Skeleton.Bone:IsDescendantOf
- Added math.calc_average_rotation
- Added file.strip_illegal_filename_characters
- Added game.Model.Mesh:GetReferenceId
- Added game.Model.Mesh.Sub:FlipTriangleWindingOrder, :SetVertexCount, :SetIndexCount, :AddUVSet, :GetUVSetNames, :SetVertexTangent and :HasUVSet
- Added string.hash
- Added new overload for game.Model.Mesh.Sub:GetUVs, :SetVertexUV, :GetVertexUV with UV set parameter
- Changed argument format for util.pack_zip_archive
- Renamed ents.AnimatedComponent:GetBindPose to ents.AnimatedComponent:GetBoneBindPose
- util.remove now accepts a table as argument
- file.write now automatically creates the file path if it doesn't exist
- File write operations now accept paths that include "addons/<addonName>/" as prefix