Procedural MFT
FFCJoseEduardo opened this issue ยท 0 comments
as requested, just so it doesn't get forgotten
Features:
- Allow for procedurally constructed main tank out of multiple segments
- Allow toggling between smooth and sharp shading between segments
Requirements:
- GUI for manipulating segments; add, remove, resize
- Minimum of 2 arcs; top + bottom
- Can add, remove, re-order, and re-size arcs
- Top and bottom adapter/mount size set by top/bottom arc diameters
- OR top and bottom ring diameters set statically to the 'main tank diameter' from the main gui control
- with all other arcs being set to a size relative to the top/bottom
- this also simplifies the GUI as it can all be normalized to a 1-unit size, and scaled based on current 'tank diameter'. This keeps the end caps at the same scale/size, while allowing for nearly any tank geometry (as long as the top and bottom are the same diameter).
- Ability to set smooth shading for vertical segments (to allow for procedural domes/nosecones)
- Will require adjusting the procedural mesh-generation to calculate normals for each edge loop based on the average normal of its face and the face of the vertically adjacent quad.
- UV mapping; single vertical pass for entire tank side
Implementation
- Would like to re-use most of the existing MFT code, with overrides for sections dealing with the central model.
- Will require conversion/adaptation of SingleModelData to allow for a procedural model
- This may be the most invasive part of the change, but should be doable
- Will need some changes to the GUI interaction for the base module, as well as some of the model-setup code.
- Need a method to save/persist the procedural model data, including ring height, radius, uv, and smoothing data.
- Will require conversion/adaptation of SingleModelData to allow for a procedural model
TODO:
- Add smoothed-normals option to procedural mesh generation
- First-pass generic implementation of a procedural model-building UI
- going to need a -ton- of UI interaction in order to set this up properly
- how to render/represent the layout of the tank in a user-understandable format, while allowing for selection of the various rings and options?