summaryrefslogtreecommitdiff
path: root/VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_Poicludes.cginc
diff options
context:
space:
mode:
authortylermurphy534 <tylermurphy534@gmail.com>2022-11-06 15:12:42 -0500
committertylermurphy534 <tylermurphy534@gmail.com>2022-11-06 15:12:42 -0500
commiteb84bb298d2b95aec7b2ae12cbf25ac64f25379a (patch)
treeefd616a157df06ab661c6d56651853431ac6b08b /VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_Poicludes.cginc
downloadunityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.gz
unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.bz2
unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.zip
move to self host
Diffstat (limited to 'VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_Poicludes.cginc')
-rw-r--r--VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_Poicludes.cginc176
1 files changed, 176 insertions, 0 deletions
diff --git a/VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_Poicludes.cginc b/VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_Poicludes.cginc
new file mode 100644
index 00000000..f6128639
--- /dev/null
+++ b/VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_Poicludes.cginc
@@ -0,0 +1,176 @@
+#ifndef POICLUDES
+ #define POICLUDES
+
+ UNITY_DECLARE_TEX2D(_MainTex); float4 _MainTex_ST; float4 _MainTex_TexelSize;
+ sampler2D _PoiGrab;
+ float _Clip;
+ float _AlphaMod;
+
+ //Structs
+ struct appdata
+ {
+ float4 vertex: POSITION;
+ float3 normal: NORMAL;
+ float4 tangent: TANGENT;
+ float4 color: COLOR;
+ float2 uv0: TEXCOORD0;
+ float2 uv1: TEXCOORD1;
+ float2 uv2: TEXCOORD2;
+ float2 uv3: TEXCOORD3;
+ UNITY_VERTEX_INPUT_INSTANCE_ID
+ };
+
+
+
+ #ifdef OUTLINE
+ float _LineWidth;
+ float _OutlineEmission;
+ float4 _LineColor;
+ sampler2D _OutlineTexture; float4 _OutlineTexture_ST;
+ float4 _OutlineTexturePan;
+ float4 _OutlineFadeDistance;
+ float4 _OutlineGlobalPan;
+ #endif
+
+ struct PoiLighting
+ {
+ half3 direction;
+ half3 color;
+ fixed attenuation;
+ #if defined(POINT) || defined(SPOT)
+ fixed additiveShadow;
+ #endif
+ half3 directLighting;
+ half3 indirectLighting;
+ half lightMap;
+ half3 rampedLightMap;
+ half3 finalLighting;
+ half3 halfDir;
+ half nDotL;
+ half nDotH;
+ half lDotv;
+ half lDotH;
+ half nDotV;
+ half N0DotV;
+ half diffuseTerm;
+
+ // World normal dot half direction
+ #ifdef POI_VAR_DOTNH
+ half dotNH;
+ #endif
+
+ // Light direction dot half direction
+ #ifdef POI_VAR_DOTLH
+ half dotLH;
+ #endif
+
+ #ifdef VERTEXLIGHT_ON
+ // Non Important Lights
+ float4 vDotNL;
+ float3 vColor[4];
+ float4 vCorrectedDotNL;
+ float4 vAttenuation;
+ float4 vAttenuationDotNL;
+ float3 vPosition[4];
+ float3 vDirection[4];
+ float3 vFinalLighting;
+ float3 vHalfDir[4];
+
+ #ifdef POI_VAR_DOTLH
+ half4 vDotLH;
+ #endif
+
+ #ifdef POI_VAR_DOTNH
+ half4 vDotNH;
+ #endif
+
+ #endif
+ };
+
+ struct PoiCamera
+ {
+ half3 viewDir;
+ half3 tangentViewDir;
+ half3 forwardDir;
+ half3 worldPos;
+ float viewDotNormal;
+ float distanceToModel;
+ float distanceToVert;
+ float3 reflectionDir;
+ float3 vertexReflectionDir;
+ float2 screenUV;
+ float4 clipPos;
+ #if defined(GRAIN)
+ float4 screenPos;
+ #endif
+ float4 grabPos;
+ };
+
+ struct PoiMesh
+ {
+ float3 normals[2];
+ float3 tangent;
+ float3 binormal;
+ float3 localPos;
+ float3 worldPos;
+ float3 modelPos;
+ float3 tangentSpaceNormal;
+ float2 uv[5];
+ float4 vertexColor;
+ fixed3 barycentricCoordinates;
+ #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)
+ float4 lightmapUV;
+ #endif
+ float isFrontFace;
+ #ifdef FUR
+ float furAlpha;
+ #endif
+ };
+
+ struct PoiTangentData
+ {
+ float3x3 tangentTransform;
+ float3x3 tangentToWorld;
+ };
+
+ struct FragmentCommonData
+ {
+ half3 diffColor, specColor;
+ // Note: smoothness & oneMinusReflectivity for optimization purposes, mostly for DX9 SM2.0 level.
+ // Most of the math is being done on these (1-x) values, and that saves a few precious ALU slots.
+ half oneMinusReflectivity, smoothness;
+ float3 normalWorld;
+ float3 eyeVec;
+ half alpha;
+ float3 posWorld;
+
+ #if UNITY_STANDARD_SIMPLE
+ half3 reflUVW;
+ #endif
+
+ #if UNITY_STANDARD_SIMPLE
+ half3 tangentSpaceNormal;
+ #endif
+ };
+
+ struct Debug
+ {
+ float debug1;
+ float2 debug2;
+ float3 debug3;
+ float4 debug4;
+ };
+
+ static Debug debug;
+ static PoiLighting poiLight;
+ static PoiCamera poiCam;
+ static PoiMesh poiMesh;
+ static UnityGI gi;
+ static FragmentCommonData s;
+ static PoiTangentData poiTData;
+ float4 finalColor;
+ float3 finalEmission;
+ float4 mainTexture;
+ float4 albedo;
+
+#endif