stencil portals pass 1 and 2

This commit is contained in:
2023-02-14 11:22:01 +01:00
parent b2c509e9cb
commit 8aa329a055
18 changed files with 2868 additions and 6 deletions

View File

@@ -0,0 +1,30 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: FullScreenDepth
m_Shader: {fileID: 4800000, guid: c42e5c54ac1b498e8368dcc5fd6775ad, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs: []
m_Ints: []
m_Floats:
- _PortalNumber: 1
m_Colors: []
m_BuildTextureStacks: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 782cb59e6f5f438478bdd855cf549ff3
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,43 @@
Shader "Escape Room Engine/FullScreenDepth" {
Properties {
_PortalNumber ("Portal Number", Int) = 1
}
SubShader {
Pass
{
ColorMask 0
Cull Off
ZWrite On
ZTest Always
Stencil
{
Ref [_PortalNumber]
Comp Equal // pass if equal
Pass Keep // keep stencil value
Fail Keep // keep stencil if depth fails
}
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
void vert(appdata_img v, out float4 pos : SV_POSITION)
{
#ifdef UNITY_REVERSED_Z
float far = 0.00001;
#else
float far = 0.99999;
#endif
pos = float4(v.vertex.xy * 2.0, far, 1); // quad xy goes from -0.5 to 0.5, clip space from -1 to 1
}
fixed4 frag() : SV_Target
{
return 0;
}
ENDCG
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: c42e5c54ac1b498e8368dcc5fd6775ad
timeCreated: 1682437235

View File

@@ -0,0 +1,30 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PortalStencil
m_Shader: {fileID: 4800000, guid: 5a680fbeb958dad4fa8edf79e5a609b5, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs: []
m_Ints: []
m_Floats:
- _PortalNumber: 1
m_Colors: []
m_BuildTextureStacks: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f6db0041cc34fe9439de56d5d92c8b8d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,28 @@
Shader "Escape Room Engine/PortalStencil"
{
Properties
{
_PortalNumber ("Portal Number", Int) = 1
}
SubShader
{
Tags
{
"RenderType"="Opaque" "RenderPipeline" = "UniversalPipeline"
}
Pass
{
ColorMask 0
Stencil
{
Ref [_PortalNumber]
Comp Always // always pass
Pass Replace // set stencil value
Fail Keep // keep stencil if depth fails
}
}
}
}

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 5a680fbeb958dad4fa8edf79e5a609b5
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant: