Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- case 90://Tipka Z skaliranje po z
- skalZ += 1;
- break;
- case 85://Tipka U skaliranje po z
- skalZ -= 1;
- break;
- case 74://TIPKA J nedeluje
- kam1x += 1;
- break;
- case 76://TIPKA L nedeluje
- kam1x -= 1;
- break;
- case 73://TIPKA I nedeluje
- kam1y += 1;
- break;
- case 75://TIPKA K nedeluje
- kam1y -= 1;
- break;
- case 79://Tipka O premik kamere po z
- kam1z += 1;
- break;
- case 80://Tipka P premik kamere po z
- kam1z -= 1;
- break;
- default:
- function drawLoop()
- {
- gl.enable(gl.DEPTH_TEST);//prekrivanje objektov
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
- // nastavi viewport
- // nastavi projekcijo in kamero
- gl.useProgram(program);
- gl.bindBuffer(gl.ARRAY_BUFFER, bufferTrikotniki);
- gl.enableVertexAttribArray(0);
- gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 4*3, 0);//OGLIŠČA * x,y,z
- {
- //KOCKA
- var proj_matrix = mat4.create();
- mat4.perspective(proj_matrix, glMatrix.toRadian(80), myCanvas.width / myCanvas.height, 0.1, 1000);
- var model_matrix=mat4.identity(mat4.create());
- var view_matrix = mat4.create();//Kamera pogleda (premikanje kamere)
- mat4.identity(view_matrix);
- view_matrix = mat4.translate(mat4.create(), view_matrix, vec3.fromValues(premKamereX, premKamereY, premKamereZ));//premik kamere po sceni x,y,z
- view_matrix = mat4.rotate(mat4.create(), model_matrix, glMatrix.toRadian(kam1x), vec3.fromValues(0, 1, 0));
- view_matrix = mat4.rotate(mat4.create(), model_matrix, glMatrix.toRadian(kam1y), vec3.fromValues(1, 0, 0));
- view_matrix = mat4.rotate(mat4.create(), model_matrix, glMatrix.toRadian(kam1z), vec3.fromValues(0, 0, 1));
- //premikanje objektov
- model_matrix = mat4.translate(mat4.create(), model_matrix, vec3.fromValues(translateX, translateY, translateZ));//translacija objekta
- model_matrix = mat4.scale(mat4.create(), model_matrix, vec3.fromValues(skalX, skalY, skalZ));//translacija objekta
- model_matrix = mat4.rotate(mat4.create(), model_matrix, glMatrix.toRadian(angleY), vec3.fromValues(0, 1, 0));
- model_matrix = mat4.rotate(mat4.create(), model_matrix, glMatrix.toRadian(angleX), vec3.fromValues(1, 0, 0));
- //model_matrix = mat4.rotate(mat4.create(), model_matrix, glMatrix.toRadian(angleZ), vec3.fromValues(0, 0, 1));
- var zanka=2;
- while(zanka!=0)
- {
- gl.useProgram(program);
- model_matrix = mat4.translate(mat4.create(), model_matrix, vec3.fromValues(0, 0, 0));//translacija objekta
- var PVM = mat4.multiply(mat4.create(), proj_matrix, mat4.multiply(mat4.create(), view_matrix, model_matrix));
- gl.uniformMatrix4fv(gl.getUniformLocation(program, "PVM"), false, PVM);
- gl.drawArrays(gl.TRIANGLES, 0, 12*3);//OGLIŠČA
- zanka--;
- }
- zanka=1;
- while(zanka!=0)
- {
- gl.useProgram(program1);
- model_matrix = mat4.translate(mat4.create(), model_matrix, vec3.fromValues(2, 0, 0));//translacija objekta
- var PVM = mat4.multiply(mat4.create(), proj_matrix, mat4.multiply(mat4.create(), view_matrix, model_matrix));
- gl.uniformMatrix4fv(gl.getUniformLocation(program1, "PVM"), false, PVM);
- gl.drawArrays(gl.TRIANGLES, 0, 12*3);//OGLIŠČA
- zanka--;
- }
- zanka=1;
- while(zanka!=0)
- {
- gl.useProgram(program2);
- model_matrix = mat4.translate(mat4.create(), model_matrix, vec3.fromValues(-2, 0, 2));//translacija objekta
- var PVM = mat4.multiply(mat4.create(), proj_matrix, mat4.multiply(mat4.create(), view_matrix, model_matrix));
- gl.uniformMatrix4fv(gl.getUniformLocation(program2, "PVM"), false, PVM);
- gl.drawArrays(gl.TRIANGLES, 0, 12*3);//OGLIŠČA
- zanka--;
- }
- zanka=1;
- while(zanka!=0)
- {
- gl.useProgram(program3);
- model_matrix = mat4.translate(mat4.create(), model_matrix, vec3.fromValues(2, 0, 0));//translacija objekta
- var PVM = mat4.multiply(mat4.create(), proj_matrix, mat4.multiply(mat4.create(), view_matrix, model_matrix));
- gl.uniformMatrix4fv(gl.getUniformLocation(program3, "PVM"), false, PVM);
- gl.drawArrays(gl.TRIANGLES, 0, 12*3);//OGLIŠČA
- zanka--;
- }
- zanka=1;
- while(zanka!=0)
- {
- gl.useProgram(program4);
- model_matrix = mat4.translate(mat4.create(), model_matrix, vec3.fromValues(-1, 2, -1));//translacija objekta
- var PVM = mat4.multiply(mat4.create(), proj_matrix, mat4.multiply(mat4.create(), view_matrix, model_matrix));
- gl.uniformMatrix4fv(gl.getUniformLocation(program4, "PVM"), false, PVM);
- gl.drawArrays(gl.TRIANGLES, 0, 12*3);//OGLIŠČA
- zanka--;
- }
- }
- //gl.disableVertexAttribArray(0);
- //TLA
- gl.useProgram(program);
- gl.bindBuffer(gl.ARRAY_BUFFER, buffertla);
- gl.enableVertexAttribArray(0);
- gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0);//OGLIŠČA * x,y,z
- {
- var proj_matrix = mat4.create();
- mat4.perspective(proj_matrix, glMatrix.toRadian(80), myCanvas.width / myCanvas.height, 0.1, 1000);
- var model_matrix=mat4.identity(mat4.create());
- var view_matrix = mat4.create();//Kamera pogleda (premikanje kamere)
- mat4.identity(view_matrix);
- view_matrix = mat4.translate(mat4.create(), view_matrix, vec3.fromValues(premKamereX, premKamereY, premKamereZ));//premik kamere po x,y,z
- view_matrix = mat4.rotate(mat4.create(), model_matrix, glMatrix.toRadian(kam1x), vec3.fromValues(0, 1, 0));//sucemo
- view_matrix = mat4.rotate(mat4.create(), model_matrix, glMatrix.toRadian(kam1y), vec3.fromValues(1, 0, 0));
- view_matrix = mat4.rotate(mat4.create(), model_matrix, glMatrix.toRadian(kam1z), vec3.fromValues(0, 0, 1));
- //premikanje objektov
- //model_matrix = mat4.translate(mat4.create(), model_matrix, vec3.fromValues(translateX, translateY, translateZ));//translacija objekta
- //model_matrix = mat4.scale(mat4.create(), model_matrix, vec3.fromValues(skalX, skalY, skalZ));//translacija objekta
- //model_matrix = mat4.rotate(mat4.create(), model_matrix, glMatrix.toRadian(angleY), vec3.fromValues(0, 1, 0));
- //model_matrix = mat4.rotate(mat4.create(), model_matrix, glMatrix.toRadian(angleX), vec3.fromValues(1, 0, 0));
- //model_matrix = mat4.rotate(mat4.create(), model_matrix, glMatrix.toRadian(angleZ), vec3.fromValues(0, 0, 1));
- var PVM = mat4.multiply(mat4.create(), proj_matrix, mat4.multiply(mat4.create(), view_matrix, model_matrix));
- gl.uniformMatrix4fv(gl.getUniformLocation(program, "PVM"), false, PVM);
- }
- gl.drawArrays(gl.TRIANGLES, 0, 6);//OGLIŠČA
- var e = gl.getError();
- if (e)
- {
- //alert("Draw error: " + e);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement