Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[LEGACY] PIDI - Realistic PBR Skin + Eye Shader for Desktop, Mobile & Lightweight SRP!

Discussion in 'Assets and Asset Store' started by IrrSoft, Dec 9, 2017.

  1. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    This asset has been deprecated in favor of PIDI : Advanced Skin Shader 2. Please head over here for more information.


    ORIGINAL POST

    Version 1.9 of PBR Skin & Eye Shader is available now on the Asset Store

    Improvements :


    • Brand new UI design, easier to understand and with helpful links to the online documentation.
    • Improved translucency method for Forward rendering on the Standard Pipeline
    • Added support for LWRP 6.9 in Unity 2019.2. This will be the last update for LWRP so do not expect this asset to work on 2019.3 with Universal RP. Compatibility with LWRP is limited to Unity 2019.1 and 2019.2 only
    • Updated and rewritten sections of the offline documentation

    Changes :

    • Translucency color now behaves more accurately in all pipelines
    • PBR shader variant has become the default one
    • Unity 5.6, 2017.1, 2017.4, 2018.x, 2019.1 and 2019.2 are supported making this our most extensive release yet !

    ORIGINAL POST

    We want to introduce you to our new asset, a Physically Based Skin Shader for Unity 5, compatible with all versions from Unity 5.6 to Unity 2019.2 on Forward, Deferred and Lightweight SRP pipelines!

    Add impressive levels of detail to your human and non-human characters with this high quality PBR based skin shader.

    With support for the latest AAA techniques such as translucency, scattering and wrinkle/expression maps, you can now add a whole new level of realism to your artwork in an easy way.

    The package includes several variants of the same shader for hardware ranging from smartphones to high end desktops.







    With support for the latest AAA techniques such as translucency, scattering, high frequency skin detail maps and wrinkle/expression maps, you can now add a whole new level of realism to your artwork in an easy way.


    Wrinkle maps are especially useful when developing realistic characters, as they allow to add much finer details to the mesh and make the dynamic expressions a lot more believable. Besides, thanks to the included utilities, you can sync them to blendshapes, bones or both to make your animations more realistic than ever before!


    Also included is a dedicated eye shader that will make your characters look even more life-like!


    Real time translucency is also supported and done in a realistic way, based on depth maps depending on the view direction for a more believable result under all circumstances.



    The shader is fairly easy to understand thanks to its clear interface, but it also comes with a full documentation manual including explanations on how to design the different maps for it, including how to integrate the wrinkle and normal maps into a unique Merged Normals map, which greatly optimizes the memory use of this shader. Tools are also provided to merge, generate and easily convert textures and grayscales into maps compatible with the shader's workflow!



    Highly customizable, compatible with all basic unity features including point and spot shadows, well optimized and easy to use. Mobile versions are also included!
    This shader is being used actively in our own game, meaning that it will have continued support and updates as we use it in our own projects as well. Here is a screenshot of the shader in a real-life (WIP) application :





    New features with version 1.2 :

    • New shader variants with support for both forward and deferred shading. The previous shader variants have been marked as "Legacy".
    • New included Eye shader for your characters!
    • New shader variants with support for Lightweight SRP 1.15 on Unity 2018.1 (no vertex lighting, low end version nor tessellation are available on Lightweight)
    • Support for 2 per-instance decal/overlay textures with their own smoothness and specular values.
    • Support for per-instance skin color and smoothness. Give a different look to each character instance even if they are sharing the same material.
    • Support for 12 facial wrinkle regions instead of the 7 from the previous version.
    • Improved lighting methods for forward and highly efficient custom lighting method for deferred (works with ANY deferred shader compatible with Unity's standard shaders)
    • Dynamic wrinkle helpers that automatically track blendshape values.
    • Dynamic wrinkle helpers that automatically track bone positions/rotations
    • New high quality demo assets to showcase the new features.
    • Improved documentation with more extensive tutorials.
    • Map packer, an utility to easily convert, merge and generate skin data maps for this shader from simple grayscale inputs or to upgrade maps from the previous version.
    • Highly improved translucency algorithm.
    • Highly improved lighting on the Mobile (High End) shader
    • Improved look on the Mobile (Low End) shader
    • Fully compatible with PostProcess stacks.


    Changes in version 1.1 :
    • Improved Light warping across all shaders
    • Improved normals' soft factor (Internal)
    • Added 2 new basic and Mobile-friendly (Pixel Shader 2.0 level) variants of the shader with and without support for translucency.
    • Mobile shader (low end version) uses a vertex-lit lighting model for maximum performance
    • Improved performance for all shaders
    • Custom vertex lighting functions on all shaders for better results when exceeding the maximum amount of pixel lights on the scene.

    We hope our assets will help you to create great games. For any questions or doubts, please reply on this thread and we will do our best to answer them all!

    Lightweight SRP lighting demo :

     
    Last edited: Nov 5, 2019
    TaleStorm and cmckelvy like this.
  2. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    This asset is now available on the asset store :)
     
  3. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
  4. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    New update to v 1.1 is now waiting for approval.

    Upcoming features of version 1.1 :
    • Improved Light warping across all shaders
    • Improved normals' soft factor (Internal)
    • Added 2 new basic and Mobile-friendly (Pixel Shader 2.0 level) variants of the shader with and without support for translucency.
    • Mobile shader (low end version) uses a vertex-lit lighting model for maximum performance

     
    Last edited: Jan 19, 2018
  5. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    New update 1.1 is live on the Asset Store!

    It includes improved lighting functions as well as 2 new shaders designed for mobile devices.

    • High end version (Pixel shader 3 level) includes basic translucency + scattering + full PBR
    • Low end version (Pixel shader 2 level) includes scattering and a custom vertex lighting method for maximum performance (1 draw call + shadows if enabled)
     
  6. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    New in version 1.1
    • With the new low end version of the shader (for mobile) and its custom vertex lighting functions, all shaders received a small performance boost and a big quality boost during scenes with many lights since this new shader has become the final fallback for the whole collection of shaders.
     
  7. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
  8. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    We have very exciting news to share with you here. We have been making, for the last few months, extensive rewrites and updates to this Skin Shader to allow it to run on the deferred pipeline.

    After doing this, we ended up with a custom deferred pipeline that supports translucency, subsurface scattering, skin rendering, complex hair and eye shaders, dithered transparency, anisotropic highlights, cloth shading, refractive shading and highly improved point shadows.







    Using it is as simple as assigning it to the Unity inspector under the Graphics/Custom Deferred shader slot. No need to modify libraries, no need to replace any existing shaders in your project, no need to add any scripts to your cameras.

    Just drag and drop, ready to use in less than 2 minutes.

    This system is, however, a lot bigger than just the skin shader and many people only need a skin shader and dont want to replace the built-in deferred system or their own custom systems, which is why we will be selling this as its own asset. We are still deciding over the price, but we have also decided to give any person who purchases the Skin Shader on its own as it exists now in the store a special price for this other tool.

    This tool is still a work in progress, we are polishing it, but right now it works on both DirectX and OpenGL (Linux) without any issues.

    Here is a small demo you can download to see this Alpha version in action :)
     
    Last edited: Mar 2, 2018
  9. ikazrima

    ikazrima

    Joined:
    Feb 11, 2014
    Posts:
    320
    Hey just tested your download and I'm getting a purple screen. Even the unity logo appears in purple.
    upload_2018-3-3_2-34-16.png
     
    IrrSoft likes this.
  10. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Hi there, can you tell me your specs please, and test this alternative download? :)

    https://www.dropbox.com/s/v61z77q3mrayhut/Full DX11.zip?dl=0

    The previous one was compiled on OpenGL so it may be a drivers issue (there is no reason for our asset to make the logos purple since those run well before our own asset even begins working...so it really may be a drivers related issue)

    This new download is compiled for DirectX11 so it should work well.

    Thank you for testing it and letting us know, it is a WIP and we want to polish it as much as possible :)
     
  11. ikazrima

    ikazrima

    Joined:
    Feb 11, 2014
    Posts:
    320
    The DX11 works correctly.

    My specs:
    Win 10
    R9 280
    8gb ram
    i5 3500

    I don't even remember when the last time I updated my drivers :D
     
  12. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    I had the same issue with an old Windows 7 PC I was trying it on a few days ago :D

    Thank you for testing it, it's good to hear that the DX11 version is working without issues :)
     
  13. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    A small demonstration of this skin shader working alongside our deferred system mentioned above for eyes, hair and clothes

    It is an early WIP from a game I'm working on. :)


    The skin shader shown in the video, while working in deferred mode, produces the same results as the one currently in the store :)
     
  14. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    I am considering to add the hair, clothes and eyes shaders (seen in the video above) to this package to turn it into a more complete "Human Character Shaders Pack", for the forward rendering path.

    This would mean a small price raise of around 5-10 dollars, but I am interested in hearing your opinions about it :)
     
    Last edited: Apr 27, 2018
    led_bet likes this.
  15. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Version 1.2 is coming soon and it will be a BIG update to this package. Here are all the planned new features coming in around 2-3 weeks :

    • Support for Lightweight Pipeline (partial support, since several features of this shader are not supported by the pipeline). A comparison table of features in the standard and lightweight versions will
    • Script controller for better management of the facial wrinkles. This will allow you to manipulate the wrinkle maps and expressions of your characters far more easily.
    • Deferred version of the skin shader ( with limited support for translucency and scattering since custom lighting is not supported in deferred )
    • Map Packer. A tool that lets you combine automatically the main normalmap and the wrinkles normalmap into a single texture compatible with this shader.
    • Basic decal support. Add another set of textures to show mud, dirt or blood on your character's skin.
    Thanks for reading!

    EDIT : These features represent a lot of improvements and additions to the original package and they will also take a lot of time to support (especially the new Lightweight SRP port of the shader) so it is almost sure that the package will get a price raise of 5 dollars.

    I am still deciding on this, but remember that no matter when you buy this package you will receive all updates for free regardless of price changes, so if you want to get it at its current price before any raises you still have a couple of weeks to do so and you will still get all updates without any additional charges :)

    Thanks for reading!
     
  16. led_bet

    led_bet

    Joined:
    May 5, 2015
    Posts:
    83
    Cool looking shader! How easy is it to overlay textures for stubble or eyebrows? Is there any shader support for those kinds of textures or makeup etc?

    Thanks!

    Edit:

    Just read about the decal support, does that mean those decals are static access animations? Ie- if the brows move up, will the eye brow hair decal follow the mesh?
     
    IrrSoft likes this.
  17. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Hi there!

    Thanks for your interest in this shader !

    Right now there is no support for decals (which would be used for makeup/eyebrows/stubble) but that is coming on the fast track and might be ready as early next weekend (the update is taking a bit less time than initially expected, I'm just finishing some new demo assets and the Lightweight version). The update however will come with a price raise as described above from 25 to 30 USD.

    In short, the support for those features is not there right now but it is coming between next weekend and May 24 (give or take a few days depending on how long Unity takes to approve the patch, but it is usually 1-3 days ) along the price change :)

    In the upcoming version 1.2 there will be support for only 2 decal maps but it will be improved to support more in future updates :)

    Hope this info helps!
     
    led_bet likes this.
  18. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Hi again,

    I just saw your edit. The decals are managed as additional overlay textures mapped to the mesh either through the primary or secondary UV channels. This means that they will move with the mesh no matter if it is animated or using blendshapes.

    In version 1.2, along this 2 decal maps (or overlay textures) I am running optimization tests to allow additional normal and smoothness maps to be added to match these decals when needed :)

    EDIT : I just wanted to be a little more clear. Since these decals are overlay textures and not additional geometry, if your mesh moves the decals/overlays will move with it, so no worries about the eyebrows or stubble falling out of place :)
     
    led_bet likes this.
  19. led_bet

    led_bet

    Joined:
    May 5, 2015
    Posts:
    83

    Fantastic! I will definitely be picking this up! Thanks for the insight!
     
    IrrSoft likes this.
  20. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    No problem, thank you very much for your interest and for choosing this asset.

    I hope it will be very helpful for your project, and if you have any doubt make sure to contact me and I'll get back to you ASAP ! :)
     
    led_bet likes this.
  21. Wurlox

    Wurlox

    Joined:
    Nov 1, 2015
    Posts:
    50
    Hey @IrrSoft, we already talked via private messages some time ago. I am still in search of a nice skin/hair/eye shader combination and was wondering if your Deferred support still needs to change the shader? I am working with Uber and ATG which already come with one custom shader I can't replace unfortunately.
     
    IrrSoft likes this.
  22. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Hi there,

    Yes, I remember we talked before about the custom deferred renderer I am working on, which is in a way similar to Uber :)

    Unfortunately, I had to scrap all plans to release that renderer since last week we were told by the Unity team that by the end of this year all assets that do not support at the very least the Lightweight pipeline on top of the Standard one might be removed from the store. If that happens, assets such as Uber or any deferred renderer I could make would be taken off as well since Lightweight doesn't support deferred rendering modes :(

    This of course would make all my work on it go to waste in just a few months more. But I found a good compromise :)

    The new deferred version that will be included with this package will work with any number of lights for the standard, exterior lighting and with (at the moment) up to 4 lights for translucency and scattering. This means that the shader will have all the performance advantages of the deferred pipeline WITHOUT needing any additional shaders or any custom renderers. It will work right out of the box with Uber, Lux and even the default Unity deferred renderer while only losing some quality by managing translucency and scattering on only 2-4 lights.

    I am still working on how to set up these lights (statically when building the scene vs dynamically picking up the closest point lights + the main directional ) but this is the best solution I found to provide deferred support out of the box regardless of which renderer any user is using.

    In short : No, the new version with deferred support won't require any specific rendering nor additional shaders. It will work just like any other shader and will be usable with Uber and others, with the small trade-off that translucency and scattering will be somewhat limited compared to the full forward version.

    I hope this clears it up a bit more :)
     
    led_bet likes this.
  23. Wurlox

    Wurlox

    Joined:
    Nov 1, 2015
    Posts:
    50
    That's awesome. You just gained a new potential buyer. :) I am currently testing some skin shading using the translucency shader from Uber. While I get decent results I am not entirely satisfied and would rather get a nice skin shader like yours. Here a wip video with our character: https://drive.google.com/open?id=1LnS1sARbd6lVU5phQvqgWHVjF-WJ4xU3

    Will you also ship your hair/eye shader solutions with the new skin shader or will they be extra packages?

    Finally do you have an estimate on when your skin shader will be ready? We need to check if it is worth waiting for it before we release a showcase of our game.

    Thanks and regards,
    Wurlox
     
    IrrSoft likes this.
  24. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Hi again,

    That's great to hear! :)

    Your character looks very cool, I think our shader will suit it very well! :)

    The eyes and hair shader will most surely be a separate package since it will require its very own shading technique (it will also be compatible with deferred don't worry) and I still need to make the Kajiya Kay-like anisotropic algorithm work with the standard Unity deferred, so I do not want to stall this update because of the hair shader. That package will most surely be available in June (Unity takes around 1 month to approve new packages) as a paid upgrade from this package (around 10-15 dollars for the upgrade).

    The skin shader with support for deferred will be ready as I said above with update 1.2 which will be available around May 19-24 (give or take a couple of days, since the Unity store takes 1-3 days to approve updates). That is, at most, 2 weeks from now :)

    I hope you can get the shader and that it helps you a lot with your project. Have a great weekend! :)
     
    Last edited: May 12, 2018
  25. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516


    Here is the first demonstration video of the deferred version of the shader working on Unity 5.2. It is using the standard deferred pipeline without any changes, plugins nor camera tricks.

    The original skin shaders included in this package are fully visible and usable in the deferred pipeline already, but because of their use of custom lighting they can only be affected by a limited number of per-pixel lights and make additional drawcalls for each light.

    The new fully deferred version is a compromise between performance and quality. Thanks to it being rendered through the deferred pipeline it can support a potentially limitless amount of pixel lights but, since custom lighting is not available, only a very limited amount of lights can produce subsurface scattering and translucency.

    In the video above, the deferred shader has been synced with the main directional light in the scene and supports full scattering and translucency derived from said light.

    I hope you like this small tease of version 1.2, hopefully next tease will be a little look at how things are looking on the Lightweight pipeline! :)

    Have a great weekend!

    EDIT : The model in the video DOES NOT have any diffuse/color maps. It is using only a normal map. All the color and details are derived from the included, default skin maps and shader. Once it is fully textured the results will be much, much better :)
     
    led_bet likes this.
  26. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Still working out some details (and polishing the new PIDI_SkinManager component that will control A LOT of the shader's behavior to make it much faster to render) but here is a preview skin shader v.1.2 running on Unity 2018.1, Lightweight SRP :

    upload_2018-5-14_21-16-7.png

    upload_2018-5-14_21-18-52.png

    I hope you like it ! :)
     
  27. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Here is a second tease of the upcoming lightweight SRP version of the shader as well as of the skin manager component. Right now the UI of the component is partial as it doesn't include the toggles for the different decal-only lighting setups and decal-specific normal+smoothness maps. This is right now actively been worked on :)

    These videos showcase how the lightweight (and the deferred) versions of this shader can interact with up to 4 lights for full translucency and scattering. It also shows how each renderer has full control over the decals that affect it (this allows for multiple instances of the same mesh to share a single material with different decals for each instance).




    As part of the new version of this skin shader, the setup for facial expressions has been reworked from the ground up to allow for up to 12 different wrinkle regions (12 left side, 12 right side) instead of the original 7. This will allow for far greater control over every single detail of your character's faces and, potentially, other body parts that require dynamic wrinkles such as hands during close ups.

    The update will include tools to update your current facial maps and textures to the new system while also including the current shaders (now with basic decal support) as a backup version in case you do not want / need to upgrade your materials :)
     
  28. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Here is a small video demo of the lighting setup as it is looking on the Deferred pipeline :)

     
  29. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Update will be right on time! Right now, I am finishing the last details and updating both the documentation AND the demo assets with a much better, higher quality demo that showcases the full potential of this shader :)


    As expected, v1.2 will be online and ready to download by May 24 (give or take a couple of days for Unity's approval process).

    Remember that this package will also change its price to 30 USD with this new update, so these are its last days at its original 25 dollars price!

    EDIT : The shader used in the picture above is NOT the full quality version, it is the simplified deferred/lightweight version :)
     

    Attached Files:

    Last edited: May 17, 2018
    Mark_01 and Wurlox like this.
  30. Wurlox

    Wurlox

    Joined:
    Nov 1, 2015
    Posts:
    50
    Hey IrrSoft,

    I really like what you showed so far. (especially the last one)

    Can you ellaborate a little of what textures will be needed to get the best quality results in Deferred rendering? If I had a character with albedo, normal, height, ambient occlusion and roughness/metallic maps can I easily generate the needed wrinkle maps from them? Are you also using a thickness map for translucency or how is that handled?

    What I also really like is the integrated Decal System. Will I be able to place decals on any mesh position or is it always for the whole mesh? Would be awesome for tattoos and such and character creation. Is it possible to place decals at runtime?

    I will purchase your shader soon and test if it suits our game.

    Thanks and regards,
    Wurlox
     
    IrrSoft likes this.
  31. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Hi there!

    Thanks for your support, I hope that it will suit your game very well! :)

    The albedo and smoothness maps are bundled together in a single texture, while the translucency, occlusion, specular and micro-skin strength are bundled in another texture. A small utility is provided where you drop your textures and select which channel from each texture to take, and the utility combines them automatically into a final texture compatible with this shader to make the whole process as easy as possible.

    For translucency we use a depth map stored in a single channel. In deferred, real translucency is only partially visible while scattering is fully usable. This means that in the character above for example, the skin will have a very nice soft lighting but the ears, for example, will only be partially translucent under certain lighting types.

    The decals are placed for the whole mesh since they are not geometry based but texture based. They are unwrapped using the UV channels of your model :)

    If a particular offset is needed for each one of those 2 decals, that can be fixed easily on the shader code but that feature is not included right now. Decals can be set up at runtime by accessing the public variables decal0 and decal1 :)

    Wrinkle maps...this is a bit more difficult to explain. Wrinkle maps must be authored in a 3D modelling software in the same way you author your standard normal maps. The usual way that this is done in game productions is to have 3 sculpts of your model : resting face, full frown face and full stretch face. The resting face is baked as the standard normal map, while the full frown and full stretch features are baked into a second normal map.

    These two normal maps are combined using the utility mentioned above into a single normals+wrinkles map. Once this is ready, you create a 4 channels mask (this is much better explained in the documentation) that will split the face of your model into up to 6 regions, each one with a left-right side. This way, with the sliders available in the material/component, you can make a transition between the resting normals and those that have the wrinkles.

    Transitioning like this at runtime allows you to generate high quality animations and simulate facial wrinkles and deformation when a character talks, moves or emotes. This will be showcased more clearly in the next video, which will hopefully be the final version of the new demo! :)

    I hope this helps, but please ask any other doubts you have and I will try to explain in more detail!


    EDIT :

    upload_2018-5-17_13-30-20.png

    From the old manual, here is an example of the three sculpts used for the demo model. Each one has specific wrinkles in different areas of the face. The relaxed state is baked into 1 normal map and the other 2 sculpts are merged into second normal map. Then, the relaxed map and the wrinkles map are merged into a single combined map to reduce the memory footprint of the shader and optimize it as much as possible :)
     
  32. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516

    The utility I mentioned above is similar to this one included on my fur shader, XFur Studio :



    You drop one or more textures, select the kind of data you want to generate from it, and click on Generate Map. Easy, simple and fast :)



    As an important notice though : Materials made for the Forward shader are not a 1:1 match with the Deferred shader. The textures are handled the same and can be shared between the different shaders without any issues, but the specular and smoothness values MUST be adjusted by hand for either rendering pipeline since the deferred shader uses a very special kind of simulated lighting while the forward has a completely custom BRDF lighting model that handles PBR rendering very differently from the standard Unity one.
     
    Wurlox likes this.
  33. Wurlox

    Wurlox

    Joined:
    Nov 1, 2015
    Posts:
    50
    Hey again,

    thanks for the detailed explanation. Sounds really promising so far.

    The generation of texture should be no problem as I could also just use Photoshop to combine the textures for each channel. However it is great that you support this with a tool so its very easy to do.

    For the wrinkle maps, if I understand it correctly, I basically can bake the wrinkles like a normal map from the deformed face, right? I have a fully working face rig for our character: https://i.gyazo.com/60bbc4660e5ef60b4199f1c816435b42.gif

    Of course this character doesn't have that much wrinkles as he is still young but if I understand correct it makes face deformation look a lot better. Looking forward to try this.

    Will I also be able to adjust the smoothness value at runtime to get some kind of wet skin? We are using a system where the character can get wet which is workin for the armor parts already and we also would like to make the skin wet. I think this should be easily doable.

    Keep up the nice work. I will purchase next few days.

    Regards,
    Wurlox
     
    IrrSoft likes this.
  34. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Hi again!

    Yes, all values in this shader can be adjusted at runtime through the Skin manager component either through code, animations or with Events, including skin smoothness, specular, color etc. It is done this way so they can be adjusted per-instance rather than per material, so if you have many enemies sharing the same material you can have each one with a different decal/skin color/wet smoothness without having many different materials.

    About the wrinkle maps, yes, they will help you to make the facial expressions better by simulating real deformation of the skin. The wrinkles map is just a secondary normals map that is dynamically drawn over certain sections of the model to simulate deformation. These transitions are controlled with sliders and must be synced manually to your animations (since the zones and wrinkles are user defined, there is no easy way for me, yet, to make this transitions work in a procedural way ) :)

    Since your character is young there won't be many wrinkles needed, but if you use a monster or an older character then it is recommended to make several sculpts to make those wrinkles really pop out ! :)

    Since you are using a rig (and a very nice facial rig btw!), probably the best way to manage the wrinkles would be to sync them with your facial animations by using Unity's animation curves, but the Skin Manager component will also have several functions and helpers to make the syncing of expressions and dynamic wrinkles much easier anyway, with more functions coming in further updates :)

    Thank you again very much for your support to this tool, I hope it helps you greatly with your project! ! !
     
    Last edited: May 17, 2018
    led_bet likes this.
  35. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Quick update : The improvements and new features to be included with this new version of the PBR Skin shader as well as the support for the new Lightweight pipeline, new demos, tutorials and assets make it WAY bigger than I originally expected. Because of this, the final price of the Skin Shader after the update will be 35 dollars instead of the 30 I mentioned before.

    The eye shader shown in other previous videos WILL be included in the package. It is easy to set up and comes with ready to use textures so you can have your characters ready in less time.

    Here is the (probably) final demo video from the skin shader version 1.2 showing it in action with a much higher quality demo asset than the previous version as well as a very quick tease of how easy it is to set the shader up to work in a scene with complex lighting and PostFX.


    Next post will be a full list of the features, improvements and changes to expect on version 1.2!
     
    Last edited: May 18, 2018
    led_bet likes this.
  36. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Thanks to the new way skin is managed in this version, all three models on this picture are sharing the same material despite having different skin colors, smoothness values and decals :)

    This is a brand new feature from version 1.2 to allow for better character management when, for example, managing multiple enemies that need slight variations.


    Still working on the full features list (since some last minute features are being added!) but it will come later today :)
     
    Mark_01 likes this.
  37. ForceX

    ForceX

    Joined:
    Jun 22, 2010
    Posts:
    1,102
    I just discovered this asset and I am very impressed with what I have seen. More importantly I appreciate your dedication and desire to make this the quality asset that it is. I can tell from this thread that you take great pride in your work, for that you got my support. I look forward to using PIDI skin shader in the very near future.

    Thanks for such a wonderful asset and keep up the fantastic work :)
     
    IrrSoft likes this.
  38. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Thank you very much for your kind words and your support to my work. I really appreciate it a LOT :)

    I've been working on this and other assets for a long while, first for my own projects since with my tiny budget I couldn't afford a lot of things from the store. Now that I'm doing a bit better I've been trying to release them as ready to use and in a more affordable way so maybe they can help and make things easier for other small developers too.

    And since more people are using them and sharing their ideas about what they need and what they want from them, I just want to make sure they are as helpful as possible for all users and that they can be a good tool in their projects, so I really plan to keep improving and supporting these assets for as long as I can :)

    Again, thank you for your kind words and support, they mean a lot, and I hope that this asset will be very useful for your projects too! :)
     
    ForceX likes this.
  39. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Some features are still being ironed out for the release but here is the most recent features list for version 1.2!

    • New shader variants with support for both forward and deferred shading. The previous shader variants have been marked as "Legacy".
    • New shader variants with support for Lightweight SRP 1.15 on Unity 2018.1 (no vertex lighting, low end version nor tessellation are available on Lightweight)
    • Support for 2 per-instance decal/overlay textures with their own smoothness and specular values.
    • Support for per-instance skin color and smoothness. Give a different look to each character instance even if they are sharing the same material.
    • Support for 12 facial wrinkle regions instead of the 7 from the previous version.
    • Improved lighting methods for forward and highly efficient custom lighting method for deferred (works with ANY deferred shader compatible with Unity's standard shaders)
    • Dynamic wrinkle helpers that automatically track blendshape values.
    • Dynamic wrinkle helpers that automatically track bone positions/rotations ( EARLY BETA, MAY BE PUSHED TO 1.3 )
    • New high quality demo assets to showcase the new features.
    • Improved documentation with more extensive tutorials.
    • Map packer, an utility to easily convert, merge and generate skin data maps for this shader from simple grayscale inputs or to upgrade maps from the previous version.
    • Highly improved translucency algorithm.
    • Highly improved lighting on the Mobile (High End) shader
    • Improved look on the Mobile (Low End) shader
    • Fully compatible with PostProcess stacks.

    The package will be sent to the store on May 20 to be available for download around May 24. The final price of the tool after this BIG update will be 35 dollars :)

    IMPORTANT : Please make backups of your current version and remove it from your project before importing the new version. Due to the addition of Lightweight support and the new shader variants, the internal folder structure has changed. You may need to reassign some shaders and you will need to upgrade your facial expression masks to use the features of the new shader variants.
     
    led_bet likes this.
  40. led_bet

    led_bet

    Joined:
    May 5, 2015
    Posts:
    83
    An impressive update! Not having had the chance to tinker with this asset yet, excuse me if this question has already been answered: Is it possible to use the wrinkle fading system with the decal overlays? As in, if I wanted to fade decals over time (like snow flecks/rain hitting the face, tears, blood drying, etc), is that possible? Or within the purview of the asset?

    Thanks again for such an impressive skin solution. I can't wait to incorporate this into my future projects.
     
    IrrSoft likes this.
  41. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Hi there,

    The wrinkles system is specific for the wrinkles map, but each decal has a specific alpha slider that can be used to fade them in and out as needed :)

    For any animated decals (if for example, you need the tears or blood to run down the character's face or body) you would need to switch the textures at runtime (similar to managing a sprite sheet ) so it can look animated. The fading, color, specularity and smoothness can be controlled through sliders in the Skin Manager component and at runtime with the public variables :)

    I am glad to hear you are excited for this update, I hope it will help you a lot with your projects!

    Remember it will be available for download around May 24 :)
     
    led_bet likes this.
  42. led_bet

    led_bet

    Joined:
    May 5, 2015
    Posts:
    83
    Great! Thanks for the insight.
     
    IrrSoft likes this.
  43. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    I'm finishing up the documentation and the dynamic wrinkle helpers mentioned above. What are these?

    The basic concept is that once you have created your wrinkle maps and the facial regions map (the map that defines which zones will have wrinkles) you set up one tracking channel for each of these regions.

    These tracking channels can automatically track either a set of blendshapes or a set of bones. If the blendshapes go towards certain value or the bones move towards certain position/rotation, the wrinkles will start to show up automatically.

    If you set up these tracking channels well, the wrinkles will show up automatically with any facial animation you make.

    In the pic below you can see that I have created tracks for 3 wrinkle regions. These regions are the eyebrows, brow and forehead regions of the face.

    upload_2018-5-19_20-12-30.png

    If I open one of these tracks, you can see their configuration. In this case, they are tracking blendshapes. When the blendshape "Angry" approaches the 100 weight (full weight) both the left and right side of the "eyebrows" region will show the wrinkles

    upload_2018-5-19_20-14-21.png


    Once these trackers are defined, you can change the weight of the blendshape either through animation or directly in the editor and the wrinkles will automatically become visible / invisible according to the weight of the tracked blendshapes! :)

    EDIT : The GIF doesn't show up well in this post, I have no idea why, so here is the link to the gif itself : https://i.imgur.com/xjlbK3g.gif




    The bone tracking feature is currently under heavy work so it might be pushed back for the following update depending on how quickly I can iron it out and properly document it. I'm working on it! :)
     
    led_bet likes this.
  44. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    The dynamic wrinkles automatically synced to bone positions/rotations is ready for version 1.2. As soon as the documentation is updated (in a couple hours more) the package will be sent to the store for approval! :)


    And here is also a small tease of the eye shader included in the package and some of its features. It is a more simple shader than the skin one, but it has many useful features for most games :)


    I hope you all will really like this update, it will be available very soon! :)
     
    led_bet likes this.
  45. Wurlox

    Wurlox

    Joined:
    Nov 1, 2015
    Posts:
    50
    Everything you showed looks really awesome. Just purchased your asset and I am looking forward to using it soon. Will show my results then. :)

    Now if you add a hair shader to this awesomeness it will be epic. I was looking for good hair, eye and skin shaders a long time but yours is the first to impress me a lot.

    Thanks for your efforts and keep up the good work!

    Regards,
    Wurlox
     
    IrrSoft likes this.
  46. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Thank you very much for your purchase and your support to my work. I hope it really will help you in your project a lot!

    I am starting work on a new package that will include both a hair and clothes shader to be released at some point in June-July. It is quite a lot of work since I need to adapt the whole thing to work on any deferred pipeline just like the skin shader, but the very early prototypes I have are turning out well so far :)

    I can't give much details about timelines or prices yet (though you can be sure that it will have a considerable discount for owners of the skin shader, so they can have the full character's shading package at a good affordable price) but I can tell that both geometry (planes/mesh) based hair and cloth shaders (for outfits and semi-translucent cloth pieces) are being worked on! :)

    Again, thank you very much for your support to my work, I look forward to seeing what you will do with this asset! :D
     
    Mark_01 and led_bet like this.
  47. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Version 1.2 has just been sent for approval to the asset store, it should be available for download in 2-5 days :)

    Again, please notice :

    • All the new features like decals, synced wrinkles, per-renderer colors and smoothness, deferred support etc. are included in the NEW shaders, The shaders from version 1.1 are now marked as Legacy and do not support any of the new features. Please upgrade your materials following the instructions in the documentation.
    • Unity 5.2 is no longer supported. Many of the new features only work on Unity 5.4+ so Unity 5.4 is the new minimum version
    • The folder structure of this package has changed completely due to the new files, materials and the folder structure required by the Asset Store when supporting Lightweight SRP. Please remove the asset from your project (and make a backup in case you want to roll back) before adding the new version

    That's all for now, if you have any questions please comment them here and I will reply ASAP! :)
     
  48. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Version 1.2 has just been approved a full day ahead of time ! :D

    Here is the full list of changes :

    • New shader variants with support for both forward and deferred shading. The previous shader variants have been marked as "Legacy".
    • New included Eye shader for your characters!
    • New shader variants with support for Lightweight SRP 1.15 on Unity 2018.1 (no vertex lighting, low end version nor tessellation are available on Lightweight)
    • Support for 2 per-instance decal/overlay textures with their own smoothness and specular values.
    • Support for per-instance skin color and smoothness. Give a different look to each character instance even if they are sharing the same material.
    • Support for 12 facial wrinkle regions instead of the 7 from the previous version.
    • Improved lighting methods for forward and highly efficient custom lighting method for deferred that works with ANY deferred shader compatible with Unity's standard shaders and does not require any additional setup. Limited to 4 full scattering and translucency affected lights.
    • Dynamic wrinkle helpers that automatically track blendshape values. BETA
    • Dynamic wrinkle helpers that automatically track bone positions/rotations. BETA
    • New high quality demo assets to showcase the new features.
    • Improved documentation with more extensive tutorials.
    • Map packer, an utility to easily convert, merge and generate skin data maps for this shader from simple grayscale inputs or to upgrade maps from the previous version.
    • Highly improved translucency algorithm.
    • Highly improved lighting on the Mobile (High End) shader
    • Improved look on the Mobile (Low End) shader
    • Fully compatible with PostProcess stacks.
    • Unity 5.2 support has been dropped due to internal changes in the shader's code.
    • Folder structure has been changed. Please remove and backup the older version before upgrading!

    I hope you all will like this new version and all the massive changes and improvements it represents. If you have any issues with the new version please PM here in Unity or contact me to the support email on support at irreverent-software dot com and I will get back to you ASAP to try to solve them :)

    Have a great day!
     
    Mark_01 and led_bet like this.
  49. Wurlox

    Wurlox

    Joined:
    Nov 1, 2015
    Posts:
    50
    I am currently setting up your skin shader with our character and I already can say this shader will make a whole lot of a difference. I will share some screens when I am done with that. :)

    However I get two errors on Unity 2017.3.0f3:
    Code (CSharp):
    1. PBR Skin_Eye Shader/Source/PIDI_SkinShaderManager.cs(262,34): error CS1501: No overload for method `GetPropertyBlock' takes `2' arguments
    2. PBR Skin_Eye Shader/Source/PIDI_SkinShaderManager.cs(330,34): error CS1501: No overload for method `SetPropertyBlock' takes `2' arguments
    These methods don't have any overloads and take only one value which is the 'MaterialPropertyBlock". The call of the method uses two variables:
    Code (CSharp):
    1. GetComponent<Renderer>().GetPropertyBlock( m, skinMatIndex );
    Where m is the MaterialPropertyBlock and skinMatIndex is the overload that doesn't exist.

    I am wondering if I am save to just remove the second value or if this comes with any problems?

    Thanks and regards,
    Wurlox
     
    IrrSoft likes this.
  50. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,516
    Hi there,

    I am very glad to hear it is starting to work well for you! :)

    About the errors :
    I am issuing a patch right now (since the Material Property Blocks in Unity have changed a LOT across versions) but here are the steps to fix it :

    Change every line that says #if UNITY_2017_1_OR_NEWER to #if UNITY_2018_1_OR_NEWER and that's it, the error will go away :)

    The lines to change are : 176, 244, 261 and 329. I hope this helps and look forward to seeing your results! :D

    EDIT : Do not remove the second value, simply make the change explained above :)

    In most unity versions prior to Unity 2017.4~2018.1 the material property blocks didn't allow for a specific index so in older versions I am using a workaround to set up the properties of the skin material to the specific Skin Material Index you write on the interface. By changing the lines I explained above the script will treat your Unity version as an older version of the Editor and use the much safer workaround instead of trying to use the newer methods :)