3D MeshPart Text Module

Also, think you could release this in public resources, so non full members can use this as well?

This script is a toy for now. I’m going to be making a few changes to this script, so I don’t want it to be public yet. Also, new members can access this thread, too, not just full members (non-members can’t, though).

2 Likes

Ah, I see. Well, thank you for this! Looking forward to the full release. :slight_smile:

I would suggest for those making new fonts with Blender text that you optimize your models before uploading them. While Blender’s text is a nice way to create 3D models of fonts, the text oftentimes isn’t the cleanest of geometry.

The one on the left is what Blender generates with Source Sans Pro, and is 348 polys, while the one on the right is a recreation of that geometry which only sits at 48 polys.

There are a few ways to cut down. One simple one would be to turn down the resolution of the text object, which defaults at 12.

Here, the above text uses the default resolution and ends up at 3,344 polys once converted from text into a mesh, whereas the lower one uses a resolution of 4 and ends up at a much lower 1,264.

If your text isn’t going to be used in a spot where the backside would ever be visible, it’d be advised to remove the back from the letters as well.

Doing so cuts down our 1,264 text from before to 957.

Lastly, just go through your letters and clean them up. Simplify areas where the curves are higher poly but don’t need all that, especially in spots where that extra geometry can be done with less. I could’ve gone further but that would have started affecting the shape more, so sticking closer to the original example above cuts our text down even lower from 957 to 744.


3 Likes

I already set the resolution_u of the text to 6 before exporting!

image

I picked 6 because resolutions below that would appear jagged when blown up (left: 4, right: 6).

image

This is imperfect, though. W generates a very poor mesh:

image

I’ll look into running Limited Dissolve + Triangulate Faces on each mesh before exporting, which cleans the mesh up by a lot.

image

I want this to be a general purpose module. While removing the back of the mesh is good for some usecases, it isn’t for others (e.g. recreating the Hollywood sign).

2 Likes

Seems like a lot more work than its worth to do it like that; I’ve personally always just done the following:

  1. Extrude as Text Object
  2. Convert to Mesh
  3. Remove Doubles
  4. Limited Dissolve
  5. Decimate Modifier to visual acceptance.

Going any further like removing the back faces, while yes reduces the face count, really is picking at straws and reduces usability for the future. In that argument, it gets to a point where just using a SurfaceGUI would be more optimal. Personally I’d say the resolution you chose is too low for comfort, the methodology I did brought the text down to ~1300 tri, which is perfectly fine for the application.

If these were props that would be used one hundred times, sure tighten the belt, but I feel it is just unnecessary here.

EDIT: Looks like @XAXA just barely beat me to the punch, I’ll leave the commentary here regardless.

3 Likes

While yes, the original post is about general usage, this is just a place where a good chunk of polys could be cut. It wouldn’t be good for the default which comes with the module, but depending on the use case it could be a decent spot to cut down for those going for something more specific than the module provides.

Again it really depends on the usage. It may be good to go even lower if it’s a spot where the text isn’t very large, or go higher for cases where we are getting giant Hollywood sign style letters which could use the extra polys. Not sure where it’d get to the point of needing a SurfaceGUI though, since that all depends. Part of the benefit is getting everything that comes with being a 3D physical object. Depth, materials and so on.

Oooh, that looks a lot cleaner! Relieved to see that work is being put in place to make sure the defaults are resource friendly! Have seen a few poor cases where users have put some hi-res letters all around their game, causing some performance issues for what boils down to a few extra details.

1 Like

More fonts. Wee.


Taking suggestions for fonts, btw. I’ll probably replace BEON (since it doesn’t support small letters) with another font that looks good for neon signs.

1 Like

You should add Roboto, Railway, Comic Sans, and Product Sans.

Also, I keep on getting this error
glyphObjects is not a valid member of ModuleScript (line 9)

1 Like

You could try using Inter.

1 Like

Whoops. I said I wouldn’t update it but I did. And broke the thing as a result… I’m reverting that model to a previous version, sorry!

@Elttob Looks great! I’ll add it in.

EDIT: !!!

3 Likes

Nice layout! Looks perfect. Loving the innovation, keep it up!

Damn, nice layout I love it! That’s awesome

1 Like

Soon ™

2 Likes

Awesome, but I would really like to see a 2D version of this, where you could use it on UIs.

That’s already a solved problem.

2 Likes

it would be nice to collaborate on a module and multiple contributors keep adding fonts

Also you know you couldve done this with photoshop and its 3d components just by converting a rasterized 2d letter to a 3d one and keep it at the thinnest possible then export it as wavefont(obj) then boom done

Nice but how do I calculate the offset of the “Luckiest Guy” font?


this is the offset issue i’m having. Not sure how I can calculate it. Any math behind it? (Luckiest Guy font)