@@ -23,6 +23,8 @@ class LineMaterial extends MeshStandardMaterial {
23
23
rim : 0.9 ,
24
24
noiseScale : 0.1 ,
25
25
noiseAmplitude : 0.3 ,
26
+ linesNoiseScale : 5 ,
27
+ linesNoiseAmplitude : 0.5 ,
26
28
} ;
27
29
28
30
this . uniforms = {
@@ -37,6 +39,8 @@ class LineMaterial extends MeshStandardMaterial {
37
39
rim : { value : this . params . rim } ,
38
40
noiseScale : { value : this . params . noiseScale } ,
39
41
noiseAmplitude : { value : this . params . noiseAmplitude } ,
42
+ linesNoiseScale : { value : this . params . linesNoiseScale } ,
43
+ linesNoiseAmplitude : { value : this . params . linesNoiseAmplitude } ,
40
44
} ;
41
45
42
46
this . onBeforeCompile = ( shader , renderer ) => {
@@ -75,7 +79,9 @@ class LineMaterial extends MeshStandardMaterial {
75
79
uniform float rim;
76
80
uniform float noiseScale;
77
81
uniform float noiseAmplitude;
78
-
82
+ uniform float linesNoiseScale;
83
+ uniform float linesNoiseAmplitude;
84
+
79
85
in vec3 vPosition;
80
86
in vec2 vCoords;
81
87
in vec4 vWorldPosition;
@@ -160,7 +166,7 @@ class LineMaterial extends MeshStandardMaterial {
160
166
// float de = length(vec2(dFdx(vWorldPosition.x), dFdy(vWorldPosition.y)));
161
167
float de = .001 * length(vec2(dFdx(gl_FragCoord.x), dFdy(gl_FragCoord.y)));
162
168
float e = .1 * de;
163
- vec2 coords = scale*100.*vWorldPosition.xy/(de*500.);
169
+ vec2 coords = scale*100.*( vWorldPosition.xy/(de*500.)) + linesNoiseAmplitude * noise(linesNoiseScale*vWorldPosition.xy );
164
170
165
171
float border = pow(smoothstep(0.,.25, r), rim);
166
172
l *= border;
@@ -200,6 +206,12 @@ function generateParams(gui, material) {
200
206
gui
201
207
. add ( params , "scale" , 0.1 , 3 , 0.001 )
202
208
. onChange ( ( v ) => ( material . uniforms . scale . value = v ) ) ;
209
+ gui
210
+ . add ( params , "linesNoiseScale" , 0 , 20 , 0.1 )
211
+ . onChange ( ( v ) => ( material . uniforms . linesNoiseScale . value = v ) ) ;
212
+ gui
213
+ . add ( params , "linesNoiseAmplitude" , 0 , 1 , 0.01 )
214
+ . onChange ( ( v ) => ( material . uniforms . linesNoiseAmplitude . value = v ) ) ;
203
215
gui
204
216
. add ( params , "angle" , 0 , 2 * Math . PI , 0.001 )
205
217
. onChange ( ( v ) => ( material . uniforms . angle . value = v ) ) ;
0 commit comments