Git Changelog

PFM (23-03-31)

Features

  • "Base Properties" item in actor editor is now hidden for components that have no base properties (58ad221)
  • actor bones now show in viewport when hovering over a body part (254a3c2)
  • actor property values are now initialized from project after main component initialization and before entity spawn (e6d9b8d)
  • add "OnChannelAdded" and "OnChannelRemoved" callbacks for animation manager (3028942)
  • add "Save as Copy" menu bar option (14219d1)
  • add additional tooltip information to actor editor constraint icons (2e721f8)
  • add additional version information (c04a956)
  • add AnimationManager::FindAnimation for finding/creating the animation of a specific actor (b500690)
  • add axis lines to translation gizmo (19ce11d)
  • add bloom component action for viewing scene bloom (a4bc32e)
  • add context menu option to jump to target property for property references in actor editor (7ffe128)
  • add context-menu option for going to driver properties of constraints in actor editor (75a804a)
  • add feedback messages when shader kernels are being built (5f9db8f)
  • add film clip context menu options for editing film clip properties (d2162bb)
  • add gui.PFMViewport:ScaleSelectedActors (d84df2a)
  • add hover text for selected bone in viewport (9674035)
  • add interactive skeleton visualization (235e50c)
  • add menu option to convert scenebuild of current project to map (de73ba9)
  • add menu option to start lua debugger server (bd6e21e)
  • add meta type information for transform properties of pfm_actor component (23bd079)
  • add model explorer option to convert model from/to ascii/binary format (162f983)
  • add mouse hover selection outline effect (8a5754b)
  • add option to create "child_of" constraint through actor editor (10d4a8d)
  • add option to remove drivers and constraints via icon in actor editor (4bebe88)
  • add outline effect component (3ea6fe5)
  • add PFMTreeViewElement:AddUniqueIcon and :ClearIcons (70bcef9)
  • add saving / loading to ik rig editor (7348c27)
  • add support for property reference component property types (49805d2)
  • add support for read-only component properties in actor editor (1456594)
  • add support for very large render resolutions (0ea820c)
  • add tiled rendering for pragma renderer (0f19281)
  • add tutorial system (a35ca15)
  • add update-checker (8d965e4)
  • add utility functions and identifiers for tutorial system (6030ef5)
  • add vr_manager component (wip) (b411791)
  • add world axis gizmo (52ba356)
  • adding a constraint or math expression now automatically adds a single-value animation channel if one doesn't exist (c44eadc)
  • all logging categories are now enabled by default if log parameter is not specified (ba01a4d)
  • animation drivers can now be created through actor editor (eb05de4)
  • anim: bones can now be selected by clicking a triangle weighted to that bone (1416fbb)
  • anim: non-selected IK bones can now be directly clicked and moved in viewport (ea6f8d5)
  • anim: selected bones are now highlighted (b465641)
  • apply changes for Silverlan/pragma@e6e7bb59 (ab4cfcd)
  • asset,gui: add missing gui material files for detaching windows (a353b92)
  • bones in actor editor are now displayed in hierarchical order (ca59b1c)
  • camera settings are now saved and restored to/from projects (132c05d)
  • change implementation of util_transform component to allow usage in secondary scenes/viewports (df35060)
  • component lists in actor editor now use localized component names (569e80c)
  • component properties with a single animation value can now be edited directly outside of graph editor (caca401)
  • components in actor editor are now listed directly below actors instead of "components" sub-item (703fa63)
  • converting map to actors now takes scale into account (e0e5d9a)
  • copying the property path of a property now includes the full path including actor id (d41ff17)
  • current project file name is now displayed in window title bar (363e53d)
  • dev: add option to assign actor component to x / y variable via right-click context menu in actor editor if developer mode is enabled (3a22890)
  • disable bloom for transform gizmos (58e4438)
  • disable motion editor button (3e8f00f)
  • ecs: add option to specify ik rig from file for ik_solver component (ad57536)
  • ecs: add pfm_project_manager component for creating PFM scenes outside of PFM (f43f679)
  • ecs: remove ik_solver component (5f7fc65)
  • emission_factor for cycles pbr shader can now be used without emission texture (3e156cd)
  • enum-based component properties no longer list "Count" as an option in actor editor (6f9f12f)
  • gui: add ik rig editor (8d5dffc)
  • gui: add option to add simple non-editable text properties to control menues (6c1c3e5)
  • hide render options not supported by selected renderer (2edcc14)
  • ik rig editor updates and improvements (0b92277)
  • ik: add ik components (wip) (a63e07f)
  • ik: increase precision of ik solver (90d4081)
  • implement changes for Silverlan/pragma@0c91c31c (4668b27)
  • importing asset into model explorer now gives an option to import as collection or as single model (55b0565)
  • importing assets via model explorer now imports into sub-directory (e32e3ee)
  • improve skeletal bone visualization in viewport (0315c90)
  • locale: add ik rig editor localizations (758c199)
  • locale: add Japanese translation (2c9fa7b)
  • locale: add localization for components and component properties in actor editor (cfc0579)
  • locale: add missing localizations (9115eec)
  • locale: add missing localizations (a464a92)
  • locale: update localizations (dfde1a8)
  • math expression window now gives immediate feedback about validity of expression (88cfd5d)
  • model browser now automatically refreshes after importing assets (9de100f)
  • moving actor between collections is now instantaneous (50c2ff8)
  • PFM projects can now be marked as read-only (0e423a5)
  • pfm projects can now be saved/loaded in ascii format (4647fc2)
  • pfm_actor component now also adds origin component (a6793d8)
  • placing an actor through the model catalog now assigns the model name to the actor's name (f71b3f3)
  • properties in actor editor now only display the base name of the property instead of the full name (d31eb26)
  • remove origin component from pfm_actor component (e8f2679)
  • rename "track_to" constraint to "look_at" (see Silverlan/pragma@da75b3f6 ) (aab83b5)
  • replace selection wireframe with outline effect (d0fb7f5)
  • selecting an actor in the viewport now automatically scrolls to it in the actor editor (c5e5363)
  • sfm projects can now be imported from directories other than "elements/sessions/" (f41b93c)
  • shaders: add missing particle shader files (d786f7e)
  • tutorial layout changes (7c4e058)
  • UDM editor now has options for creating new UDM files, importing UDM data or saving as new file (1789cce)
  • various actor editor additions (74ac3b7)
  • various ik rig editor additions and improvements (3019232)
  • various tutorial system improvements (c0c97e9)
  • version info can now be clicked to copy it to clipboard (1ad002f)
  • vr: vr manager now automatically creates actors for all recognized tracked devices (1add829)

Bug Fixes

  • add missing include (2d00d50)
  • constraint menu no longer shows up for string-based properties (73fcbc5)
  • debug objects are now longer included in renders when using Pragma renderer (edbdf52)
  • fix "Save As" not updating internal file name to new file name (e529ab0)
  • fix ascii-based models not appearing in model explorer (fda5dcd)
  • fix clicking mesh not detecting correct weighted bone properly (864004e)
  • fix component property values of type 'entity' not getting saved/loaded properly to/from a PFM project (68ca36c)
  • fix device type settings in render options being inverted (fc4f53d)
  • fix gui.PFMTreeViewElement:SetIdentifier not registering identifier with parent (3f18518)
  • fix importing map not importing prop_dynamic entities (a446d9c)
  • fix incorrect class name for pfm_project_manager component (1dfd98c)
  • fix light sources not showing up in secondary viewports (8118eb8)
  • fix low-resolution preview render image (c0f888d)
  • fix lua error when auto-saving (0e818e4)
  • fix lua error when baking lightmaps (84a714c)
  • fix lua error when changing component property values (1b55a9f)
  • fix lua error when changing property values (7d7492a)
  • fix lua error when clicking ik handle in viewport (25c38e2)
  • fix Lua error when launching PFM (5baf87d)
  • fix Lua error when moving actor to empty collection (b71a946)
  • fix lua error when rendering if opencv module is not installed (ab71e1e)
  • fix lua errors (8bec2e8)
  • fix lua errors if actor is spawned with unknown component types (8bf3ff3)
  • fix Lua errors in ik rig editor (deb7eb2)
  • fix lua errors when adding or removing constraints (70dddfe)
  • fix potential crash when selecting or de-selecting spot-light actor (a3bc308)
  • fix quick-ik in actor editor not working properly (68a190b)
  • fix removing pfm_skeleton component not removing visual bones (3ceb0c9)
  • fix some items in actor editor tree having incorrect identifier assigned to them (1288805)
  • ik: fix broken ik behavior for actors without the pfm_model component (8ed45f6)
  • locale: fix changing language not being saved (e997b2d)
  • resolve issue where actor editor component icons would disappear in some cases (f2bd880)
  • resolve issue where actor editor component property list would not get reloaded when component properties change (a81095c)
  • resolve issue where camera projection matrix would not be reset properly after tiled rendering (aebe5c8)
  • resolve issue where clicking constraint icon in actor editor would not select associated property properly (1226112)
  • resolve issue where incorrect slider step size would be used for slider UI elements (988bea9)
  • resolve issue where removing an actor could result in corrupted actor references (6f9ad31)
  • resolve issue where sky actor would appear with error texture (5ba11fc)
  • resolve issue where transform gizmo arrows would not transform in correct space (41b7ee3)
  • resolve issue with actor model being initialized too late, causing dependent component property values to not be initialized properly (fa03294)
  • resolve various issues caused by filmmaker being initialized before game is ready (d690b82)
  • resolve various issues related to transform gizmo (1667afe)

 

Pragma (23-03-31)

Features

  • "scale" keyvalue for prop and transform components now accepts vector values (755e0cd)
  • add additional error reporting if model loading or importing fails (e0853ac)
  • add base editor UI element identifiers (2fc6c4d)
  • add bloom component properties (56042d1)
  • add console commands log_level_console and log_level_file for changing log levels on the fly (8a6becd)
  • add error handling when saving a model (cd7524d)
  • add functions for getting parent pose of transform-based component properties (e4c108b)
  • add git sha to version information (7b34f3c)
  • add global string table (6f67c6a)
  • add gltf import support for multiple mesh instantiations (b70ee2a)
  • add gui.WIBaseEditor:GetContentsElement (31c18be)
  • add logging messages for lightmap system (6d7813e)
  • add missing log_file launch parameter (15c0e4c)
  • add model flag for indicating if model is world geometry (75930c4)
  • add Model::RemoveUnusedMaterialReferences (91bfd95)
  • add new logging system (7d8c965)
  • add on-complete callback to util.import_assets (1ab7ffd)
  • add option to calculate projection matrix for tiled rendering (d862e63)
  • add ostream overloads for entity reference types (10554e5)
  • add support for importing gltf scene as map with multiple models (802061e)
  • add support for Lua development and debugging with Visual Studio Code (405dabf)
  • add udm lua bindings (b66c082)
  • add udm.BaseSchemaType:ReloadUdmData (43357c3)
  • add util::generate_two_pass_gaussian_blur_coefficients (f1c9c92)
  • add util::to_image_buffer overload for providing a pre-existing staging image (00397a6)
  • add WorldData Lua bindings (68eaa49)
  • anim: add multi-threading for animations (36029e2)
  • anim: implement constraint influences (ec65ae4)
  • asset: add skybox materials (11fa969)
  • asset: replace toolsnodraw texture (3b18acc)
  • code cleanup (e4ad13f)
  • debug_aim_info command now attempts bhv raycast before physics raycast (6c27acb)
  • debug: add info.txt to crashdump (955642d)
  • debug: add logging information (74977af)
  • debug: crash dump now includes vendor information about all available GPUs on system (772db85)
  • debug: crashdump now includes device id for available GPU devices (44fde2e)
  • debug: re-enable crashdump exception information (b49bdaf)
  • ecs,animation: add animation constraint system (e628639)
  • ecs,lua: add option to specify type meta data as well as custom setters and getters for Lua-based component properties (8222143)
  • ecs,lua: lua-based component properties using the PoseTypeMetaData type meta data are now automatically associated with respective pos/rot/scale properties (0c91c31)
  • ecs: add "pose" property to ik solver component (07b37ee)
  • ecs: add BaseBVHComponent::GetVertex (a62a322)
  • ecs: add child_of constraint component (679f76e)
  • ecs: add component property meta type data (fed2d66)
  • ecs: add component property parent meta type (2d8f34f)
  • ecs: add constraint component events when driver or driven object has changed (88301a7)
  • ecs: add constraint entity component types (1410021)
  • ecs: add event callback when clearing material overrides for model component (904fa93)
  • ecs: add ik_solver component (a69e632)
  • ecs: add methods for retrieving coordinate-based component properties in specific coordinate space (b26c539)
  • ecs: add origin entity component (e9b5029)
  • ecs: add pose type meta data for associated pose properties with pos/rot/scale properties (8b24818)
  • ecs: add property component member type (5bde6fc)
  • ecs: add read-only member property flag (a08a204)
  • ecs: add track_to constraint component (06001d5)
  • ecs: BaseGenericComponent::EVENT_ON_MEMBERS_CHANGED now includes event data struct with component information (23f75d9)
  • ecs: implement constraints: limit_location, limit_rotation, limit_scale (34a3b26)
  • ecs: improve performance of composite component (08aaacb)
  • ecs: rework and rename track_to constraint to look_at constraint (da75b3f)
  • emission_factor material property can now be used without emission map (39fa66c)
  • Engine::AddTickEvent is now thread-safe (c00bd5d)
  • entity model bodygroups are no longer reset on spawn (16c1177)
  • ExprTk: update to version 0.0.2 (e354bb2)
  • force panima animations to always update, even if timestamp hasn't changed (6f23fb2)
  • gui,lua: add gui.ScrollContainer:GetWrapperElement, :ScrollToElement* functions (4156f14)
  • gui: add option to disable automatic rendering when setting scene for WIViewport GUI element (21c9131)
  • gui: add option to disable menu item (489659b)
  • ik: add full-body ik system (8455946)
  • improve bloom effect (17c4e54)
  • improve lightmap quality (1cfd4d2)
  • lad: add math alias definitions to meta lua documentation (810844b)
  • lad: add math alias definitions to meta lua documentation (fd4b7b5)
  • lad: update lua meta documentation files (d1326d9)
  • lightmap data cache component now initializes data cache automatically (6bdbe84)
  • locale: add debug logging messages (bd52a4a)
  • locale: add Japanese translation (ee424f3)
  • locale: add localization for components and component properties (b6b1d40)
  • locale: update localizations (31767f6)
  • log system improvements (79a12ff)
  • loggers are now flushed whenever error or critical messages are printed (6cfcb81)
  • log: info messages now have the "[info]" prefix if printed using the logging system (9113847)
  • log: warning, error and critical messages are now completely colored in (baede6a)
  • lua-based shaders no longer re-initialize material descriptor set when it is not necessary to do so (c199a10)
  • lua,ecs: add component property reference bindings (228dab7)
  • lua: add console.invoke_change_callbacks binding (c568ec2)
  • lua: add constraint function bindings (727389f)
  • lua: add ents.AnimatedBvhComponent:RebuildAnimatedBvh binding (dc377f4)
  • lua: add ents.AnimatedComponent:GetEffectiveBoneTransforms binding (d53c570)
  • lua: add ents.EntityComponent:InvokeElementMemberChangeCallback binding (6af95ce)
  • lua: add ents.is_member_type_animatable binding (51a2271)
  • lua: add ents.parse_uri and ents.create_uri bindings (d69df6f)
  • lua: add equality operator for prosper.Window objects (3365a0a)
  • lua: add game.is_game_initialized, game.is_game_ready, game.is_map_initialized (f3744d7)
  • lua: add gui.get_element_under_cursor overload with base element parameter (2589c61)
  • lua: add ik rig lua bindings (5b7735d)
  • lua: add Lua bindings for log library (c536f87)
  • lua: add math.Transform constructor with ScaledTransform argument (c3ef7ed)
  • lua: add missing entity component type meta data bindings (e655387)
  • lua: add model, physics and misc bindings (807dc8c)
  • lua: add options for custom push constants and material data initialization for Lua-based shaders (03c9f4c)
  • lua: add panima function bindings for merging channels and animations (521991c)
  • lua: add panima.Channel:TestValueExpression (8705de2)
  • lua: add parameter to asset.import_model and asset.import_gltf for importing model as collection or single model (2038c26)
  • lua: add prosper.Window:GetWindowTitle (9c91196)
  • lua: add string.snake_case_to_camel_case and string.camel_case_to_snake_case bindings (273feb0)
  • lua: add support for displaying object types when debugging with lua-debug (e5a474b), closes /github.com/actboy168/lua-debug/issues/237#issuecomment-1477469263
  • lua: add support for displaying object values when debugging with lua-debug (2451782)
  • lua: add udm.is_convertible binding (9535e18)
  • lua: add util.ImageBuffer:Insert bindings (7cc2ff8)
  • lua: ents.Entity:FindMemberInfo now also returns component reference (8018ad9)
  • lua: rename ik.Solver:RemoveDragControl to ik.Solver:RemoveControl (9f498d7)
  • map format can now contain entity component data (de913ce)
  • performance improvements (71fb75c)
  • reduce weight of directional light sources when calculating dominant light direction (b935e2b)
  • remove ambient color from shader render settings and add camera fov (e6e7bb5)
  • update intel vtune path references to version 2023.0.0 (812e0f7)
  • update panima submodule (04c72ec)
  • update sharedutils submodule (7d0e338)
  • update sharedutils submodule (048f8a4)
  • update sharedutils submodule (8476465)
  • update util_image submodule (8b48504)
  • various animation driver updates and improvements (80953a8)
  • windows: change console font to "Ubuntu Mono" (f290627)

Bug Fixes

  • add missing include (c16c6d1)
  • add missing origin component source code files (c1ad5eb)
  • changing collisions of a physics constraint having no effect (e76ac98)
  • clang compile error (b147489)
  • crash when doing mouse or keyboard input before main window has been created (4855962)
  • ecs: add missing component property registration for bone pose property of animated component (edb3798)
  • ecs: fix enabling or disabling axis for child-of constraint not having any effect (362dbed)
  • ecs: fix Lua errors in lua_script component (343ec34)
  • ecs: fix lua errors when loading lua_script entity component (a32a0d4)
  • ecs: fix space constraint component axes being inverted by default (83fae4a)
  • ecs: resolve various ik_solver component issues (9ab5716)
  • ecs: resolve various ik_solver component issues (5931047)
  • fix "color" keyvalue for color component being interpreted incorrectly (4a3faa4)
  • fix "debug_hdr_bloom" console command not working properly (a5ceec4)
  • fix accessing invalid iterator when removing entity component from within OnRemove (6c60c49)
  • fix BaseEntityComponent::SetTransformMember* functions applying value incorrectly if value is in world space and property expects value to be in local space (79a0a2c)
  • fix build error (9c5ff63)
  • fix build error (313436a)
  • fix build error on latest Visual Studio version (20b1ad8)
  • fix clang compile error (3b493af)
  • fix ClickComponent.raycast not applying filter correctly to static entities (cfbfa5b)
  • fix component properties not being saved when saving map data (2a91492)
  • fix component property references not working if property path has multiple path components (41bb680)
  • fix crash when removing entity with panima component (30e029e)
  • fix importing gltf as model not applying mesh scaling correctly (87cf3cc)
  • fix importing gltf as multiple models resulting in invalid bodygroup references (3993611)
  • fix invalid memory read access (8e2c045)
  • fix limit location/rotation/scale components not working if no driver was specified (17362ef)
  • fix limit_distance component not working properly (fcc60fb)
  • fix memory corruption issue (9dd303f)
  • fix ModelSubMesh::SetVertexWeight using wrong vertex weight set (3a30e1b)
  • fix obsolete model path (cb063d2)
  • fix potential crash when loading a map (19fa263)
  • fix potential exception in BaseEntity::CreateMemberReference (1ce36ac)
  • fix potential null pointer access (6ddb2c6)
  • fix pragma::get_component_member_name_hash and pragma::get_normalized_component_member_name returning incorrect results (d66af40)
  • fix warning about missing static_bvh_cache component during map load (82479eb)
  • gui: fix file explorer adding additional slash to path if file is in root directory (16f4def)
  • linux: fix build errors due to missing std::format library (5a25f4d)
  • linux: resolve compile errors (608da84)
  • log: resolve various logging inconsistencies (0682925)
  • lua,gui: resolve issue where "OnTextChanged" callback would not work for "WIText" GUI elements (ce84793)
  • lua: add ents.create_entity_uri and ents.create_component_uri bindings (1dfac80)
  • lua: fix duplicate bound "tostring" method for entity components (954323a)
  • lua: fix ents.BhvComponent.HitInfo.entity not using correct lua object (1ae8906)
  • lua: fix ents.UniversalMemberReference:GetPath not returning correct path in some cases (6bc89ff)
  • lua: fix error when calling log.prefix (e8203c3)
  • lua: fix incorrect constness for some lua bindings (7000a7f)
  • lua: fix lua error when calling ents.UniversalComponentReference:GetComponentName (12ba931)
  • lua: fix module paths not being set up properly unless remote debugging is enabled for lua state (7de40ff)
  • lua: fix potential invalid memory access in util.generate_hair_data (7ae2ffd)
  • lua: fix type enums for ik rig constraints being bound with wrong class (7ef9257)
  • lua: implement missing features for transform component property type (d40c88d)
  • lua: resolve issue where udm GetValue functions would return nil if property is of type element (5a211e8)
  • lua: resolve issue where universal entity reference constructors would not accept uuid objects (f7b35d6)
  • ModelSubMesh::GetVertexWeight - resolve issue where incorrect vertex weight set would be used (fff66d9)
  • resolve compile errors (6079768)
  • resolve issue where console would not get initialized fully unless created at engine startup (1165a97)
  • resolve issue where crashdump would not generate properly (a0df754)
  • resolve issue where debug render objects could accumulate and not be flushed when no scenes are being rendered (a9ba75e)
  • resolve issue where entities in map generated from imported gltf would all have same uuid (beca3c8)
  • resolve issue where entity render buffer would not be initialized properly (6b9e379)
  • resolve issue where ik rigs could not be saved (8500d0a)
  • resolve issue where importing a model through the model explorer would fail (e93b81c)
  • resolve issue where lua source file could not be determined correctly (4ccd7ce)
  • resolve issue where Lua-script for Lua-based entity would not be loaded if invoked by creation of another Lua-based entity (6feee4a)
  • resolve issue where material and entity color factor would be interpreted as srgb instead of linear (6cc1778)
  • resolve issue where objects from imported gltf assets would have incorrect rotation (656399a)
  • resolve issue where panima components would not be updated properly if entity has no animated component (85aaa9a)
  • resolve issue where saving a model would not save the reference animation correctly (be93859)
  • resolve memory corruption issues (7ed7018)
  • resolve potential crash when multiple scenes with debug objects are rendered at the same time (31527e2)
  • resolve potential crash with animation drivers when using parameter references of properties with certain types (3f34a22)
  • temporarily disable multi-threading for animations (524ad34)