{"id":5701,"date":"2022-06-20T18:16:14","date_gmt":"2022-06-20T17:16:14","guid":{"rendered":"https:\/\/www.katsbits.com\/codex\/?p=5701"},"modified":"2023-09-07T15:50:04","modified_gmt":"2023-09-07T14:50:04","slug":"boolean-text","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/codex\/boolean-text\/","title":{"rendered":"Engrave, Emboss, Indent Text in Flat Surfaces"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69e76e736d82d\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69e76e736d82d\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.katsbits.com\/codex\/boolean-text\/#basic-boolean-text\" >Basic Boolean Text<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.katsbits.com\/codex\/boolean-text\/#cleaner-mesh-text\" >Clean(er) Mesh &#038; Text<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.katsbits.com\/codex\/boolean-text\/#bevel-%e2%80%93-mesh\" >Bevel &#8211; Mesh<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.katsbits.com\/codex\/boolean-text\/#bevel-%e2%80%93-text-object\" >Bevel &#8211; Text Object<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.katsbits.com\/codex\/boolean-text\/#changing-font\" >Changing Font<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.katsbits.com\/codex\/boolean-text\/#boolean-text-subdivision\" >Boolean Text &#038; Subdivision<\/a><\/li><\/ul><\/nav><\/div>\n<div style=\"background-color: black; position: relative; padding-bottom: 56.25%; padding-top: 25px; height: 0; overflow: hidden; max-width: 100%;\"><center><iframe style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" src=\"https:\/\/www.youtube.com\/embed\/oKvWN-iJDCs?rel=0\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/center><\/div>\n<p>Boolean is a useful way to subtract, indent or engrave material from another object, add, emboss or combine objects together to form new shapes. It works extremely well on uniform, regular or flat surfaces, planes or primitives but has significant issues with complex shapes, text in particular. With this in mind there are a number of things that can be done to mitigate or alleviate such issues.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"basic-boolean-text\"><\/span>Basic Boolean Text<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The basic procedure to engrave, indent or emboss text into something using Boolean is to add a <b>Text<\/b> object to the scene, format and then convert it for use. A <b>Boolean<\/b> Modifier is then assigned to the object that&#8217;s to be affected by the text, and the type of interaction between objects enabled &#8211; subtractive, additive or combined &#8211; for the desired result.<\/p>\n<blockquote style=\"background-color: #ddecf3; color: #000;\"><p><b>Download<\/b>: <a href=\"https:\/\/www.katsbits.com\/files\/tutorials\/katsbits - boolean text.zip\">KatsBits &#8211; Boolean Text<\/a> (800 KB | *.blend).<\/p><\/blockquote>\n<blockquote><p><b>Design note<\/b>: the Boolean modifier is assigned to the object being cut or modified not the object doing the cutting.<\/p><\/blockquote>\n<p>To add the text, from the <b>Add<\/b> menu select <b>Text<\/b> &#8211; <b><i>Add \u00bb Text<\/i><\/b> (or <span class=\"shortcutkey\">Shift<\/span> + <span class=\"shortcutkey\">A<\/span> \u00bb <span class=\"shortcutkey\">T<\/span>) [1]. The word &#8220;Text&#8221; will appear at the 3D Cursors location in the scene. This is the initial text object that can be edited and modified. To do that, with text object selected access <b>Object Data Properties<\/b> [2] (the green &#8216;a&#8217; icon). Here various options are available [3] to change different aspects of the text including (but not limited to) the font type and style, whether it has depth, its resolution and so on.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-add.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-add.jpg\" alt=\"Adding a Text Object to the scene\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Dropping a text object into the scene from <b>Add \u00bb Text<\/b> [1]&#8230;<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-properties.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-properties.jpg\" alt=\"Object Data Properties for text\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>&#8230; which can then be modified in <b>Object Data Properties<\/b> using the various options available to change its appearance; font type, size, thickness and so on [3].<\/i><\/p>\n<p>For basic Boolean to work correctly text needs to have some degree of depth so individual letters can penetrate through surfaces, it&#8217;s this interaction Blender uses to determine the behaviour of the operation and the end result, additive, subtractive or merged meshes. In <b>Object Data Properties<\/b> this can be done altering the <b>Extrude<\/b> [4] value in the <b>Geometry<\/b> [5] subsection (click the heading\/label to expand the options if not visible). Increase the number sufficient for the text to penetrate through any surface it should affect, e.g. <b>Extrude 0.25 m<\/b>.<\/p>\n<blockquote><p><b>Design note<\/b>: Text objects, vector or line art generally, can be given depth by alternatively assigning a <b>Solidify<\/b> modifier. To do this, select the Text object then in Modifier Properties click Add Modifier then select Solidify from the list &#8211; <b><i>Modifier Properties \u00bb Add Modifier \u00bb Solidify<\/i><\/b>. In the panel that appears change <b>Thickness<\/b> [i] to alter the object; <b>+<\/b> or positive values extrude down, <b>&#8211;<\/b> or negative values extrude up (assuming text appears flat on the grid). WARNING: using the Solidify modifier may negatively impact other aspects of the process.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-solidify.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-solidify.jpg\" alt=\"Solidify modifier\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>The Solidify modifier can be used as an alternative to editing the Text objects properties [i] but may unduly or negatively affect other aspects of the Boolean procedure.<\/i><\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-extrude.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-extrude.jpg\" alt=\"Object Data Properties for text\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>The most basic change needed is for the text to be given some depth. This can be done increasing the Extrude [4] value in the Geometry subsection [5] &#8211; values need to be large enough for resulting text to interacts with all surfaces it should affect.<\/i><\/p>\n<p>With basic properties of the text object established it finally needs to be converted into an editable mesh, the same object-type the text is to interact with. To do this, with Text object selected, from the <b>Object<\/b> menu select <b>Curve<\/b> then <b>Mesh<\/b> &#8211; <i><b>Object \u00bb Curve \u00bb Mesh<\/b><\/i> [6]. The <b>Convert To<\/b> overlay will appear bottom-left. Here make sure <b>Target<\/b> is set to <b>Mesh<\/b> [7], and if a copy if the Text should be produced enable Keep Original to maintain the Text object itself. A duplicate object will be added to the scene occupying the same location as the original, with corresponding entry listed in <b>Outliner<\/b> [8] ready for the Boolean operation.<\/p>\n<blockquote style=\"background-color: #fc0; color: #000;\"><p><b>Important<\/b>: fonts generally are vector-based objects which allows for their being resized or rescaled without loss of detail. In Blender the same is true, text is a vector or line-art based type of object, as such it cannot directly interact with other object types as part of a Boolean operation so must be converted &#8211; only same-type objects can interact with each other.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-convert.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-convert.jpg\" alt=\"Converting text to mesh\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Before a Text object can be used for a Boolean operation it must be converted [6] to an editable mesh [7] &#8211; only &#8216;like-type&#8217; objects can interact with one another. This creates a new instance [8] ready for use.<\/i><\/p>\n<p>Once text is ready the final step is to add the Boolean to the object needing to be modified, which in-turn targets the new text mesh. To do this select the object into which the text is to be cut and from <b>Modifier Properties<\/b> add a <b>Boolean<\/b> [9] &#8211; <b><i>Modifier Properties \u00bb Add Modifier \u00bb Boolean<\/i><\/b>. In the Boolean panel set the target <b>Object<\/b> [10] to the text mesh [11] by clicking the eye-dropper then text object, or selecting the appropriate text object entry from the <b>Mesh Object to use for Boolean operation<\/b> list (white square icon).<\/p>\n<blockquote><p><b>Design note<\/b>: if text has not been converted to a mesh and remains as Text it will not appear in the Object list or be selectable in the 3D Viewport.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-boolean-modifier.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-boolean-modifier.jpg\" alt=\"Adding a Boolean modifier\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Once the text mesh is available, in <b>Modifier Properties<\/b> a <b>Boolean<\/b> modifier [9] can be assigned to the object that&#8217;s to be affected by the text (Cube shown above).<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-boolean-object.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-boolean-object.jpg\" alt=\"Setting Boolean target object\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Boolean needs a target operator, the Object [10] that&#8217;s to perform the operation on the mesh, in this case the text mesh [11].<\/i><\/p>\n<p>Once the basic properties are set for the Boolean modifier the text mesh can be selected and moved where it needs to be, if not in place already, to intersect the mesh [12] &#8211; by default this is the subtractive <b>Difference<\/b> setting that removes material from one mesh leaving behind an impression of the other. This can be changed clicking <b>Intersect<\/b> or <b>Union<\/b>.<\/p>\n<blockquote><p><b>Design note<\/b>: of the options available; <b>Difference<\/b> leaves an impression of the text in the Cube. <b>Intersect<\/b> removes everything but text intersection. <b>Union<\/b> creates a new object from the two.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-union.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-union.jpg\" alt=\"Union between objects\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>To create an &#8217;emboss&#8217; style effect the Boolean operation should be set to <b>Union<\/b>.<\/i><\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-intersection.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-intersection.jpg\" alt=\"Boolean text intersection\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Once Boolean properties and target are set, the two meshes will use the default Difference intersection which cuts one shape from another [12] leaving and impression behind of the subtraction (text mesh is displayed as <b>Bounds<\/b> [bounding box] for clarity &#8211; <b>Object Properties \u00bb Viewport Display \u00bb Display As [option]<\/b>).<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"cleaner-mesh-text\"><\/span>Clean(er) Mesh &#038; Text<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Generally speaking converted text tends to be messy, excessive T-junctions and thin surfaces that when cut into or merged with other objects or surfaces explode structure to accommodate the operation. This problem can be mitigated to a degree assigning the <b>Decimate<\/b> modifier to reconstitute and unify surfaces and structure more efficiently.<\/p>\n<blockquote><p><b>Design note<\/b>: the effectiveness of <b>Decimate<\/b> depends heavily on resulting density of the mesh after conversion from the Text Object&#8217;s vector data, and the stylistic complexity of the font used.<\/p><\/blockquote>\n<p>To do this for mesh text, switch to <b>Object Mode<\/b> if not already active and select the mesh text. In <b>Modifier Properties<\/b> assign <b>Decimate<\/b> [13] to the text mesh and click <b>Planar<\/b> [14] to set the type of operation. Leave everything else as is. This will tidy up the mesh structure and the Boolean operation [15].<\/p>\n<blockquote><p><b>Design note<\/b>: an alternative to using Decimate is <b>Remesh<\/b>; while Decimate reconstitutes the mesh using planar surfaces as best it can, Remesh rebuilds the structure using quadratic faces. To do this, in <b>Modifier Properties<\/b> click <b>Add Modifier<\/b>, then select <b>Remesh<\/b> from the <b>Generate<\/b> column. In the properties panel [ii] set <b>Sharp<\/b> as the type and disable (deselect) <b>Remove Disconnected<\/b>. Finally increase the <b>Octree Depth<\/b> value until the text becomes legible\/intact &#8211; <i>for Remesh to work the object being altered needs to have some depth, this can be done in <b>Object Data Properties<\/b> and <b>Extrude<\/b> where the Text object has not yet been converted to a yet, or by adding a <b>Solidify<\/b> modifier<\/i>.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-remesh.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-remesh.jpg\" alt=\"Remesh text\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>The <b>Remesh<\/b> modifier [ii] can be used as an alternative to cleaning un the text object before or after conversions to a mesh. This creates a more regulated mesh structure than <b>Decimate<\/b> and <b>Planar<\/b> reconstitution.<\/i><\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-decimate.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-decimate.jpg\" alt=\"Decimate modifier\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-decimate-boolean.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-decimate-boolean.jpg\" alt=\"Boolean intersection before Decimate\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Adding a <b>Decimate<\/b> modifier [13] to the text mesh &#8211; wireframe display optionally enabled, <b>Object Properties \u00bb Viewport Display \u00bb Wireframe<\/b>, to highlight initial mesh structure after conversion.<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-planar.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-planar.jpg\" alt=\"Enabling Planar in Decimate\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-planar-boolean.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-planar-boolean.jpg\" alt=\"Boolean after Planar sorting\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>In the modifier panel enable <b>Planar<\/b> [14] which will then reorganise the meshes structure more efficiently than the default conversion from text vectors [15].<\/i><\/p>\n<p>For the object being cut the Decimate modifier typically doesn&#8217;t need to be assigned. Instead surfaces or structure can be cut or divided to accommodate the Boolean operation by isolating the area affected. Again however, the ability to do this depends on the type of interaction required and the complexity of both meshes involved in the operation [16]. With this in mind toggle into <b>Edit Mode<\/b> and use the various tools to add or remove edges, delineate structure, or isolate surfaces using inset to reduce the size of the face affected [17], changing the behaviour of the Boolean operation.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-optimise.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-optimise.jpg\" alt=\"Boolean intersection\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-optimise-restrict.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-optimise-restrict.jpg\" alt=\"Restricting Boolean interaction\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>The initial interaction on an un-optimised mesh can result in divisions and segmentation that makes further editing tricky [16] (image-top), a problem that can be mitigated by adding loop cuts to limit the area affected by the Boolean operation [17] (image-bottom).<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"bevel-%e2%80%93-mesh\"><\/span>Bevel &#8211; Mesh<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A common effect applied to text is <b>Bevel<\/b>. This can be done while the Boolean operation is still active or after Apply has been used to make the effect real. Bevel can also be applied using the <b>Bevel Modifier<\/b> or using the <b>Bevel Tool<\/b>.<\/p>\n<blockquote style=\"background-color: #fc0; color: #000;\"><p><b>Important<\/b>: the degree to which Bevel can be used in this context is limited by mesh structure and the way that might be defined by the Boolean operation.<\/p><\/blockquote>\n<p>To apply the <b>Bevel<\/b> modifier to the live operation, select the object being cut by the text then in <b>Modifier Properties<\/b> click <b>Add Modifier<\/b> and select <b>Bevel<\/b> &#8211; <b><i>Modifier Properties \u00bb Add Modifier \u00bb Bevel<\/i><\/b>. A panel will appear in the stack and the mesh will bevel based on the defaults. Before adjusting the effect expand the <b>Geometry<\/b> sub-section and disable <b>Clamp Overlap<\/b> &#8211; this setting limits the degree to which the Bevel affects the mesh. Once disabled the effect can then be adjusted primarily changing <b>Amount<\/b> to decrease or increase the degree of Bevel, and <b>Segments<\/b> to increase or decrease the curvature of the a bevel through the addition of looped subdivisions.<\/p>\n<blockquote><p><b>Design note<\/b>: with <b>Clamp Overlap<\/b> disabled the mesh explodes. To resolve this use smaller <b>Amount<\/b> values to compensate, e.g. change 0.1 to 0.01. How this affects the mesh also depends on the type of intersection being performed by the Boolean operation, Union for example may not explode the mesh as much when Clamp Overlap is disabled.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-union-clamp-overlap.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-union-clamp-overlap.jpg\" alt=\"Clamp Overlap on Union intersections\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>The affects of <b>Clamp Overlap<\/b> being disabled may differ depending on the type of interaction set between objects.<\/i><\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-bevel.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-bevel.jpg\" alt=\"Assigning the Bevel Modifier\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>A common edit made to Boolean text is Bevel. Most simply by assigning the <b>Bevel<\/b> modifier [18] to the object being cut&#8230;<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-bevel-clamp.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-bevel-clamp.jpg\" alt=\"Altering the Bevel Modifier\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>&#8230; which instantly bevels the mesh. To change the initial effect disable <b>Clamp Overlap<\/b> [19] and then alter the <b>Amount<\/b> and <b>Segments<\/b> values [20] appropriately to increase or decrease the complexity of edges bevelled.<\/i><\/p>\n<p>By default when assigned to an object undergoing a Boolean operation the modifier affects all available edges equally. This behaviour can be controlled using the <b>Limit Method<\/b> setting. For full functionality however, the Boolean operation needs to be made real, which then allows for <b>Vertex Group<\/b> and <b>Weight<\/b> to be used in addition to <b>Angle<\/b>. To do this, first click the <b>X<\/b> in the corner of the <b>Bevel<\/b> modifier to remove it, then in the Boolean modifier click the &#8216;more options&#8217; down-arrow and select <b>Apply<\/b> [21]. This immediately applies the effect and fixes the mesh.<\/p>\n<blockquote><p><b>Design note<\/b>: while a Boolean operation is still live the mesh being affected by the modifier is still in it&#8217;s unaltered primitive state [iii] &#8211; the results of the Boolean seen in the 3D Viewport are essentially a &#8216;live&#8217; preview of the effect once fixed in place using <b>Apply<\/b> (<i>with <b>Display modifier in Edit mode<\/b> enabled in the Boolean modifier the effect is visible but uneditable in Edit Mode<\/i>).<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-limit-method.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-limit-method.jpg\" alt=\"Limit Method issues\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>The Boolean operation may need to be made real using <b>Apply<\/b> before some Bevel modifier features work as expected [iii], the <b>Vertex Groups<\/b> and <b>Weight<\/b> options of <b>Limit Method<\/b> for example, else the underlying mesh remains unaffected.<\/i><\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-apply.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-apply.jpg\" alt=\"Set Apply\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>To control where Bevel appears the initial Boolean operation needs to be made real clicking Apply [21]. This sets the change in place, mesh ready for Bevel.<\/i><\/p>\n<p>Then for example, with the Boolean modifier applied to the mesh, in <b>Object Data Properties<\/b> create a <i>vertex group<\/i> and assign it to vertices or edges that should be influenced by Bevel [22]. In <b>Modifier Properties<\/b> reassign Bevel then set <b>Limit Method<\/b> to <b>Vertex Groups<\/b> and then <b>Vertex Group<\/b> to the group assigned to the mesh previously [23]. The mesh will immediately bevel, but only those elements assigned to the vertex group.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-vertex-group.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-vertex-group.jpg\" alt=\"Set Apply\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Once the Boolean is applied to the mesh, in Edit Mode create and assign a vertex group [22] to any edges that are to be affected by the Bevel modifier&#8230;<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-limit-method-vertex-groups.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-limit-method-vertex-groups.jpg\" alt=\"Set Apply\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>&#8230; then reassign Bevel and set the Limit Method to Vertex Groups and Vertex Group to the group assigned to the mesh &#8211; assigned and non-assigned edges shown above.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"bevel-%e2%80%93-text-object\"><\/span>Bevel &#8211; Text Object<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>An alternative to applying the Bevel modifier to meshes directly is to implement it indirectly using a similar feature available to Text whilst it&#8217;s still in its vector form prior to conversion. Once this is fixed in place Boolean can then proceed normally as described above. To do this, once the basic properties of the Text object have been established e.g. changing Extrude to make the text solid, in the same <b>Geometry<\/b> sub-section is <b>Bevel<\/b> [24]. Click the heading to access the options if not already visible. Here increase the <b>Depth<\/b> value to activate the feature and add thickness, and subdivide the bevel by setting a <b>Resolution<\/b> [25] value to smooth or curve the bevel.<\/p>\n<blockquote><p><b>Design note<\/b>: the bevel&#8217;s style can be changed clicking <b>Round<\/b> (default), <b>Object<\/b> or <b>Profile<\/b>.<\/p><\/blockquote>\n<blockquote style=\"background-color: #fc0; color: #000;\"><p><b>Important<\/b>: the bevel option for Text differs from the Bevel modifier in that it inflates objects, making them larger as the <b>Depth<\/b> increases, which in-turn changes the characteristics of the Boolean operation slightly [iv].<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-bevel-characteristics.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-bevel-characteristics.jpg\" alt=\"Boolean operation changes\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Adding bevel directly changes the characteristics of the Boolean operation [iv] and means more material is removed or added to the object being modified by the Text which also may need to be compensated for.<\/i><\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-geometry-bevel.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-geometry-bevel.jpg\" alt=\"Bevel option for Text\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Text objects can be bevelled more directly using Bevel [24] instead of using the modifier&#8230;<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-geometry-bevel-depth.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-geometry-bevel-depth.jpg\" alt=\"Setting Bevel\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>&#8230; here simply increase the <b>Depth<\/b> value to activate the feature, and <b>Resolution<\/b> [25] to change the bevels curvature.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"changing-font\"><\/span>Changing Font<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Blender doesn&#8217;t work with fonts in quite the same way as other applications. In this context, Boolean Text, fonts essentially loaded in as assets directly from the system font folder or other location in which they might be stored. To change font, drop in a <b>Text Object<\/b> as normal &#8211; <b><i>Add \u00bb Text<\/i><\/b> &#8211; then edit its basic appearance as needed, e.g. <b>Extrude<\/b> and\/or <b>Depth<\/b>. <\/p>\n<blockquote><p><b>Design note<\/b>: the fonts appearance and basic characteristics, as well as the Boolean operation itself, can be changed before or after font selection so long as the Text object hasn&#8217;t been converted to a mesh.<\/p><\/blockquote>\n<p>With text object selected, in <b>Object Data Properties<\/b> expand the <b>Font<\/b> options [26] clicking that subheading and then click the appropriate <b>Open Font<\/b> button to access and load in a font &#8211; <b>Regular<\/b>, <b>Bold<\/b>, <b>Italic<\/b> or <b>Bold &#038; Italic<\/b> [27]. In the <b>Blender File View<\/b> that opens browse to the font, e.g. <b>C:\\\\Windows\\Fonts\\<\/b>, select a style then click the <b>Open Font<\/b> button bottom-right [28]. The selection will load into Blender and the text in the 3D Viewport will immediately change styled with the new asset [29]. The Boolean operation can then continue.<\/p>\n<blockquote><p><b>Design note<\/b>: because fonts are vector-based objects (line art) Blender cannot <i>style<\/i> them after-the-fact as might be done in a text editor. In other words using a particular style means specifically selecting and loading that variation in using the corresponding <b>Open Font<\/b> button. This is organisational only and does not confer any special properties to the asset so a Regular font can be loaded into Bold &#038; Italic even though it may not be.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-change-font.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-change-font.jpg\" alt=\"Changing font\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Text objects use Blenders included font <b>Bfont<\/b> [26], which can be changed to any supported vector or line-art based *.TTF (TrueType) or *.OTT (OpenType) fonts&#8230;<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-set-font.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-set-font.jpg\" alt=\"Select font\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>&#8230; click the <b>Open Font<\/b> button [27] to load the file browse where the fonts to use are located. Select [28] and then click the Open Font button&#8230;<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-regular-font.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-regular-font.jpg\" alt=\"Changed Text font\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>&#8230; which loads the selected font into the appropriate font slot [29], <b>Regular<\/b>, <b>Bold<\/b>, <b>Italic<\/b> or <b>Bold &#038; Italic<\/b>, and changes the mesh in the 3D Viewport to use the new style.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"boolean-text-subdivision\"><\/span>Boolean Text &#038; Subdivision<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Using Boolean to indent, engrave or emboss text into subdivided surfaces should not in-of-itself be an issue where modifiers remain active [30]. Once fixed however, issues may manifest. For example, if <b>Boolean<\/b> is fixed in place before <b>Subdivision Surface<\/b> the results of the Boolean operation will collapse [31] as subdivision updates and adapts to the new mesh structure and shape. To avoid this ensure modifiers are applied in the correct order, Boolean typically being the last operation to fix in place.<\/p>\n<blockquote><p><b>Design note<\/b>: this can also happen if the <b>Subdivision Surface<\/b> modifier sits below another modifier in the stack.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-subdivision.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-subdivision.jpg\" alt=\"Boolean Text with Subdivision\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Where a Subdivision Surface modifier is assigned alongside a Boolean modifier the results of the operation remain intact so long as both are active\/can be lived edited [30].<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-modifier-collapsed.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-modifier-collapsed.jpg\" alt=\"Collapsed Boolean\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>The order modifiers are fixed in place matters, applying Boolean before Subdivision Surface for example collapses [31] the effect of the operation because the subdivision then asserts itself over the new form.<\/i><\/p>\n<p>Similarly if modifiers are applied but further editing needs to be carried out, for example adding a bevel effect using the Bevel modifier or bevelling manually, the effect will be limited by the density and structure of newly altered mesh, the bevel effect being applicable only so far as edge flow permits [32]. The only solution for this is to use <b>Edge Slide<\/b> or <b>Vertex Slide<\/b> in Edit Mode to reorganise edges and vertices to allow more room for bevel to occur without the aforementioned clipping or overflow.<\/p>\n<blockquote><p><b>Design note<\/b>: <a href=\"https:\/\/www.katsbits.com\/codex\/bevel\/\">bevelling<\/a> works by subdividing and sliding along edges perpendicular to a selection based on how strong the effect is, the more an edge is bevelled the more room is needed to accommodate the change. When encountering a junction where edges meet bevel will attempt to continue but will typically fold over the junction causing collapsed faces and z-fighting.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-subdivison-bevel.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/boolean\/boolean-text-subdivison-bevel.jpg\" alt=\"Collapsed faces and z-fighting\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Because subdivision tends to increase surface density, editing after-the-fact can be tricky depending on what&#8217;s being done, bevel for example is limited by edge structure and relationships, which can cause faces to malform and collapse or overlap [32].<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":6187,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,230],"tags":[793,613,882,671,348,881,885,312,883,886,758,884],"class_list":["post-5701","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blender","category-tutorials","tag-3d-text","tag-bevel","tag-bfont","tag-boolean","tag-extrude","tag-fonts","tag-line-art","tag-modifiers","tag-opentype","tag-solidify","tag-text","tag-truetype"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/5701","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/comments?post=5701"}],"version-history":[{"count":71,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/5701\/revisions"}],"predecessor-version":[{"id":6278,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/5701\/revisions\/6278"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media\/6187"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media?parent=5701"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/categories?post=5701"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/tags?post=5701"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}