Skip to main content

1.16.0 – 1.16.1

1.16.1 - 2026-09-20​

  • Fixed: the Surface tab showed the last action performed anywhere in the tool. Applying a palette filled the shadow mask section with a property-by-property log of every material it had touched. That log has nothing to do with masking, and no one reads it. Each section now reports only its own work.
  • Mask whole slot and Clear mask now report what they did. Previously, neither reported anything, so after masking a garment the section still showed an old "Material attached." message.

1.16.0 - 2026-09-20​

  • Applying moves every Poiyomi material to Multilayer Math, regardless of its lighting type. That is the only type the tool can write a complete shadow to: three colours, each with its own border and blur. On any other type, a material received a single shadow tint at best, and nothing on Flat, Cloth, ShadeMap or PBR. Flat failed quietly: it is the shader default, so a material no one had configured ignored every palette written to it.
  • The Match Poiyomi to Multilayer Math switch is gone, so the move is no longer optional. The switch shipped off, so projects that had saved that setting kept a lighting type the palette could not reach, making Apply look as if it did nothing. Revert still restores the lighting type and its keyword.
  • Materials that should not reflect no longer do. Fabric, denim, knit, lace, fur, suede, velvet, stone, wood, rubber, stockings and emissive are marked as not needing reflection; applying turns reflection off instead of writing a faint one. Metals, glass, gemstone, liquid, ceramic, latex, vinyl, pearlescent, eyes, nails, silk, satin, plastic and leather are marked as needing reflection and receive it. Skin and hair remain as the author set them.
  • Fixed: the highlight colour ignored material type, making light fabric appear white. It used Highlight Strength alone, without the per-type factor applied to the backlight and outline colours in the adjacent rows. The type table affected only the numbers, not the colour. A coloured fabric brightened by as much as bare metal, and an already bright colour clamped at the ceiling.
  • Fourteen material types never set a highlight strength and inherited full. Silk, satin, nails, teeth, eyes, ceramic, pearlescent, latex, vinyl, glass, gemstone, liquid and painted metal were all written at maximum gloss. Each has a value now. A type that still says nothing takes 0.35 instead of 1.0. Bare metal stays at full. It is the one material that should.
  • Fixed: highlight width was driven by highlight strength. Asking for a weaker highlight also asked for a rougher surface, so the highlight spread across the whole material instead of shrinking. A coloured fabric was written at 0.12 smoothness—the roughest value lilToon allows—and its highlight faintly covered everything. It looked like a white wash, not cloth.
  • Every material type now has its own smoothness, separate from its highlight strength. Fur stays at 0.1 and fabric at 0.18. Latex stays at 0.85 and bare metal at 0.95. Highlight Strength changes how much, not how far.
  • Specular highlights are realistic where the material needs them, rather than using a toon step on every material. When Specular Toon is on, lilToon steps the highlight into a hard blob. That suits skin, hair and cloth, but removes the quality that makes metal, satin or gemstone read as itself. Metals, glass, gemstone, liquid, ceramic, latex, vinyl, pearlescent, eyes, nails, silk, satin and plastic keep the highlight's shape; everything else keeps the step. This is a material-type property, not a matter of degree: Highlight Strength changes the highlight's strength, never its kind.
  • When a material already has a reflection, its reflection colour is set too. Poiyomi 11 keeps reflection and specular tints in the Reflections and Specular sections, as well as Clear Coat. These default to white, so a material using either section reflected the environment without a tint, regardless of the palette. The tool writes both tints in each section that is already on, without turning either section on. The colour is the base colour mixed into the highlight according to the type's metallicity. A metal tints what it reflects with its own colour; a dielectric barely does. The shader applies the same rule to its own F0.
  • The tool now turns features on or off based on material type instead of asking which ones to turn on. Every type already had a recommendation for backlight and outline, but neither was being read. Skin recommends backlight but not outline; bare metal and rubber recommend neither; hair and denim recommend both. Recommended features turn on; features marked Not Recommended turn off. Turning features off is new: previously, the tool could only turn them on, so features a material did not need kept rendering.
  • The four Turn on when applying switches are gone, replaced by one: Also turn off features the type is neutral about. It is off by default, so when a type has no recommendation, the material's current state is left unchanged.
  • The outline uses the material's own base texture, so the line follows the art instead of appearing as one flat colour. lilToon and Poiyomi both have an outline texture slot that samples white when empty, and the tool had been writing an outline colour to materials whose outline had nothing to vary it. The copied texture includes its tiling and offset; without them, the line would not align with what it outlines. An outline texture already chosen by someone is left alone. Revert restores the slot.
  • Fixed: generated normals looked faceted and stepped for two reasons. Unity's default block compression produced visible 4x4 blocks on gently sloped normals. Generated textures are now written at high quality, and No compression disables compression entirely where memory allows. Also, the height used to measure slopes was smoothed with a box blur. Because a box blur averages a hard-edged square, it leaves plateaus that step into each other instead of sloping. It is now Gaussian-smoothed.
  • The texture-derived normal has a new Smoothing setting. An albedo carries compression noise one texel wide, and measuring a slope across that turns every artefact into a bump. The brightness is smoothed before any slope is taken, a little by default.
  • Texture-derived normals now read the mesh too. They stop at UV island edges instead of extending past an island and drawing a line along the seam. The mirrored half of the avatar is flipped so it no longer lights backwards. Relief is evened out between tightly packed and stretched islands, then bled past each island so seams do not look like creases.
  • Fixed: the normal and the detail normal came out identical, whatever they were generated from. Both wrote the same file name, so the second overwrote the first and both slots pointed at the file that remained.
  • Surface can build a normal map from the material's own texture instead of a pattern chosen by material type. Folds, seams, stitching and panel lines painted into the albedo become relief that a repeating tile cannot capture. Strength, Detail radius and Invert are the controls, and their values are remembered. Because brightness is read as height, a merely dark-painted area becomes a groove; the tooltip says so. If a texture has no local variation, the tool reports that and writes nothing, leaving the procedural pattern in place.
  • Normal tiling matched to a target's UV density is now capped between one quarter and four times the selected material's tiling. Exact matching is right in principle, but a body with badly stretched UVs got tiling so fine that the grain disappeared at normal viewing distance; skin already damps its normal to 0.15. A capped target is marked in its row instead of silently using a different value.
  • A baked occlusion map now captures seams and stitch lines painted into the texture, as well as shapes cast by the mesh. A ray bake cannot see details smaller than a triangle, and the texture cannot see beyond itself. Since a material can hold only one occlusion texture, both are written to that texture.
  • Surface can bake ambient occlusion for a Poiyomi material. Rays are cast from the selected surface toward every renderer on the avatar, so a collar darkens the neck beneath it and a chin darkens the throat. Shadow colour cannot do that because neither mesh knows about the other. The controls are Samples, AO strength and Bake the current pose. When that switch is off, the bake uses the rest pose. The bake can be cancelled.
  • lilToon materials can bake ambient occlusion. The tool had been told that lilToon has no ambient occlusion texture. That was wrong. lilToon takes one through the slot its own inspector labels AO Map.
  • Surface can bake a Lighting Ramp for a Poiyomi material that has one. The lit-to-shadow gradient shown in Colour is written to a 512x4 texture, which Poiyomi's TextureRamp lighting type shades through. Fabric or skin that needs a softer or sharper falloff than three discrete steps can get it without giving up colour control. Physically based lighting types remove that control.
  • Surface is now organised by function. Texture Kit had grown into four unrelated tools under one title: the matcap and normal rows driven by material type, building a normal from a texture, baking occlusion and baking the lighting ramp. A divider was the only separation. Each tool now has its own named group, a line explaining its purpose and a button.
  • Those lines are written for the panel, not borrowed from elsewhere. The occlusion and normal blocks had been using their own tooltip text as body copy, repeating the same sentence and leaving the tab as a wall of words without explanation.
  • The status line moved out of the Texture Kit box to the bottom of the tab. It reports on whichever of those four you just used.
  • Every texture section shows, side by side and with labels, what will be made and what the material currently contains, rather than a single unlabelled thumbnail. Occlusion and the lighting ramp had no preview at all.
  • Fixed: in a short or docked panel, the apply bar collapsed and its contents were drawn outside it. Apply appeared above its own bar and over the page, the channel dropdown was squashed to three pixels, and the status line fell below the bottom edge. In a 300px-tall window, the bar had 30px for 57px of content. Every strip around the page could shrink by default, so they all gave way at once instead of the scrolling area alone. Now only the scrolling area shrinks.
  • The toolbar, header, tab strip and apply bar now each have a distinct shade instead of four variations only a few levels apart. The window reads as separate areas at a glance.
  • Fixed: the toolbar, header, tab strip and apply bar had no background. The window looked like a flat sheet with loose controls, and the tabs no longer looked like tabs. The stylesheet requested --unity-colors-toolbar, a variable Unity does not define. An unknown variable resolves to transparent without an error or warning. Those strips now use variable names Unity defines.
  • Internal only; no visible change. The switch that puts a Poiyomi material into Multilayer Math now carries a destination instead of a yes-or-no value, so a second destination can be added without reworking it. Existing settings are carried over.