Skip to content

The project contents contain the code necessary to calculate tension data on inside Unity Shaders. It also contains some other tools like the nodes required to re-create the "Skin" material that you see in the showcase above. The following implementation will work with Rigged Geometry as well as BlendShapes/MorphTargets.

License

Notifications You must be signed in to change notification settings

apilola/tension-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tension-tools

caption

Other Showcases

caption

Overview

The project contents contains the code nessesary to calculate tension data on inside Unity Shaders 3D. It also contains some other tools generic tools required to create the "Skin" material that you see in the showcase above. The following implementation will work with Rigged Geometry as well as BlendShapes/MorphTargets.

Requirements

  • Atleast Unity 2021.3.18f1
  • This Noodle Demo in the showcase above requires the use of the Universal Render Pipeline although the package itself should work in any pipeline

Installation

Edit your package manifest to include this package. Your projects package manifest should be located at YOUR_PROJECT_NAME/Packages/manifest.json

{
    "dependencies": {
        "com.ap.tension-tools": "https://github.com/apilola/tension-tools.git?path=/Packages/com.ap.tension-tools"
    }
}

Known Issues

  • Unity may show warnings for undisposed Compute/Graphics Buffers.
    • Leak detection mode may be toggled through: Toolbar->TensionTools->LeakDetectionMode
    • On my machine, leak detection does not seem to be outputting any stack traces, feedback would be appreciated...

Contents

The following items are contained in the package located at: ./Packages/com.ap.tension-tools

Components:

  • TensionData.cs

ShaderNodes:

  • SampleTension
    • Samples the tension experienced by the mesh provided the renderer has a TensionData component.
  • Subsurface Scattering
    • Calculates subsurface scattering
  • Simple Subsurface
    • Simplifies the process to calculate subsurface scattering but provides less inputs
  • Simple Subsurface GI
    • Same as simple subsurface but applies global illumination
  • Unpack Normal
    • Unpacks a normal map and applys a weight to its intensity.
  • AO-Smoothness-Metalic
    • this node samples a texture and samples their weights.

Shaders

  • Tension Visualizer
    • Used in the Inspector Preview to visualize tension activations in the editor
  • Skin
    • A simple skin shader used in the preview's shader.
Quick Start
  1. Add a 3D model skinned mesh renderer to the scene
  2. Attach a "Tension Data" component to the skinned mesh renderer.
  3. Create a material that uses the shader "ShaderGraph/TensionVisualizer"
  4. Set the skinned mesh renderer to use the newly created material.

About

The project contents contain the code necessary to calculate tension data on inside Unity Shaders. It also contains some other tools like the nodes required to re-create the "Skin" material that you see in the showcase above. The following implementation will work with Rigged Geometry as well as BlendShapes/MorphTargets.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published