{"id":5537,"date":"2022-01-23T00:00:34","date_gmt":"2022-01-23T00:00:34","guid":{"rendered":"https:\/\/www.katsbits.com\/codex\/?p=5537"},"modified":"2023-09-07T15:50:39","modified_gmt":"2023-09-07T14:50:39","slug":"texture-blending","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/codex\/texture-blending\/","title":{"rendered":"Texture Blending using Masks"},"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-69fb67c9cd255\" 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-69fb67c9cd255\"  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\/texture-blending\/#texture-blending\" >Texture Blending<\/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\/texture-blending\/#basic-mix-material\" >Basic Mix Material<\/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\/texture-blending\/#location-rotation-scale\" >Location, Rotation, Scale<\/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\/texture-blending\/#mixing-normal-maps\" >Mixing Normal Maps<\/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\/texture-blending\/#blending-mode\" >Blending Mode<\/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\/CcUa4fS4aYk?rel=0\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/center><\/div>\n<p><b>Texture Blending<\/b> is useful for mixing or blending two or more textures (images) on the same object that might not be related (belong to the same object). In this context the mixing is controlled by an alpha mask, a greyscale image that determines where and to what degree mixing occurs. In the following, two textures of differing size are mixed using a mask as the control.<\/p>\n<blockquote style=\"background-color: #fc0; color: #000;\"><p><b>Design note<\/b>: the approach to mixing textures in the same material described below works with both <b>Eevee<\/b> and <b>Cycles<\/b> Render Engine&#8217;s.<\/p><\/blockquote>\n<blockquote style=\"background-color: #ddecf3; color: #000;\"><p><b>Download<\/b>: <a href=\"https:\/\/www.katsbits.com\/files\/blender\/katsbits - texture blending.zip\" rel=\"noopener\" target=\"_blank\">KatsBits &#8211; Texture Blending<\/a> (ZIP c. 200KB &#8211; *.blend, *.tga).<\/p><\/blockquote>\n<h3><span class=\"ez-toc-section\" id=\"texture-blending\"><\/span>Texture Blending<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Being able to blend or mix separate images together is a relatively cheap way to generate unique textures on pseudo-demand or semi-dynamically without needing to create specific image assets. In other words, mixing dirt and stone together might ordinarily require different versions of the mix to be painted in an image editor for each unique blend represented, e.g. three separate images for each 1\/4, 1\/2 and 3\/4 blends &#8211; the more iterations on a theme there are, the more assets required that consume space. Material or node-based texture mixing alleviates this demand in that it only requires simple, low kilobyte, greyscale image masks to define blending.<\/p>\n<blockquote><p><b>Design note<\/b>: texture blending using masks is generally applicable to uniquely UV mapped objects so meshes typically need to be appropriately <a href=\"https:\/\/www.katsbits.com\/codex\/uv-editing\/\">UV unwrapped<\/a> for the effect to render correctly (Material assignments are optional).<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-uv-map.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-uv-map.jpg\" alt=\"UV mapped 'door'\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>For texture blending to work in this context meshes will need to be UV unwrapped and UV mapped.<\/i><\/p><\/blockquote>\n<h3><span class=\"ez-toc-section\" id=\"basic-mix-material\"><\/span>Basic Mix Material<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The key to mixing textures in Blender using masks is the <b>MixRGB<\/b> node. In essence the two images to be mixed are connected to MixRGB&#8217;s <b>Color1<\/b> and <b>Color2<\/b> inputs via individual <i>Image Texture<\/i> nodes and their respective <b>Color<\/b> outputs. To complete the material the <b>Color<\/b> output of MixRGB is then linked to the standard <i>Principled BSDF \u00bb Material Output<\/i> node chain via <b>Base Color<\/b> input. To add a <b>MixRGB<\/b> node, from the <b>Add<\/b> menu of the Node Editor select <b>Color<\/b> then <b>MixRGB<\/b> [1] &#8211; <b><i>Add \u00bb Color \u00bb MixRGB<\/i><\/b> [2]. Drop in three <b>Image Texture<\/b> nodes from <b>Add \u00bb Texture \u00bb Image Texture<\/b>.<\/p>\n<blockquote><p><b>Design note<\/b>: for standard blending the MixRGB nodes <b>Blending Mode<\/b> can be left as <b>Mix<\/b> (default).<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/mixrgb-node.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/mixrgb-node.jpg\" alt=\"Adding a MixRGB node\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Adding a <b>MixRGB<\/b> node to mix or blend textures together.<\/i><\/p>\n<p>For mixing, in addition to the two diffuse Image Texture [3 &#038; 4] nodes, another Image Texture node that carries the mask [5] is linked to the <b>Fac<\/b> input of MixRGB [6], the component that controls the blending between the two by interpreting greyscale tones as blend values &#8211; black represents one image, white the other, grey being degrees of blend between the two. Once connected the <b>Color<\/b> output from MixRGB is linked to <b>Base Color<\/b> input of <b>Principled BSDF<\/b> (in turn linked to Material Output).<\/p>\n<blockquote><p><b>Design note<\/b>: as the mask used to control blending is a simple greyscale image it can be painted in <b>Texture Paint Workspace<\/b> if needed. First make sure an image is associated with the Image Texture node, either an externally sourced bitmap or a Generated texture, then link the node so the effect is visible. Next switch to <b>Texture Paint Workspace<\/b> and select the mask image from the <b>Browse image to be linked<\/b> [i] dropdown (Image Editor header) or the <b>Active Paint Texture Index<\/b> [ii] (Active Tool properties panel). When it appears in the work area use the paint tools to paint, edit or modify the mask as required. Painted images can then be saved in the Image Editor clicking <b>Image \u00bb Save<\/b>, <b>Save As..<\/b> or <b>Save a Copy..<\/b>.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/painted-mask.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/painted-mask.jpg\" alt=\"Painting a custom mask in Texture Paint workspace\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Because the mask image defining the blend between textures is a simple greyscale bitmap it can be painted in Texture Paint workspace to accommodate specific, instanced effects.<\/i><\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/basic-mix-node-tree.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/basic-mix-node-tree.jpg\" alt=\"Texture Blending node tree\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>The node tree of a basic material that&#8217;s set up to blend two diffuse [3] images [4] together using a third that carries a greyscale mask [5], all linked to a <b>MixRGB<\/b> node &#8211; diffuse to the <b>Color<\/b> inputs, mask to <b>Fac<\/b> input [6].<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"location-rotation-scale\"><\/span>Location, Rotation, Scale<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The advantage of using <b>MixRGB<\/b> as part of the material node tree to blend textures is in the ability to then compensate for discrepancies between the images used. For example if <b>Color1<\/b> input is 512 x 256 pixels (portrait &#8211; blue door), <b>Color2<\/b> input is 512 x 64 (portrait &#8211; yellow stripe), and the <b>Fac<\/b> 256 x 512 (landscape &#8211; B\/W petals), by default all are scaled-to-fit relative to the image occupying the Color1 slot, i.e. 512 x 256 portrait &#8211; the yellow stripe is stretched horizontally, the mask vertically, to compensate for the differences.<\/p>\n<blockquote><p><b>Design note<\/b>: the materials textures are actually being scaled relative to the UV mapping associated with Color1 rather than the image itself.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/texture-scale.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/texture-scale.jpg\" alt=\"Different sized textures\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Images used for the basic texture mixing material are all different sizes so the effect may appear distorted &#8211; this could be fixed manually editing images but doing so adds extra assets to the project.<\/i><\/p>\n<p>This behaviour can be changed with two additional nodes however; a <b>UV Map<\/b> [7] node that&#8217;s linked to a <b>Mapping<\/b> [8] node, which in turn is connected to the corresponding <b>Image Texture<\/b> to be changed. With these two extra nodes in place it&#8217;s then possible to change the <b>Location<\/b>, <b>Rotation<\/b> and <b>Scale<\/b> of the image e.g., setting <b>Scale: X<\/b> to <b>0.250<\/b>, effectively tiles the 256 x 512 four times top-to-bottom.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-mapping-node.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-mapping-node.jpg\" alt=\"Adding a UV Map and Mapping nodes\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Adding a <b>UV Map<\/b> [7] and <b>Mapping<\/b> [8] nodes to the material, any disparities between the images used can be compensated for changing Location, Rotation and Scale values where needed.<\/i><\/p>\n<p>To include a <b>Mapping<\/b> node; from the <b>Add<\/b> menu select <b>Vector<\/b> then <b>Mapping<\/b> &#8211; <b><i>Add \u00bb Vector \u00bb Mapping<\/i><\/b>. Set <b>Type<\/b> to <b>Texture<\/b> [9] then connect the <b>Vector<\/b> output to the <b>Vector<\/b> input of the Image Texture [10]. To drop in a <b>UV Map<\/b> node; from the <b>Add<\/b> menu select <b>Input<\/b> then <b>UV Map<\/b> &#8211; <b><i>Add \u00bb Input \u00bb UV Map<\/i><\/b>. Set the <b>UV Map<\/b> [11] to the active or to-be-used UV map (<i>UVMap<\/i> by default) then connect the <b>UV<\/b> output of this node to the <b>Vector<\/b> [12] input of the Mapping node. Once the nodes are in place Location, Rotation and Scale values can be changed to modify the image e.g. changing Scale: Y to 0.250 compensates for the width of the mask so it tiles or repeats vertically four times.<\/p>\n<blockquote><p><b>Design note<\/b>: the UV Map node is required so the material knows what coordinate system changes are relative to, e.g. setting UVMap means using the active mesh objects UV map (as displayed in Object Data Properties under UV Maps).<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-mapping-node-tree.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-mapping-node-tree.jpg\" alt=\"Setting up UV Map and Mapping nodes\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Settings up the <b>UV Map<\/b> and <b>Mapping<\/b> nodes so the linked Image Texture can be modified via the Vector input, which allows Location, Rotation and Scale image coordinates to be changed.<\/i><\/p>\n<p>If multiple images need to be corrected that are connect through the same MixRGB node, repeat the process; place additional <b>UV Map<\/b> and <b>Mapping<\/b> node pairs, link them to each <b>Image Texture<\/b> node that needs to be changed, then set the appropriate properties; <b>UVMap<\/b> set as the coordinates used, <b>Texture<\/b> set as the mapping <b>Type<\/b> and <b>Vector<\/b> as the input. This then allows for Location, Rotation and Scale to be changed independently, for example shown below the same node pairs are replicated and used to compensate for the vertical scaling of the mask in additional to separately correcting the horizontal scaling of the yellow image.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-mapping-node-tree-multiple.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-mapping-node-tree-multiple.jpg\" alt=\"Setting up multiple UV Map and Mapping nodes\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>As an number of images need to be changed additional UV Map and Mapping nodes can be linked to their respective Image Texture nodes.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"mixing-normal-maps\"><\/span>Mixing Normal Maps<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Where special consideration needs to be given to the texture blending because of the type of images used, the set up is exactly the same with one or two property differences. Mixing normal maps for example presents such a situation. First set up the <b>MixRGB<\/b> node with the normal maps that need to be mixed, each using their own <b>Image Texture<\/b> node linked through to the corresponding <b>Color<i>[n]<\/i><\/b> input of MixRGB. Set the <b>Color Space<\/b> for each to <b>Non-Color<\/b> [13].<\/p>\n<blockquote><p><b>Design note<\/b>: for <a href=\"https:\/\/www.katsbits.com\/codex\/normal-map-node\/\">normal maps<\/a> to behave correctly they need to be set as non-colour, despite being 24 bit RGB(A) images, due to the way the red, green and blue colour saturation values are interpreted.<\/p><\/blockquote>\n<p>To this group drop in a <b>Normal Map<\/b> [14] node &#8211; <b><i>Add \u00bb Vector \u00bb Normal Map<\/i><\/b> &#8211; and position this between MixRGB and Principled BSDF. Link the <b>Color<\/b> output of MixRGB to the <b>Color<\/b> input of Normal Map. Then <b>Normal<\/b> output of Normal Map to <b>Normal<\/b> input of Principled BSDF, completing the node chain. This displays the two normal maps mixed together across the entire object.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-normal-map-node.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-normal-map-node.jpg\" alt=\"Normal map node\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>When using a <b>Normal Map<\/b> node make sure <b>Color Space<\/b> is set to <b>Non-Color<\/b> [13] for each Image Texture that references an normal map image. This ensure the effect they generate renders correctly. This can then be connected through from MixRGB to Principled BSDF [14].<\/i><\/p>\n<p>To then blend the normal maps so the effect corresponds to the mixing previously established for the diffuse images, link the <b>Color<\/b> [15] output of the existing diffuse Image Texture node to the <b>Fac<\/b> [16] input of normal maps <b>MixRGB<\/b> node; the same mask image [17] is linked to two MixRGB nodes [18] and controls the blending of both image sets.<\/p>\n<blockquote><p><b>Design note<\/b>: when a material includes a number of different image types; diffuse, specular, normal etc., each set can use an existing or independent blend mask [iii] that might then also be adjusted using additional <b>UV Map<\/b> and <b>Mapping<\/b> nodes as required. In this way a flexible material tree can be built in which each set of images can share characteristics with other sets or use entirely dedicated assignments that dictate appearance.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-different-masks.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-different-masks.jpg\" alt=\"Using different blend masks\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>The same normal map as used above blended using a different mask that doesn&#8217;t explicitly correspond to other images in the material [iii]. This set up means blending can be controlled in a number of ways that can then be adjusted as needed using additional <b>UV Map<\/b> and <b>Mapping<\/b> nodes.<\/i><\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-normal-map-mask.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-normal-map-mask.jpg\" alt=\"Linking blend masks between MixRGB nodes\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-mask-normal.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-mask-normal.jpg\" alt=\"Blend masking multiple image sets\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>When using a <strong>Normal Map<\/strong> node make sure <b>Color Space<\/b> is set to <b>Non-Color<\/b> [13] for each Image Texture that references an normal map image. This ensure the effect they generate renders correctly. This can then be connected through from MixRGB to Principled BSDF [14].<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"blending-mode\"><\/span>Blending Mode<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>When mixing images particular attention should be paid to the <b>Blending Mode<\/b> used by MixRGB as this determines how they interact with each other, <b>Mix<\/b> [19] being the default, means Color2 sits above or atop Color1 [20], the two images essentially treated as being independent from one other. To genuinely mix images the <b>Blending Mode<\/b> can be set depending on the desired effect, to mix normal maps for example, Blending Mode can be set to <b>Overlay<\/b> [21] otherwise the normalised colour values are not combined correctly [22] (similar to blending normal maps in an image editor). Similarly changing the Blending Mode for other map types changes the effect respectively [23]. This does not affect the masking.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-mode-mix.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-mode-mix.jpg\" alt=\"Default Mix Blending Mode\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-mode-overlay.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-mode-overlay.jpg\" alt=\"Overlay Blending Mode\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>The default Blending Mode [19] for MixRGB doesn&#8217;t blend normal maps [20] so one sits above the other (image top). Where mixing normal maps is required Blending Mode should be set to <b>Overlay<\/b> [21], which combines maps and renders the effect appropriately [22] (if both are to be mixed and not just masked).<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-mode-difference.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/texture-blending\/blending-mode-difference.jpg\" alt=\"Difference Blending Mode\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Blending Mode can also be set for other image sets, <b>Difference<\/b> [23] changes the way the diffuse images for Color2 interacts with Color1 in the same material.<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":5592,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,32,230],"tags":[845,706,103,843,519,844,705,815],"class_list":["post-5537","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blender","category-texturing","category-tutorials","tag-blend-mask","tag-mapping-node","tag-materials","tag-mixrgb","tag-shading-workspace","tag-texture-blending","tag-uv-map-node","tag-uvmap"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/5537","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=5537"}],"version-history":[{"count":50,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/5537\/revisions"}],"predecessor-version":[{"id":5643,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/5537\/revisions\/5643"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media\/5592"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media?parent=5537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/categories?post=5537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/tags?post=5537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}