{"id":748,"date":"2018-10-30T00:50:42","date_gmt":"2018-10-30T00:50:42","guid":{"rendered":"https:\/\/www.katsbits.com\/codex\/?p=748"},"modified":"2023-09-07T15:54:02","modified_gmt":"2023-09-07T14:54:02","slug":"principled-bsdf","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/codex\/principled-bsdf\/","title":{"rendered":"Basic Principled BSDF"},"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-69f6311e4fb48\" 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-69f6311e4fb48\"  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\/principled-bsdf\/#principle-bsdf\" >Principle BSDF<\/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\/principled-bsdf\/#principle-bsdf-specular-normal\" >Principle BSDF +Specular +Normal<\/a><\/li><\/ul><\/nav><\/div>\n<p>In <a href=\"https:\/\/www.katsbits.com\/codex\/material-basics\/\">Blender the simplest Materials can be created using just two nodes<\/a>, an <b>Image Texture<\/b> node linked to a <b>Material Output<\/b> node; the former references an image (generated, bitmap etc.), the latter is the output-to-screen element necessary for material display, a combination that <a href=\"https:\/\/www.katsbits.com\/codex\/material-basics\/\">approximates <b>Blender Render<\/b> style materials<\/a>. In the 3D View, whilst this node set-up does result in images being shown, they appear flat lit (or full-bright), that is the mesh and UV mapped images don&#8217;t <i>shade<\/i> or <i>shadow<\/i> across surfaces, meshes or objects.<\/p>\n<blockquote style=\"background-color: #fc0; color: #000;\"><p><b>Important<\/b>: <b>shading<\/b> and <b>shadows<\/b> are two distinct visual effects. <b>Shading<\/b> is a localised effect, it changes the way surfaces and objects &#8216;shade&#8217; or darken in relation to light, emphasising the selected objects shape, form and depth in three-dimensional space. <b>Shadows<\/b> on the other hand generally darken scene objects with respect to one other and light sources. In essence shading does not propagate across to or influence the appearance of other objects, shadows do.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/materials\/principled-flat-lit.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/materials\/principled-flat-lit.jpg\" border=\"0\" width=\"900px\" height=\"500px\" style=\"width:100%; height:auto;\" alt=\"Basic materials in Blender render flat-lit in Rendered mode\" \/><\/a><br \/>\n<i>Basic materials with Image Texture and Material Output nodes display textured meshes in the 3D View flat-lit, essentially without shadow or shading (note the default cube to the left displaying shadows cast from the building mesh).<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"principle-bsdf\"><\/span>Principle BSDF<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>With this in mind, what the Principled BSDF node essentially does is add a set of baseline properties to the overall material that affect its final appearance, principally the options and settings formally available in Blender 2.79 and below as <i>Material<\/i> and <i>Texture<\/i> Properties, that is <i>Diffuse<\/i> and <i>Specular<\/i> values, <i>Shading<\/i> options, <i>Influence<\/i> settings and so on, all now largely available under or though Principled BSDF, alongside more advanced effects, Sheen, Normal etc.<\/p>\n<blockquote><p><b>Design note<\/b>: using the Principled BSDF node essentially makes the material more receptive to various shader effects and properties, at the very least different types of &#8216;map&#8217; (Specular, Metallic etc.), and scene lighting so objects don&#8217;t appear flat-lit or shadeless.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/materials\/principled-bsdf-node-options.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/materials\/principled-bsdf-node-options.jpg\" border=\"0\" width=\"900px\" height=\"500px\" style=\"width:100%; height:auto;\" alt=\"Principled BSDF shader options (subject to change)\" \/><\/a><br \/>\n<i>Principled BSDF shader options (and default values).<\/i><\/p>\n<p>To use the Principled BSDF shader, in the 3D View select the object to be assigned, or already assigned, a material to expose associated nodes in the <b>Shader Editor<\/b> (opened directly or from within the Shading workspace). In the <b>Shader Editor<\/b>, from the <b>Add<\/b> menu select <b>Shader<\/b> then <b>Principled BSDF<\/b> &#8211; <b>Add \u00bb Shader \u00bb Principled BSDF<\/b>. When the node appears in the workspace position the node <i>between<\/i> the <b>Image Texture<\/b> and <b>Material Output<\/b> node (<a href=\"https:\/\/www.katsbits.com\/codex\/material-basics\/\">assuming a basic material<\/a>). Left-click to drop it into place automatically connecting the node group together &#8211; <b>Color<\/b> output from <i>Image Texture<\/i> to <b>Base Color<\/b> input of <i>Principled BSDF<\/i>, <b>BSDF<\/b> output from <i>Principled BSDF<\/i> to <b>Surface<\/b> of <i>Material Output<\/i>.<\/p>\n<blockquote><p><b>Design note<\/b>: if the nodes don&#8217;t automatically connect left-click drag the connection nodes to manually link them together.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/materials\/principled-bsdf-basic-material.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/materials\/principled-bsdf-basic-material.jpg\" border=\"0\" width=\"900px\" height=\"500px\" style=\"width:100%; height:auto;\" alt=\"Without Principled BSDF objects may appear flat-lit in the 3D View\" \/><\/a><br \/>\n<i>Without Principled BSDF mesh objects tend to appear flat-lit in the 3D View when using Rendered shading options (top-right) &#8211; shown above for example the main &#8216;brick&#8217; material is flat-lit compared to other objects in the scene, windows, frames, ground etc.<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/materials\/principled-bsdf-material.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/materials\/principled-bsdf-material.jpg\" border=\"0\" width=\"900px\" height=\"500px\" style=\"width:100%; height:auto;\" alt=\"Once the Principle BSDF node is added to the material objects respond to scene lighting and object proximity, they shade and shadow\" \/><\/a><br \/>\n<i>Once a <b>Principled BSDF<\/b> node is dropped into place between <b>Image Texture<\/b> and <b>Material Output<\/b> surfaces assigned the material because more responsive to shading and cast and received shadows.<\/i><\/p>\n<p><video poster=\"\" controls=\"controls\" width=\"100%\" height=\"auto\"><!--<source src=\"\/images\/tutorials\/viewpoint-navigation.mp4\" type=\"video\/mp4\" \/>--><source src=\"https:\/\/www.katsbits.com\/images\/tutorials\/materials\/basic-principled-bsdf.ogg\" type=\"video\/ogg\" \/><source src=\"https:\/\/www.katsbits.com\/images\/tutorials\/materials\/basic-principled-bsdf.webm\" type=\"video\/webm\" \/><\/video><br \/>\n<i>Shown above, the basic steps to add the Principled BSDF node to and existing material, <a href=\"https:\/\/www.katsbits.com\/codex\/material-basics\/\">a simple Image Texture and Material Output material<\/a>, using the Shader Editor (whilst <a href=\"https:\/\/www.katsbits.com\/codex\/blender-basics\/\">using the Shading workspace<\/a>) &#8211; select <strong>Add &raquo; Shader &raquo; Principled BSDF<\/strong>.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"principle-bsdf-specular-normal\"><\/span>Principle BSDF +Specular +Normal<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In practice, to make a basic material that utilises the Principled BSDF node a simple &#8216;next gen&#8217; material can be generated associating a specular image with the <b>Specular<\/b> setting, and a tangent space normal map with <b>Normal<\/b>. To do this, with an instance of the Principled BSDF node between the initial <b>Image Texture<\/b> and <b>Material Output<\/b> nodes (<i>[Image Texture] <b>Color<\/b> \u00bb [Principled BSDF] <b>Base Color<\/b> | <b>BSDF<\/b> \u00bb [Material Output] <b>Surface<\/b><\/i>), add two more Image Texture nodes (<i>Add \u00bb Texture \u00bb Image Texture<\/i>). In one, generate, add or load the specular image, in the other the normal map &#8211; click the <b>Browse image to be linked<\/b> button to assign an already loaded image, the <b>+ New<\/b> button to create a Generated image, or <b>Open<\/b> to load an external bitmap. Each Image Texture node heading\/title will change to reflect the image referenced by the node.<\/p>\n<blockquote><p><b>Design note<\/b>: normal maps may appear inverted when used inside Blender. To fix this invert either\/or\/both the green or red channel in an image editor (typically only one channel needs to be flipped).<\/p><\/blockquote>\n<p>Next add a <b>Normal Map<\/b> node. Click <b>Add<\/b> and select <b>Vector<\/b>, from the list click <b>Normal Map<\/b> &#8211; <b>Add \u00bb Vector \u00bb Normal Map<\/b>. Place this between the Image Texture Node housing the normal map image and Principled BSDF. Check <b>Tangent Space<\/b> is set then link the nodes together; the <b>Normal<\/b> <i>output<\/i> from the Normal Map node [2] links to the <b>Normal<\/b> <i>input<\/i> of Principled BSDF [3], the <b>Color<\/b> <i>output<\/i> from the Image Texture node [1] referencing the normal map connects to the <b>Color<\/b> <i>input<\/i> of Normal Map [2]. For the specular map simply link <b>Color<\/b> <i>output<\/i> from its Image Texture node [1] to the <b>Specular<\/b> <i>input<\/i> of the Principled BSDF node [3].<\/p>\n<blockquote><p><b>Design note<\/b>: the images used to control specular highlights are typically grey-scale but can be coloured or colour tinted depending on the destination\/where meshes\/models are to be used; game engines for example may only permit the use of grey-scale single channel (8 bit) images which Blender should have few issues using (if any).<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/materials\/principled-bsdf-specular-normal.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/materials\/principled-bsdf-specular-normal.jpg\" border=\"0\" width=\"900px\" height=\"500px\" style=\"width:100%; height:auto;\" alt=\"With Principled BSDF specular highlights and normal mapping can be used (bitmap images)\" \/><\/a><br \/>\n<i>Aside from essentially enabling shading and shadows in Rendered mode using the Principled BSDF node also allows for the addition of specular and normal maps (as images in the above). Simply drop in an Image texture node for each bitmap [1], a Normal Map node [2], then link everything together &#8211; specular [1] \u00bb [3], normal map [1] \u00bb [2] \u00bb [3].<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/materials\/principled-bsdf-specular-normal-after.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/materials\/principled-bsdf-specular-normal-after.jpg\" border=\"0\" width=\"900px\" height=\"500px\" style=\"width:100%; height:auto;\" alt=\"Before (left) and after (right) of a basic material using Principled BSDF with specular and normal map controlled using image maps\" \/><\/a><br \/>\n<i>A before (left) and after (right) example of a basic &#8216;brick&#8217; material using Principled BSDF with specular and normal maps controlled using images.<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":767,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,230],"tags":[386,387,103,327,172,388,367,385,389],"class_list":["post-748","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blender","category-tutorials","tag-image-texture","tag-material-output","tag-materials","tag-node-editor","tag-normal-map","tag-principled-bsdf","tag-shader-editor","tag-shaders","tag-specular-map"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/748","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=748"}],"version-history":[{"count":6,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/748\/revisions"}],"predecessor-version":[{"id":5198,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/748\/revisions\/5198"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media\/767"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media?parent=748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/categories?post=748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/tags?post=748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}