Josh Posted January 17 Author Share Posted January 17 0.9.9 Some navmesh behavior is improved. NavAgent::Navigate and NavMesh::PlotPath now both take two additional arguments: Navigate(const Vec3& point, const int maxsteps, const float maxdistance) Also added Hmd::SetScale(), which accepts a single float value that will scale the VR player. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted January 21 Author Share Posted January 21 0.9.9 Editor now recognizes .ogg and .mp3 in open/save dialogs that use sound files. If zero is sent to NavAgent::Navigate() for the maxdistance parameter, the agent will navigate to the closest point (the old behavior). Some minor bug fixes. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted January 24 Author Share Posted January 24 0.9.9 6 7 bug fixes. Only Lua binaries and editor are updated today. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted January 24 Author Share Posted January 24 0.9.9 General bug fixes. Thanks everyone for your help identifying these issues. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted January 24 Author Share Posted January 24 0.9.9 Added View > Show Vegetation menu item. @Andy90 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted January 28 Author Share Posted January 28 0.9.9 FreeImage is now built into the editor, and does not require a plugin. The DLL plugins system is moved into the Core:: namespace and should not be considered official API. Lua LoadPlugin command is unchanged. Only the editor is updated at this time. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted January 28 Author Share Posted January 28 0.9.9 Full update with the beforementioned changes. Added some pizzazz to the default color scheme (colors are the same as the forum and docs). 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted January 28 Author Share Posted January 28 0.9.9 Custom shader families are easy to create now. In the Project tab, click the '+' button and select New Shader Family. The internal details of the custom shaders system is going to change a bit, but the basic system is in place. @klepto2 @havenphillip Modifying an include file for a shader module will now trigger that shader module to recompile, so shader programming is now as easy as in Leadwerks. 1 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted January 29 Author Share Posted January 29 0.9.9 Some settings are now moved into per-project storage. I kept these in the Options dialog, rather than creating a separate interface for project settings. Not sure about this decision. Added mouse tool hotkeys using the number keys. I did not use the shift modifier and it works fine, and is easier to reach. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted January 30 Author Share Posted January 30 0.9.9 Publish project dialog is finished, except for scanning to only include used files. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted January 30 Author Share Posted January 30 0.9.9 Added scanning to include only used files. Publish feature is finished, I think? 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted January 30 Author Share Posted January 30 0.9.9 Full update. Experimental: Component Load and Save are now public. Added extra parameter to TextureBuffer::SetDepthComponent for a cubemap face. 1 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted January 31 Author Share Posted January 31 0.9.9 Implemented Entity view range, in the editor only. @Alienhead 2 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted January 31 Author Share Posted January 31 0.9.9 Wildcards will now work in the "never copy files" setting in the options dialog, and *.cpp, *.h, and *.lua are added to the default settings. Lua builds will now have the multi-archive option disabled, for security. This prevents someone from inserting their archive that contains a script that extracts the contents of the other archives. Engine will now preferentially load Lua scripts from a zip file over regular files. The opposite is true for everything else. If data.zip is present, the Lua interpreter will only load components from there. Added Font::GetGlyph() method. Lua component files will now be automatically parsed, and a new JSON component definition file will be generated whenever they change. The system should only overwrite files that contain the "autogenerate=true" value in the JSON structure, so your existing JSON definition files should be safe. Any overwritten JSON definition files should also get copied into the /Backup folder, so everything is probably okay, probably. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 2 Author Share Posted February 2 0.9.9 Initial implementation of C++ header parsing is done. Your header files should look something like this: #pragma once #include "UltraEngine.h" #include "../BaseComponent.h" using namespace UltraEngine; class ChangeEmission : public BaseComponent { public: float a = 3;// "A" int b = 30000;// "B" bool recursive = true; // "Recursive" Vec3 color0;// "Color 1" Vec3 color1;// "Color 2" Vec3 color2;// "Color 3" ChangeEmission(); virtual void Activate();//inout virtual std::any CallMethod(shared_ptr<Component> caller, const WString& name, const std::vector<std::any>& args); virtual bool Load(table& properties, std::shared_ptr<Stream> binstream, std::shared_ptr<Scene> scene, const LoadFlags flags, std::shared_ptr<Object> extra); virtual bool Save(table& properties, std::shared_ptr<Stream> binstream, std::shared_ptr<Scene> scene, const SaveFlags flags, std::shared_ptr<Object> extra); virtual std::shared_ptr<Component> Copy(); }; The system will only overwrite JSON component definition files if the "autogenerated" value in the JSON file is set to true, so it should leave your existing files alone unless you delete them manually. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 3 Author Share Posted February 3 0.9.9 C++ and Lua parsing to generate component definition files is finalized, I think. Here are examples for both languages: C++ #pragma once #include "UltraEngine.h" #include "../BaseComponent.h" using namespace UltraEngine; class ChangeEmission : public BaseComponent { public: bool recursive = false;// "Boolean" float floatvalue;//"Float value" [0, 100] int integervalue;//"Integer value" [0, 100] int option = 1;//"Option" ["Option 1", "Option 2", "Option 3"] WString stringvalue; // "String value" std::shared_ptr<Entity> entity;// "Entity reference" Vec3 color0;// "RGB Color" color Vec4 color1;// "RGBA Color" color Vec2 v2;// "Vector 2" Vec3 v3;// "Vector 3" Vec4 v4;// "Vector 4" WString soundfile;// "Sound file" sound WString materialfile;// "Material file" material WString modelfile;// "Model file" model WString texturefile;// "Texture file" texture ChangeEmission(); virtual std::any CallMethod(shared_ptr<Component> caller, const WString& name, const std::vector<std::any>& args); virtual bool Load(table& properties, std::shared_ptr<Stream> binstream, std::shared_ptr<Scene> scene, const LoadFlags flags, std::shared_ptr<Object> extra); virtual bool Save(table& properties, std::shared_ptr<Stream> binstream, std::shared_ptr<Scene> scene, const SaveFlags flags, std::shared_ptr<Object> extra); virtual std::shared_ptr<Component> Copy(); }; Lua Luatest = {} Luatest.recursive = false-- "Boolean" Luatest.integervalue = 0-- "Integer value" [0, 100] Luatest.floatvalue = 0.0 -- "Float value" [0, 100] Luatest.stringvalue = "" -- "String value" Luatest.entityvalue = nil -- "Entity reference" Luatest.option = 1-- "Option" ["Option 1", "Option 2", "Option 3"] Luatest.color0 = Vec3(1,1,1,1)-- "RGB Color" color Luatest.color1 = Vec4(1, 1, 1, 1) -- "RGBA Color" color Luatest.v2 = Vec2(0) -- "Vector 2" Luatest.v3 = Vec3(0) -- "Vector 3" Luatest.v4 = Vec4(0) -- "Vector 4" Luatest.soundfile = "" -- "Sound file" sound Luatest.materialfile = "" -- "Material file" material Luatest.modelfile = "" -- "Model file" model Luatest.texturefile = "" -- "Texture file" texture 1 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 4 Author Share Posted February 4 0.9.9 @klepto2's volumetric lighting post-process effect has been added. See Effects/VolumetricLighting. I made my own modifications to it, and set it so the alpha channel of the light color can be used to control the strength of the volumetric effect. Big thanks and much appreciation are owed in this collaborative effort! 1 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 4 Author Share Posted February 4 0.9.9 Entity color property can now be modified per-channel when multiple entities are selected that have different colors, without changing the color channels that are conflicted. 1 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 4 Author Share Posted February 4 0.9.9 Custom shader families are finished. I simplified the user hook with a single Surface structure: void UserHook(inout Surface surface, in Material material) I might still go back through and correct some of the inconsistencies in the name. For example the Material structure has a property called emissiveColor but the Surface structure calls it emissioncolor. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 5 Author Share Posted February 5 0.9.9 Added water shader family. Added Materials/Water/water01.dds. Added Materials/Water/water01.mat. Water uses the same basic technique as Leadwerks, with some changes. I increased the resolution and number of frames. Water now reacts correctly to lighting and will receive shadows and display specular highlights. Instead of rendering the scene twice, the water just uses the standard PBR reflection code. Screen-space reflection will be utilized if it is enabled. Water can be applied to any surface. Combined with the Entity::AddBuoyancyForce command, this can be used to add areas of waters in any location and at multiple heights. 4 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 6 Author Share Posted February 6 0.9.9 The texture editor is revised in this build. The main change is textures are viewed in the 3D renderer, instead of having their pixel data displayed in the GDI+ display system. One major factor in this decision is the fact that OpenGL works with GUI applications much better than Vulkan does, and I just haven't gotten around to changing this until now. Opening a texture was very slow before, now it will load and display pretty much instantaneously. The pixel format drop-down box in the properties is removed. A new save dialog will be displayed if the File > Save As menu item is selected. This includes a list of pixel formats you can save to. There are some extra shader families the editor uses, so a shader sync is required to be able to view textures. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 6 Author Share Posted February 6 0.9.9 The engine now internally will create multiple bindless texture handles depending on the current clamp mode and filter mode. This is a pretty big internal change, but it should work just the same as before...except that now the texture filter mode and clamp settings can be set dynamically. Additionally, these settings will be saved to and loaded from an accompanying .meta file. The mipmap and layer view drop-down boxes are back in, and even better since you can view the actual texture miplevel with the current filter and clamp mode applied. Only the editor is updated at this time, a full build will come soon. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 6 Author Share Posted February 6 0.9.9 The asset browser preview popup will now show more extensive details for texture, material, and model files. Some of this info is stored in an accompanying .meta file and will not be populated until the next time you save the file. This was always the plan for this interface, but I did not have time to finish it until now. 2 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 7 Author Share Posted February 7 0.9.9 Fixed shadow map clamping error. Bumped the asset preview window up another notch. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 7 Author Share Posted February 7 0.9.9 Tooltips in the editor are working. Only the console, settings button on the lower-left, and center mouse tool bar have tips assigned. There are still some questions about how these should behave, but they are basically working. Only the editor is updated at this time. A full build will come tomorrow. 2 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Recommended Posts