Text + Extrude + Bevel + Boolean = Fail!

Text + Extrude + Bevel + Boolean = Fail!

So I have a piece of text which has been extruded and beveled. The problem is that any concave seam in the text results in overlapping faces. This normally wouldn't be a problem, except for the fact that I'm trying to use this text to subtract geometry from another mesh. The overlapping bits cause some strange behavior with the boolean modifier.

So my next thought is, how do I fix the mesh to eliminate the overlapping faces? Surely there's an easy, automated way to do this? Well my first attempt was using the smooth modifier. But then I realized that the top of the text wasn't even connected to the bevel or sides, as if it were a lid on a pickle jar. So the smooth modifier basically destroys the whole thing.

So my next though is, how do I attach the top and bottom of the text to itself? Surely there's an easy, automated way to do this? Spent about an hour trying to figure this one out and gave up.

So then I get a brilliant idea! I'll subtract the text *before* beveling it! My first attempt fails miserably because I tried to cheat by using the subdivision as my bevel tool. Ok, I kinda understand why that didn't work. And then I tried the Smooth. I didn't expect much better results from that either.

So then I try to make the mesh editable so that I can add the bevel manually. I was REALLY trying to avoid this because I want to reserve the ability to change the text on-the-fly. But the loop select doesn't work anymore because the algorithm isn't smart enough to select loops on the inside of a concave object. And there's no way in hell I'm gonna go around one-by-one selecting hundreds of edges.

Can anyone please tell me how to perform this seemingly simple task while avoiding these terrible nuances?
 

Attachments

  • Screen Shot 2014-07-02 at 10.33.33 PM.png
    Screen Shot 2014-07-02 at 10.33.33 PM.png
    220.5 KB · Views: 633
  • Screen Shot 2014-07-02 at 10.39.07 PM.png
    Screen Shot 2014-07-02 at 10.39.07 PM.png
    107.5 KB · Views: 587
  • Screen Shot 2014-07-02 at 10.43.38 PM.png
    Screen Shot 2014-07-02 at 10.43.38 PM.png
    61.6 KB · Views: 596
  • Screen Shot 2014-07-02 at 10.59.41 PM.png
    Screen Shot 2014-07-02 at 10.59.41 PM.png
    70 KB · Views: 571
  • Screen Shot 2014-07-02 at 11.08.03 PM.png
    Screen Shot 2014-07-02 at 11.08.03 PM.png
    58 KB · Views: 582
Hi and Welcome!
Well - what you call a "seemingly simple task" is technically not possible with Booleans; either avoid overlapping geometry (left example) or take the Displacement-modififer train (right example) :

Cheers
Frank
 

Attachments

  • BooleanVsDisplacement.jpeg
    BooleanVsDisplacement.jpeg
    47.1 KB · Views: 592
The best way to "carve text" in 3d is usually to make the outline in a vector program such as Illustrator (i.e. carve the text out of a larger shape in 2d) and then extrude that profile in 3d and avoid using booleans altogether.

As an aside: I once had a conversation with a group of Strata developers (this was in the 90s when Strata was probably the top 3d vendor on the Mac) about their "terrible" booleans. They laughed about it and said that during testing they would do things like carve a sphere out of a cube, it worked well, and they were happy. Literally the first thing all of their users would do would be to carve their name (extruded text) out of something, and it would go horribly wrong (extruded text tends to produce pathologically complex geometry). Hence their "terrible booleans".
 
The best way to "carve text" in 3d is usually to make the outline in a vector program such as Illustrator (i.e. carve the text out of a larger shape in 2d) and then extrude that profile in 3d..
Not sure how this will help with a round embossed look.

Cheers
Frank
 
Not sure how this will help with a round embossed look.

It will help with the letter-forms. If the curved look (at the bottom of the embossing) is crucial then it's useless. On the other hand if clean letterforms are crucial, then neither of your options work at all.

I remain constantly amazed at how within minutes of any question being posted you seem to provide a detailed and helpful answer — it's probably a significant part of Cheetah 3d's value proposition. But sometimes, occasionally, there are other useful perspectives.
 
I remain constantly amazed at how within minutes of any question being posted you seem to provide a detailed and helpful answer — it's probably a significant part of Cheetah 3d's value proposition. But sometimes, occasionally, there are other useful perspectives.
Sure - I am not the final authority - only the first proposal - nothing more. I do not claim the ultimate wisdom here.

At least a fill hole on the bottom - one inner-extrude along a final bevel will also work:

Cheers
Frank
 

Attachments

  • ManualBevelSplineExtrude.jpeg
    ManualBevelSplineExtrude.jpeg
    39.1 KB · Views: 537
Last edited:
It will help with the letter-forms. If the curved look (at the bottom of the embossing) is crucial then it's useless. On the other hand if clean letterforms are crucial, then neither of your options work at all.
Which depends on your greyscale image:

Cheers
Frank
 

Attachments

  • EmbossedLetter.png
    EmbossedLetter.png
    75.3 KB · Views: 557
I think you could produce a formula for how dense a mesh and how high resolution a bitmap you need to prevent visible aliasing — and it would not be pretty.
 

Attachments

  • Screen Shot 2014-07-03 at 10.37.30 AM.png
    Screen Shot 2014-07-03 at 10.37.30 AM.png
    3 KB · Views: 516
Looking at Frank's images for the Displacement Modifier solution I had a thought. I haven't tried this - and won't have time until this evening to do so - but I believe Hiroto wrote a script for projecting a spline onto a polygon object. In theory, one could project a text spline onto a Plane (or any object) that has a dense grid - but I think you have to manually connect the new vertices, which could be labor intensive, I can't remember. If it worked - the Extrude from that would be based on a Quad grid - and then Bevel the edge afterwards. Just a thought :)
 
Looking at Frank's images for the Displacement Modifier solution I had a thought. I haven't tried this - and won't have time until this evening to do so - but I believe Hiroto wrote a script for projecting a spline onto a polygon object. In theory, one could project a text spline onto a Plane (or any object) that has a dense grid - but I think you have to manually connect the new vertices, which could be labor intensive, I can't remember. If it worked - the Extrude from that would be based on a Quad grid - and then Bevel the edge afterwards. Just a thought :)
I guess this is initially in post N°6 but easier done with a compound path.
I think you could produce a formula for how dense a mesh and how high resolution a bitmap you need to prevent visible aliasing — and it would not be pretty.
I think that´s an OpenGL display issue as this is just a scaled screenshot from the 3d view. Here´s another one:

Cheers
Frank
 

Attachments

  • Embossed Screenshot.png
    Embossed Screenshot.png
    97.9 KB · Views: 550
Actually the displacement modifier turns out to be a much better idea anyway. It gives me much more control over the structure of the curve. But let's not lose sight of the real issues here.

1. There is no feature to fix overlapping faces. This is definitely possible. Simply create vertices where the polygons intersect, delete vertices that are inside the mesh, and weld the resulting faces together using the adjacent normals as a guideline. And this should also be a non-destructive modifier, of course (not requiring "Make Editable"). Otherwise you completely defeat the purpose.

2. After extruding text, the top and bottom should be welded together. This is obviously a bug.

3. The subdivision issue could be solved with a Quadify modifier. I mean, if you're gonna offer subdivision, and half of your primitives use either triangles or n-gons, then you really should have a Quadify. Just sayin.

But alas, none of this will probably ever be taken seriously by the developers.
 
Actually the displacement modifier turns out to be a much better idea anyway. It gives me much more control over the structure of the curve. But let's not lose sight of the real issues here.

1. There is no feature to fix overlapping faces. This is definitely possible. Simply create vertices where the polygons intersect, delete vertices that are inside the mesh, and weld the resulting faces together using the adjacent normals as a guideline. And this should also be a non-destructive modifier, of course (not requiring "Make Editable"). Otherwise you completely defeat the purpose.

2. After extruding text, the top and bottom should be welded together. This is obviously a bug.

3. The subdivision issue could be solved with a Quadify modifier. I mean, if you're gonna offer subdivision, and half of your primitives use either triangles or n-gons, then you really should have a Quadify. Just sayin.

But alas, none of this will probably ever be taken seriously by the developers.

1. It's possible but very difficult. And it should apply to any sweep, etc.

2. It might be a feature. It's easier to weld stuff than separate it.

3. Subdivision always creates quads.

"the developers" — you mean Martin? I think that's a bit insulting. I think Martin takes everything we request as seriously as it deserves, but he's just one (very capable) guy. I don't know if C3D is his full-time gig, but he probably has other stuff to do.
 
I didnt mean to be insulting. Also i didnt realize that cheetah was a one-man gig. Thats pretty impressive. Im a bit jaded by my experiences with Blender and being completely ignored with regards to feature requests and bug reporting. I should not take out my frustration on this Martin fellow.

For the price tag, Cheetah is a great app. No doubt about that.

Let me step back a moment. Is there a portal for feature requests and bug reporting?
 
Hi,

1. There is no feature to fix overlapping faces. This is definitely possible. Simply create vertices where the polygons intersect, delete vertices that are inside the mesh, and weld the resulting faces together using the adjacent normals as a guideline. And this should also be a non-destructive modifier, of course (not requiring "Make Editable"). Otherwise you completely defeat the purpose.

Removing self intersections isn't too easy at all. It's only easy if you have relatively simple (single) self intersections. But there exist pretty mean special cases. I've therefore licensed a very good csg (booleans) library recently which will deal much better with such meshes. So a solution to the booleans problem is already underway.:smile:

2. After extruding text, the top and bottom should be welded together. This is obviously a bug.

That was actually intentional since that guaranteed a nice normal break when computing phong normals. But today that is actually not necessary anymore since Cheetah3D 6 added "normal break" normal calculations which can handle that problem more nicely. So I will probably connect the extruded meshes completely in the future and just tag the edges as seams.

3. The subdivision issue could be solved with a Quadify modifier. I mean, if you're gonna offer subdivision, and half of your primitives use either triangles or n-gons, then you really should have a Quadify. Just sayin.

What do you mean with Quadify? A Triangle -> Quads algorithm or a N-Gon -> Quads algorithm. For the first one there exists a script from Hiroto

http://www.cheetah3d.com/forum/showthread.php?t=10409

Converting a N-Gon to subdiv friendly quads is considerably more difficult and I've only seen that in 3DSMax so far (they use meshlib for it as far as I know).


Bye
Martin
 
Im a bit jaded by my experiences with Blender and being completely ignored with regards to feature requests and bug reporting.

Blender has the reverse problem. The many, many developers are all volunteers and they work on whatever they want to work on. So Blender is constantly adding features because someone or other wants to implement that feature, but usability and conceptual issues just go by the wayside (they've made huge progress in usability, but it's still a very hard program to learn or remember).
 
Thanks for following up Martin.

That's great to hear about the boolean modifiers. I'd like to try to prerelease for that ;)

I'm less enthusiastic about the normal breaking part, mainly because I intend to bevel my text. Hopefully by marking them as seams it doesn't affect the shading, it's only for UV unwrapping right?

I will give untriangulate.js a try. But something tells me, based on the video, it won't work very well on text.
 
Back
Top