-
Notifications
You must be signed in to change notification settings - Fork 0
Feature: Implement Adaptive Bevel to Prevent Self-Intersection #7
Description
Summary
A major challenge with procedural 3D text is that high Bevel Depth values can cause "loose parts" of a character to clip into each other or be destroyed. A classic example is the dot on the letter 'i', which will be consumed by the bevel of the main stem.
This feature proposes a method to intelligently "pad" or move these loose parts away from each other to preserve the character's form at high bevel values.
Current Behavior
High bevel values result in undesirable self-intersection and loss of detail on complex characters.
Expected Behavior
The addon would have an "Adaptive Bevel" option. When enabled, it would analyze the character's geometry, identify disconnected parts, and scale/move them apart slightly before the final mesh conversion.
Implementation Plan (Research Required)
This is a complex feature that will require significant research. A possible approach could be:
- Post-Conversion Analysis: After converting the text to a mesh, use
bmeshto analyze the geometry. - Identify Loose Parts: Run an algorithm to identify disconnected mesh islands (
bpy.ops.mesh.select_linked). - Calculate Offsets: For each island, calculate its bounding box center.
- Apply Padding: Move each island away from the object's main origin by a small, calculated amount (perhaps proportional to the
Bevel Depth). - This operation would likely need to happen before the other post-processing steps. Due to its complexity, it may not be feasible to have a live preview for this feature.
Screenshot Just Because
