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

142 lines (121 loc) 4.05 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(-11); 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("squareTex", 3, "myMirror", tex); App.scene.myMirror.position.SetZ(-12); App.scene.myMirror.position.SetX(0); App.scene.myMirror.position.SetY(0); App.scene.myMirror.setFBO(); world.Add("cubeLightTex", 0.5, "myMirrorBottom", tex); App.scene.myMirrorBottom.position.SetZ(-5); App.scene.myMirrorBottom.position.SetX(2); App.scene.myMirrorBottom.position.SetY(2); App.scene.myMirrorBottom.rotation.rotx = 20 // App.scene.myMirrorBottom.setFBO(); // App.scene.myMirror.rotation.rotationSpeed.z = 10; App.scene.myMirrorBottom.activateShadows(); // TEST ALSO ANIMATIONLINE matrixEngine.matrixWorld.world.useAnimationLine({ sequenceSize: 500 , totalSequence: 2}); // 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); }); };