Search Unity

Pre-Integrated Skin Shader - announcements and feedback

Discussion in 'Assets and Asset Store' started by cician, Feb 26, 2013.

?

What should I focus on for next releases

  1. optimizations and mobile

    45 vote(s)
    24.9%
  2. realism

    83 vote(s)
    45.9%
  3. ease of use

    8 vote(s)
    4.4%
  4. just fixes and compatibility, it's awesome as is and you better make a hair shader...

    45 vote(s)
    24.9%
  1. CoderGirlEx

    CoderGirlEx

    Joined:
    Sep 1, 2017
    Posts:
    9
    Transmission is the better version of a depth map.
    You can try to simply use the Knald transmission map as the Depth-Thickness map in Pre-Integrated Skin Shader, but it's not really good.
    Pre-Integrated Skin Shader would have to be updated to allow Transmission maps.
    Unfortunately this asset seems dead, the author doesn't reply here.
     
    Last edited: Sep 20, 2017
    KRGraphics and neoshaman like this.
  2. ceebeee

    ceebeee

    Joined:
    Mar 7, 2017
    Posts:
    395
    He last posted in march, 2017, that's not *that* long ago...
     
  3. d-ralph

    d-ralph

    Joined:
    Sep 11, 2017
    Posts:
    8
    I've switched to Lux Plus. It has an amazing skin shader with detail map. I'm glad I switched over instead of waiting ages for any update here and feel left alone. Also, Lux Plus supports Transmission Maps right away. :))))
     
  4. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    yeah it's pretty dead by now
     
  5. Alvarezmd90

    Alvarezmd90

    Joined:
    Jul 21, 2016
    Posts:
    151
    Yeah, I will move on to Lux too soon I guess.
     
  6. CoderGirlEx

    CoderGirlEx

    Joined:
    Sep 1, 2017
    Posts:
    9
    You need to use Lux Pro to get translucency if that's important to you.
     
  7. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    As much as I love this shader... it works quite well, the lack of updates (and honestly overcomplication from version 1) has kept me away from using it. Once Amplify Shader Editor has the ability to create skin shaders directly in the graph, I won't have to worry about updates any more.
     
  8. chris_nocode

    chris_nocode

    Joined:
    May 22, 2017
    Posts:
    2
    Any chance for PS4 support?
     
  9. Invertex

    Invertex

    Joined:
    Nov 7, 2013
    Posts:
    1,550
    Do you have a Light Probe Proxy Volume setup on the character, with the skin mesh's renderer light probe override set to the LPPV? and that you have a light probe group in your scene that has the indirect illumination baked into it? that's the only way you get indirect illumination on skinned objects
     
  10. cician

    cician

    Joined:
    Dec 10, 2012
    Posts:
    233
    There's no support because I don't have access to console dev kits. That being said it may actually work. Some time ago a user contributed patches so it at least compiled at some point, but I haven't heard anything since.

    Could you please show the settings of the renderer component on the character?
    Does switching the Light Probes setting between "Off" and "Blend probes" change anything?
    Also please try changing "Environment Intensity" under specular to 1. Does the difference in overall brightness lessen compared to Standard Shader?

    Note that the shader doesn't currently support proxy volumes. It actually uses simple per object probes even if you set "Use Proxy Volumes".
     
  11. cician

    cician

    Joined:
    Dec 10, 2012
    Posts:
    233
    Environment Intensity should be kept at 1 for physical correct lighting. I'd change the default, but it would break the compatibility with existing materials.

    If switching light probes to off results in brighter object then it's indeed strange. I'll need more information to pinpoint the issue. Do you use linear rendering?
    Having a minimal scene that reproduces the issue in a clean project would be best.

    p.s.: I see you've plugged the diffuse texture in different slots that are meant for different purposes. You most likely want to keep skin mask unplugged in your case, it serves the purpose to disable skin shading where you don't want it. The "depth" texture is a special texture you need to bake. You may want to unplug it as well in the mean time, until you have one ready.
     
  12. Invertex

    Invertex

    Joined:
    Nov 7, 2013
    Posts:
    1,550
    Yeah I forgot about that. I had actually modified the shader to use the proxy volumes and to have it contribute to the specular a bit too, even though that might not be 100% physically correct, it does help ground the characters in their scene and create a little more appealing result.
     
  13. AcornBringer

    AcornBringer

    Joined:
    Mar 22, 2015
    Posts:
    70
    Hi there!

    I'd like to include some RPG style character customization features in my game such as choosing skin tone. Adjusting the Tint Color parameter inside this shader seems to work well enough but some characters are going to have various patterns on their skin that I would like to independently control. Is there some way I can use this shader to implement that kind of functionality?

    Even though this shader comes with full source code, I don't know enough about shaders at the moment to try and set this up myself but maybe this feature has already been discussed and I could try my hand with some guidance.

    Thanks!
     
  14. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    No you can't

    You could if you had enough knowledge about shader, in this case I inject a new texture and use the channels as mask (the pattern) that I would assign a color (using a multiply) then blend with the diffuse and eventually the skin mask (to prevent the SSS). And I would also add a variable for selection as I would probably use the texture as an atlas. Now not sure if there would be too much data, so I would selectively remove some of the features I don't need.
     
  15. mcmount

    mcmount

    Joined:
    Nov 15, 2015
    Posts:
    83
    This shader can give pretty good results, but taking it to VR is a suicide. It doesn't seem to matter what size your textures are (want from 4k all the way to 32X32 pixels, left rgb and normal maps to 1024px), ditched most of the layers from the shader and got laggy results (with or without GPU instancing). Just out of curiosity, switched back to 4k maps, changed to Unity default shader and boom! supersmooth. Some optimization needed, I hope the author will look into this.
     
  16. Invertex

    Invertex

    Joined:
    Nov 7, 2013
    Posts:
    1,550
    ... Texture size has little impact on performance in general as long as you have the GPU memory to hold it. What matters is how many lights you have affecting the object and how many polys the object is.

    This is a fairly complex shader, so it's a lot more important to manage your polycount and light/shadow passes.
     
  17. SonEvil

    SonEvil

    Joined:
    Jul 29, 2015
    Posts:
    11
    Hi! I load the demo scene and see this, can someone help me fix it? @@
     
    Last edited: May 22, 2018
  18. local306

    local306

    Joined:
    Feb 28, 2016
    Posts:
    155
    I recently picked up this shader asset and it looks amazing! I'm really loving the results.

    I'm working with a character that uses a shell mesh, which is like a slight offset of the base mesh, to add additional effects to the skin dynamically such as battle wounds and scarring.

    Your skin shader looks amazing, but unfortunately I can get it to work with my current project because of the transparency requirement i.e.) the overlapping elements need to be transparent.

    Would it be possible to get a variant of your skin shader made up that supports transparency? Either in the albedo alpha or a single texture channel on it's own works for me.
     
  19. nickyoso1

    nickyoso1

    Joined:
    May 2, 2011
    Posts:
    85
    The author of this asset isn't active on the forums anymore(last activity January 21st), so I would assume that support is no longer being offered by him. You could however try contacting him via e-mail: assetstore@jagiello.it or on twitter: https://twitter.com/ciciocian
    His twitter shows some activity every now and then, so I guess trying there would be your best bet.
     
    local306 likes this.
  20. local306

    local306

    Joined:
    Feb 28, 2016
    Posts:
    155
    Thanks for the info. I will try them another way I suppose.
     
  21. FS9606

    FS9606

    Joined:
    Mar 12, 2015
    Posts:
    21
  22. BroVodo

    BroVodo

    Joined:
    Oct 2, 2012
    Posts:
    52
    It should work as well as any other shader, but you will have to create the extra texture maps (eg in xnormal/knald/blender/mudbox/substance painter/b2m/zbrush/etc). You'd just change, or duplicate and change, the MORPH3D/Content/M3DFemale/Figure/M3DFemale/Materials folder's material assets' shader type from the standard morph3d skin shader to the pre-integrated skin shader.
     
    Last edited: Aug 1, 2018
  23. haibobbbb

    haibobbbb

    Joined:
    Apr 16, 2018
    Posts:
    1
    There was a problem rendering version 1.1 of uinty 2017, and I knew that Version 1.1.1 corrected the problem. How do I get it
    1533894246(1).png
     
    Last edited: Aug 11, 2018
  24. Zergling103

    Zergling103

    Joined:
    Aug 16, 2011
    Posts:
    392
    Hi, I'm trying to add a bit of code to the vertex shader. As a toy example I added code to inflate the vertices along their normal directions in "pss_vert" which appears to be the vertex shader used by every pass. However, this causes issues in that it appears other passes don't have the vertex shader applied:
     

    Attached Files:

  25. Zergling103

    Zergling103

    Joined:
    Aug 16, 2011
    Posts:
    392
    Tried getting a custom shadow caster implemented based on vertShadowCaster and fragShadowCaster and let me tell you, that was a nightmare. Including UnityStandardShadow.cginc causes everything to be defined twice among other endless issues.
     
  26. local306

    local306

    Joined:
    Feb 28, 2016
    Posts:
    155
    I came across an open source asset that allows you to use dual quaternion skinning instead of the default linear interpolation built into Unity: https://bitbucket.org/mr_madcake/dual-quaternion-skinning-for-unity/overview. The result of the dual quaternion method are much better IMO.

    I'm currently trying to get this to work the Pre-Integrated Skin asset. Unfortunately, my shader knowledge isn't the best and I cannot get it to work, even with your instructions (which seem simple enough but I guess I can't figure it out haha). The dual quaternion asset uses a vert shader. I've found what I believe is the right location to add it all. When I play from the editor though (as required for the dual quaternion asset), the mesh squishes down to a plane.

    @cician (or anyone on this forum for that matter), would you be able to help me out with merging the two shaders?
     
  27. mr_madcake

    mr_madcake

    Joined:
    Jul 17, 2017
    Posts:
    94
    the developer of DQ skining here

    i've found a way to make these two shaders compatible through inserting several hooks into the pre-integrated skin shader that can be hidden behind an #ifdef when not needed

    @cician, would you add these if i sent you the code?
     
    Alvarezmd90 likes this.
  28. Vicsha

    Vicsha

    Joined:
    Aug 8, 2017
    Posts:
    6
    Is this active?? It doesn't work in the last version.

    And the links to both examples files and guide are broken.
     
    Last edited: Feb 22, 2019
  29. cician

    cician

    Joined:
    Dec 10, 2012
    Posts:
    233
    @Vicsha If you have some time could you please describe the issues you're having and your setup? Like Unity version, platform and maybe a screenshot.
     
  30. Vicsha

    Vicsha

    Joined:
    Aug 8, 2017
    Posts:
    6
    Cician, I was able to solve the problem of the shader not working. But not another problem, that is the difference between the color between the shadow areas of the character, typically warm because your shader effect, and the projected shadows from Unity, that will ignore the warm tone and will change sharply to a different tone.
    This is more or less evident depending of lighting, but always present. I guess the problems could be disguised with smoother shadows or blending better.
    upload_2019-2-26_13-19-27.png upload_2019-2-26_13-21-9.png
    Obviously when the standard shader is used the shadow and dark areas integrate
    upload_2019-2-26_13-20-14.png upload_2019-2-26_13-21-23.png
     
    Last edited: Feb 26, 2019
  31. Davood_Kharmanzar

    Davood_Kharmanzar

    Joined:
    Sep 20, 2017
    Posts:
    411
    does it working with openGL ES 3.x and Vulkan on Android 5.1 and above?
     
    ina likes this.
  32. ina

    ina

    Joined:
    Nov 15, 2010
    Posts:
    1,085
    ?
     
  33. Alvarezmd90

    Alvarezmd90

    Joined:
    Jul 21, 2016
    Posts:
    151
    You send the code? I'm very interested in this.
     
  34. mr_madcake

    mr_madcake

    Joined:
    Jul 17, 2017
    Posts:
    94
    I have figured how to make your pre-integrated skin shader work with my DQ skinning (forum link). If you send me your code, I believe I can add hooks to make it work with my dq skinning, which can be toggled with an #ifdef.

    I did it quite some time ago and both scripts probably changed a lot since, but the integration is most likely still possible. And you will be able to see what exactly is required for the integration by viewing diffs between the original version and my modified version of your script.

    I must warn you, however, that I am quite busy at the time and I can't predict how long it will take for me to finish the integration.
     
    Alvarezmd90 and local306 like this.
  35. thanhle

    thanhle

    Joined:
    May 2, 2013
    Posts:
    162
    @cician

    How i can use Pre-Integrated Skin Shader for HDRP ?
     
  36. Invertex

    Invertex

    Joined:
    Nov 7, 2013
    Posts:
    1,550
    Converting even a simple shader to HDRP is hard, nevermind one this complex. And there isn't really a need because HDRP comes with a very good skin shader that the pipeline is actually built to handle.
     
  37. thanhle

    thanhle

    Joined:
    May 2, 2013
    Posts:
    162
    OK Thank you !
     
  38. mcmount

    mcmount

    Joined:
    Nov 15, 2015
    Posts:
    83
    Hi, I took a liberty to modify the standard Skin shader, as I needed to have wounds to my characters. As a fast approach, I created a "Fade" float (0-1) and a secondary Diffuse map (_MaintexB). So the victim gets a hit, and the secondary diffuse map kicks in. This is NOT for any accurate hits. It simply fades between 2 textures.

    o.Albedo = PSS_INPUTGAMMACORRECTION(((tex2D(_MainTex, uv).rgb) * _Color.rgb * (1-_Fade)) + (tex2D(_MainTexB, uv).rgb) * _Color.rgb * _Fade);


    If you are looking for how to improve, this might be one path; Add this feature, for example, thinking of roasting a chicken, and add the feature to the other channels.