improved shader further

This commit is contained in:
klemek
2020-12-11 15:55:39 +01:00
parent ca1160cb7e
commit 4be88ada03
3 changed files with 39 additions and 18 deletions
+3 -2
View File
@@ -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}
+24 -16
View File
@@ -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);
Executable
+12
View File
@@ -0,0 +1,12 @@
TODO
-(0) mux/demux
-(0) gates into game objects
-(1) snap to grid
-(1) button gates
-(2) named anchors
-(3) overlay to drag &drop new gates
-(3) same but to destroy gates
-(3) generic rect gates
-(3) state gates
-(5) cable management
-(5) buses