{"id":8373,"date":"2024-02-13T14:00:14","date_gmt":"2024-02-13T14:00:14","guid":{"rendered":"https:\/\/www.katsbits.com\/codex\/?p=8373"},"modified":"2024-02-13T14:00:14","modified_gmt":"2024-02-13T14:00:14","slug":"cycles-transparency","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/codex\/cycles-transparency\/","title":{"rendered":"Cycles, Transparency &#038; Blender 4.x+"},"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-69f95ba9da56e\" 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-69f95ba9da56e\"  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\/cycles-transparency\/#general-changes\" >General Changes<\/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\/cycles-transparency\/#cycles-principled-bsdf-alpha\" >Cycles: Principled BSDF Alpha<\/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\/cycles-transparency\/#cycles-image-based-alpha\" >Cycles: Image Based Alpha<\/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\/cycles-transparency\/#cycles-opacity-map\" >Cycles: Opacity Map<\/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\/cycles-transparency\/#cycles-clip-mask\" >Cycles: Clip Mask<\/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\/cycles-transparency\/#cycles-transparent-bsdf\" >Cycles: Transparent BSDF<\/a><\/li><\/ul><\/nav><\/div>\n<p>Blender 4.(x)+ introduces a slight reorganisation of the material system interface. For the most part, while transparency itself remains functionally unchanged, they way each type is set up differs to a small amount from previous versions of Blender (Blender 3.6 and below). Updated for Blender 4.(x)+ then, how materials are created for the different types of transparency in <a href=\"https:\/\/www.katsbits.com\/codex\/render-engine\/\">Cycles render engine<\/a> is outlined below.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"general-changes\"><\/span>General Changes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>As briefly discussed above, Blender 4.(x) introduces a minor update to the interface; material properties and shader effects are essentially collated together by \u2018<em>type<\/em>\u2019 or \u2018<em>likeness<\/em>\u2019. In practice this means for Blender 3.6 or below, <strong>Material Properties<\/strong> <em>lists<\/em> options [1], whereas in Blender 4.0 and above, they are <em>grouped<\/em> [2].<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-material-properties-old.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-material-properties-old.jpg\" alt=\"Listed material options\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Material Properties layout in Blender 3.6 or older &#8211; options are listed [1].<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-material-properties-new.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-material-properties-new.jpg\" alt=\"Grouped material options\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Material Properties layout in Blender 4.(x) and above &#8211; options and settings are grouped [2]<\/i><\/p>\n<p>Similarly, <strong>Shading Workspace<\/strong> is subject to a few minor changes; Principled BSDF for example <em>groups<\/em> effect options [3] by type in Blender 4.(x) rather than <em>listing<\/em> [4] them as is done in Blender 3.6 or older. Menus are also reorganised in the same fashion, options again being <em>grouped<\/em> [5] by &#8216;type&#8217; rather than their being <em>listed<\/em> [6]. None of this affects their functionality, just how they might be accessed.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-shading-layout-new.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-shading-layout-new.jpg\" alt=\"Grouped options in Blender 4.(x)\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>For Blender 4.(x) and newer, material options are grouped in both nodes [3] and menus [5]&#8230;<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-shading-layout-old.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-shading-layout-old.jpg\" alt=\"Listed options in Blender 3.6\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Whereas in Blender 3.6 or older material options are listed in both nodes [4] and menus [6].<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"cycles-principled-bsdf-alpha\"><\/span>Cycles: Principled BSDF Alpha<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The simplest way to set up a transparent material in Blender is to use the <strong>Alpha<\/strong> input property of <strong>Principled BSDF<\/strong>, which then affects the entire material. To set up, ensure the materials <strong>Blend Mode<\/strong> is set appropriately, e.g. <strong>Alpha Blend<\/strong>, then in Principled BSDF change the Alpha value; <strong>0.000<\/strong> for full transparency, <strong>1.000<\/strong> for full opacity (no transparency)<\/p>\n<blockquote style=\"background-color: #fc0; color: #000;\"><p><strong>Important<\/strong>: for <a href=\"https:\/\/www.katsbits.com\/codex\/eevee-transparency\/\">Eevee Blend Mode is in Settings<\/a> as a sub-section of Material Properties, whereas for Cycles <strong>Blend Mode<\/strong> is a sub-section of a sub-section, i.e. <strong>Settings<\/strong> [i] section within <strong>Viewport Display<\/strong> [ii] options &#8211; <strong><em>Material Properties \u00bb Viewport Display \u00bb Settings \u00bb Blend Mode \u00bb [option]<\/em><\/strong>. Note also that fewer <a href=\"https:\/\/www.katsbits.com\/codex\/sort-order\/\">sort issues<\/a> may occur when Cycles is used.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-viewport-display-blend-mode.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-viewport-display-blend-mode.jpg\" alt=\"Blend Mode in Cycles\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Unlike <a href=\"https:\/\/www.katsbits.com\/codex\/eevee-transparency\/\">Eevee<\/a>, for Cycles render engine, <strong>Blend Mode<\/strong> is located in <strong>Settings<\/strong> [i], which is itself inside <strong>Viewport Display<\/strong> [ii] of the selected materials properties (Material Properties).<\/i><\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-principled-alpha.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-principled-alpha.jpg\" alt=\"Principled BSDF 'Alpha' transparency\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Using a very basic material, and with Blend Mode set [7], transparency can be added by using the <strong>Alpha<\/strong> [8] property of <strong>Principled BSDF<\/strong>; changing this then alters the entire material making it more or less transparent or opaque.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"cycles-image-based-alpha\"><\/span>Cycles: Image Based Alpha<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Image-based transparency relies on the inclusion of alpha data with whatever image is being loaded into the Image Texture node; the <strong><em>A<\/em><\/strong> of a typically 24 bit <strong>RGB(<em>A<\/em>)<\/strong> (Red|Green|Blue|<em>Alpha<\/em>)bitmap.<\/p>\n<blockquote><p><strong>Design note<\/strong>: the inclusion of an alpha channel does not make an image 32 bit, it&#8217;s 24 bit &#8211; 8 bit per RGB colour channel &#8211; plus 8 for the alpha. Alpha is not <em>colour<\/em> data.<\/p><\/blockquote>\n<p>To set this up, ensure the materials <strong>Blend Mode<\/strong> [9] is appropriately set, i.e. <strong>Alpha Blend<\/strong>, then in <em>Shading Workspace<\/em> place an <strong>Image Texture<\/strong> node and load in an image that carries alpha channel data. Link <strong>Color<\/strong> output to <strong>Base Color<\/strong> input, and for transparency, connect <strong>Alpha<\/strong> <em>output<\/em> to <strong>Alpha<\/strong> <em>input<\/em> [10] of <strong>Principled BSDF<\/strong>.<\/p>\n<blockquote><p><strong>Design note<\/strong>: for image-based alpha the materials <strong>Blend Mode<\/strong> determines transparencies behaviour; <strong>Alpha Blend<\/strong> and <strong>Alpha Hashed<\/strong> for variable (grey-scale) transparency, <strong>Alpha Clip<\/strong> for transparency that\u2019s defined by a black and white threshold (cf. Alpha Clip below).<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-image-alpha.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-image-alpha.jpg\" alt=\"Image Alpha transparency\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Image based transparency uses alpha channel data that&#8217;s included within an image. With Blend Mode set [9], linking <strong>Alpha<\/strong> output to <strong>Alpha<\/strong> input [10] then defines the materials transparency.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"cycles-opacity-map\"><\/span>Cycles: Opacity Map<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>An easier approach to using &#8216;alpha&#8217; data for transparency is to use an <strong>opacity map<\/strong>. Typically a separate image that&#8217;s essentially transposing alpha channel data to equivalent grey-scale tonal values. When plugged into a material these tones then define the degree to which surfaces appear transparent or opaque &#8211; <em>white = opaque<\/em>, <em>grey = variable transparency<\/em>, <em>black = fully transparent<\/em>.<\/p>\n<blockquote><p><strong>Design note<\/strong>: although opacity maps are often made and saved as a 24 bit images, in use they are typically down-sampled to 8 bit to better correlate with the 8 bit alpha channel data typical of image-based alpha (cf. image alpha above).<\/p><\/blockquote>\n<p>To do this, ensure the materials <strong>Blend Mode<\/strong> [11] is set appropriately, i.e. <strong>Alpha Blend<\/strong>, then in Node Editor (Shading Workspace) add two Image Texture nodes. Link the <strong>Color<\/strong> <em>output<\/em> from one to <strong>Base Color<\/strong> <em>input<\/em> of <strong>Principled BSDF<\/strong> and load in a &#8216;diffuse&#8217; image. This is the image that&#8217;s visible. For the other node, link <strong>Color<\/strong> <em>output<\/em> to the <strong>Alpha<\/strong> <em>input<\/em> [12] of Principle BSDF and load in the separate opacity map. The materials transparency will update, as defined by the opacity map.<\/p>\n<blockquote><p><strong>Design note<\/strong>: generally speaking opacity maps do not include alpha channel data by virtue of what they are, grey-scale images, so the tonal values have to be converted or transposed from &#8216;colour&#8217; into &#8216;alpha&#8217; or transparency. Connecting <strong>Color<\/strong> <em>output<\/em> to <strong>Alpha<\/strong> <em>input<\/em> facilitates this, the material then able to properly interpret colour data as degrees of transparency.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-opacity-map.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-opacity-map.jpg\" alt=\"Opacity Map Cycles\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>An opacity map is generally a separate image used to define the materials transparency, based on Blend Mode [11], and by link to Principled BSDFs <strong>Alpha<\/strong> input [12].<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"cycles-clip-mask\"><\/span>Cycles: Clip Mask<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Transparency based on a <strong>clip or stencil mask<\/strong> is essentially the same image-alpha or opacity map based materials in that transparency is defined by image or alpha data with the exception of the Blend Mode used, <strong>Clip Alpha<\/strong> in this instance. Here a threshold can be set to limit how much of an image is rendered transparent or opaque.<\/p>\n<blockquote><p><strong>Design note<\/strong>: clip masks and stencils typically use black and white images or corresponding alpha\/no alpha data to define what should or should not be transparent, threshold then limits where grey tones that might be present as a consequence of aliasing, render transparent or opaque. This can also be used for full grey-scale images where the threshold effectively &#8216;cuts&#8217; or &#8216;clips&#8217; tonal data, rendering it transparent or opaque appropriately.<\/p><\/blockquote>\n<p>To do this, set up a standard material with Image Texture node and into this load an image that has an alpha channel. Link the Image texture nodes <strong>Color<\/strong> <em>output<\/em> to Principled BSDFs <strong>Base Color<\/strong> <em>input<\/em>, then similarly <strong>Alpha<\/strong> <em>output<\/em> to <strong>Alpha<\/strong> <em>input<\/em> [13]. Next, in Material Properties ensure <strong>Blend Mode<\/strong> is set to <strong>Alpha Clip<\/strong> [14] with an appropriate <strong>Clip Threshold<\/strong> value, typically <strong>0.500<\/strong>. Once set materials will render transparent based on the image and threshold set.<\/p>\n<blockquote><p>Design note: if a separate image is being used to define transparency per an <a href=\"#cycles-opacity-map\">opacity map<\/a> all that needs to be changed is the Blend Mode.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-clip-mask.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-clip-mask.jpg\" alt=\"Clip Mask Transparency\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>A clip mask or stencil like transparent material can be created linking up an image with alpha channel [13] and then setting the overall <strong>Blend Mode<\/strong> to <strong>Alpha Clip<\/strong> [14], with a <strong>Clip Threshold<\/strong> to define how aggressive the delineation is between transparent and opaque pixels.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"cycles-transparent-bsdf\"><\/span>Cycles: Transparent BSDF<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For more complex transparency <strong>Transparent BSDF<\/strong>, in combination with a <strong>Mix Shader<\/strong>, can be used. Added to a material this node pair affords similar behaviour to Principled BSDFs Alpha property; Transparent BSDF essentially enables the effect, Mix Shader, the degree to which the material is then transparent.<\/p>\n<blockquote><p><strong>Design note<\/strong>: the addition of <strong>Transparent BSDF<\/strong> also means the materials overall transparency can be altered independently of any alpha data any images might carry, for example, an image with alpha channel data that defines a mask (Color or Alpha outputs linked to Alpha input) [iii], can be set up to stencil the image itself (see framed text shown below), when linked through a Principle BSDF node and a Mix Shader, can be faded despite the image-alpha [iv], a set up that could be animated to show\/hide the material and image.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-augmented-transparency.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-augmented-transparency.jpg\" alt=\"Augmenting transparency\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Augmenting image-based transparency with Transparent BSDF. Shown above, both cubes used the same image with alpha channel [iii] but one is faded as a consequence of using Transparent BSDF and a Mix Shader [iv].<\/i><\/p><\/blockquote>\n<p>To do this, in Material Properties ensure <strong>Blend Mode<\/strong> [15] is set appropriately, e.g. <strong>Alpha Blend<\/strong>, then in Shading Workspace drop in a <strong>Transparent BSDF<\/strong> and <strong>Mix Shader<\/strong> node, both found in <strong>Add \u00bb Shader \u00bb [node]<\/strong>. Connect the <strong>BSDF<\/strong> <em>outputs<\/em> [16] from Transparent BSDF and Principled BSDF to the <strong>Shader<\/strong> <em>inputs<\/em> of the Mix Shader, one output to one input. Next, link the <strong>Shader<\/strong> <em>output<\/em> from the Mix Shader to the <strong>Surface<\/strong> <em>input<\/em> of the Material Output node. Once everything is linked together the materials overall transparency can then be controlled alter the Mix Shaders Fac value &#8211; <strong>Fac: 0.000<\/strong> for full transparency, <strong>Fac: 1.000<\/strong> for full opacity (zero transparency).<\/p>\n<blockquote style=\"background-color: #fc0; color: #000;\"><p><strong>Important<\/strong>: <em>disconnected any direct link between Principled BSDF and Material Output<\/em>; Principled BSDF should pass through the Mix Shader for this material setup to work correctly.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-transparent-bsdf.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/transparency\/cycles-transparent-bsdf.jpg\" alt=\"Transparent BSDF material\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Transparent BSDF can be used to make a transparent material. Ensure <strong>Blend Mode<\/strong> is set [15] then link <strong>BSDF<\/strong> outputs through the Mix Shader [17]. Altering <strong>Fac<\/strong> can then be used to change the materials transparency.<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":8433,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,230],"tags":[185,453,456,1059,565,307,103,327,834,388,448,220,562],"class_list":["post-8373","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blender","category-tutorials","tag-alpha-mask","tag-alpha-transparency","tag-blend-mode","tag-blender-4-x","tag-cycles","tag-material-properties","tag-materials","tag-node-editor","tag-opacity-mask","tag-principled-bsdf","tag-sort-order","tag-transparency","tag-transparent-bsdf"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/8373","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=8373"}],"version-history":[{"count":37,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/8373\/revisions"}],"predecessor-version":[{"id":8434,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/8373\/revisions\/8434"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media\/8433"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media?parent=8373"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/categories?post=8373"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/tags?post=8373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}