Spline Mesher [Standard/Pro] - Advanced spline meshes

The specific errors would provide a lot of context as to what and why, could you share them in full?

Edit: Just noticed you’re using Unity 2021.3. The Splines package isn’t supported in this version, so neither can this asset be. Updating to at least 2022.3 is recommended.

I’m making good way on Version 2.0! Have managed to make a Burst/Job compatible way to use “spline data”, meaning the data points for Scale/Roll/Vertex Color.

Got most of the original features back in place, so steady as she goes! :ship:

The area mesh functionality is pretty mature and is now fully Job-based with multithreaded processing. Here is an example of the height displacement capabilities:

The surface can buldge and follow the contour of the spline, so doesn’t strictly need to stay flat.

The grayscale gradient you see is quite exciting, it represents the distance of a vertex to the spline curve. It’s baked into the Z-channel of the UV’s, and a normalized (0-1 value) version in the W-component. This can be used as a linear gradient for shader-based effects, such as texture blends.

Some inspiration: combining a Area Mesher with a Curve Mesher component using the same spline to make classic platformer terrain
Imgur

1 Like

Please tell me when version 2 will be released. And is it possible to get access to early testing.

Appreciate the interest! When the asset itself releases a post will be made here.

A preview version will be made available for anyone who’s verified their Spline Mesher license on Discord. This is to gather feedback and catch design issue early on. More on that once a user-friendly version has been reached :slight_smile:

Just today, I had the idea to create something like a terrain using splines! It’s a really interesting idea! We struggle with complex processes in our game. We’ll create the ground for the city using Umodeller. Green flowerbeds in the city will be created using terrain, then converted to mesh.

What else could we add? Create more splines within the spline to raise the terrain’s height. For the ground in the city, you can draw a shape within it, draw paths or various ground patterns, and assign materials to the areas.

Below are some short notes on creating our city; you can see our pain points there and get an idea of ​​what’s missing!

A preview version is now available to anyone who’s verified their invoice on Discord!

Recently added was “procedural input mesh” functionality. Where a configurable Cube, Tube or Plane mesh can be used as an input mesh. It makes certain workflows a lot faster, without needing to model arbitrary meshes in Blender first.

The “Plane” input is particularly useful to draw paths or rivers.

1 Like

The preview version on Discord has been updated!

The “Output splitting” functionality has been finalized. This will greatly benefit culling/rendering performance of long spline meshes, and makes them streamable!

Under the “Output” tab you can specify the maximum length of spline mesh each segment (default is 50m).

If it is set to 0, then an individual mesh is created for each tile (useful for breakable fences!)


Shown here is a rollercoaster split up into 6 segments

  • The Roll and Conforming data point editors have also just been ported.
  • Input meshes can now be scaled negatively to flip them

This marks the point where everything is now using Burst/Jobs. As it stands, the performance increase is x13 compared to Spline Mesher 1.0. There’s still one trick up the sleeve that can likely tripple that :rocket:

Realtime performance will ultimately make things like in-game mesh generation possible. City building? VR roller coaster drawing? Procedural worlds?

Still to do:

  • Collider mesh generation (working on creating it in parallel with the render mesh)
  • Start/end trimming
  • Caps
1 Like

Collider functionality has been completed!

It will be possible to choose a Cube, Tube, Plane or Custom shape as the collider. All expect the latter will auto-fit to the render mesh.

What’s definitely new is support for Convex collider shapes and Kinematic RigidBodies . This make it possible to destroy mesh segments (eg breaking a cobble wall).

In the coming weeks focus will lie on polish, rewriting the documentation and creating the store front materials.

1 Like

Hey, is it possible to use this add-on to move and deform a single mesh along an open unity spline (for example a simple, adequately subdivided arrow model) without repeating it along the spline?

Yes, if the segment count is manually set to 1, and the Stretch To Fit option is enabled, then 1 copy of the mesh gets stretched along the spline (however long it may be).

For an arrow, you can also use a hollow tube mesh, then a separate prefab for the tip.

Crude example using a pylon :grinning_face_with_smiling_eyes:

Spline Mesher 2.0 is nearing its release!

Some additional demo content is being worked on. Such this newly included light string mesh:

A small example of creating curbs using a Curve- and Mesh mesher combined is also demonstrated:

A notable new feature is the Procedural Input mesh. When choosing a Plane creating a river becomes pretty straightforward:

1 Like

Sorry for posting off topic. Can I call SplineMesher.Recalculate form an asyncronous task ?

I assume you mean the Rebuild()!

I’m not sure, Unity’s API (including mesh operations, component access, and GameObject manipulation) must be executed on the main thread as far as I know. The Rebuild function makes a fair amount of use of Unity APIs. So perhaps its possible if the task is dispatched from the main thread.

I need to build a lot of spline meshes at start and my PC CPU runs oly at 30% running Rebuild().
I need faster task.

The time it takes to completely build a spline mesh greatly depends on:

  • The vertex/triangle count of the input mesh
  • The length of the spline curve in total
  • Collision being enabled

If you are generating splines from script it’s important to ensure that the Rebuild() operation is only called once. Adding knots to a spline will trigger mesh generation by default. Or adding/removing splines.

You can guarantee it is only called once by setting the Rebuild Triggers to Via scripting
image
That way, no matter what you do to the Spline Container, nothing will happen until you call Rebuild()

The mesh generation can be relatively slow, there are a number of ways to greatly improve on that. However they all involve fundamental design changes. This is ultimately what led up to Spline Mesher 2 being developed.

For instance, the Rollercoaster in the demo scene takes up to 70ms to generate, whilst in SM2 that only takes 2.3ms. That’s over 300x faster. For real/runtime mesh generation that becomes a lot more important.

WOW !
I need version 2 !!!
When you plan to release it ?

The length of the spline is the most important value for optimization in my scene.

TNX for support !

Version 2 is very close to finished, I expect it will go up in the next 2-3 weeks. I’ll be posting about it here :slight_smile:

Very long splines are better supported in v2, since the mesh is split up into segments. Each piece can be generated on a separate CPU thread in parallel.

Great. Meanwhile I’m splitting my railroad in splines 100 knots max.
It’s faster.

An example of how the improved collider functionality, and output splitting can be used to destroy mesh segments.

How this works:

  • An external script is subscribed to the Spline Mesher’s “On post rebuild” event
  • It goes through all the mesh segments (publicly accessible) and sets up a “Breakable” script with a particle effect
  • When the car collides with an object, it checks for the Breakable component being present on it
  • The breakable script plays the particle effect, disables the mesh/collider

That is all vanilla Unity, but subscribing to collision/trigger events for any Spline Mesher component is now also possible.

Some further news will be posted tomorrow!

1 Like

Hi all Spline Mesher users :slight_smile:

I’ve started prototyping some large backlog features last October, those experiments quickly grew into something much bigger, and that momentum turned into a “Version 2.0” formally being developed. I’m pretty excited about it, since it really makes for a definitive spline mesh tool that pushes the envelope!

The future of Spline Mesher 1

With its release around the corner I’ve had to decide the future of Spline Mesher 1. It’s mature, stable, polished and a solid tool after 2 years. Yet, all the improvements that could have been made, are in “Version 2.0”, so it doesn’t warrant any further development. It will definitely remain supported and is subject to fixes.

So moving forward Spline Mesher (1) will be renamed to Spline Mesher Standard, and remains priced at $45.

This keeps a proven, lower-cost option available for anyone who:
• Is happy with the current feature set
• Doesn’t need the new high-end features
• Is working with a smaller budget

A discounted upgrade option remaining available. And a migration tool to convert components.

Spline Mesher Pro

Formally referred to as “Version 2.0”. It will be priced at $79 and features multi threaded mesh generation (~25x faster), output splitting, procedural inputs, LOD support and above all: fill mesh generation.

A full change log will be available later on.

Upgrade options:

Purchased Spline Mesher Standard 30 days before Pro releases?
→ You will be able to upgrade for free
Launch window (2 weeks)
→ Pro at a 50% discount for ($39,50)
First 2 months after release
→ Loyalty discount (57%). You only pay the difference: $34
Next 4 months
→ 40% upgrade discount ($47)
After that
→ 30% upgrade discount ($55)

Both assets will likely go on sale for 50% off at some point, overriding any upgrade discounts.

Thank you all for the support, feedback, and projects you’ve used Spline Mesher in! If you have any projects to share please feel free to do so in #project-showcase or #sm-general. I’d be happy to feature them on the asset store as well :blush:

1 Like