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)
No Comments