Skin Micro Detail & Tessellation Plug-In

Plugins Skin Micro Detail & Tessellation Plug-In

northern.shikima updated Skin Micro Detail & Tessellation Plug-In with a new update entry:

V4 - Distance Fade

Added a distance fade feature to automatically adjust "Detail Weight" as you get further from the target. This should help with noise when zooming out.

Unfortunately this is based on distance from an atom control instead of distance from the actual vertices. I won't be able to overcome this limitation until I can create my own shader.

Read the rest of this update entry...
 
Hey! Nice plugin!
Is there a possibility that you could add SSS to the mix? That would be awesome! :)

Regarding the distance problem: The ViewScan module in FocusOnMe! measures the distance from the target you are looking at. I could register it so that it could be fetched and read by your plugin.
1705851296328.png
 
Hey! Nice plugin!
Is there a possibility that you could add SSS to the mix? That would be awesome! :)

Regarding the distance problem: The ViewScan module in FocusOnMe! measures the distance from the target you are looking at. I could register it so that it could be fetched and read by your plugin.
View attachment 326132
Thanks! That would probably be more sophisticated than my approach. I want to avoid adding hard dependencies to other plug-ins but I could always make it optional.


On the SSS - This is definitely something I want to do, but it will take writing a custom shader from scratch. Right now I'm just leveraging a shader that was already built into VaM. The trick holding me back is VAM also uses a vertex shader to deform the mesh so I have to recreate that behavior in a custom shader before I can add any custom effects.

Eventually moving to a custom shader will also allow me to compute viewing distance on a per-pixel basis, which would probably be the ultimate way to handle the distance thing.
 
Shaders cannot be pipelined in unity? It's completely unknown for me so maybe it's dumb question.

And another one - I've noticed loss of details on face - is it normal? The plugin is working because breast gain details. But it seems to work opposite for the face...
 
Shaders cannot be pipelined in unity? It's completely unknown for me so maybe it's dumb question.

And another one - I've noticed loss of details on face - is it normal? The plugin is working because breast gain details. But it seems to work opposite for the face...
Shaders can be brought into VaM easily enough, but your character will be stuck in a t-pose because VaM uses a special vertex shader to actually move the character around.

I figured it out this afternoon though, so custom shaders incoming :D

For the loss of detail - The built-in shader blends the detail map with the character's existing normal map. Unfortunately it seems the blend is not an overlay but more of a linear interpolate, so it makes the base normal map weaker.

So if the plugin's detail weight is set to 0.25, you're only getting 75% base normal map strength and 25% detail map. (Rather than 100% base and 25% detail)

What you can do is slightly increase your Specular and Diffuse Bumpiness in VaM's "Skin Materials 2" tab to compensate.
 
for Version 3 , hope this helps.
View attachment 326049
I tried after and for some reason, it worked. I already had the V3, so I ended up downloading the newest right now and I can find them now lol
Go figure.

Also btw, for anyone interested, .tif files are also fine as well to be read, not just .png. I'm using the skin detail from daz and they look really good.
 
A great plugin! Thanks!
In future, would like to have a similar opportunity for texture specular (gloss).🙏
 
northern.shikima updated Skin Micro Detail & Tessellation Plug-In with a new update entry:

V6 - Compatibility with Hunting Succubus SSS Plug-in!

As was much requested by the community, this update makes things compatible with the popular SSS Plug-in.

I've added a "Prevent Shader Overwrite" checkbox in the plug-in settings to have my plug-in constantly check if another plug-in has overwritten the shader, and then switch it back. It's a brute force method but it works.

The compatibility issue was caused because the SSS Plug-in forced all skin to use a specific shader for Tessellation and my plugin required a different shader for...

Read the rest of this update entry...
 
Love this plugin - is it possible to make a version that is a session plugin? Applied to all persons in a scene automatically.
 
A great plugin! Thanks!
In future, would like to have a similar opportunity for texture specular (gloss).🙏
Unfortunately the built in VaM shader only supports micro detail for normal maps.

It won't look as good, but the gloss/specular effect could be accomplished by tiling with a Geoshell like this one.
And then edit the "Tile" settings on the geoshell:
1706020024988.png

Love this plugin - is it possible to make a version that is a session plugin? Applied to all persons in a scene automatically.
I will probably look at this feature next.
 
I figured it out this afternoon though, so custom shaders incoming :D
Nice, would be really great if you could document the vertex shader part.

It would probably be worthwhile to add a texel density map to the shader as well, so that the detail map can be projected with less distortions (applied as tiling factor in shader). The distortion is quite apparent right now, especially on the neck.

Also just as a side note (re: this plugin's description) - normal maps look perfectly fine in VR when used for small details. It can look off for areas where you have an obvious perspective mismatch, so e.g. high to low poly baking needs a bit more geometry to look good in VR in some cases. But for surface level details they work just as good as on the screen, especially for speculars.
 
Nice, would be really great if you could document the vertex shader part.

It would probably be worthwhile to add a texel density map to the shader as well, so that the detail map can be projected with less distortions (applied as tiling factor in shader). The distortion is quite apparent right now, especially on the neck.

Also just as a side note (re: this plugin's description) - normal maps look perfectly fine in VR when used for small details. It can look off for areas where you have an obvious perspective mismatch, so e.g. high to low poly baking needs a bit more geometry to look good in VR in some cases. But for surface level details they work just as good as on the screen, especially for speculars.
I keep meaning to write a guide, but just incase I get hit by a bus tomorrow:

Basically VaM passes in vertex, tangent and normals as compute buffers.

In your shader you just declare them somewhere with these exact names:

Code:
StructuredBuffer<float3> verts;
StructuredBuffer<float3> normals;
StructuredBuffer<float4> tangents;



Vertex part of the shader looks like this:
Code:
v2f vert (appdata v)
{
    v2f o;
    // Here's the VaM magic. Set vertex, normal and tanget according to the passed in ComputeBuffer
    float4 vert;
    vert.xyz = verts[v.id];
    vert.w = 1.0;
    o.vertex = UnityObjectToClipPos(vert);
    o.normal = normals[v.id];
    o.tangent = tangents[v.id];
    // End of magic
    o.uv = TRANSFORM_TEX(v.uv, _MainTex);
    return o;
}

As you need the vertex id to read from the buffers, structs look like this:
Code:
struct appdata
{
    float4 vertex : POSITION;
    float4 tangent : TANGENT;
    float3 normal : NORMAL;
    float2 uv : TEXCOORD0;
    uint id : SV_VertexID;
};


struct v2f
{
    float2 uv : TEXCOORD0;
    float4 vertex : SV_POSITION;
    float3 normal : NORMAL;
    float4 tangent: TANGENT;
};

Then you just bring in the shaders through an asset bundle and C# plug-in.

The texel density map is a great idea. That said I'm still not sure about actually writing a custom skin shader now.

I tried to recreate VaM's shader this week based by reverse engineering decompiled shader code. I figure if don't recreate VaM's lighting model first, any new features would look out of place.

But I got hung up on the lighting. Diffuse is just Lambertian, sure - but VaM's shader does some funky custom stuff with the IBL lighting & GI (like using the glossy value to drive the mipmap level for the IBL texture). so I am kind of stuck on figuring all that out now.
 
Last edited:
Nice, thank you.

VaM's shader does some funky custom stuff with the IBL lighting & GI (like using the glossy value to drive the mipmap level for the IBL texture).
Oh yeah the lighting ... certainly more annoying when you can't just use a shader include.

But using the glossy value to drive the mipmap level isn't that unusual, no? I have been working with URP a lot, and there it's the smoothness/roughness that drives the reflection probe mip level. The idea being that the rougher the surface, the more scattering (->blurrier), and the mip maps give you that basically for free (it does need trilinear filtering to look right though).
 
Nice, thank you.


Oh yeah the lighting ... certainly more annoying when you can't just use a shader include.

But using the glossy value to drive the mipmap level isn't that unusual, no? I have been working with URP a lot, and there it's the smoothness/roughness that drives the reflection probe mip level. The idea being that the rougher the surface, the more scattering (->blurrier), and the mip maps give you that basically for free (it does need trilinear filtering to look right though).
I mean that makes sense and I'm definitely still a novice with writing custom lighting models.

Just the decompiled code is pretty hard to follow at times and the result didn't line up with the IBL examples I could find when folks did use glossy like that.
 
this is great! Is there any possibility of adding a scale slider for the 4 individual UV spaces? Currently, in order to get micro details on the gens to show up, you need to increase the scale to a large size...but then the rest of the body has GIANT skin details XD
 
this is great! Is there any possibility of adding a scale slider for the 4 individual UV spaces? Currently, in order to get micro details on the gens to show up, you need to increase the scale to a large size...but then the rest of the body has GIANT skin details XD
Yes that shouldn't be too hard to do . I'll take a look for next update.
 
1) Why tesselation do not work on Nail? it work on fingers end perfectly yet nail surface is still like octagon :D
2) Does it work with Decal maker?
3) If using with SSS by Hunting, does it matter if SMDT is before SSS on atom plugin list or does not matter? (same for decal maker)
4) Does it work with futa/male body?
PS: Thq its great thing.
 
1) Why tesselation do not work on Nail? it work on fingers end perfectly yet nail surface is still like octagon :D
2) Does it work with Decal maker?
3) If using with SSS by Hunting, does it matter if SMDT is before SSS on atom plugin list or does not matter? (same for decal maker)
4) Does it work with futa/male body?
PS: Thq its great thing.
1) The thing is, nails look very funny if they have skin micro detail (nails are not skin, usually they are smoother and polished, etc). So I left nails material slot untouched. In a future version I could add tessellation to nails without detail normals, but if you're using with Hunting's SSS, his plugin will fix the nails tessellation I think.

2) It should. I believe he uses a RenderTexture instead of changing the skin shader. So they should work together but I did not test it yet.

3) My plug-in should probably come last after SSS. If they are not working together, try clicking reload my plugin.

4) Yes
 
works great! and is it possiable to use 4 different UV sacale and add mask?nail with mico normal looks bad
 
northern.shikima updated Skin Micro Detail & Tessellation Plug-In with a new update entry:

V8 - Bugs, per-material scaling, nail tesselation

Fixed Bugs
  • Detail scale can be modified individually for Gens, Torso, Face and Limbs
  • Fixed a bug that causes gaps to appear between arm and torso material after removing plug-in
  • Removed a benign NullPointerException that shows up in Unity Logs, thanks @everlaster
  • Nails should now be tessellated (Detail maps are not applied to nails though, since they are not skin)
  • Tried to improve handling of appearance preset/character changes
Known...

Read the rest of this update entry...
 
Hi! This looks incredible, great work!
I am using SSS Plugin V7 from Hunting Succubus (loaded as Session Plugin), and yours loaded on Atom and couldn't get it to work correctly.
It appears for a second on the skin and then disappears and revert to the original shader.
I looked for Prevent Shader Overwrite option as you mentioned but I couldn't find it in the plugin settings?
Many thanks in advance for your help!
 
Hi! This looks incredible, great work!
I am using SSS Plugin V7 from Hunting Succubus (loaded as Session Plugin), and yours loaded on Atom and couldn't get it to work correctly.
It appears for a second on the skin and then disappears and revert to the original shader.
I looked for Prevent Shader Overwrite option as you mentioned but I couldn't find it in the plugin settings?
Many thanks in advance for your help!
Make sure you're on the latest version of my plugin (V8), as Prevent Shader Overwrite is pretty new.

I also didn't have the time to test with every version of Hunting's SSS plugin unfortunately. You also you might have better luck with the Atom version of the SSS Plugin, as the Session Plugin seemed to be a bit more aggressive with switching shaders when I tested it.

You could also try turning off tessellation in the Hunting Succubus plugin. He's only changing the shaders for tessellation (The SSS is a screen space/post processing effect). Since my plugin does tessellation you don't need his tessellation too.
 
Back
Top Bottom