improved shader further
This commit is contained in:
@@ -66,18 +66,19 @@ Material:
|
|||||||
- _Glossiness: 0.5
|
- _Glossiness: 0.5
|
||||||
- _GlossyReflections: 1
|
- _GlossyReflections: 1
|
||||||
- _Metallic: 0
|
- _Metallic: 0
|
||||||
- _MiddlePoint: 0.6
|
- _MiddlePoint: 0.5
|
||||||
- _Mode: 0
|
- _Mode: 0
|
||||||
- _OcclusionStrength: 1
|
- _OcclusionStrength: 1
|
||||||
- _Parallax: 0.02
|
- _Parallax: 0.02
|
||||||
- _Size: 100
|
- _Size: 100
|
||||||
|
- _SmoothWidth: 0.0001
|
||||||
- _SmoothnessTextureChannel: 0
|
- _SmoothnessTextureChannel: 0
|
||||||
- _SpecularHighlights: 1
|
- _SpecularHighlights: 1
|
||||||
- _SrcBlend: 1
|
- _SrcBlend: 1
|
||||||
- _Step: 5
|
- _Step: 5
|
||||||
- _UVSec: 0
|
- _UVSec: 0
|
||||||
- _WaveScale: 100
|
- _WaveScale: 100
|
||||||
- _Width: 0.001
|
- _Width: 0.0004
|
||||||
- _ZWrite: 1
|
- _ZWrite: 1
|
||||||
m_Colors:
|
m_Colors:
|
||||||
- _Background: {r: 0.3, g: 0.3, b: 0.3, a: 1}
|
- _Background: {r: 0.3, g: 0.3, b: 0.3, a: 1}
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
{
|
{
|
||||||
Properties
|
Properties
|
||||||
{
|
{
|
||||||
_Width("Width", Range(0.0001,0.05)) = 0.001
|
_Width("Width", Range(0.00001,0.05)) = 0.001
|
||||||
|
_SmoothWidth("Smooth Width", Range(0.00001,0.05)) = 0.0002
|
||||||
_Size("Object Size", Range(0.01,1000)) = 100
|
_Size("Object Size", Range(0.01,1000)) = 100
|
||||||
_MiddlePoint("Middle Point", Range(0, 1)) = 0.6
|
_MiddlePoint("Middle Point", Range(0, 1)) = 0.6
|
||||||
_Background("Background Color", Color) = (.2, .2, .2, 1)
|
_Background("Background Color", Color) = (.2, .2, .2, 1)
|
||||||
@@ -40,6 +41,14 @@
|
|||||||
|
|
||||||
sampler2D _MainTex;
|
sampler2D _MainTex;
|
||||||
|
|
||||||
|
float _Width;
|
||||||
|
float _SmoothWidth;
|
||||||
|
float _Size;
|
||||||
|
float4 _Background;
|
||||||
|
float _MiddlePoint;
|
||||||
|
float4 _Foreground;
|
||||||
|
int _Step;
|
||||||
|
|
||||||
v2f vert(appdata v)
|
v2f vert(appdata v)
|
||||||
{
|
{
|
||||||
v2f o;
|
v2f o;
|
||||||
@@ -49,37 +58,36 @@
|
|||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
float _Width;
|
float grid(float2 uv, float w, float s)
|
||||||
float _Size;
|
{
|
||||||
float4 _Background;
|
return clamp(1
|
||||||
float _MiddlePoint;
|
- smoothstep(w - _SmoothWidth, w + _SmoothWidth, fmod(uv.x + w * .5, s)) + 1
|
||||||
float4 _Foreground;
|
- smoothstep(w - _SmoothWidth, w + _SmoothWidth, fmod(uv.y + w * .5, s)), 0, 1);
|
||||||
int _Step;
|
}
|
||||||
|
|
||||||
float4 frag(v2f i) : SV_Target
|
float4 frag(v2f i) : SV_Target
|
||||||
{
|
{
|
||||||
float d = length(ObjSpaceViewDir(i.scrPos));
|
float d = length(ObjSpaceViewDir(i.scrPos));
|
||||||
float w = d * _Width;
|
float w = d * _Width;
|
||||||
i.uv *= _Size;
|
|
||||||
|
|
||||||
float k = log(d) / log(_Step);
|
float k = log(d) / log(_Step);
|
||||||
float k0 = floor(k);
|
float k0 = floor(k);
|
||||||
|
|
||||||
float x = d / pow(_Step, k0);
|
float x = d / pow(_Step, k0);
|
||||||
|
|
||||||
float s1 = pow(_Step, k0) * .1 / _Step;
|
float s1 = pow(_Step, k0) * .1 / _Step;
|
||||||
float c1 = clamp(_MiddlePoint * (_Step - x) / (_Step - 1), 0, 1);
|
float c1 = smoothstep(0, 1, _MiddlePoint * (_Step - x) / (_Step - 1));
|
||||||
|
|
||||||
float s2 = s1 * _Step;
|
float s2 = s1 * _Step;
|
||||||
float c2 = clamp((1 - _MiddlePoint) * (_Step - x) / (_Step - 1) + _MiddlePoint, 0, 1);
|
float c2 = smoothstep(0, 1, (1 - _MiddlePoint) * (_Step - x) / (_Step - 1) + _MiddlePoint);
|
||||||
|
|
||||||
float s3 = s2 * _Step;
|
float s3 = s2 * _Step;
|
||||||
|
|
||||||
float2 uv = i.uv;
|
|
||||||
|
|
||||||
float grid1 = clamp(1 - step(w, fmod(uv.x + w * .5, s1)) + 1 - step(w, fmod(uv.y + w * .5, s1)), 0, 1);
|
i.uv *= _Size;
|
||||||
float grid2 = clamp(1 - step(w, fmod(uv.x + w * .5, s2)) + 1 - step(w, fmod(uv.y + w * .5, s2)), 0, 1);
|
|
||||||
float grid3 = clamp(1 - step(w, fmod(uv.x + w * .5, s3)) + 1 - step(w, fmod(uv.y + w * .5, s3)), 0, 1);
|
float grid1 = grid(i.uv, w, s1);
|
||||||
|
float grid2 = grid(i.uv, w, s2);
|
||||||
|
float grid3 = grid(i.uv, w, s3);
|
||||||
grid2 = clamp(grid2 - grid3, 0, 1);
|
grid2 = clamp(grid2 - grid3, 0, 1);
|
||||||
grid1 = clamp(grid1 - grid2, 0, 1);
|
grid1 = clamp(grid1 - grid2, 0, 1);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user