-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbackground-gradient.js
More file actions
39 lines (27 loc) · 970 Bytes
/
background-gradient.js
File metadata and controls
39 lines (27 loc) · 970 Bytes
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
/* global AFRAME */
AFRAME.registerShader('background-gradient', {
schema: {
colorTop: { type: 'color', default: '#37383c', is: 'uniform' },
colorBottom: { type: 'color', default: '#757575', is: 'uniform' }
},
vertexShader: [
'varying vec3 vWorldPosition;',
'void main() {',
'vec4 worldPosition = modelMatrix * vec4( position, 1.0 );',
'vWorldPosition = worldPosition.xyz;',
'gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',
'}'
].join('\n'),
fragmentShader: [
'uniform vec3 colorTop;',
'uniform vec3 colorBottom;',
'varying vec3 vWorldPosition;',
'void main()',
'{',
'vec3 pointOnSphere = normalize(vWorldPosition.xyz);',
'float f = 1.0;',
'f = sin(pointOnSphere.y * 2.2) + 0.4;',
'gl_FragColor = vec4(mix(colorBottom, colorTop, f), 1.0);',
'}'
].join('\n')
});