Просмотр исходного кода

add basic camera code.

not quite sure yet why camera = focus works.
Lucas Stadler лет назад: 12
Родитель
Сommit
83dab2e497
1 измененных файлов с 12 добавлено и 0 удалено
  1. 12 0
      js/pixl/public/trixl.html

+ 12 - 0
js/pixl/public/trixl.html

@ -102,10 +102,21 @@
102 102
		program.color = gl.getUniformLocation(program, 'color');
103 103
		gl.uniform4f(program.color, -1, -1, -1, -1);
104 104
105
		trixl.pos = {x: 0, y: 0, z: 0, a: 0};
106
105 107
		var angle = {x: 0, y: 0, z: 0};
106 108
		var offset = {x: 0, y: 0, z: 0};
107 109
		program.transform = gl.getUniformLocation(program, 'transform');
108 110
		trixl.redraw = function() {
111
			var camera = mat4.multiplyMany(
112
				matrix.translate(trixl.pos.x, trixl.pos.y, trixl.pos.z),
113
				matrix.rotateY(trixl.pos.a)
114
			);
115
			var camera_pos = [camera[12], camera[13], camera[14]];
116
			var up = [0, 1, 0];
117
			camera = mat4.lookAt([], camera_pos, [0, 0, 0], up);
118
			var view = mat4.invert([], camera);
119
109 120
			var aspect = trixl.window.w / trixl.window.h;
110 121
			var transform = function(pos) {
111 122
				return mat4.multiplyMany(
@ -115,6 +126,7 @@
115 126
					//matrix.rotateY(angle.y / 10),
116 127
					matrix.rotateX(angle.x / 10),
117 128
					matrix.translate(pos[0] + offset.x, pos[1] + offset.y, pos[2] + offset.z),
129
					view,
118 130
					matrix.persective(Math.PI / 3, aspect)
119 131
				);
120 132
			}