Community
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

[Splines] Improved creation/editing capabilities and precision

[Splines] Improved creation/editing capabilities and precision

 

 

Note: For an improved PROCEDURAL HANDLING OF SPLINES, I've made a whole separate topic. Check it out and support it here: [Splines] Improved procedural handling through both improved and additional modifiers

 

 

 

IMPROVED CREATION AND EDITING CAPABILITIES

 

 

  • Spline In-Viewport Boolean operations like Smart Extrude for Edit/Editable Poly. This is the most obvious direction to develop smart extrude for splines bringing a bit more feature parity between Spline and Mesh class and the two workflows will exponentially leverage one another. There is room for debate about the expected behavior or actions when splines interact or intersect with each other, when you extrude a vertex as opposed to when you drag a segment etc. but the work needs to start from somewhere. 

 

  • Ability to control Spline profile Radius and Twist per Vertex by scaling or rotating the vertices (like in Blender)

Basically each vert would be a percentage of the radius, or length/width inputs of the profile or of the twist value. Similar to what you can do with the Scale and Twist curve graph on the Loft compund object. This is part of interactively working on/with splines and it's in the same vein of the latest or planned updates to modeling in 3Ds Max coming to both meshes and splines. It's about working and staying more in the viewport and it can be considered a smart extrusion and manipulation of the renderable aspect of splines and it's not even completely destructive as explained below.

 

This is a very fast and intuitive way of achieving various profile radius or introduce easy, non-linear twisting along it. In Blender you can simply tweak the Thickness/Radius or the Twist of a spline profile/cross-section by simply scaling or rotating the vertices using the respective spinner boxes in their side panel Transform rollup for vertices (Radius and Tilt) or hotkeys (Alt+S and Ctrl+T respectively) and this data works with whatever default or custom profile the user has enabled for the actual spline rendering. This makes for a very powerful method to model complicated tapered and twisted ornaments. This vertex Radius and Tilt values can also be stored similar to vertex Creases are stored in 3Ds Max (and how it currently works in Blender) for later tweaking and can be passed up the stack for them to work with Enable Rendering function of Edit/Editable Spline, with Renderable Spline and Sweep modifers and with Loft compound object.

 

Here is a video showing both of them in action (skip to the respective chapter Thickness/Radius at around 05:25 and 07:20 for Tilt respectively) (link).

 

Spline-profile-radius-and-tilt-by-vertex_02.gif

 

 

  • Import .SVG as splines. Since there is an importer for using SVG as a map, maybe it can be quickly tweaked to function also as a geometry spline importer.

 

  • Additional Spline Primitives like a Straight Spline. As simple as it might sound, for procedural creation methods it's a useful approach.

 

  • Vertex /knot type option (Bezier, Bezier Corner, Corner, Smooth) for the Creation Method rollup for other Splines and Extended Splines (WRectangle, Tee, Wide Flange, Angle, Channel) same as we have for the Line spline object creation. This would allow for a more procedural workflow keeping the shape primitive parameters intact since we don't need to add an Edit Spline modifier later just to chnage the vertex type. Also some Splines shapes like Rectangle, Ngon, Star should have Corner as option by default for their creation method.

 

  • Snapping and Snapping viewport overlays similar to Adobe Photoshop and Ilustrator. These could help further with the alignment and positioning in the viewport.

 

  • Line Angle Constraints improvements:
    • make it work with Spline Smart Extrude as well, especially since, currently, if you do not Shift+drag on a single axis, you can't retroactively hold shift to snap the new knot along any axis.
    • make it easier to adjust the snap Angle without of having to always go to the Grid and Snap Settings > Options menu

 

  • Angle threshold control for Adaptive Interpolation. We have Adaptive and Optimize check boxes in Spline Interpolation Roll-out. But it will be good to have control for Angle threshold (link).

 

  • Implement a way to Grow (and shrink) selection on splines ike we have in Editable and Edit poly

 

  • A Handle Sub-Object mode like Patch. It's amazing that this Sub object mode has been added to Patches and not splines anyway.

 

  •  Offset 
    • Spline Offset that creates a spline unconnected from the original spline (similar to the way AutoCad offsets) and unlike the Outline tool which even with an open spline, it creates a closed shape with the offset value you input. This can be useful when creating lane lines that are offset from the edge of a roadway, a car motion path offset from a lane line, or a way to manually build terrain levels using the terrain compound object.

3ds Max_Spline Offset_tool.png

    • Spline Offset and Outline preview (to have an idea of the distance you need without the need to undo due to newly created outlines/offsets that get in the way, and then type in the exact value you need).
    • Multiple spline offset (set the distance and number of copies)

 

 

  • Spline (Smart) Extrude Improvements
    • If the end vertex has an out tangent, the vector of that out tangent can be used to extend the end of splines. When you are in local mode the gizmo could orientate to the handle. A slower alternative is part of an older request of making the handles snappable so that the working pivot could be aligned with their direction.

3ds Max_Smart Extrude_Spline_out tangent_end_extend.png

  • shift dragging a vertex inside a segment could act like the Refine tool adding a new vertex and subdividing the segment (like ctrl+ drag does in Cinema 4D) and not creating an additional one end connected segment (if an end vertex gets extruded) or two additional vertices and a disconnected segment (it it's one of the inside vertices).

3ds Max_Smart Extrude_Spline_Vertex Drag innner desired behavior.png

  • this behavior could have two ways in which the new vertex travels along the spline: a strict one which is similar to Edit Poly Edge constraint (it will strictly follow the segment direction) and a looser one which allows free movements in all directions (I think this is the default behavior with ctrl+drag in Cinema 4D)
  • Ability to move the selected vertex (or the cloned vertex) in the direction of the outvec/invec depending on where you move it (holding CTRL or any other modifier key) without the need to alway reset and aligned the Working Pivot

3ds Max_Smart Extrude_Spline_in vec outvect extrude and move.png

 

  • Shift+scale on vertices should do a fillet/chamfer

 

  • Try to retain spline shape when removing vertices. Vector programs like Illustrator or Corel Draw do that by default and it's really useful. When refining splines, max could also do a better job in preserving original spline shape.

 

  • Built-in ability to flatten splines

 

  • Dimensional/Numerical input for splines like CAD. User will start a spline by defining the first vertex clicking it. After that he can work until now by clicking where he want a new vertex OR you just move the mouse in the direction he want to create the new vertex (without clicking). If the user enters a number and press enter, the vertex is created on the direction defined with the mouse, the new segment having the lenght defined numerically.

 

 

 IMPROVED VISUAL FEEDBACK, VIEWPORT OVERLAYS AND PRECISION

 

 

  • Angle, measure and the Autosnap features for drawing like AutoCAD draw could help us a lot to sketch in 3ds (link). There is already a script that helps with drawing lines miauu's Poyline 
  • Snapping and Snapping viewport overlays similar to Adobe Photoshop and Ilustrator
  • When a spline is open and/or self-intersecting, provide a visual cue as to where it is unconnected and/or crossing itself (like the magenta boxes in Revit).
  • Spline offset preview (to have an idea of the distance you need without the need to undo due to newly created outlines/offsets that get in the way, and then type in the exact value you need).
  • The ability to detect and remove double/overlapping segments.
  • Spline Vertices to have a visual cue as to the current tangent type (Corner, Bezier, Bezier Corner, Smooth) when in vertex sub-object mode without the need to select a vert and bring up the quad menu to find this info.  This visual cue could be either different colors or different icons (color is probably easiest).
  • Option for Bezier handles be turned on globally so that you can see/select/manipulate Bezier tangents across the spline instead of constantly having to select the vertex.
  • Option to show Bezier handles on top of everything else in the viewport. If a handle is under the surface of other geometry you are forced to toggle to wireframe to see them which can be a nuisance.
  • Make tangent handles snap-ableIt should be possible to snap to and from tangent handles so that you can place them against vertices, grid points, etc. with precision.

  • Snap Working Pivot Tools overlays fix for open splines. It seems that the green highlight or overlays of these tools ( e.g. to show where the WP is being placed or aligned to etc.) is working only with closed splines.
  • Splines default draw thickness increased (without enabling rendering in viewport) and ability to customized it. Same as Edit Polys' Edge draw thickness the default is way too low and start to become an issue with bigger resolution monitors
  • Option to Highlight Spline objects (without enabling rendering in viewport) with Teal outline and overlay (as we can do as with poly objects) and  also make them highlighted when they aren't selected. It's important when working in plugins that are driven by splines such as  Itoo RailClone when during work spline objects are always inside some Railclone object, and it's always uncomfortable to looking for spline and vertex and segment which I need to change. Maybe an additional option to Always Display in front would be even more suitable.

 

 

LINKS TO SOME ORIGINAL INDIVIDUAL IDEAS:

 

 

 

5 Comments
mekene
Enthusiast

All of these improvements make so much sense and would be more than welcome. Thank you very much !

brentscannell
Alumni
Status changed to: Future Consideration
 

ADDENDUM #1

as suggested by Evan.Gill

 

I would love to be able to scale verts on a spline as well. Basically each vert would be a percentage of the radius, or length/width inputs. Similar to what you can do with the scale curve on a loft.

 

dswahn
Advocate

And while we're at it, fix the ancient bug where splines modified by Maxscript don't have undo.
It's a pain for all those scripters who make their own Spline modification tools out there.

 

At least the bug is present in my 2019 version.

dswahn
Advocate

I think adding new knot data to splines proves to be the most useful update for splines in max.

Knot Radius and Knot Twist/Tilt data would be extremely useful if such data can be passed on to modifiers like Sweep since it will give a non-linear more precise control over spline mesh size and rotation.

 

But I also suggest adding Knot Color, similar to how geometry objects have Vertex Color data.

Such data can be passed on to shaders and modifiers to a range of different modelling, animation and render effects.

 

Also please make sure that this data can be made dynamic by modifiers and MAXScript.

 

gradient_spline.jpg

Can't find what you're looking for? Ask the community or share your knowledge.

Submit Idea  

Autodesk Design & Make Report