Major introductions:
ADDED:
* Added several new Surface operations, such as Cropping and Splitting, as well as new options for Surface loading, saving, texturing and modification.* Mesh Create now features generation of Octahedron, Icosahedron and Dodecahedron primitives.
* Implemented support for dragging and dropping external files into the Project Explorer (Windows Platform only).
* Implemented 3D model viewer in the designer's project explorer that allows for preview of popular file formats (obj, fbx, 3ds, etc).
CHANGED:
* Updated Unity Plugin to Unity 2019.3 and to its new Terrain format, while also supporting tree instancing.FIXED:
* Several issues on the Linux and MacOS versions of the Designer have been addressed.Minor additions and bug fixes:
ADDED:
* Entities can now be set as attributes of other entities, while allowing access to their subattributes.* Path Modify's suboperation "Edge Cleanup" now provides a new "Angle Tolerance" parameter that allows better tuning of the cleanup process. Its default value is now 3 degrees.
* Graph control will now show an "Updating" message on the bottom-left corner when it is being reloaded.
* Surface Paint Procedure has now new parameter "Uniform" that can paint the whole terrain with the same value.
* Several Surface Paint parameters now have a function parameter (that allows for smooth transitions).
* Expression function "Print", which can be used in expressions to debug its content.
* Expression function "Exists", which checks if a given file path exists.
* Expression functions "NextPowerOf2", "PreviousPowerOf2" and "ClosestPowerOf2", for rounding to the next, previous or closest power of two of a given number.
* Expression functions "IsOdd" and "IsEven", to avoid having people repeat the same formula.
* Folder and File parameter editors now provide a "R" button which allows absolute paths to relative ones (relative to the project).
* Surface multitexture rendering inside the Designer 3D window supports drawing of up to 8 textures (instead of 4).
* Actor insert now supports the option "None" for all three coordinates, in case the transformation is not to be applied to a subset of coordinates.
* Surface Save procedure now supports the option to export metadata (cellsize, minimum value, maximum, etc.) as json or txt file.
* Surface Modify now features a new parameter "Resolution", which allows number of columns/rows of the surface to be changed.
* Added Unity Component Modify Procedure which allows for addition of terrain tree instances to surface components.
* Added Surface Crop procedure that works similar to an image cropping operation, allowing for surface size increases/decreases by clamping, mirroring or repeating patterns.
* Added Surface Split procedure that, like the mesh split operation, splits surfaces along a given axis.
* Surface Smooth operation in "Surface Modify" procedure now features the "intensity", "skip" and "border" parameters, which allows better control over the smoothness on each iteration, as well as its boundaries of operation.
* Project Explorer now provides an option "Reload folder" for folders, which allows all files in that folder to be imported to the project.
* Added visibility over all possible attribute metas in the attribute control.
* Path Modify now features a "Simplify" parameter that, similarly to the Mesh version, simplifies paths by removing vertices which do not introduce a noticeable detail.
* Path Modify now features a "Trim" parameter that will cut leaf edges by a given amount.
* PathEntity conversion/rendering is now supported by the Unity Plugin (drawn using GL lines).
* Point conversion/rendering is now supported by the Unity Plugin (drawn using gameobjects with billboard components).
* Textboxes in the Sceelix Designer now all support a context menu for Cut/Copy/Paste.
* Added F2 keyboard shortcut for renaming files in the project explorer window.
* "Ramp" Parameter of the "Surface Create" procedure now features several new options, such as for choosing among different shapes and curves, as well as to control their size, offset and continuity.
* Settings Window now supports property "preview", i.e. triggering some settings will immediately trigger a visible change (e.g. the sky or filters in the Render 3D Window), while canceling will rollback all changes.
* Introduced listing of entity properties in the Inspector and Data Explorer windows, making it easier to inspect generated entities without having to save them using the Property node first.
* Renderer3D top menu now displays some illustrative icons in its menu entries.
CHANGED:
* Mesh materials will no longer throw errors if all paths are not defined. Instead, a default texture will be shown.* File and Folder parameters now store the guid of project paths, which can be used to track the original file/folder location if it changes, hence replacing the need for the explicit refactoring system.
* Added option for multi-surface input in SurfacePaint, SurfacePlace and SurfaceSampleProcedure, to facilitate operations with tiled surfaces.
* IProcedureEnvironment and ProcedureEnvironment API has changed to support a wider range of services, which are now accessible via GetService functions.
* 'Empty' parameter of Surface Create procedure now provides the "Interpolation" parameter, like the other surface creation options do.
* Updated API Sample libraries, having adjusted them to the new API and fixed several issues that would cause errors on their load by the designer.
* Unity Plugin moved its CreateOrGetTexture function to Texture2dExtensions.
* MacOS installer now bundles with Mono version 6.8, which addresses several issues.
* Tooltips for log error details have been enlarged to support longer messages.
* Changelog now has its features displayed with sublists, grouped by sections ("Added", "Changed"...), instead of having it repeated on each line. This should improve readability.
* Renderer3D's screenshot feature will now save to the "Screenshots" folder (typically the Application Data or the root folder for portable versions) with a more readable date/time format.
* Improved node search algorithm in graph editor, so that the categories are ordered by best match and so are the procedures inside each category.
* Changed look and feel of the Inspector Window content when Entities are inspected, now property sorting, key/value copy, better text presentation and more compact view.
* "New Sceelix Project" and "Add New Item" windows will now show up with the contents of their name textbox fully selected, so that it can be easier to replace the suggested name.
FIXED:
* Added caching method for loading system nodes, making graph loading much smoother and faster.* In the document area window, closing a tab when many are opened will now switch to a more logical one.
* In the document area window, closing tabs no longer reloads the first tab, which could cause unnecessary loading/processing times.
* Color Picker had Blue and Green input boxes switched, so their values would appear in the other box.
* Bug where local attribute assignment in an attribute parameter of a component node would erroneously cause the attribute assignment to occur in the scope of the subgraph.
* "Licenses" folder is no longer created in the app settings directory (it was a remnant of old versions).
* File parameters now indicate the file path in error messages when it is not found.
* Unity Entities (and their components) are now properly copied inside graphs.
* Surface painting was not performing alpha blending correctly, applying a different pattern of the same texture could lead to black painting.
* MultiTexture Surface Material application now leads to the creation of all its necessary blend layers.
* Painting of mesh over surface will now correctly paint, even if the mesh is only partially overlapping the surface.
* When importing files that were already on the project (with the same path), the prompt window would appear in some situations and cause an error and trying to import.
* Errors could occur when closing windows featuring treeview controls, if certain tree items were selected.
* Several surface modification/transformation procedures were not properly copying attribute and material data.
* Improved performance of several surface transformations involving the heightlayer.
* Importing folders could lead to recursive loading of folders, this has been addressed.
* Attribute parameter control would not properly save the /replace meta definition if added via the >> or << button.
* Replacing an attribute with a similar name but different metas would only affect the value, but not the key, even if it had different meta configurations.
* Errors related to node parameters can now be traced by double clicking the error message, just like with other errors.
* Actor group size calculation in the Property node was returning the count of all subentities, not the entities within.
* Mesh Split would sometimes produce repeated faces when slicing faces below the slicing plane.
* Actor group was would produce an error when evaluating criteria.
* Entity quantity mismatches in ports would not be properly cleaned after the node execution.
* Path Create now passes on attributes and scope of source mesh.
* Cases of component graphs featuring gates but no executable nodes will throw a clearer error message to facilitate its correction.
* Ungroup parameter of group procedure was returning more subentities than it should.
* Updated Tutorial project according to the latest node changes, while also adding missing resources and fixing small issues with models.
* Linux version of the Designer now closes properly when the program is exited.
* Linux version of the Designer now shows the correct application icon when running.
* MacOS and Linux versions of the Designer now open urls and folder paths from the main menu and settings windows properly.
* MacOS and Linux versions of the Designer will no longer face the "Sceelix.Core.Attributes.AttributeCollection" exception when running graphs (which would appear under some Mono versions).
* Component nodes will now automatically have their cache invalidated if the underlying graph changes.
* Data explorer selection color has been change to a light gray, improving constrast towards the text color, especially for the attribute's orange color.
* Unity plugin now converts texture pixels to premultipled format, which will yield better looking results for textures with alpha cutouts.
* Greatly improved CPU and memory performance of passing terrain data from Sceelix to Unity though the provided plugin.
* Linux versions will now show node documentation when browsing the node list or when hovering over the nodes on a graph.
Changed files in this update