UNPKG

matrix-engine

Version:

basic_timeline improved, VT func setup vide html element id with name arg.- DISABLE RAYCAST DEBUG TEST [2.3.3] Fix for GUI win desktop [2.3.0] DestrucMesh solution & loading convex objs for physics BASIC, SpriteAnimation CPU/texture solution added, Improv

168 lines (148 loc) 4.69 kB
/** *@Author Nikola Lukic *@Description Matrix Engine Api Example @name basic_FBO */ import App from "../program/manifest"; export var runThis = (world) => { // Camera App.camera.SceneController = true; // Image texs var tex = { source: ["res/images/complex_texture_1/diffuse.webp"], mix_operation: "multiply", params: { TEXTURE_MAG_FILTER: world.GL.gl.NEAREST, TEXTURE_MIN_FILTER: world.GL.gl.NEAREST } }; // world.Add("cubeLightTex", 0.2, "myCube", tex); // App.scene.myCube.position.SetZ(-9); // App.scene.myCube.position.SetX(1); // App.scene.myCube.position.SetY(0.6); // App.scene.myCube.activateShadows('spot'); var textuteImageSamplers2 = { source: [ "res/bvh-skeletal-base/swat-guy/textures/Ch15_1001_Diffuse.png", "res/bvh-skeletal-base/swat-guy/textures/Ch15_1001_Diffuse.png" ], mix_operation: "multiply" }; // Load obj seq animation const createObjSequence = (objName) => { function onLoadObj(meshes) { App.meshes = meshes; for(let key in meshes) { matrixEngine.objLoader.initMeshBuffers(world.GL.gl, meshes[key]); } var textuteImageSamplers2 = { source: [ "res/bvh-skeletal-base/swat-guy/textures/Ch15_1001_Diffuse.png" ], mix_operation: "multiply", // ENUM : multiply , divide params: { TEXTURE_MAG_FILTER: world.GL.gl.NEAREST, TEXTURE_MIN_FILTER: world.GL.gl.NEAREST } }; setTimeout(function() { var animArg = { id: objName, meshList: meshes, // sumOfAniFrames: 61, No need if `animations` exist! currentAni: 0, // speed: 3, No need if `animations` exist! // upgrade - optimal animations: { active: 'walk', walk: { from: 0, to: 35, speed: 3 }, walkPistol: { from: 36, to: 60, speed: 3 } } }; world.Add("obj", 1, objName, textuteImageSamplers2, meshes[objName], animArg ); App.scene[objName].position.y = -1; App.scene[objName].position.z = -2; App.scene[objName].rotation.rotationSpeed.y = 50; }, 1); } matrixEngine.objLoader.downloadMeshes( matrixEngine.objLoader.makeObjSeqArg( { id: objName, path: "res/bvh-skeletal-base/swat-guy/anims/swat-multi", from: 1, to: 61 }), onLoadObj ); }; createObjSequence('player'); // FBO BASIC world.Add("cubeLightTex", 2.5, "myMirror", tex); App.scene.myMirror.position.SetZ(-15); App.scene.myMirror.position.SetX(-3); App.scene.myMirror.position.SetY(2.5); App.scene.myMirror.rotation.rotz = 90; App.scene.myMirror.setFBO({ cameraX: 0, cameraY: 0, cameraZ: 5, pitch: 12, yaw: 0 }); // Easy manipilation // App.scene.myMirror.FBO.settings.cameraX = 0 world.Add("cubeLightTex", 2.5, "myMirrorUP", tex); App.scene.myMirrorUP.position.SetZ(-15); App.scene.myMirrorUP.position.SetX(3); App.scene.myMirrorUP.position.SetY(2.5); App.scene.myMirrorUP.rotation.rotz = 90 App.scene.myMirrorUP.setFBO({ cameraX: 0, cameraY: 0, cameraZ: 2, pitch: 0, yaw: 1 }); // world.Add("cubeLightTex", 2.5, "myMirrorBottom", tex); // App.scene.myMirrorBottom.position.SetZ(-15); // App.scene.myMirrorBottom.position.SetX(3); // App.scene.myMirrorBottom.position.SetY(-2.5); // App.scene.myMirrorBottom.rotation.rotz = 90 // App.scene.myMirrorBottom.setFBO({ // cameraX: 0, // cameraY: 0, // cameraZ: 2, // pitch: 0, // yaw: 1 // }); // App.scene.myMirror.rotation.rotationSpeed.z = 10; // App.scene.myMirrorBottom.activateShadows(); // TEST ALSO ANIMATIONLINE // matrixEngine.matrixWorld.world.useAnimationLine({sequenceSize: 500}); // Click event canvas.addEventListener('mousedown', (ev) => { matrixEngine.raycaster.checkingProcedure(ev); }); addEventListener("ray.hit.event", function(e) { e.detail.hitObject.LightsData.ambientLight.r = matrixEngine.utility.randomFloatFromTo(0, 2); e.detail.hitObject.LightsData.ambientLight.g = matrixEngine.utility.randomFloatFromTo(0, 2); e.detail.hitObject.LightsData.ambientLight.b = matrixEngine.utility.randomFloatFromTo(0, 2); // console.info(e.detail); }); };