Version 0.9.14 [wip]

  • 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
  • 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
  • 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.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]

  • 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
  • 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
  • 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


Version 0.9.12 [2021-02-08]

  • Added support for rendering with LuxCoreRender
  • Added fur rendering options with LuxCoreRender
  • 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
  • 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 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]

  • 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)
  • 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
  • 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

  • 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
  • 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
  • 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