Lucas Stadler лет назад: 12
Родитель
Сommit
d6e2fbd7e3
1 измененных файлов с 23 добавлено и 3 удалено
  1. 23 3
      js/pixl/public/trixl.html

+ 23 - 3
js/pixl/public/trixl.html

203
			return trixl.world.delete(key);
203
			return trixl.world.delete(key);
204
		}
204
		}
205
205
206
		trixl.world.dynamic = [];
207
208
		trixl.dynamic = {};
209
		trixl.dynamic.orbit = function(pos, radius, color) {
210
			var color = color || trixl.color;
211
			return function(t) {
212
				var x = radius * Math.sin(t * 0.01),
213
				    y = radius * Math.cos(t * 0.01);
214
				return {x: pos[0] + x, y: pos[1] + y, z: pos[2], color: color};
215
			}
216
		}
217
206
		trixl.generate = {};
218
		trixl.generate = {};
207
		trixl.generate.random = function(lo, hi, color) {
219
		trixl.generate.random = function(lo, hi, color) {
208
			var x = lo + Math.round(Math.random() * (hi - lo)),
220
			var x = lo + Math.round(Math.random() * (hi - lo)),
248
		var angle = {x: 0, y: 0, z: 0};
260
		var angle = {x: 0, y: 0, z: 0};
249
		var offset = {x: 0, y: 0, z: 0};
261
		var offset = {x: 0, y: 0, z: 0};
250
		program.transform = gl.getUniformLocation(program, 'transform');
262
		program.transform = gl.getUniformLocation(program, 'transform');
251
		trixl.redraw = function() {
263
		trixl.redraw = function(t) {
252
			var view = mat4.lookAt([], trixl.camera.pos, trixl.camera.focus, trixl.camera.up);
264
			var view = mat4.lookAt([], trixl.camera.pos, trixl.camera.focus, trixl.camera.up);
253
265
254
			var aspect = trixl.window.w / trixl.window.h;
266
			var aspect = trixl.window.w / trixl.window.h;
274
				gl.drawArrays(gl.TRIANGLES, 0, 6 * 6);
286
				gl.drawArrays(gl.TRIANGLES, 0, 6 * 6);
275
			}
287
			}
276
288
289
			trixl.world.dynamic.forEach(function(tr) {
290
				var tr = tr(t);
291
292
				gl.uniform4fv(program.color, tr.color);
293
				gl.uniformMatrix4fv(program.transform, false, transform([tr.x, tr.y, tr.z]));
294
				gl.drawArrays(gl.TRIANGLES, 0, 6 * 6);
295
			});
296
277
			gl.uniform4f(program.color, -1, -1, -1, 0);
297
			gl.uniform4f(program.color, -1, -1, -1, 0);
278
298
279
			//angle.x += Math.PI / 10;
299
			//angle.x += Math.PI / 10;
285
			//offset.z = Math.cos(angle.z * 0.1) * 2;
305
			//offset.z = Math.cos(angle.z * 0.1) * 2;
286
		}
306
		}
287
307
288
		trixl.step = function() {
289
			trixl.redraw();
308
		trixl.step = function(t) {
309
			trixl.redraw(t);
290
			trixl.step.reqId = requestAnimationFrame(trixl.step);
310
			trixl.step.reqId = requestAnimationFrame(trixl.step);
291
		}
311
		}
292
		trixl.start = function() {
312
		trixl.start = function() {