{"id":1406,"date":"2024-01-16T15:32:15","date_gmt":"2024-01-16T15:32:15","guid":{"rendered":"https:\/\/www.katsbits.com\/site\/?p=1406"},"modified":"2024-01-16T15:36:05","modified_gmt":"2024-01-16T15:36:05","slug":"double-sided-faces-different-materials","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/site\/double-sided-faces-different-materials\/","title":{"rendered":"Two Sided Meshes\/Two-Sided Materials in Blender"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_80 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><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><\/span><\/a><\/span><\/div>\n<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\/site\/double-sided-faces-different-materials\/#Single_sided_faces_meshes\" >Single sided faces &amp; meshes<\/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\/site\/double-sided-faces-different-materials\/#Double_or_two_sided_faces_meshes\" >Double or two sided faces &amp; meshes<\/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\/site\/double-sided-faces-different-materials\/#Double_sided_meshes_with_different_materials\" >Double sided meshes with different materials<\/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\/site\/double-sided-faces-different-materials\/#How_to_set_up_double-sided_meshes\" >How to set up double-sided meshes<\/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\/site\/double-sided-faces-different-materials\/#Two-sided_Meshes_with_different_Materials\" >Two-sided Meshes with different Materials<\/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\/site\/double-sided-faces-different-materials\/#Blender_Game_Two_sided_meshes\" >Blender Game &amp; Two sided meshes<\/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\/site\/double-sided-faces-different-materials\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n<p>A common issue that crops up modelling with Blender 3D or developing content for games, is how to make a mesh double-sided whilst using different materials on the each face. Although the solution is relatively straightforward, it has to be implemented relation to the renderer being used; rendering two sided faces increases the amount of data being processed regardless as to the process used. Bear that in mind when reading the following tutorial and\/or implementing this &#8216;trick&#8217; in a game.<\/p>\n<blockquote style=\"background-color: #fc0; color: #000;\"><p><strong>Important<\/strong>: <a title=\"3D View Transparency\" href=\"https:\/\/www.katsbits.com\/site\/scene-view-alpha-transparency\/\" target=\"_self\" rel=\"noopener\">Backface Culling and &#8220;Texture Face&#8221; settings are not the same as 3D View Transparency<\/a>.<\/p><\/blockquote>\n<blockquote style=\"background-color: #ddecf3; color: #000;\"><p><b>Download<\/b>: <a title=\"Download source file\" href=\"https:\/\/www.katsbits.com\/files\/blender\/katsbits-double-sided-sample.zip\">Double-Sided Mesh Example<\/a> (c. 300 KB | *.blend, *.tga).<\/p><\/blockquote>\n<p><a id=\"singlesided\" name=\"singlesided\"><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Single_sided_faces_meshes\"><\/span>Single sided faces &amp; meshes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>If we start with the basic question of;<\/p>\n<div style=\"width:98.5%; padding:0 1.0em;\"><i>Can I have a two sided face in Blender\/my game using different materials on each side?<\/i><\/div>\n<p>The basic answer is;<\/p>\n<div style=\"width:98.5%; padding:0 1.0em;\"><i>&#8216;Yes&#8217; and &#8216;no&#8217; depending on what you&#8217;re trying to do and what you&#8217;re using.<\/i><\/div>\n<p>Generally speaking all faces are rendered <b>single sided by default<\/b> as it&#8217;s the quickest and most efficient way to give shape and form to, and in, a real-time environment by processing the coordinate data associated with the individual polygons from which objects are composed. Due to the fact that items are rendered to screen this way, standing inside a mesh looking out, the user or player is able to see the external world because nothing is blocking their view of it. This is the default condition of a mesh.<\/p>\n<p><a id=\"doublesided\" name=\"doublesided\"><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Double_or_two_sided_faces_meshes\"><\/span>Double or two sided faces &amp; meshes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>If, on the other hand, the mesh needs to have an &#8216;inside&#8217; this means &#8216;forcing&#8217; <b>double or two-sided polygons<\/b>. This is done through <b>duplicating<\/b> and <b>inverting<\/b> (relative to the orientation of the original face the duplication came from) a face so its normal point inwards, the end result being <b>two identical faces<\/b>, back-to-back. Because standard double-sided polygons are created this way, the duplicate will also carry the same &#8216;face data&#8217; as the original &#8211; the same materials, UVW&#8217;s, textures, etc are copied onto the inverted face when duplicated, resulting in both being identical (except for the orientation).<\/p>\n<blockquote><p><b>Design note<\/b>: this is one reason <a title=\"Polygons and face normals in Blender\" href=\"https:\/\/www.katsbits.com\/site\/edge-length-face-vertex-normals\/\" target=\"_self\" rel=\"noopener\">why polygons have face normals<\/a>; they are the mechanism through which the orientation a given face is determined (which direction it faces and it&#8217;s general position).<\/p><\/blockquote>\n<p><a id=\"differentmaterials\" name=\"differentmaterials\"><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Double_sided_meshes_with_different_materials\"><\/span>Double sided meshes with different materials<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Now whilst it is <i>technically possible<\/i> to render a standard two-faced mesh with different materials on either side, it can only generally be done through some relatively complex calculations that have to differentiate and then determine how materials and surface properties are assigned to any duplicate faces in such a way as to mean they become independent elements from the original. This all requires precious resources and processing time to render to screen, in essence;<\/p>\n<blockquote style=\"background-color: #E7FAEA; color: #000;\"><p>mesh surfaces \u00bb duplicate \u00bb invert \u00bb mat lookup \u00bb duplicate \u00bb make unique \u00bb assign \u00bb render<\/p><\/blockquote>\n<p>However, because it&#8217;s generally a good idea to do things as &#8216;cheaply&#8217; as possible, the best way to actually achieve a two-sided mesh with different material assignments is to use two separate meshes like this;<\/p>\n<blockquote style=\"background-color: #E7FAEA; color: #000;\"><p>&bull; mesh 1 surfaces: \u00bb matset1 \u00bb render<br \/>\n&bull; mesh 2 surfaces: \u00bb matset2 \u00bb render<\/p><\/blockquote>\n<p>Essentially everything is pre-calculated, polygon positions, material assignments and surface data is already present in the mesh so all that&#8217;s being done (relatively speaking) is the &#8216;reading&#8217; and &#8216;rending&#8217; of that data.<\/p>\n<p><a id=\"setupduplicates\" name=\"setupduplicates\"><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"How_to_set_up_double-sided_meshes\"><\/span>How to set up double-sided meshes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Before progressing it helps to activate &#8220;<b>Wire<\/b>&#8221; mode &#8211; in <b>Blender<\/b> this option is located in &#8220;<b>Object<\/b>&#8221; properties, under the &#8220;<b>Display<\/b>&#8221; sub-section (for <b>Blender 2.49<\/b> click &#8220;<b>Wire<\/b>&#8221; in &#8220;<b>Object<\/b>&#8221; (&#8220;<b>F7<\/b>&#8220;) buttons). The following assumes the mesh has been UVW mapped and textured, if it&#8217;s not then <a title=\"Activating Face Normals to see the orientation of a polygon in Blender\" href=\"https:\/\/www.katsbits.com\/site\/edge-length-face-vertex-normals\/\" target=\"_self\" rel=\"noopener\">activate &#8220;<b>Face Normals<\/b>&#8220;<\/a> so it&#8217;s easier to see which direction a polygon is facing (because the mesh may or may not be displayed as the &#8216;white&#8217; of untextured surfaces).<\/p>\n<p>The default &#8220;<b>Viewport Shading<\/b>&#8221; mode in Blender is &#8220;<b>Solid<\/b>&#8220;. In this mode meshes (faces and polygons) appear double sided because it&#8217;s relatively straightforward for the application to render a materials simple flat colours to both sides of a face (shown below).<\/p>\n<div class=\"content_images\">\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-double-sided-solid-view.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"Double sided face rendered in Blender &quot;Solid&quot; Viewport Shading mode\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-double-sided-solid-view_sml.jpg\" alt=\"Double sided face rendered in Blender &quot;Solid&quot; Viewport Shading mode\" width=\"640\" height=\"400\" border=\"0\" \/><\/a><\/p>\n<p>Although the mesh and faces are UVW mapped and textured, in &#8220;<b>Solid<\/b>&#8221; view the mesh is draw double-sided due to using basic material colour values<\/p>\n<\/div>\n<p>However, when the scene is toggled to &#8220;<b>Textured<\/b>&#8221; mode (&#8220;<b>Alt+Z<\/b>&#8220;), the mesh effectively vanishes from view because there&#8217;s nothing being rendered from the &#8216;inside&#8217; of the mesh; this incidentally means the mesh can&#8217;t be selected because Blender thinks there&#8217;s nothing there to select &#8211; this is the reason for activating &#8220;<b>Wire<\/b>&#8221; mode above; with the wireframe visible, it also means the mesh is subsequently visible as a selectable object (shown below).<\/p>\n<div class=\"content_images\">\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-single-side-textured-view.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"Viewed in Textured mode, only a single side is visible in Blender\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-single-side-textured-view_sml.jpg\" alt=\"Viewed in Textured mode, only a single side is visible in Blender\" width=\"640\" height=\"400\" border=\"0\" \/><\/a><\/p>\n<p>Switching the &#8220;<b>Textured<\/b>&#8221; view reveals the mesh, by default, as being single-sided only; this requires the least amount of resources to render to screen<\/p>\n<\/div>\n<p>Select the object and make a &#8216;<i>unique duplicate<\/i>&#8216; using &#8220;<b>Shift+D<\/b>&#8221; or &#8220;<b>Object \u00bb Duplicate<\/b>&#8220;, this will create a copy of the original mesh that&#8217;s not directly linked to it (changes to this new mesh won&#8217;t effect the original, and visa-versa).<\/p>\n<div class=\"content_images\">\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-duplicate-original-mesh.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"Shift+D Duplicating the original mesh\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-duplicate-original-mesh_sml.jpg\" alt=\"Shift+D Duplicating the original mesh\" width=\"640\" height=\"400\" border=\"0\" \/><\/a><\/p>\n<p><b>Shift+D<\/b> duplicated original mesh, which also copies material, texture and UVW map data from the original to the duplicate<\/p>\n<\/div>\n<p>Switch to &#8220;<b>Edit<\/b>&#8221; mode (&#8220;<b>Tab<\/b>&#8220;) and select the entire mesh (&#8220;<b>A<\/b>&#8220;). In the toolbar on the left find the &#8220;<b>Normals<\/b>&#8221; sub-section and click &#8220;<b>Flip Direction<\/b>&#8221; or &#8220;<b>Ctrl+F \u00bb Flip Normals<\/b>&#8220;. The mesh will invert, the faces then pointing inwards as shown below so that there are now two versions of the same mesh structure, with different material assignments, for both the &#8216;<i>outer<\/i>&#8216; and &#8216;<i>inner<\/i>&#8216; surfaces of the object.<\/p>\n<div class=\"content_images\">\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-inverting-faces-normals.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"Inverting face normals to point 'inside'\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-inverting-faces-normals_sml.jpg\" alt=\"Inverting face normals to point 'inside'\" width=\"640\" height=\"400\" border=\"0\" \/><\/a><\/p>\n<p>Flip or invert the face normals so they point &#8216;inwards&#8217;. 1) &#8220;<b>Flip Direction<\/b>&#8221; button in the &#8220;<b>ToolShelf<\/b>&#8221; inverts selected faces. 2) activate &#8220;<b>Normals<\/b>&#8221; for &#8220;<b>Face<\/b>&#8221; to see direction if mesh isn&#8217;t UVW mapped\/textured. 3) inverted polygons<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-double-sided-mesh.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"Showing both the original and duplicate meshes\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-double-sided-mesh_sml.jpg\" alt=\"Showing both the original and duplicate meshes\" width=\"640\" height=\"400\" border=\"0\" \/><\/a><\/p>\n<p>View showing both the original and duplicate mesh with their respective faces pointed outwards (original) and inwards (duplicate)<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-duplicate-vertex-painted.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"Using Vertex Paint on duplicate mesh in Blender\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-duplicate-vertex-painted_sml.jpg\" alt=\"Using Vertex Paint on duplicate mesh in Blender\" width=\"640\" height=\"400\" border=\"0\" \/><\/a><\/p>\n<p>Because the duplicate mesh is a separate object in it&#8217;s own right, Vertex Colours can be painted onto the mesh without affecting to the other side &#8211; which can&#8217;t normally be avoided when relying on &#8216;standard&#8217; two-sided materials<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-separate-materials.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"Assigning a completely separate material to mesh duplicate\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-separate-materials_sml.jpg\" alt=\"Assigning a completely separate material to mesh duplicate\" width=\"640\" height=\"400\" border=\"0\" \/><\/a><\/p>\n<p>Similarly, assigning a separate material to the duplicate mesh, which has no affect on the original mesh because they&#8217;re both completely independent objects<\/p>\n<\/div>\n<p><a id=\"different\" name=\"different\"><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Two-sided_Meshes_with_different_Materials\"><\/span>Two-sided Meshes with different Materials<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The basic principle behind two-sided Objects with different Materials either side is ostensibly the same as the above with one exception; both the original and duplicated mesh need to have completely separate and independent Material assignments &#8211; this can be done by creating two Materials initially and then assigning them to each mesh as they are made and duplicated, or, duplicating the mesh and then making the Material carried over to that a unique &#8220;<b>User<\/b>&#8221; that can be edited and adjusted as needed.<\/p>\n<blockquote><p><b>Design note<\/b>: Materials can be assigned to Objects before or after duplication depending upon workflow preference; there is generally no advantage either way.<\/p><\/blockquote>\n<div class=\"content_images\">\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/two-sided-different-textures.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/two-sided-different-textures_sml.jpg\" alt=\"Two-sided meshes with different Materials\" width=\"640\" height=\"360\" border=\"0\" \/><\/a><\/p>\n<p>A two-sided Object showing different Materials (and Texture Image) assigned inside and outside giving the impression of a more complex double-sided mesh<\/p>\n<\/div>\n<p>With a Material assigned for instance, upon Object duplication a new &#8220;<b>User<\/b>&#8221; will be added so the number of &#8220;<b>Users<\/b>&#8221; displayed in &#8220;<b>Material<\/b>&#8221; Properties associated with that Material will increase &#8211; in this instance from &#8220;<b>2<\/b>&#8221; to &#8220;<b>3<\/b>&#8221; (because there are already two Objects in the Scene referencing the same Material). To make this new addition &#8216;unique&#8217; select the duplicated mesh and then (LMB) click the &#8220;<b>Display number of users&#8230;<\/b>&#8221; button directly under the Material list section (marked by the presence of a number, in this instance &#8220;3&#8221;). It will immediately change to an &#8220;<b>F<\/b>&#8221; and the Material ID (it&#8217;s &#8216;name&#8217;) will be appended &#8220;<b>*.001<\/b>&#8221; &#8211; &#8220;<b>Material.001<\/b>&#8221; &#8211; making the dataBlock unique; change this ID\/name as needed.<\/p>\n<div class=\"content_images\">\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/material-users.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/material-users_sml.jpg\" alt=\"Mesh duplication increases the number of Material &quot;Users&quot;\" width=\"640\" height=\"360\" border=\"0\" \/><\/a><\/p>\n<p>Originally there were two &#8220;Users&#8221; of the checker Material which has increased with duplication of the mesh. There are now three distinct mesh Objects referencing the same Material<\/p>\n<\/div>\n<p>In &#8220;<b>Texture<\/b>&#8221; Properties edit\/add a new Image to the Material and assigning it to the Objects UV map (if already exists) using the UV\/Image Editor. Then finally as above, in Edit mode select everything and from the ToolShelf click &#8220;<b>Flip Direction<\/b>&#8221; under the &#8220;<b>Normals:<\/b>&#8221; subsection in &#8220;<b>Shading\/UV&#8217;s<\/b>&#8221; properties.<\/p>\n<blockquote class=\"red\"><p><b>Design note<\/b>: Blender 2.7 and above introduces &#8220;<b>Tabs<\/b>&#8221; to the main ToolShelf so tools and their respective properties and options may change location relative to previous versions of the application.<\/p><\/blockquote>\n<div class=\"content_images\">\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/original-material.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/original-material_sml.jpg\" alt=\"Material 1, the original datablock carried over to the duplicate mesh\" width=\"640\" height=\"360\" border=\"0\" \/><\/a><\/p>\n<p>An initial Material is assigned to the mesh prior to duplication &#8211; this can be done after-the-fact but may be slightly more fiddly to manage on complex objects or meshes<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/duplicate-material.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/duplicate-material_sml.jpg\" alt=\"Material 2, made unique after duplication\" width=\"640\" height=\"360\" border=\"0\" \/><\/a><\/p>\n<p>The second Material is made &#8216;unique&#8217; and a completely separate image is assigned to the Texture slot meaning the overall Object now has two independent Materials (and associated elements) assigned to either side that can be modified and edited separately<\/p>\n<\/div>\n<p>The end result of this duplication and &#8216;unique-ifcation&#8217; of Material assignments will be an Object comprising two distinct surface sets &#8211; &#8216;inside&#8217; and &#8216;outside&#8217; &#8211; positioned back-to-back with different textures assigned to either side that can be manipulated and changed independently of each other.<\/p>\n<div class=\"content_images\">\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/two-sides-two-materials.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/two-sides-two-materials_sml.jpg\" alt=\"Two sides, two Materials\" width=\"640\" height=\"360\" border=\"0\" \/><\/a><\/p>\n<p>Final Object comprising a separate set of faces on the inside and outside with different Material assignments that can be edited or modified independently of each other<\/p>\n<\/div>\n<p><a id=\"addendum\" name=\"addendum\"><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Blender_Game_Two_sided_meshes\"><\/span>Blender Game &amp; Two sided meshes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Introduced to Blender 2.60a the way double-sided meshes are rendered in &#8220;<b>Blender Game<\/b>&#8221; mode (which simulates the dynamic environment of Blenders Game Engine) has changed; rather than culling individual surfaces as previously required, it can now be done to entire Objects. Whilst this does not necessarily alter the way surfaces and Materials are dealt with generally, the update is something that needs to be kept in mind because, as mentioned in the Conclusion above, for game rendering purposes it&#8217;s best surfaces be rendered from one side only (the direction the surface normal is pointing) to save resources. Where a double-sided mesh is then required in this type of environment, the above approach can be employed.<\/p>\n<blockquote><p><b>Design note<\/b>: as mentioned above, when Blender renders surfaces they are drawn double-sided by default, in other words the outward facing surface (determined by the direction a particular surface normal is pointing), is duplicated and flipped or mirrored inwards to give the impression of a two-sided surface.<\/p><\/blockquote>\n<div class=\"content_images\">\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-game-texture-face-setting.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/blender-game-texture-face-setting_sml.jpg\" alt=\"Switching to &quot;Blender Game&quot; rendering mode\" width=\"640\" height=\"400\" border=\"0\" \/><\/a><\/p>\n<p>Enabling &#8220;<b>Blender Game<\/b>&#8221; render engine mode in <b>Blender 2.60a<\/b> where the material system was updated. Generally speaking all subsequent and current versions of Blender use the changed Material processing system and the way double-sided meshes are handled<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/game-settings-backface-culling-option.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/game-settings-backface-culling-option_sml.jpg\" alt=\"Activating &quot;Backface Culling&quot; to disable two-faced rendering\" width=\"640\" height=\"400\" border=\"0\" \/><\/a><\/p>\n<p>Enabling &#8220;<b>Backface Culling<\/b>&#8221; to disable Blender automatic processing of surface so they draw to screen single-sided rather than two-sided &#8211; the default for any game related content should be to us single-sided rendering because it uses less resources to render surfaces<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/texture-face-properties-not-available-in-2.60a.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/texture-face-properties-not-available-in-2.60a_sml.jpg\" alt=\"&quot;Texture Face&quot; settings no longer available in Blender 2.60a or above\" width=\"640\" height=\"360\" border=\"0\" \/><\/a><\/p>\n<p>Previously when working with individual surfaces in Blender the &#8220;<b>Texture Face<\/b>&#8221; properties would appear under &#8220;<b>Object Data<\/b>&#8220;. With the change introduced to <b>Blender 2.60a<\/b>, this is no longer the case &#8211; surface rendering is now &#8216;Object&#8217; not specifically &#8216;Surface&#8217; based<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/two-side-texture-face-properties-in-2.59.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/blender-double-sided-faces\/two-side-texture-face-properties-in-2.59_sml.jpg\" alt=\"&quot;Texture Face&quot; setting in Blender 2.59\" width=\"640\" height=\"360\" border=\"0\" \/><\/a><\/p>\n<p>In <b>Blender 2.59<\/b> the &#8220;<b>Two-sided<\/b>&#8221; option appeared under &#8220;<b>Object Data<\/b>&#8221; properties. This has been moved (as described above). Any items or Objects created in versions previous to Blender 2.60a will still import\/open into Blender with backface culling, however management of those properties and options relate to Materials instead<\/p>\n<\/div>\n<p><a id=\"conclusion\" name=\"conclusion\"><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For this process to be effective, it&#8217;s best to ensure that materials applied to objects are not using any form of general or global double sided setting or surface flag; this applies as much to using Blender 3D and 3D applications in general as it does to game engines because <i>it&#8217;s more efficient to <b>only<\/b> render surfaces that <b>need<\/b> to be treated as double-sided<\/i>, standard materials should be single-sided by default to which two-sided is then applied as required on a case-by-case basis. The process described above is also a handy &#8216;cheap&#8217; way to produce double-sided objects using technology that doesn&#8217;t have that capability &#8211; simple items such as windows, sprites and so on can be made on condition they are not to be &#8216;spammed&#8217; over a wide area &#8211; grass sprites over a terrain for example &#8211; as that can be extremely resource heavy to render.<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":1411,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[375,230,276,277,25,377,378,376,239,260],"class_list":["post-1406","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-backface-culling","tag-blender-2-4x","tag-blender-2-5x","tag-blender-2-6x","tag-materials","tag-node-editor","tag-texture-face","tag-two-sided","tag-uv-editing","tag-uv-image-editor"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/posts\/1406","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/comments?post=1406"}],"version-history":[{"count":13,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/posts\/1406\/revisions"}],"predecessor-version":[{"id":1425,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/posts\/1406\/revisions\/1425"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/media\/1411"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/media?parent=1406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/categories?post=1406"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/tags?post=1406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}