1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
Shader "Hidden/SamplerNode"
{
Properties
{
_B ("_UVs", 2D) = "white" {}
_C ("_Level", 2D) = "white" {}
_F ("_NormalScale", 2D) = "white" {}
_CustomUVs ("_CustomUVs", Int) = 0
_Unpack ("_Unpack", Int) = 0
_LodType ("_LodType", Int) = 0
_Sampler ("_Sampler", 2D) = "white" {}
_Sampler3D ("_Sampler3D", 3D) = "white" {}
_Array ("_Array", 2DArray) = "white" {}
_Cube( "_Cube", CUBE) = "white" {}
_Default ("_Default", Int) = 0
_Type ("_Type", Int) = 0
}
SubShader
{
Pass
{
CGPROGRAM
#pragma vertex vert_img
#pragma fragment frag
#pragma exclude_renderers d3d9
#pragma target 3.5
#include "UnityCG.cginc"
#include "UnityStandardUtils.cginc"
sampler2D _F;
int _CustomUVs;
int _Unpack;
int _Default;
float4 frag( v2f_img i ) : SV_Target
{
if( _Default == 1 )
{
return 1;
}
else if( _Default == 2 )
{
return 0;
}
else if( _Default == 3 )
{
return 0.5f;
}
else if( _Default == 4 )
{
float4 h = float4(0.5,0.5,1,1);
if ( _Unpack == 1 )
{
h.rgb = UnpackScaleNormal( h.xxyy, tex2D( _F, i.uv ).r );
}
return h;
}
return 1;
}
ENDCG
}
Pass
{
CGPROGRAM
#pragma vertex vert_img
#pragma fragment frag
#pragma exclude_renderers d3d9
#pragma target 3.5
#include "UnityCG.cginc"
#include "UnityStandardUtils.cginc"
sampler2D _B;
sampler2D _C;
sampler2D _F;
int _CustomUVs;
int _Unpack;
int _LodType;
UNITY_DECLARE_TEX2DARRAY (_Array);
samplerCUBE _Cube;
sampler2D _Sampler;
sampler3D _Sampler3D;
int _Type;
float4 frag (v2f_img i) : SV_Target
{
if (_Type == 4)
{
return UNITY_SAMPLE_TEX2DARRAY (_Array, float3(i.uv, 0));
}
else if (_Type == 3)
{
float3 uvs = float3(i.uv,0);
if (_CustomUVs == 1)
uvs = tex2D (_B, i.uv).xyz;
return texCUBE (_Cube, uvs);
}
else if (_Type == 2)
{
return tex3D (_Sampler3D, float3(i.uv,0));
}
else
{
float2 uvs = i.uv;
float4 c = 0;
if (_CustomUVs == 1)
uvs = tex2D (_B, i.uv).xy;
if (_LodType == 1)
{
float lod = tex2D (_C, i.uv).r;
c = tex2Dlod (_Sampler, float4(uvs,0,lod));
}
else if (_LodType == 2)
{
float bias = tex2D (_C, i.uv).r;
c = tex2Dbias (_Sampler, float4(uvs,0,bias));
}
else
{
c = tex2D (_Sampler, uvs);
}
if (_Unpack == 1)
{
float nscale = tex2D (_F, i.uv).r;
c.rgb = UnpackScaleNormal (c, nscale);
}
return c;
}
}
ENDCG
}
}
}
|