Changes: - Added: Undo/Redo. WARNING: Does not include Texture painting. - Improved: Sped up loading of Venue by dynamic loading of Icons done when required rather than when validating XPacks. - Improved: Reduce unnecessary recalculation of unaffected tracks after a terrain height change. - Improved: Moving cursor focus from control to control was triggering unnecessary calculations when values were not altered. - Improved: Fastkeys added for Open/Save/Undo/Redo. - Fix: Deleting the track on which Start Positions were attached caused error. - Fix: Deleting User-created Material (that was previously used in the Venue), then reloading Venue (without having Saved) would cause error. Materials are now saved only when the Venue is saved. - Fix: On a new Venue, S/Objects couldn't be added until the terrain had been altered. - Fix: Set rFactor Vertex color. - Fix: String Object align-to-track fuction wasn't using "cut" version of terrain/track. - Fix: Object – Manually setting position didn’t keep height above ground. - Fix: Removing all the Materials from the Track Surface resulted in a crash.
Changes: - Added: Undo/Redo. WARNING: Does not include Texture painting. - Improved: Sped up loading of Venue by dynamic loading of Icons done when required rather than when validating XPacks. - Improved: Reduce unnecessary recalculation of unaffected tracks after a terrain height change. - Improved: Moving cursor focus from control to control was triggering unnecessary calculations when values were not altered. - Improved: Fastkeys added for Open/Save/Undo/Redo. - Fix: Deleting the track on which Start Positions were attached caused error. - Fix: Deleting User-created Material (that was previously used in the Venue), then reloading Venue (without having Saved) would cause error. Materials are now saved only when the Venue is saved. - Fix: On a new Venue, S/Objects couldn't be added until the terrain had been altered. - Fix: Set rFactor Vertex color. - Fix: String Object align-to-track fuction wasn't using "cut" version of terrain/track. - Fix: Object – Manually setting position didn’t keep height above ground. - Fix: Removing all the Materials from the Track Surface resulted in a crash.
I started work on the Undo/Redo feature at the end of March and jokingly said I’d be back, hopefully before Winter’s end (I’m in the southern hemisphere for all you northern folk). Seriously did not think it would really take this long, but the journey has been worth it! The result works well (much better than BTB), I’ve discovered some bugs along the way (and some have already released) and in revisiting the code I found other areas for future improvement.
The majority of the work for the next update has been done. I’ve created an Undo/Redo function for the changes to Terrain, Roads, Objects, String Objects, Start/Finish/Timing Gates and am part the way through the Materials. This has highlighted another bug which I’m having to re-write much of the code around saving/loading materials and creating their icons but that shouldn’t take too much time.
One limitation will be regarding textures. Painting or changing the textures is not undo-able. It’s technically quite difficult to do this in an efficient manner so instead of holding up the release up for what could take several months of coding, I’d rather release the changes knowing this limitation exists.
During the testing of Undo/Redo I’ve found another 6 minor bugs that I wish to include in this next release. I’m probably going to release as a Beta that people can “opt” to try, whilst I sort out these bugs, so I can get some good feedback about the Undo/Redo feature before releasing to a wider audience.
I started work on the Undo/Redo feature at the end of March and jokingly said I’d be back, hopefully before Winter’s end (I’m in the southern hemisphere for all you northern folk). Seriously did not think it would really take this long, but the journey has been worth it! The result works well (much better than BTB), I’ve discovered some bugs along the way (and some have already released) and in revisiting the code I found other areas for future improvement.
The majority of the work for the next update has been done. I’ve created an Undo/Redo function for the changes to Terrain, Roads, Objects, String Objects, Start/Finish/Timing Gates and am part the way through the Materials. This has highlighted another bug which I’m having to re-write much of the code around saving/loading materials and creating their icons but that shouldn’t take too much time.
One limitation will be regarding textures. Painting or changing the textures is not undo-able. It’s technically quite difficult to do this in an efficient manner so instead of holding up the release up for what could take several months of coding, I’d rather release the changes knowing this limitation exists.
During the testing of Undo/Redo I’ve found another 6 minor bugs that I wish to include in this next release. I’m probably going to release as a Beta that people can “opt” to try, whilst I sort out these bugs, so I can get some good feedback about the Undo/Redo feature before releasing to a wider audience.
By popular demand, work continues on the Undo function, which I started, got it wrong and had to Redo.
The method I am using will be much better than the BTB one which really just saved/loaded the entire Venue each time. The new method only makes changes to piece that was changed. Of course if this was terrain then it can affect everything that cuts into or rests upon it, but if you’ve just moved an object, then it an Undo will work much faster.
Thankfully I did have a little foresight (who would have guessed that people would want an Undo function??) and designed the code in such a way that facilitated this. There is still much work to be done as every single function or type of change that you can perform needs to be catered for. I also need to overcome the menu system, which for some reason wants to act unusually in this framework.
By popular demand, work continues on the Undo function, which I started, got it wrong and had to Redo.
The method I am using will be much better than the BTB one which really just saved/loaded the entire Venue each time. The new method only makes changes to piece that was changed. Of course if this was terrain then it can affect everything that cuts into or rests upon it, but if you’ve just moved an object, then it an Undo will work much faster.
Thankfully I did have a little foresight (who would have guessed that people would want an Undo function??) and designed the code in such a way that facilitated this. There is still much work to be done as every single function or type of change that you can perform needs to be catered for. I also need to overcome the menu system, which for some reason wants to act unusually in this framework.
This patch is on the experimental side as I made some big modifications, but all behind the scenes with how some parts are calculated, and how the Hit-testing (how an object knows if it’s sitting on the ground or track) is performed. No changes occurred to the Project’s Save file so I can revert back to the previous version if people report problems.
My main concern is that the new method of hit-testing uses more memory. This might push some users over the limit when working with very detailed models or if working on low-spec machines.
The only obvious visual change is the wireframe mode. When editing terrain, the wireframe mode only renders the sections around the cursor. This is done in an effort to speed up the rendering times and improve editing feedback.
After the terrain is calculated and cut by track, it is joined and rendered as one large piece. This also improved the framerate a little.
Other things have been shifted around and/or delayed so less calculations are potentially performed when interacting with the screen. I have more improvements to make in this area that will come gradually in future patches.
Enjoy!
The official Change Log: - Improved Track creation speed/feedback by delaying the creation of HitTesting objects. - Wireframe rendering of the Terrain is limited to just around the cursor. This improves frame rates and interface feedback. - Creation of single Mesh for Terrain that combines all Triangles into one piece to speed up rendering. - Improved calc speed for terrain and track by preventing unnecessary things from being calculated during the mouse move. - Improved HitTest speed for planting Objects and String Objects.
This patch is on the experimental side as I made some big modifications, but all behind the scenes with how some parts are calculated, and how the Hit-testing (how an object knows if it’s sitting on the ground or track) is performed. No changes occurred to the Project’s Save file so I can revert back to the previous version if people report problems.
My main concern is that the new method of hit-testing uses more memory. This might push some users over the limit when working with very detailed models or if working on low-spec machines.
The only obvious visual change is the wireframe mode. When editing terrain, the wireframe mode only renders the sections around the cursor. This is done in an effort to speed up the rendering times and improve editing feedback.
After the terrain is calculated and cut by track, it is joined and rendered as one large piece. This also improved the framerate a little.
Other things have been shifted around and/or delayed so less calculations are potentially performed when interacting with the screen. I have more improvements to make in this area that will come gradually in future patches.
Enjoy!
The official Change Log: - Improved Track creation speed/feedback by delaying the creation of HitTesting objects. - Wireframe rendering of the Terrain is limited to just around the cursor. This improves frame rates and interface feedback. - Creation of single Mesh for Terrain that combines all Triangles into one piece to speed up rendering. - Improved calc speed for terrain and track by preventing unnecessary things from being calculated during the mouse move. - Improved HitTest speed for planting Objects and String Objects.
- Improved: Track HitTest function - now more than 100 times faster! - Improved: Rendering no longer continuous but occurs only when updates are made or gizmos are moved. This improves calculation times and reduces CPU cycles. - Wireframe mode simplified. Only affects current editing mode, and selected track. This improves rendering times and speeds up interface feedback. - FIX: Vertex Alpha rendering was broken (when target was not Assetto) - now fixed.
- Improved: Track HitTest function - now more than 100 times faster! - Improved: Rendering no longer continuous but occurs only when updates are made or gizmos are moved. This improves calculation times and reduces CPU cycles. - Wireframe mode simplified. Only affects current editing mode, and selected track. This improves rendering times and speeds up interface feedback. - FIX: Vertex Alpha rendering was broken (when target was not Assetto) - now fixed.