{"id":5754,"date":"2022-03-21T00:00:14","date_gmt":"2022-03-21T00:00:14","guid":{"rendered":"https:\/\/www.katsbits.com\/codex\/?p=5754"},"modified":"2023-09-07T15:50:20","modified_gmt":"2023-09-07T14:50:20","slug":"edit-normals","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/codex\/edit-normals\/","title":{"rendered":"Editing Normals (Normal Edit Modifier)"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 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-6a15a96897a52\" 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-6a15a96897a52\"  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\/edit-normals\/#background\" >Background<\/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\/edit-normals\/#normal-edit-%e2%80%93-split-faces\" >Normal Edit &#8211; Split Faces<\/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\/edit-normals\/#normal-edit-%e2%80%93-detached-faces\" >Normal Edit &#8211; Detached Faces<\/a><\/li><\/ul><\/nav><\/div>\n<p>Occasionally there is a need to adjust the appearance of a mesh to compensate for shading or rendering artefacts caused by breaks, splits or other discontinuities in surfaces that cannot be addressed editing an object directly. In these situations adjustments can be made assigning an <b>Normal Edit<\/b> modifier to essentially override a given vertex or edges default orientation or alignment.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"background\"><\/span>Background<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Under normal circumstances, when meshes are <a href=\"https:\/\/www.katsbits.com\/codex\/smoothing\/\">smoothed<\/a>, surfaces shade and\/or are rendered as though they&#8217;re part of a larger group so illuminate or render uniformly. This can be broken however, by splitting or separating faces from one another, an example might be a decal that sits above a parent surface. As a consequence the split or separated section takes on its own smoothing or rendering that can leave it appearing quite separate from the original. This may not always be desired.<\/p>\n<blockquote style=\"background-color: #ddecf3; color: #000;\"><p><b>Download<\/b>: <a href=\"https:\/\/www.katsbits.com\/files\/tutorials\/katsbits - edit normals.zip\">KatsBits &#8211; Edit Normals<\/a> example (*.zip | 250KB | *.blend).<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normals\/edit-normals-smoothing.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normals\/edit-normals-smoothing.jpg\" alt=\"Smoothing issues with separated faces\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>When faces are separated or duplicated from an original [1] they assume smoothing relative to the new group [1], which in turn often results in differences in shading between the two.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"normal-edit-%e2%80%93-split-faces\"><\/span>Normal Edit &#8211; Split Faces<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To address shading artefacts the respective normals of the new elements need to be recalculated or realigned so they match the original surfaces or object as a whole and thus its shading or rendering. This can be done assigning a <b>Normal Edit<\/b> modifier to the mesh. To do this, in <b>Object Mode<\/b> select the object in need of adjustment and from <b>Modifiers Properties<\/b> assign an <b>Normal Edit<\/b> instance. The mesh will instantly re-smooth the affected areas to match.<\/p>\n<blockquote style=\"background-color: #fc0; color: #000;\"><p><b>Important<\/b>: in this context, <i>split faces\/elements<\/i>, the affected areas remain attached to the original object, they are not selectable as independent objects in their own right.<\/p><\/blockquote>\n<blockquote><p><b>Design note<\/b>: for the modifier to work <b>Auto Smooth<\/b> needs to be enabled else the modifier displays the <b>Enable &#8216;Auto Smooth&#8217; in Object Data Properties<\/b> error. With object selected, in <b>Object Data Properties<\/b> click the checkbox to toggle <b>Auto Smooth<\/b> under <b>Normals<\/b>.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normals\/edit-normals-auto-smooth.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normals\/edit-normals-auto-smooth.jpg\" alt=\"Enable Auto Smooth\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>To ensure the Normal Edit modifier works enable <b>Auto Smooth<\/b> in <b>Object Data Properties<\/b>.<\/i>\n<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normals\/edit-normals-modifier.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normals\/edit-normals-modifier.jpg\" alt=\"Normal Edit modifier\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>With a <b>Normal Edit<\/b> modifier assigned [3] to the mesh the detached normals recalculate to match the original object [4].<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"normal-edit-%e2%80%93-detached-faces\"><\/span>Normal Edit &#8211; Detached Faces<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Similarly, for detached elements can be corrected using the <b>Normal Edit<\/b> modifier. Here the modifier essentially copies the appropriate vertex\/edge\/face data from a source object to the detached object, replicating the shading from one onto the other. To do this, ensure the object to be corrected is selected [5] then assign a <b>Normal Edit<\/b> modifier. In the properties panel click the <b>Target Object used to affect normals<\/b> icon [6] (white box) and select an entry from the list, or activate the eyedropper and click the object to use as the target in the 3D Viewport [7]. The child object will immediately reflect the target objects shading.<\/p>\n<blockquote style=\"background-color: #fc0; color: #000;\"><p><b>Important<\/b>: in this context <i>detached elements<\/i> are those parts of an original mesh that have been physically separated as independently selectable objects.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normals\/edit-normals-detached.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normals\/edit-normals-detached.jpg\" alt=\"Detached object without modifier\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normals\/edit-normals-target.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normals\/edit-normals-target.jpg\" alt=\"Detached object with modifier\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Detached objects can be similarly corrected [5] (image-top) once the Normal Edit modifier is assigned [6], by setting a Target [7] object to copy data from (image-bottom).<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":5765,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,230],"tags":[312,857,174,390,556],"class_list":["post-5754","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blender","category-tutorials","tag-modifiers","tag-normal-edit","tag-normals","tag-recalculate-normals","tag-shade-smooth"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/5754","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=5754"}],"version-history":[{"count":15,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/5754\/revisions"}],"predecessor-version":[{"id":5778,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/5754\/revisions\/5778"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media\/5765"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media?parent=5754"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/categories?post=5754"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/tags?post=5754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}