forked from cgvr/DeltaVR
deltavr multiplayer 2.0
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
Shader "MixedReality/SelectivePassthroughSoft" {
|
||||
Properties{
|
||||
_MainTex("Texture", 2D) = "white" {}
|
||||
_SoftFade("Soft Fade Distance", Float) = 0.05
|
||||
_Inflation("Inflation", float) = 0
|
||||
}
|
||||
SubShader {
|
||||
Tags{"RenderType" = "Transparent"} LOD 100
|
||||
|
||||
Pass {
|
||||
ZWrite Off
|
||||
BlendOp RevSub, Min
|
||||
Blend Zero One, One OneMinusSrcAlpha
|
||||
|
||||
CGPROGRAM
|
||||
// Upgrade NOTE: excluded shader from DX11; has structs without semantics (struct v2f members
|
||||
// center)
|
||||
//#pragma exclude_renderers d3d11
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct appdata {
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
float3 normal : NORMAL;
|
||||
};
|
||||
|
||||
struct v2f {
|
||||
float2 uv : TEXCOORD0;
|
||||
float4 vertex : SV_POSITION;
|
||||
float2 projPos : TEXCOORD1;
|
||||
float depth : DEPTH;
|
||||
};
|
||||
|
||||
sampler2D _MainTex;
|
||||
sampler2D _CameraDepthTexture;
|
||||
float4 _MainTex_ST;
|
||||
float _SoftFade;
|
||||
float _Inflation;
|
||||
|
||||
v2f vert(appdata v) {
|
||||
v2f o;
|
||||
o.vertex = UnityObjectToClipPos(v.vertex + v.normal * _Inflation);
|
||||
float4 origin = mul(unity_ObjectToWorld, float4(0.0, 0.0, 0.0, 1.0));
|
||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
||||
o.depth = -UnityObjectToViewPos(v.vertex).z * _ProjectionParams.w;
|
||||
o.projPos = (o.vertex.xy / o.vertex.w) * 0.5 + 0.5;
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag(v2f i) : SV_Target {
|
||||
// get a linear & normalized (0-1) depth value of the scene
|
||||
float frameDepth = Linear01Depth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.projPos.xy));
|
||||
// convert the normalized value to world units, with depth of 0 at this mesh
|
||||
frameDepth = (frameDepth - i.depth) * _ProjectionParams.z;
|
||||
// remap it to a fade distance
|
||||
frameDepth = saturate(frameDepth / _SoftFade);
|
||||
fixed4 col = tex2D(_MainTex, i.uv);
|
||||
return float4(0, 0, 0, 1-(col.r * frameDepth));
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user