{"id":4216,"date":"2021-03-02T18:13:55","date_gmt":"2021-03-02T18:13:55","guid":{"rendered":"https:\/\/www.katsbits.com\/codex\/?p=4216"},"modified":"2023-09-07T15:51:26","modified_gmt":"2023-09-07T14:51:26","slug":"nanomesh","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/codex\/nanomesh\/","title":{"rendered":"Creating a &#8216;Nanomesh&#8217; in Blender"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 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-6a08fbe5b3f42\" 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-6a08fbe5b3f42\"  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\/nanomesh\/#nanomesh-prep\" >Nanomesh Prep<\/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\/nanomesh\/#modifying-bounds\" >Modifying Bounds<\/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\/nanomesh\/#setting-bounds\" >Setting Bounds<\/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\/nanomesh\/#relative-position\" >Relative position<\/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\/nanomesh\/#materials-uvs\" >Materials &#038; UV&#8217;s<\/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\/nanomesh\/#collada-export-second-life\" >Collada Export &#038; Second Life<\/a><\/li><\/ul><\/nav><\/div>\n<p>In Second Life, IMVU and other virtual games, a &#8220;nanomesh&#8221; is a way to facilitate use of tiny, or &#8216;nano&#8217;, meshes such that they bypass what may otherwise be nominal object size\/scale limitations. In principle nanomeshes work by modifying an objects bounds or bounding box [1] to be larger than the mesh represented [2], when loaded into game and down-scaled, the visible mesh then appears smaller than it might otherwise because its size is wholly relative to the now, larger, modified bounds.<\/p>\n<blockquote style=\"background-color: #fc0; color: #000;\"><p><b>Important<\/b>: nanomeshes can cause significant performance issues because they &#8216;trick&#8217; game engines into rendering content that would otherwise be culled.<\/p><\/blockquote>\n<blockquote style=\"background-color: #ddecf3; color: #000;\"><p><b>Download<\/b>: <a href=\"https:\/\/www.katsbits.com\/files\/second-life\/katsbits - nanomesh.zip\">KatsBits &#8211; nanomesh<\/a> (zip c. 200 KB &#8211; *.dae, *.blend, *.png).<\/p><\/blockquote>\n<blockquote><p><b>Design note<\/b>: typically not visible or rendered, bounding boxes essentially describe the total area occupied by a mesh, useful for defining object dimensions and position in game; Bounds simply represent an occupied volume, they are not an independently editable element of a mesh.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-bounding-boxes.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-bounding-boxes.jpg\" alt=\"Differences between Bounding Boxes\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Bounding Boxes or Bounds relate specifically to the total area occupied by an object and are not an editable element of a mesh. To change the area represented the underlying mesh [1] has to be altered appropriately to increase its size (volume) [2].<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"nanomesh-prep\"><\/span>Nanomesh Prep<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In terms of size and scale, for Blender a nanomesh does not require any particular preparation except ensuring the objects <b>Origin<\/b> is correctly or optimally located, in this context that might be based on the initial bounds of the object. To do this select the object and from the Object menu select <b>Set Origin<\/b> then <b>Origin to Geometry<\/b> from the list of options &#8211; <b><i>Object \u00bb Set Origin \u00bb Origin to Geometry<\/i><\/b>. In the <b>Set Origin<\/b> overlay that appears bottom-left select <b>Bounds Center<\/b> from the drop-down.<\/p>\n<blockquote><p><b>Design note<\/b>: resetting the Origin typically means the mesh is then offset from grid-centre. To address this use <b>Location<\/b> properties in the <b>Sidebar<\/b> (<span class=\"shortcutkey\">N<\/span>) or <b>Object Properties<\/b> to reposition the object based on the new origin &#8211; select the object and in <b>Location<\/b> adjust the <b>X<\/b>, <b>Y<\/b> and <b>Z<\/b> coordinates to read <b>0<\/b> (zero) respectively.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-set-origin.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-set-origin.jpg\" alt=\"Resetting Object Origin point\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>To make sure &#8216;nanomeshes&#8217; work as expected ensure the Origin is set for the game mesh properly [3] before making changed to modify its Bounds &#8211; select the object and from the <b>Object<\/b> menu [4] click <b>Set Origin \u00bb Origin to Geometry<\/b> [5]&#8230;<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-origin-bounds-center.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-origin-bounds-center.jpg\" alt=\"Resetting Object Origin point\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>&#8230; in the <strong>Set Origin<\/strong> overlay chose <b>Bounds Center<\/b> [6] to adjust the Origins location to better represent the mesh [7]. The object can then be reposition grid-centre, 0,0,0.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"modifying-bounds\"><\/span>Modifying Bounds<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Given that the Bounds represent the volume of an object the easiest and most efficient way to modify it is to associate the volume with a larger object within which the nanomesh sits, this way the overall object remains &#8216;valid&#8217; and serves its purpose to accommodate nanomesh down-scaling. <\/p>\n<blockquote style=\"background-color: #fc0; color: #000;\"><p><b>Important<\/b>: while there are exceptions to the rule, decals for example, for meshes to be &#8216;<b>valid<\/b>&#8216; they generally need to be &#8216;closed&#8217; and\/or include nothing but contiguous surfaces, neither missing faces or openings. In this content extending Bounds by strategically positioning isolated, free-standing or detached vertices, edges or faces results in a &#8216;invalid&#8217; structure because they then contain non-relational, start\/terminal points that, computationally, can only be accessed directly rather than as a natural consequence of object defining\/finding edge-flow.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-invalid-open.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-invalid-open.jpg\" alt=\"Open meshes may be invalid\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>While there are exceptions, meshes generally need to be &#8216;closed&#8217; or &#8216;solid&#8217;, that is have no wholes or gaps for easier object\/surface rendering&#8230;<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-invalid-manifold.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-invalid-manifold.jpg\" alt=\"Non-contiguous meshes may be invalid\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>&#8230; similarly meshes should be contiguous, all elements describing a shape should be reachable from another element, else these form termination points that have to be calculated directly and specifically, such as postioning isolated vertices around a core object&#8230;<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-invalid-detached.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-invalid-detached.jpg\" alt=\"Detached meshes may be invalid\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Detached surfaces can also be an issue when used extensively within the same object.<\/i><\/p><\/blockquote>\n<p>The two simplest shapes to use for this are a cube and pyramid. From the <b>Add<\/b> menu then, click <b>Mesh<\/b> [8] then <b>Cube<\/b> [9] &#8211; <b><i>Add \u00bb Mesh \u00bb Cube<\/i><\/b> &#8211; or to add a pyramid select a <b>Cone<\/b> &#8211; <b><i>Add \u00bb Mesh \u00bb Cone<\/i><\/b> &#8211; and in the <b>Add Cone<\/b> overlay [10] set the <b>Vertices<\/b> count to <b>3<\/b> [11].<\/p>\n<blockquote><p><b>Design note<\/b>: when using Cones or other objects whose shapes are described by a low number of vertices, the result may not fully encapsulate the game-object; for Bounding Boxes this is generally not an issue because their purpose is to define the boundary rather than have any discernible affect on the game mesh itself.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-add-cube.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-add-cube.jpg\" alt=\"Adding a 'bounds' Cube\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Adding a Cube to modify the bounds of a game mesh &#8211; from the <b>Add<\/b> menu select <b>Cube<\/b> from the <b>Mesh<\/b> menu.<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-add-pyramid.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-add-pyramid.jpg\" alt=\"Adding a 'bounds' Cube\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>To add a pyramid use the <b>Cone<\/b> option [10] and reduce the number of Vertices down to 3 [11]. This places an object into the scene that then defines the same bounding box volume as a cube, but using fewer faces.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"setting-bounds\"><\/span>Setting Bounds<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>With the additional object in place it can be scaled relative to the original before the two are combined using <a href=\"https:\/\/www.katsbits.com\/codex\/join-meshes\/\">Join<\/a> &#8211; select both then press <span class=\"shortcutkey\">Ctrl<\/span> + <span class=\"shortcutkey\">J<\/span>, creating the nanomesh framework that accommodates much smaller scaling that otherwise possible, for example if the game mesh is to be twice as small as its default state in Blender, the bounds object should be twice as large and so on. With this in mind, leaving the game mesh untouched, scale the bounding box object relative to the game mesh holding <span class=\"shortcutkey\">Ctrl<\/span> to snap to increments using the <b>Scale<\/b> tool (<span class=\"shortcutkey\">S<\/span>), or in the <b>Sidebar<\/b> or <b>Object Properties<\/b>, use the <b>X<\/b>, <b>Y<\/b> and <b>Z<\/b> values under <b>Transform<\/b> (Scale).<\/p>\n<blockquote><p><b>Design note<\/b>: once the bounds has been scaled relative to the game mesh applying rotation and scale may be necessary to ensure objects are actual size when used, it ensures subsequent in-game down-scaling is properly proportional. To do this, from the <b>Object<\/b> menu select <b>Apply<\/b> then <b>Rotation &#038; Scale<\/b> to fix the objects dimensions &#8211; <b><i>Object \u00bb Apply \u00bb Rotation &#038; Scale<\/i><\/b>.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-apply.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-apply.jpg\" alt=\"Apply Rotation &#038; Scale\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Once objects have been resized their proportional <b>Scale<\/b> values change [12] so <b>Apply<\/b> needs to be used to reset <b>Rotation &#038; Scale<\/b> &#8211; this essentially fixes the object at its current size so scale reads as &#8216;1.000&#8217; on all axes.<\/i><\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-scale-bounds.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-scale-bounds.jpg\" alt=\"Scaling the boundary box object to size\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Scaling the boundary box object relative to the game mesh before joining the two together, <span>J<\/span>, into a larger object that can be downscaled in-game to create a &#8216;nanomesh&#8217;.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"relative-position\"><\/span>Relative position<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Generally speaking when setting up a nanomesh it should be positioned at bounding box centre-of-mass to ensure uniform scaling along the X, Y and Z axes &#8211; being off-set to one side or a corner may cause uneven scaling depending on the objects point of origin. If in-turn the Origin is offset that typically results in positional issues. As part of the initial set-up then, it&#8217;s relatively important to place the Origin in Blender as described above <i>before<\/i> adding the bounding box object to minimise rotation, scale and positional issues.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-offset-corner-origin.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-offset-corner-origin.jpg\" alt=\"Incorrectly positioned nanomesh\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-offset-corner.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-offset-corner.jpg\" alt=\"Incorrectly positioned mesh\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-offset-centre.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-offset-centre.jpg\" alt=\"Correctly positioned nanomesh\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Positioning the nanomesh effectively so that it can be scaled and positioned reliably, the game mesh positioned at centre-of-mass rather than being offset to one side or the other.<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"materials-uvs\"><\/span>Materials &#038; UV&#8217;s<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Although not strictly necessary for Second Life, the bounding box object should have a separate Material assignment from the game object it surrounds in Blender [16]; once the object is exported (to Collada\/DAE for Second Life), what is then a detached sub-object can be selected and surfaces made fully transparent to &#8216;cull&#8217; it from being rendered. Similarly, while the game object may need to be <a href=\"https:\/\/www.katsbits.com\/codex\/uv-editing\/\">UV unwrapped and mapped<\/a> depending on whether a custom image is being used, the bounding box may not because its to be made fully transparent.<\/p>\n<blockquote><p><b>Design note<\/b>: when exporting, the bounding box and game objects can be joined together to form a single mesh with material-defined sub-objects (select both and from the <b>Object<\/b> menu select <b>Join<\/b> &#8211; <b>Object \u00bb Join<\/b> &#8211; or use <span class=\"shortcutkey\">Ctrl<\/span> + <span class=\"shortcutkey\">J<\/span>), or they can be exported without joining to form an object defined sub-object mesh &#8211; the former is preferable as it loads one mesh into game rather than two.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-materials.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-materials.jpg\" alt=\"Nanomesh Material assignments\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>To ensure the nanomesh is properly editable in-game the bounding box object should have a separate material assignment [16] to the game object (not strictly necessary for Second Life as &#8216;surfaces&#8217;, as detached sub-objects, can be selected and edited).<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"collada-export-second-life\"><\/span>Collada Export &#038; Second Life<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Depending on the objects purpose, to export Join all objects together to form a single unified object with separate materials as described above. Select the the mesh then from the <b>File<\/b> menu click <b>Export<\/b> then <b>Collada (Default) (.dae)<\/b> &#8211; <b><i>File \u00bb Export \u00bb Collada (Default) (.dae)<\/i><\/b>. In the File View the opens enable <b>Selection Only<\/b> under <b>Main<\/b> if the scene or project includes unwanted content, and optionally <b>Apply Modifiers<\/b> and <b>Triangulate<\/b> under <b>Geometry<\/b> [17]. Once imported the object size can be tested [18] and Bounding Box made transparent [19].<\/p>\n<blockquote><p><b>Design note<\/b>: objects animated with Shape Keys will break if Apply Modifiers is enabled at export. In addition if animation is not to be included disabled <b>Armature Options<\/b> (<b>Arm<\/b>) and <b>Include Animations<\/b> (<b>Anim<\/b>), this ensure the *.dae file is clear of extraneous data.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-export-dae.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-export-dae.jpg\" alt=\"Nanomesh Collada export from Blender\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Most settings are optional for Second Life but <b>Selection Only<\/b> and <b>Triangulate<\/b> (set in <b>Geometry<\/b>) [17] should be a minimum to prevent extraneous objects being included in the file, and that the eventual mesh is properly broken down into triangles &#8211; additionally disable all animation settings if objects are not animated.<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-second-life-scale.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-second-life-scale.jpg\" alt=\"Nanomesh Collada export from Blender\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Once imported into Second Life as a *.dae file, edit (right-click the item in the <b>Inventory<\/b> and select <b>Edit<\/b>) and assign to an attachment point to check the items scaling using the <b>X<\/b>, <b>Y<\/b> and <b>Z<\/b> coordinate in <b>Size<\/b> (<b>Object<\/b> options) [18].<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-second-life-transparent.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/second-life\/nanomesh-second-life-transparent.jpg\" alt=\"Nanomesh Collada export from Blender\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>To hide the Bounding box make the corresponding material fully transparent using <b>Transparency<\/b> in the item editor (in <b>Texture<\/b> options) [19].<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":4219,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,38,230],"tags":[769,770,227,226,768,767],"class_list":["post-4216","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blender","category-second-life","category-tutorials","tag-bounding-box","tag-bounds","tag-collada","tag-dae","tag-nanomesh","tag-second-life"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/4216","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=4216"}],"version-history":[{"count":40,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/4216\/revisions"}],"predecessor-version":[{"id":4283,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/4216\/revisions\/4283"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media\/4219"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media?parent=4216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/categories?post=4216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/tags?post=4216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}