{"id":10165,"date":"2025-12-28T18:27:26","date_gmt":"2025-12-28T18:27:26","guid":{"rendered":"https:\/\/www.katsbits.com\/codex\/?p=10165"},"modified":"2025-12-28T18:27:26","modified_gmt":"2025-12-28T18:27:26","slug":"bake-vertex-color","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/codex\/bake-vertex-color\/","title":{"rendered":"Bake Vertex Color"},"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-69e774c61632b\" 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-69e774c61632b\"  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-vertex-color\/#description\" >Description<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.katsbits.com\/codex\/bake-vertex-color\/#vertex-colour-visibility\" >Vertex Colour Visibility<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.katsbits.com\/codex\/bake-vertex-color\/#vertex-painting-uvs\" >Vertex Painting &#038; UVs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.katsbits.com\/codex\/bake-vertex-color\/#material-node-tree\" >Material Node Tree<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.katsbits.com\/codex\/bake-vertex-color\/#vertex-color-bake\" >Vertex Color Bake<\/a><\/li><\/ul><\/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-vertex-color\/#timestamps\" >Timestamps<\/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:\/\/rumble.com\/embed\/v71dsq8\/?pub=d3lcu\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/center><\/div>\n<h3><span class=\"ez-toc-section\" id=\"description\"><\/span>Description<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Vertex Colors<\/strong> (Vertex Colours) are an alternative way to &#8216;paint&#8217; a mesh. By default however, they are visible in Solid display mode <em>only while <a href=\"https:\/\/www.katsbits.com\/codex\/vertex-painting\/\">Vertex Paint<\/a> is active<\/em>. To see them in Material Preview, Rendered display, or to bake vertex colours painted to a mesh as a distinct image texture, materials need to be set up, or modified, to include a <strong>Color Attribute<\/strong> node.<\/p>\n<p><b>Duration<\/b>: total c. 10 mins hr (00:10:00).<br \/>\n<b>Info<\/b>: 1080p.<br \/>\n<b>Suitability<\/b>: Beginner+.<br \/>\n<b>Source<\/b>: n\/a.<br \/>\n<b>Product ID<\/b>: n\/a.<\/p>\n<blockquote><p><strong>Design note<\/strong>: additional considerations when baking vertex colours in Blender;<\/p>\n<h4><span class=\"ez-toc-section\" id=\"vertex-colour-visibility\"><\/span>Vertex Colour Visibility<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>By default vertex colours are only visible when the viewport is set to display meshes in  <strong>Solid<\/strong> mode [1]. In other words, toggling into <strong>Vertex Paint<\/strong> while <strong>Material Preview<\/strong> or <strong>Rendered<\/strong> display is active, shows no colouring. Similarly, because default painting behaviour occurs in Solid mode, more advanced properties typically associated with a given material, will be ignored in favour of basic options accessible under <strong>Viewport Shading<\/strong>.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/vertex-color\/vertex-color-bake-solid-mode.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/vertex-color\/vertex-color-bake-solid-mode.jpg\" alt=\"Vertex Paint and Solid Display\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Vertex painting is only visible when the viewports display mode is set to Solid [1] which ordinarily renders objects in a grey &#8216;clay&#8217; like material.<\/i><\/p>\n<h4><span class=\"ez-toc-section\" id=\"vertex-painting-uvs\"><\/span>Vertex Painting &#038; UVs<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>As a consequence of how vertex painting works and what vertex colour is actually doing, objects do not need in of themselves, to be UV unwrapped or mapped, no UVMap datablock [2] is necessary, because &#8216;mapping&#8217;, where colour is painted or appears, is expressly determined by <em>mesh structure<\/em>. This means UVs [3] are not explicitly needed for an object to be painted, or appear &#8216;textured&#8217;. Similarly, this also means material assignments are not strictly needed either, the data that describes colour is stored as an attribute of the Vertex element.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/vertex-color\/vertex-color-bake-no-uvs.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/vertex-color\/vertex-color-bake-no-uvs.jpg\" alt=\"UVs not necessary for vertex painting\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Vertex painting doesn&#8217;t require objects be UV unwrapped or UV mapped [2], no UVs are needed [3] because colour is a &#8216;value&#8217; property associated with individual vertices.<\/i><\/p>\n<h4><span class=\"ez-toc-section\" id=\"material-node-tree\"><\/span>Material Node Tree<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>To bake vertex colours to an image they need to be visible to the Scene (display modes) and Bake system. This means a material must be assigned to the vertex painted mesh and tweaked to facilitate this. To do this, select the vertex painted mesh and assign a material (existing or now). In <strong>Shading Workspace<\/strong>, with mesh still selected to expose the Node tree, drop in a <strong>Color Attribute<\/strong> node from the <strong>Input<\/strong> submenu of <strong>Add<\/strong> &#8211; <strong><em>Add \u00bb Input \u00bb Color Attribute<\/em><\/strong>. The &#8216;attribute&#8217; value for this should default to the existing entry, initially <strong>Attribute<\/strong> (can be renamed) [4], in the <strong>Color Attribute<\/strong> datablock [5]. If not click the input field and assign. This node then effectively replaces what would ordinarily be the Image Texture node assigned to Base Color of Principled BSDF.<\/p>\n<div style=\"background-color: #fc0; color: #000; width: 98.5%; padding: 1.0em;\"><strong>Important<\/strong>: as of <strong>Blender 3.0<\/strong> the vertex colour datablock shown in <strong>Color Attributes<\/strong> (formally <strong>Vertex Colors<\/strong>) is named &#8220;<strong>Attribute<\/strong>&#8221; not &#8220;<strong>Col<\/strong>&#8220;. This can be changed where needed by double-clicking the entry and typing a new name &#8211; material node assignments may need to be manually updated to correctly reference the re-named datablock.<\/div>\n<p><\/p>\n<div style=\"background-color: #dedede; color: #000; width: 98.5%; padding: 1.0em;\"><strong>Aside<\/strong>: for Texture Baking, vertex colours are typically painted to the high-resolution mesh, the object from which colour and surface property data is usually baked &#8211; the material won&#8217;t specifically need to be any more complex in-of-itself other than enabling the display of vertex colours, i.e. using the modified material and\/or switching to Material Preview or Rendered display mode &#8211; vertex colour doesn&#8217;t appear in Solid mode regardless.<\/div>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/vertex-color\/vertex-color-bake-attribute.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/vertex-color\/vertex-color-bake-attribute.jpg\" alt=\"Color Attribute node\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Adding a Color Attribute node [4], which should default to the active datablock in Color Attributes [5], once connected to Principled BSDF, will then display the vertex colouring painted to the mesh.<\/i><\/p>\n<h4><span class=\"ez-toc-section\" id=\"vertex-color-bake\"><\/span>Vertex Color Bake<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Once vertex colour is visible to display and render, <a href=\"https:\/\/www.katsbits.com\/codex\/tag\/texture-bake\/\">Texture Bake<\/a> can be used in the normal way to bake, in this instance, the Diffuse image map. Switching to <strong>Cycles<\/strong> engine, expand <strong>Bake<\/strong> options and set <strong>Bake Type<\/strong> to <strong>Diffuse<\/strong> &#8211; if <em>colour only<\/em> is to be captured, i.e. no shadows or shading, disable <strong>Direct<\/strong> and <strong>Indirect<\/strong> light influence under <strong>Contributions<\/strong>.<\/p>\n<div style=\"background-color: #dedede; color: #000; width: 98.5%; padding: 1.0em;\"><strong>Aside<\/strong>: although vertex colours are being baked in this instance, subject to the exact properties associated with the material &#8211; Roughness, Metallic etc., the presence of vertex colours won&#8217;t interfere with baking or rendering other map types, e.g. normal maps.<\/div>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/vertex-color\/vertex-color-bake-diffuse.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/vertex-color\/vertex-color-bake-diffuse.jpg\" alt=\"Texture Bake Diffuse to capture colour\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>To capture, or bake down, vertex color it needs to be Baked as a Diffuse map. To ensure just colour is captured disable <strong>Direct<\/strong> and <strong>Indirect<\/strong> [6] light influences over the render then <a href=\"https:\/\/www.katsbits.com\/codex\/tag\/texture-bake\/\">Bake<\/a> as is normally done when using Bake.<\/i>\n<\/p><\/blockquote>\n<h3><span class=\"ez-toc-section\" id=\"timestamps\"><\/span>Timestamps<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Times are approximate;<br \/>\n&#8211; 00:00 : Node Tree<br \/>\n&#8211; 04:00 : Vertex Bake<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":10198,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,237,230],"tags":[697,1133,1068,1059,1130,565,162,386,777,388,177,696,655,734,635,908,907],"class_list":["post-10165","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blender","category-misc3d","category-tutorials","tag-bake","tag-base","tag-blender-3-x","tag-blender-4-x","tag-blender-5-x","tag-cycles","tag-diffuse","tag-image-texture","tag-material-nodes","tag-principled-bsdf","tag-render","tag-texture-bake","tag-uv-editing","tag-uv-mapping","tag-uv-unwrapping","tag-vertex-color","tag-vertex-paint"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/10165","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=10165"}],"version-history":[{"count":20,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/10165\/revisions"}],"predecessor-version":[{"id":10207,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/10165\/revisions\/10207"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media\/10198"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media?parent=10165"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/categories?post=10165"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/tags?post=10165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}