mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
[unity] Added zwrite variant of URP Skeleton-OutlineOnly shader. Closes #2676.
This commit is contained in:
parent
cb98ed71bc
commit
5bd3f3aeb9
@ -164,6 +164,7 @@
|
|||||||
- `Universal Render Pipeline/Spine/Skeleton` shader now performs proper alpha-testing when `Depth Write` is enabled, using the existing `Shadow alpha cutoff` parameter.
|
- `Universal Render Pipeline/Spine/Skeleton` shader now performs proper alpha-testing when `Depth Write` is enabled, using the existing `Shadow alpha cutoff` parameter.
|
||||||
- `SkeletonRootMotion` components now provide a public `Initialize()` method which is automatically called when calling `skeletonAnimation.Initialize(true)` to update the necessary skeleton references. If a different root bone shall be used, be sure to set `skeletonRootMotion.rootMotionBoneName` before calling `skeletonAnimation.Initialize(true)`.
|
- `SkeletonRootMotion` components now provide a public `Initialize()` method which is automatically called when calling `skeletonAnimation.Initialize(true)` to update the necessary skeleton references. If a different root bone shall be used, be sure to set `skeletonRootMotion.rootMotionBoneName` before calling `skeletonAnimation.Initialize(true)`.
|
||||||
- Skeleton Mecanim: Added new `Mix Mode` `Match`. When selected, Spine animation weights are calculated to best match the provided Mecanim clip weights. This mix mode is recommended on any layer using blend tree nodes.
|
- Skeleton Mecanim: Added new `Mix Mode` `Match`. When selected, Spine animation weights are calculated to best match the provided Mecanim clip weights. This mix mode is recommended on any layer using blend tree nodes.
|
||||||
|
- URP Shaders: Added `ZWrite` variant of outline shader `Universal Render Pipeline/Spine/Outline/Skeleton-OutlineOnly ZWrite`. Suitable for e.g. depth of field (DoF) effect where writing to the depth buffer is required. Note that for DoF effect, `Render Queue` needs to be set to `Alpha Test`.
|
||||||
|
|
||||||
- **Breaking changes**
|
- **Breaking changes**
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,136 @@
|
|||||||
|
Shader "Universal Render Pipeline/Spine/Outline/Skeleton-OutlineOnly ZWrite" {
|
||||||
|
Properties {
|
||||||
|
_Cutoff ("Depth alpha cutoff", Range(0,1)) = 0.1
|
||||||
|
[NoScaleOffset] _MainTex("Main Texture", 2D) = "black" {}
|
||||||
|
[HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0
|
||||||
|
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default
|
||||||
|
|
||||||
|
// Outline properties are drawn via custom editor.
|
||||||
|
[HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0
|
||||||
|
[HideInInspector][MaterialToggle(_USE_SCREENSPACE_OUTLINE_WIDTH)] _UseScreenSpaceOutlineWidth("Width in Screen Space", Float) = 0
|
||||||
|
[HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1)
|
||||||
|
[HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024
|
||||||
|
[HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25
|
||||||
|
[HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0
|
||||||
|
[HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1
|
||||||
|
[HideInInspector] _OutlineOpaqueAlpha("Opaque Alpha", Range(0,1)) = 1.0
|
||||||
|
[HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader {
|
||||||
|
// Universal Pipeline tag is required. If Universal render pipeline is not set in the graphics settings
|
||||||
|
// this Subshader will fail.
|
||||||
|
Tags { "RenderPipeline" = "UniversalPipeline" "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
|
||||||
|
LOD 100
|
||||||
|
Cull Off
|
||||||
|
ZWrite On
|
||||||
|
Blend One OneMinusSrcAlpha
|
||||||
|
|
||||||
|
Stencil {
|
||||||
|
Ref[_StencilRef]
|
||||||
|
Comp[_StencilComp]
|
||||||
|
Pass Keep
|
||||||
|
}
|
||||||
|
|
||||||
|
Pass {
|
||||||
|
Name "Outline"
|
||||||
|
|
||||||
|
ZWrite On
|
||||||
|
|
||||||
|
HLSLPROGRAM
|
||||||
|
// Required to compile gles 2.0 with standard srp library
|
||||||
|
#pragma prefer_hlslcc gles
|
||||||
|
#pragma exclude_renderers d3d11_9x
|
||||||
|
|
||||||
|
//--------------------------------------
|
||||||
|
// GPU Instancing
|
||||||
|
#pragma multi_compile_instancing
|
||||||
|
|
||||||
|
#pragma vertex vertOutline
|
||||||
|
#pragma fragment fragOutline
|
||||||
|
#pragma shader_feature _ _USE8NEIGHBOURHOOD_ON
|
||||||
|
#pragma shader_feature _ _USE_SCREENSPACE_OUTLINE_WIDTH
|
||||||
|
|
||||||
|
#define USE_URP
|
||||||
|
#define fixed4 half4
|
||||||
|
#define fixed3 half3
|
||||||
|
#define fixed half
|
||||||
|
#define NO_CUTOFF_PARAM
|
||||||
|
#include "../Include/Spine-Input-Outline-URP.hlsl"
|
||||||
|
#include "../Include/Spine-Outline-Pass-URP.hlsl"
|
||||||
|
ENDHLSL
|
||||||
|
}
|
||||||
|
|
||||||
|
Pass
|
||||||
|
{
|
||||||
|
Name "DepthOnly"
|
||||||
|
Tags{"LightMode" = "DepthOnly"}
|
||||||
|
|
||||||
|
ZWrite On
|
||||||
|
ColorMask R
|
||||||
|
Cull Off
|
||||||
|
|
||||||
|
HLSLPROGRAM
|
||||||
|
// Required to compile gles 2.0 with standard srp library
|
||||||
|
#pragma prefer_hlslcc gles
|
||||||
|
#pragma exclude_renderers d3d11_9x
|
||||||
|
|
||||||
|
#pragma vertex DepthOnlyVertex
|
||||||
|
#pragma fragment DepthOnlyFragment
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
// Material Keywords
|
||||||
|
#pragma shader_feature _ALPHATEST_ON
|
||||||
|
#pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
||||||
|
|
||||||
|
//--------------------------------------
|
||||||
|
// GPU Instancing
|
||||||
|
#pragma multi_compile_instancing
|
||||||
|
|
||||||
|
#define USE_URP
|
||||||
|
#define fixed4 half4
|
||||||
|
#define fixed3 half3
|
||||||
|
#define fixed half
|
||||||
|
#include "../Include/Spine-Input-URP.hlsl"
|
||||||
|
#include "../Include/Spine-DepthOnlyPass-URP.hlsl"
|
||||||
|
ENDHLSL
|
||||||
|
}
|
||||||
|
|
||||||
|
// This pass is used when drawing to a _CameraNormalsTexture texture
|
||||||
|
Pass
|
||||||
|
{
|
||||||
|
Name "DepthNormals"
|
||||||
|
Tags{"LightMode" = "DepthNormals"}
|
||||||
|
|
||||||
|
ZWrite On
|
||||||
|
|
||||||
|
HLSLPROGRAM
|
||||||
|
#pragma vertex DepthNormalsVertex
|
||||||
|
#pragma fragment DepthNormalsFragment
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
// Material Keywords
|
||||||
|
#pragma shader_feature _ALPHATEST_ON
|
||||||
|
#pragma shader_feature _ _DOUBLE_SIDED_LIGHTING
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
// Universal Pipeline keywords
|
||||||
|
#pragma multi_compile_fragment _ _WRITE_RENDERING_LAYERS
|
||||||
|
|
||||||
|
//--------------------------------------
|
||||||
|
// GPU Instancing
|
||||||
|
#pragma multi_compile_instancing
|
||||||
|
|
||||||
|
#define USE_URP
|
||||||
|
#define fixed4 half4
|
||||||
|
#define fixed3 half3
|
||||||
|
#define fixed half
|
||||||
|
#include "../Include/Spine-Input-URP.hlsl"
|
||||||
|
#include "../Include/Spine-DepthNormalsPass-URP.hlsl"
|
||||||
|
ENDHLSL
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FallBack "Hidden/InternalErrorShader"
|
||||||
|
CustomEditor "SpineShaderWithOutlineGUI"
|
||||||
|
}
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7ec1933bec5d29c4d8b1bc4a4d24c04c
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -2,7 +2,7 @@
|
|||||||
"name": "com.esotericsoftware.spine.urp-shaders",
|
"name": "com.esotericsoftware.spine.urp-shaders",
|
||||||
"displayName": "Spine Universal RP Shaders",
|
"displayName": "Spine Universal RP Shaders",
|
||||||
"description": "This plugin provides universal render pipeline (URP) shaders for the spine-unity runtime.\n\nPrerequisites:\nIt requires a working installation of the spine-unity runtime, version 4.2.\n(See http://esotericsoftware.com/git/spine-runtimes/spine-unity)",
|
"description": "This plugin provides universal render pipeline (URP) shaders for the spine-unity runtime.\n\nPrerequisites:\nIt requires a working installation of the spine-unity runtime, version 4.2.\n(See http://esotericsoftware.com/git/spine-runtimes/spine-unity)",
|
||||||
"version": "4.2.38",
|
"version": "4.2.39",
|
||||||
"unity": "2019.3",
|
"unity": "2019.3",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Esoteric Software",
|
"name": "Esoteric Software",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user