{"id":1216,"date":"2019-05-02T02:14:07","date_gmt":"2019-05-02T01:14:07","guid":{"rendered":"https:\/\/www.katsbits.com\/codex\/?p=1216"},"modified":"2023-09-07T15:54:17","modified_gmt":"2023-09-07T14:54:17","slug":"freestyle","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/codex\/freestyle\/","title":{"rendered":"SketchUp Style Outline Renders"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 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-6a1b3ac942937\" 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-6a1b3ac942937\"  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\/freestyle\/#sceneobject-set-up\" >Scene\/Object Set up<\/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\/freestyle\/#enable-freestyle\" >Enable Freestyle<\/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\/freestyle\/#render-outline\" >Render Outline<\/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\/freestyle\/#colourtinted-outline\" >Colour\/Tinted Outline<\/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\/freestyle\/#render-outline-only\" >Render Outline Only<\/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\/freestyle\/#old-blend-files\" >Old *.blend files<\/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\/sSYn5BYTAgA\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/center><\/div>\n<p>For newer versions of Blender, the <i>real-time displaying<\/i> of an objects wireframe in the 3D View is different than <i>off-line rendering<\/i> a wireframe or <i>outline<\/i>. Whilst the first aids meshing, being able to see structure and density at a glance whilst working, the latter can be used to make finished images look like they were rendered in <b>SketchUp<\/b>. This is done using Blenders <b>Freestyle<\/b> rendering option.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"sceneobject-set-up\"><\/span>Scene\/Object Set up<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To render outlines make sure at the very least any object to be rendered has at least a <a href=\"https:\/\/www.katsbits.com\/codex\/material-basics\/\">basic node-based material assigned<\/a> with a <b>Base Color<\/b> (&#8216;diffuse&#8217;) set and scene appropriately lit. As outlines in this context are a rendering post-process a <b>Camera<\/b> entity is also required, positioned relative to the point of view expected of final image output.<\/p>\n<blockquote><p><b>Design note<\/b>: rendering outlines does not specifically require complex node-based materials so a simple assignment with an (optional) diffuse colour will suffice [a] &#8211; all materials have a off-white tint by default that can be changed in the Node Editor.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/outline-basic-material.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/outline-basic-material.jpg\" alt=\"Outline rendering outline can use basic materials\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Rendering and outline around objects is independent of materials but objects should have at least a basic Material assigned to be able to control some aspects of the final render, Diffuse colour in particular<\/i><\/p><\/blockquote>\n<h3><span class=\"ez-toc-section\" id=\"enable-freestyle\"><\/span>Enable Freestyle<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To produce a SketchUp style outline render, once a Scene and objects are prepped, in <b>Render Properties<\/b> [1] click the <i>checkbox<\/i> next to <b>Freestyle<\/b> [2] enabling access to a set of basic options (click the arrow to expand). Here the initial width of the outline can be set changing <b>Line Thickness<\/b> (<b>1.000 px<\/b> being the default, <b>Line Thickness: 1.000 px<\/b>).<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/enable-freestyle.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/enable-freestyle.jpg\" alt=\"Access Render properties and enable Freestyle\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Outline rendering is a setting within <b>Render Properties<\/b> [1] so access the panel and click the checkbox next to <b>Freestyle<\/b> [2] enabling and revealing some basic options, <b>Line Thickness<\/b> in particular.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"render-outline\"><\/span>Render Outline<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>With <b>Freestyle<\/b> now enabled to render the outline press <span class=\"shortcutkey\">F12<\/span> or switch to the <b>Rendering<\/b> Workspace to see the results. The <b>Blender Render<\/b> window will open, or the Rendering viewport will update showing the resulting scene\/image with objects outlined.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/rendered-outline.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/rendered-outline.jpg\" alt=\"Press F12 to render the scene with outlines\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>With the scene set up and <b>Freestyle<\/b> enabled press <b>F12<\/b> to initialise rendering and see the basic result, an outline (black by default) around all objects in the scene (using a simplified, object intersection, occlusion).<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"colourtinted-outline\"><\/span>Colour\/Tinted Outline<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For more control over rendered outlines a set of additional options are available to change the appearance of the line. At it&#8217;s most basic the Freestyle options available in <b>View Layer Properties<\/b> [3] allow the outlines colour to be changed under <b>Freestyle Line Style<\/b> [4]. Here accessing the <b>Color<\/b> options [5] within which the lines <b>Base Color<\/b> [6] can be set clicking the colour sampler and subsequence colour-wheel selection.<\/p>\n<blockquote><p><b>Design note<\/b>: the properties and options available allow for far more sophisticated line work to be rendered from the basics discussed above.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/freestyle-line-colour.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/freestyle-line-colour.jpg\" alt=\"Press F12 to render the scene with outlines\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>To change the outlines colour access <b>View Layer Properties<\/b> [3] and <b>Freestyle Line Style<\/b> [4] options to select the <b>Color<\/b> properties so a <b>Base Color<\/b> [6] can be set.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"render-outline-only\"><\/span>Render Outline Only<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To render objects with just an outline the material assigned to objects can be set up with transparency. To add basic transparency, in <b>Material Properties<\/b> [7], enable <b>Blend Mode<\/b> [8] in Settings and then change the <b>Alpha<\/b> [9] value attributed to the <b>Principled BSDF<\/b> node. Once set up rendering the objects will then show the outline only, the objects being transparent as defined by Alpha.<\/p>\n<blockquote><p><b>Design note<\/b>: there are <a href=\"https:\/\/www.katsbits.com\/codex\/tag\/transparency\/\">several ways to set up transparent materials<\/a> so outline rendering may differ accordingly.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/outline-only.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/outline-only.jpg\" alt=\"Setting up a basic transparent material\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/outline-only-transparency.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/outline-only-transparency.jpg\" alt=\"Transparent material with outline\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Objects can be rendered in outline only if materials are set up to be transparent. In <b>Material Properties<\/b> [7], make sure <b>Blend Mode<\/b> [8] is appropriately set and <b>Alpha<\/b> [9] adjusted as required before (re)rendering.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"old-blend-files\"><\/span>Old *.blend files<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>As a consequence of changes to Blenders rendering and material systems loading old or legacy *.blend files set up to produce SketchUp style outlined renders initially won&#8217;t work &#8211; all the settings and options included in the file will likely be available but not necessarily updated for use in Blender. In this situation what&#8217;s likely missing is a <b>Freestyle Line Set<\/b>, the datablock that holds all the attributes of an given outline.<\/p>\n<blockquote><p><b>Design note<\/b>: when loading old *.blend files disable <b>Load UI<\/b> in <b>Open Blender File<\/b> settings bottom-left to utilise Blenders interface &#8211; for truly old files, pre Blender 2.49, loading legacy interface data may cause issues so it&#8217;s preferably to disable this information.<\/p><\/blockquote>\n<p>Access <b>View Layer<\/b> Properties [1] and in the <b>Freestyle Line Set<\/b> subsection [2] click the <b>+<\/b> (plus) button [3] to the right of the lineset aperture. A new entry will appear, titled <b>LineSet<\/b> by default, accompanied by a new group of settings and options below, pressing <span class=\"shortcutkey\">F12<\/span> now will include a basic outline in the render per the properties set\/used.<\/p>\n<blockquote><p><b>Design note<\/b>: <b>LineSet<\/b> functions in a similar way to materials in that a Material acts as a container of sorts for associated options and settings.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/outline-lineset.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/outline-lineset.jpg\" alt=\"Legacy .blend files will have a few missing properties\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/legacy-outline-rendered.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/freestyle\/legacy-outline-rendered.jpg\" alt=\"Once a LineSet has been added outlines will be rendered\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>For legacy SketchUp style rendering projects it&#8217;s likely the <b>LineSet<\/b> property [2] is not available\/has not been created [3] resulting in no outline during rendering. Add one, click the + button [3], to generate an outline.<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":5172,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,479,230],"tags":[469,476,480,475,177,477,261,478,305],"class_list":["post-1216","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blender","category-sketchup","category-tutorials","tag-blend","tag-freestlye","tag-legacy","tag-outline","tag-render","tag-render-properties","tag-sketchup","tag-view-layer-properties","tag-wireframe"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/1216","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=1216"}],"version-history":[{"count":6,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/1216\/revisions"}],"predecessor-version":[{"id":5174,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/1216\/revisions\/5174"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media\/5172"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media?parent=1216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/categories?post=1216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/tags?post=1216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}