{"id":845,"date":"2020-05-18T00:00:43","date_gmt":"2020-05-17T23:00:43","guid":{"rendered":"https:\/\/www.katsbits.com\/codex\/?p=845"},"modified":"2023-09-07T15:52:13","modified_gmt":"2023-09-07T14:52:13","slug":"bake-normal-maps","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/codex\/bake-normal-maps\/","title":{"rendered":"Bake Normal Maps"},"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-69f1b70303272\" 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-69f1b70303272\"  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\/bake-normal-maps\/#bake-normal-maps\" >Bake Normal Maps<\/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\/bake-normal-maps\/#materials-image-texture\" >Materials &#038; Image Texture<\/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\/bake-normal-maps\/#uv-unwrapping\" >UV Unwrapping<\/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\/bake-normal-maps\/#object-resolution\" >Object Resolution<\/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\/bake-normal-maps\/#ray-distance\" >Ray Distance<\/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\/bake-normal-maps\/#mesh-smoothing\" >Mesh Smoothing<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.katsbits.com\/codex\/bake-normal-maps\/#swizzle\" >Swizzle<\/a><\/li><\/ul><\/nav><\/div>\n<p>Aside from some minor changes, texture baking (or rendering), the process of rendering a high resolution object to a low resolution version, remains largely the same as for previous iterations of the application. However, with the removal of <i>Blender Internal<\/i> in favour of a <a href=\"https:\/\/www.katsbits.com\/codex\/material-basics\/\">Node-based material system<\/a>, (texture) <b>Bake<\/b> is now exclusive to <b>Cycles<\/b> render engine and associated properties.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"bake-normal-maps\"><\/span>Bake Normal Maps<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To bake a normal map from a high resolution mesh; in <b>Scene Properties<\/b> [1] click the <b>Render Engine<\/b> drop-down menu and set <b>Cycles<\/b> [2] as the active engine (<b><i>Scene Properties \u00bb Render Engine \u00bb Cycles<\/i><\/b>); in the <b>Bake<\/b> [3] subsection now available (click heading to access options if not visible) click the <b>Bake type<\/b> drop-down menu and select <b>Normals<\/b> [4] from the options provided. This readies the project for texture baking normal maps.<\/p>\n<blockquote><p><b>Design note<\/b>: Bake is currently unsupported by the Eevee render engine.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-render-engine-bake.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-render-engine-bake.jpg\" alt=\"Set Cycles and then Normal in Bake options\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Setting the system up to render texture maps, normal maps in this instance &#8211; in Scene Properties [1] first enable Cycles [2] render and then in the Bake [3] subsection set Normal [4] as the type of map to be produced.<\/i><\/p>\n<p>Once the system is set up for baking; in the <b>3D View<\/b> make sure both high and low resolution meshes are positioned coincidentally, that they occupy the same space. Next, select the high resolution mesh then <span class=\"shortcutkey\">Shift<\/span> + click the low resolution mesh to include in the group &#8211; the latter outlines brighter orange to confirm selection order. In <b>Bake<\/b> setting (Render Properties) activate <b>Selected to Active<\/b> [5] then click the <b>Bake<\/b> button [6] to rendering the normal map.<\/p>\n<blockquote><p><b>Design note<\/b>: the object selected last is the &#8216;target&#8217; or &#8216;active object&#8217;, the UV mapped mesh to which normals will be baked. This is generally the low-poly &#8216;in-game&#8217; item seen by players\/users.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/selected-to-active-bake.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/selected-to-active-bake.jpg\" alt=\"Enable Selected to Active when baking high-poly meshes\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Once the system is readied for baking make sure the objects being used are positioned so they occupy the same space then in Bake settings (Render Properties) activate <b>Selected to Active<\/b> [5] and click the <b>Bake<\/b> button [6] to begin.<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-render-baked-normal-map.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-render-baked-normal-map.jpg\" alt=\"Normal map baked in Blender 2.8+ using Cycles\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>A normal map shown on a low-polygon object rendered using Cycles render engine in Blender 2.8+<\/i><\/p>\n<p><a name=\"materials\" id=materials\"><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"materials-image-texture\"><\/span>Materials &#038; Image Texture<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Before using texture bake its important to prepare the object because, using Cycles as the rendering system, materials need to include an &#8216;image&#8217;. In <b>Shading Workspace<\/b> then, ensure the assigned material(s) have an associated <b>Image Texture<\/b> node &#8211; <i><b>Add \u00bb Texture \u00bb Image Texture<\/b><\/i> &#8211; linked per a <a href=\"https:\/\/www.katsbits.com\/codex\/material-basics\/\">typical node tree<\/a>, <b>Color<\/b> output (Image Texture) to <b>Base Color<\/b> input (Principled BSDF).<\/p>\n<blockquote style=\"background-color: #fc0; color: #000;\"><p><b>Important<\/b>: bake quality is predominantly defined by image dimensions, a 2048 x 2048 substrate yields 16x the detail of a 512 x 512 image (<a href=\"#uvs\">notwithstanding UV layout<\/a>). Normal maps should however, generally be rendered to size (size of use).<\/p><\/blockquote>\n<blockquote><p><b>Design note<\/b>: for simple texture baking, materials only need an <b>Image Texture<\/b> node set up as a &#8216;diffuse&#8217; component for the process to work, it does not explicitly need a &#8216;normal&#8217; map slot or <a href=\"https:\/\/www.katsbits.com\/codex\/bsdf-normal-maps\/\">normal mapped material<\/a> set up (a material that otherwise takes advantage of the effect) because all that&#8217;s being done is rendering something to output (image slot) &#8211; the &#8216;image&#8217; used for this can be internally generated e.g. <b>UV Grid<\/b>, <b>Color Grid<\/b> etc., or an externally loaded bitmap image e.g. *.tga, *.tif etc.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-basic-bake-material.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-basic-bake-material.jpg\" alt=\"Object to be baked with basic Material assignment\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>To bake a normal map objects need a basic material assigned that have an associated image, internally generated or externally reference bitmap, that acts as the substrate to which the normalised pixel data is written.<\/i><\/p>\n<p><a name=\"uvs\" id=uvs\"><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"uv-unwrapping\"><\/span>UV Unwrapping<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For texture baking to work at all, aside from the <a href=\"#materials\">image assignment required above<\/a>, objects also need to be <b>UV unwrapped<\/b> and the respective material image appropriately <b>UV mapped<\/b> (assigned to the unwrapped UVs) as without, nothing appears on the mesh. How this is done, the form the UV unwrapping takes, depends largely on the object itself, the complexity and\/or fidelity of the low-polygon mesh compared to the high-resolution being baked. Whilst UV maps do not affect bake <i>quality<\/i> per se, they do influence the outcome because they guide the bake process as to where data should be written and how much space is available for that.<\/p>\n<blockquote style=\"background-color: #fc0; color: #000;\"><p><b>Important<\/b>: UV maps secondarily determine quality based on the amount of UV space dedicated to the object, its features or area emphasis &#8211; changing UV&#8217;s alters relative texture density, how much UV vs. pixel space\/data is given over to each UV, larger UVs equate to occupying more texture space which in turn increase bake resolution or fidelity in those areas.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-uneven-uv.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-uneven-uv.jpg\" alt=\"UV layout determines how normals will be baked\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>How UVs are mapped, and the overall UV layout, determines where and how the normal map will bake within the available texture space (size defined by the assigned image). To avoid texture density issues, where some areas appear more detailed than others, UVs should be scaled\/sized relatively so each occupies a similar amount of space per what is represented.<\/i><\/p>\n<p>In addition make sure to provide enough space between UV\/islands to accommodate bleed, set via <b>Margin<\/b>, to avoid edge alising (stepping) issues.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-margin.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-margin.jpg\" alt=\"Adding bleed or 'padding' to a bake\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Increase or decrease the Margin value to render bleed that will address aliasing issues that often occur along the edges of baked maps, corners and rounded feature in particular which exhibit &#8216;stepping&#8217; artifacts.<\/i><\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-uv-lod1.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-uv-lod1.jpg\" alt=\"Objects to be baked need UV maps to guide the process\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-uv-lod2.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-uv-lod2.jpg\" alt=\"Objects to be baked need UV maps to guide the process\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-uv-lod3.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-uv-lod3.jpg\" alt=\"Objects to be baked need UV maps to guide the process\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>For texture baking to work objects need to be UV unwrapped as this largely guides the process, where and how the process renders the image, the above for example shows different versions of low resolution &#8216;cubic&#8217; shape comprising six &#8216;sides&#8217;, or islands, each quite different to their compatriots.<\/i><\/p>\n<p><a name=\"resolution\" id=resolution\"><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"object-resolution\"><\/span>Object Resolution<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Bake accuracy, or more correctly bake fidelity, and the success of the &#8216;normal&#8217; effect in use, depends on how closely the low resolution mesh resembles the general structure of the highly detailed object being baked, essentially how well it summarises the broader features in reduced form. While the degree to which this is done depends on the end use and target technology, allied to UV maps and texture size, low-poly mesh detail can affected bake results quite significantly so a degree trial and error may be necessary to find a happy medium baking normal maps from high resolution meshes to low resolution game objects.<\/p>\n<blockquote><p><b>Design note<\/b>: how low a low-resolution mesh needs to be is generally a problem that&#8217;s particular to (in-game) models associated with a set of unique assets, images used only on the object(s) baked. Normal maps baked for use as tiling textures, i.e. models rendered to flat plains, a tiling rock face for example, don&#8217;t present this problem, they are not object dependent.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/high-vs-low-resolution.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/high-vs-low-resolution.jpg\" alt=\"Mesh resolution affects bake quality\/fidelity\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>The effectiveness of a normal map is based on how closely a low resolution mesh (right) describes the general shape of the high (left) so some experimentation may be needed to find the right balance between the low resolution mesh and in-game resource use.<\/i><\/p>\n<p><a name=\"rays\" id=\"rays\"><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"ray-distance\"><\/span>Ray Distance<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>With texture baking essentially being a like-for-like process, both low and high resolution meshes occupy the same space, their proximity can be an issue, especially where surfaces are coincidental and\/or clip through one another. Where this happens baked normal maps typically include incorrect colour values that &#8216;break&#8217; the effect when used. To address this an optional setting is provided in <b>Render Properties<\/b>, <b>Ray Distance<\/b> [7], that can be used to correct the problem by increasing the length or distance of the projected rays used to calculate normals. To do this, whilst still in Render Properties and under in Bake settings, increase the value in <b>Ray Distance<\/b> and render. Adjust until a clean artifact free normal map image is produced.<\/p>\n<blockquote><p><b>Design note<\/b>: when click-dragging the input box to increase the value it locks out at <b>1.00 m<\/b> by default unless it has been manually typed, e.g. &#8220;25&#8221;. Once set this way the slider will then reduce\/increase up to that point, e.g. \u00ab\/\u00bb 25&#8243;.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-artifact.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-artifact.jpg\" alt=\"Mesh resolution affects bake quality\/fidelity\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-artifact-free.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-artifact-free.jpg\" alt=\"Mesh resolution affects bake quality\/fidelity\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>The proximity of both meshes can cause problems (top) when baking normal maps (or any texture type) that can generally be addressed changing the <b>Ray Distance<\/b> value in Bake settings [7] and re-rendering (bottom).<\/i><\/p>\n<p><a name=\"smoothing\" id=\"smoothing\"><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"mesh-smoothing\"><\/span>Mesh Smoothing<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Using normal maps typically means <b>Smoothing<\/b> is determined by the high-resolution mesh and the orientation of individual surfaces as represented by the maps RGB colour scheme. Here edge detail or &#8216;sharpness&#8217; is defined by actual structure rather than simply <a href=\"https:\/\/www.katsbits.com\/codex\/split\/\">splitting<\/a> and edge to create a break in surface continuity. In practice this means both high and low resolution objects should be smoothed for surface continuity purposes, to prevent overt surface faceting, rather than defining detail or structure. To Smooth an object, select it then from the <b>Object<\/b> menu click <b>Shade Smooth<\/b> &#8211; <i><b>Object \u00bb  Shade Smooth<\/b><\/i>. Alternatively, in <b>Edit Mode<\/b> make a selection then from the <b>Mesh<\/b> menu click <b>Shading \u00bb Smooth Faces<\/b> &#8211; <b><i>Mesh \u00bb Shading \u00bb Smooth Faces<\/i><\/b>.<\/p>\n<blockquote><p><b>Design note<\/b>: in Edit Mode smoothing is applied based on element selection, vertex, edge and face; in Object Mode smoothing is applied to the entire object regardless. <a href=\"https:\/\/www.katsbits.com\/tutorials\/blender\/cycles-bake-normal-maps.php#smoothing\">Click here to read more about smoothing and normals generally<\/a>.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-without-smoothing.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-without-smoothing.jpg\" alt=\"Normal maps baked without smoothing exhibit faceting\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-with-smoothing.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-with-smoothing.jpg\" alt=\"Smoothing depends on high resolution structure\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Smoothing and whether edges appear soft or hard, is defined in the normal map by geometry and normalised colour representation rather than edges\/vertices being <a href=\"https:\/\/www.katsbits.com\/codex\/split\/\">split<\/a> apart. Without smoothing normals tend to render as though faceted (top) which should be avoided using Smoothing (bottom).<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"swizzle\"><\/span>Swizzle<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Due to the way normal maps are used in games and render engines the effect may appear backwards in relation to lighting, shadows and highlight seem inverted. When this happens it usually means the engine environment uses a &#8216;inverted&#8217; or &#8216;reversed&#8217; axis on one or more of the maps <b>R<\/b> (red), <b>G<\/b> (green) and <b>B<\/b> (blue) colour channels to that of Blender. The fix for this problem is to flip or invert the offending channel using <b>Swizzle<\/b> [8].<\/p>\n<blockquote><p><b>Design note<\/b>: &#8216;swizzle&#8217; or flipping channels can be done in an image editor. When doing this however, be sure to &#8216;re-normalise&#8217; the result to ensure only &#8216;normalise&#8217; colours are present in the map else there is risk of rendering artifacts.<\/p><\/blockquote>\n<p>To use <b>Swizzle<\/b>, expand the <b>Influence<\/b> options in the <b>Bake<\/b> section if not visible (click heading), click the drop-down for each <b>R<\/b>, <b>G<\/b> and <b>B<\/b> channel as necessary and select\/set the appropriate swizzle option to invert that channel, e.g. clicking <b>G<\/b> and selecting <b>-Y<\/b> [9] from the list to invert the default <b>+Y<\/b>, thus flipping the GREEN channel\/colours. Re-bake the normal map to apply the setting.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-switzzle-defaults.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-switzzle-defaults.jpg\" alt=\"Default RGB channel orientation\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-switzzle-y.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/normal-maps\/cycles-bake-switzzle-y.jpg\" alt=\"Flipping or inverted a normal map channel\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i><b>Swizzle<\/b> allows for a convenient way to flip or invert the R, G and B channels of a normal map at source (during bake) to accommodate render or engine environments utilising different orientation axes for their normal maps than Blender, simply click a channel [8] and select the corrective option from the list [9].<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":3167,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,230],"tags":[697,565,698,118,172,699,177,700,696,648,635],"class_list":["post-845","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blender","category-tutorials","tag-bake","tag-cycles","tag-high-poly","tag-mesh-smoothing","tag-normal-map","tag-ray-distance","tag-render","tag-swizzle","tag-texture-bake","tag-uv-maps","tag-uv-unwrapping"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/845","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=845"}],"version-history":[{"count":5,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/845\/revisions"}],"predecessor-version":[{"id":5082,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/845\/revisions\/5082"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media\/3167"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media?parent=845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/categories?post=845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/tags?post=845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}