|
|
@ -51,22 +51,17 @@ try {
|
|
51
|
51
|
|
|
52
|
52
|
var vertexShaderSrc = `
|
|
53
|
53
|
attribute vec4 aPosition;
|
|
54
|
|
attribute vec2 aSize;
|
|
55
|
|
varying vec3 pos;
|
|
56
|
54
|
|
|
57
|
55
|
void main() {
|
|
58
|
56
|
gl_Position = aPosition;
|
|
59
|
|
gl_PointSize = 10.0;
|
|
60
|
|
pos = aPosition.xyz;
|
|
61
|
57
|
}
|
|
62
|
58
|
`
|
|
63
|
59
|
|
|
64
|
60
|
var fragmentShaderSrc = `
|
|
65
|
61
|
precision highp float;
|
|
66
|
62
|
|
|
67
|
|
uniform vec2 uSize;
|
|
|
63
|
uniform vec2 iResolution;
|
|
68
|
64
|
uniform vec3 iMouse;
|
|
69
|
|
varying vec3 pos;
|
|
70
|
65
|
|
|
71
|
66
|
const int MaximumRaySteps = 150;
|
|
72
|
67
|
const float MinimumDistance = 0.0000001;
|
|
|
@ -156,11 +151,10 @@ mat3 setCamera( in vec3 ro, in vec3 ta, float cr ) {
|
|
156
|
151
|
}
|
|
157
|
152
|
|
|
158
|
153
|
void main() {
|
|
159
|
|
vec2 q = gl_FragCoord.xy / uSize.xy;
|
|
|
154
|
vec2 q = gl_FragCoord.xy / iResolution.xy;
|
|
160
|
155
|
vec2 p = -1.0 + 2.0*q;
|
|
161
|
|
p.x *= uSize.x / uSize.y;
|
|
162
|
|
//vec2 iMouse = uSize / 2.0;
|
|
163
|
|
vec2 mo = iMouse.xy/uSize.xy;
|
|
|
156
|
p.x *= iResolution.x / iResolution.y;
|
|
|
157
|
vec2 mo = iMouse.xy/iResolution.xy;
|
|
164
|
158
|
|
|
165
|
159
|
float time = 15.0 + 0.0; // iGlobalTime
|
|
166
|
160
|
|
|
|
@ -206,17 +200,14 @@ void main() {
|
|
206
|
200
|
gl.useProgram(program);
|
|
207
|
201
|
|
|
208
|
202
|
var aPosition = gl.getAttribLocation(program, 'aPosition');
|
|
209
|
|
var uSize = gl.getUniformLocation(program, 'uSize');
|
|
|
203
|
var iResolution = gl.getUniformLocation(program, 'iResolution');
|
|
210
|
204
|
var iMouse = gl.getUniformLocation(program, 'iMouse');
|
|
211
|
|
var uFragColor = gl.getUniformLocation(program, 'uFragColor');
|
|
212
|
205
|
|
|
213
|
206
|
gl.vertexAttrib2f(aPosition, 0.0, 0.0);
|
|
214
|
|
gl.uniform2f(uSize, canvas.width, canvas.height);
|
|
|
207
|
gl.uniform2f(iResolution, canvas.width, canvas.height);
|
|
215
|
208
|
gl.uniform3f(iMouse, 0.0, 0.0, 0.0);
|
|
216
|
|
gl.uniform4f(uFragColor, 1.0, 0.0, 0.0, 1.0);
|
|
217
|
|
|
|
218
|
|
//gl.drawArrays(gl.POINTS, 0, 1);-
|
|
219
|
209
|
|
|
|
210
|
// two triangles
|
|
220
|
211
|
var positions = new Float32Array([
|
|
221
|
212
|
-1.0, 1.0,
|
|
222
|
213
|
-1.0, -1.0,
|
|
|
@ -245,7 +236,7 @@ void main() {
|
|
245
|
236
|
w = canvas.width = window.innerWidth;
|
|
246
|
237
|
h = canvas.height = window.innerHeight;
|
|
247
|
238
|
gl.viewport(0, 0, w, h);
|
|
248
|
|
gl.uniform2f(uSize, w, h);
|
|
|
239
|
gl.uniform2f(iResolution, w, h);
|
|
249
|
240
|
gl.clearColor(0.0, 0.0, 0.0, 1.0);
|
|
250
|
241
|
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
251
|
242
|
render();
|
|
|
@ -258,4 +249,4 @@ void main() {
|
|
258
|
249
|
msg.style = "color: red; position: absolute; right: 0; bottom: 0";
|
|
259
|
250
|
msg.textContent = e;
|
|
260
|
251
|
document.body.appendChild(msg);
|
|
261
|
|
}
|
|
|
252
|
}
|