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

266 lines (228 loc) 8.4 kB
/** * @Author Nikola Lukic * @Description Matrix Engine Api Example. */ /* globals world App world */ import App from "../program/manifest"; import * as matrixEngine from "../index.js"; let Vjs3 = matrixEngine.Engine.Vjs3; export var runThis = world => { /* globals world App ENUMERATORS E Vjs3 */ /* eslint-disable no-unused-vars */ var tex = new Vjs3( "app/2d1kilo/example1.html", "starter/text.js" ); App.camera.FirstPersonController = true; var textuteImageSamplers = { source: ["res/images/complex_texture_1/diffuse.webp"], mix_operation: "multiply", }; world.Add("squareTex", 12, "floor", textuteImageSamplers); App.scene.floor.position.z = 0; App.scene.floor.position.y = -1; var coeficientSizeOfTex = 20; App.scene.floor.geometry.texCoordsPoints.right_top.y = 1 + coeficientSizeOfTex; App.scene.floor.geometry.texCoordsPoints.right_top.x = 1 + coeficientSizeOfTex; App.scene.floor.geometry.texCoordsPoints.left_bottom.x = 0 - coeficientSizeOfTex; App.scene.floor.geometry.texCoordsPoints.left_bottom.y = 0 - coeficientSizeOfTex; App.scene.floor.geometry.texCoordsPoints.left_top.x = 0 - coeficientSizeOfTex; App.scene.floor.geometry.texCoordsPoints.left_top.y = 1 + coeficientSizeOfTex; App.scene.floor.geometry.texCoordsPoints.right_bottom.x = 1 + coeficientSizeOfTex; App.scene.floor.geometry.texCoordsPoints.right_bottom.y = 0 - coeficientSizeOfTex; App.scene.floor.geometry.size = 50; App.scene.floor.custom.gl_texture = function (object, t) { try { world.GL.gl.bindTexture(world.GL.gl.TEXTURE_2D, object.textures[t]); world.GL.gl.texParameteri( world.GL.gl.TEXTURE_2D, world.GL.gl.TEXTURE_MAG_FILTER, world.GL.gl.LINEAR ); world.GL.gl.texParameteri( world.GL.gl.TEXTURE_2D, world.GL.gl.TEXTURE_MIN_FILTER, world.GL.gl.LINEAR ); world.GL.gl.texParameteri( world.GL.gl.TEXTURE_2D, world.GL.gl.TEXTURE_WRAP_S, world.GL.gl.REPEAT ); world.GL.gl.texParameteri( world.GL.gl.TEXTURE_2D, world.GL.gl.TEXTURE_WRAP_T, world.GL.gl.REPEAT ); world.GL.gl.texImage2D( world.GL.gl.TEXTURE_2D, 0, world.GL.gl.RGBA, world.GL.gl.RGBA, world.GL.gl.UNSIGNED_BYTE, object.textures[t].image ); world.GL.gl.generateMipmap(world.GL.gl.TEXTURE_2D); } catch (e) { // } }; App.scene.floor.rotation.rotateX(90); /** * Test for scale texCoords for CubeVertex; * */ world.Add("cubeLightTex", 1, "test", { source: ["res/images/complex_texture_1/diffuse.webp"], mix_operation: "multiply", }); App.scene.test.position.y = 1; App.scene.test.position.x = 0; App.scene.test.position.z = 0; // App.scene.zid.geometry.setScaleByX(60); // App.scene.zid.geometry.setScaleByY(10); App.scene.test.custom.gl_texture = function (object, t) { try { world.GL.gl.bindTexture(world.GL.gl.TEXTURE_2D, object.textures[t]); world.GL.gl.texParameteri( world.GL.gl.TEXTURE_2D, world.GL.gl.TEXTURE_MAG_FILTER, world.GL.gl.LINEAR ); world.GL.gl.texParameteri( world.GL.gl.TEXTURE_2D, world.GL.gl.TEXTURE_MIN_FILTER, world.GL.gl.LINEAR ); world.GL.gl.texParameteri( world.GL.gl.TEXTURE_2D, world.GL.gl.TEXTURE_WRAP_S, world.GL.gl.REPEAT ); world.GL.gl.texParameteri( world.GL.gl.TEXTURE_2D, world.GL.gl.TEXTURE_WRAP_T, world.GL.gl.REPEAT ); world.GL.gl.texImage2D( world.GL.gl.TEXTURE_2D, 0, world.GL.gl.RGBA, world.GL.gl.RGBA, world.GL.gl.UNSIGNED_BYTE, object.textures[t].image ); world.GL.gl.generateMipmap(world.GL.gl.TEXTURE_2D); } catch (e) { // } }; world.Add("cubeLightTex", 1, "zid", { source: ["res/images/texture_metalic1.jpg"], mix_operation: "multiply", }); App.scene.zid.position.y = 7; App.scene.zid.position.x = 0; App.scene.zid.position.z = 50; App.scene.zid.geometry.setScaleByX(60); App.scene.zid.geometry.setScaleByY(10); App.scene.zid.custom.gl_texture = App.scene.test.custom.gl_texture; world.Add("cubeLightTex", 1, "zid2", { source: ["res/images/texture_metalic1.jpg"], mix_operation: "multiply", }); App.scene.zid2.position.y = 8; App.scene.zid2.position.x = 0; App.scene.zid2.position.z = -50; App.scene.zid2.geometry.setScaleByX(60); App.scene.zid2.geometry.setScaleByY(10); world.Add("cubeLightTex", 1, "zid3", { source: ["res/images/texture_metalic1.jpg"], mix_operation: "multiply", }); App.scene.zid3.position.y = 7; App.scene.zid3.position.x = 50; App.scene.zid3.position.z = 0; App.scene.zid3.geometry.setScaleByZ(60); App.scene.zid3.geometry.setScaleByY(10); world.Add("cubeLightTex", 1, "zid4", { source: ["res/images/texture_metalic1.jpg"], mix_operation: "multiply", }); App.scene.zid4.position.y = 8; App.scene.zid4.position.x = -50; App.scene.zid4.position.z = 0; App.scene.zid4.geometry.setScaleByZ(60); App.scene.zid4.geometry.setScaleByY(10); for (var hor = -40; hor < 50; hor = hor + 10) { var name = "zid_" + hor; world.Add("cubeLightTex", 1, name, { source: ["res/images/texture_metalic1.jpg"], mix_operation: "multiply", }); App.scene[name].position.y = 8; App.scene[name].position.x = hor; App.scene[name].position.z = 48; // App.scene[name].glBlend.blendEnabled = true; // App.scene[name].glBlend.blendParamSrc = ENUMERATORS.glBlend.param[4]; // App.scene[name].glBlend.blendParamDest = ENUMERATORS.glBlend.param[4]; App.scene[name].geometry.setScaleByY(10); name = "zid_2_" + hor; world.Add("cubeLightTex", 1, name, { source: ["res/images/texture_metalic1.jpg"], mix_operation: "multiply", }); App.scene[name].position.y = 8; App.scene[name].position.x = hor; App.scene[name].position.z = -48; // App.scene[name].glBlend.blendEnabled = true; // App.scene[name].glBlend.blendParamSrc = ENUMERATORS.glBlend.param[4]; // App.scene[name].glBlend.blendParamDest = ENUMERATORS.glBlend.param[4]; App.scene[name].geometry.setScaleByY(10); } world.Add("pyramid", 1, "MyPyramid1"); world.Add("pyramid", 1, "MyPyramid2"); world.Add("pyramid", 1, "MyPyramid3"); world.Add("pyramid", 1, "MyPyramid4"); // SET POSITION App.scene.MyPyramid1.geometry.spitz = 10; App.scene.MyPyramid2.geometry.spitz = 10; App.scene.MyPyramid3.geometry.spitz = 10; App.scene.MyPyramid4.geometry.spitz = 10; App.scene.MyPyramid1.position.SetX(-10); App.scene.MyPyramid1.position.SetZ(-10); App.scene.MyPyramid2.position.SetX(10); App.scene.MyPyramid2.position.SetZ(10); App.scene.MyPyramid3.position.SetX(10); App.scene.MyPyramid3.position.SetZ(-10); App.scene.MyPyramid4.position.SetX(-10); App.scene.MyPyramid4.position.SetZ(10); App.scene.MyPyramid1.position.SetY(-1); App.scene.MyPyramid2.position.SetY(-1); App.scene.MyPyramid3.position.SetY(-1); App.scene.MyPyramid4.position.SetY(-1); App.scene.MyPyramid2.rotation.rotationSpeed.z = 0; world.Add("squareTex", 5, "outsideBox", textuteImageSamplers); App.scene.outsideBox.position.y = 4; App.scene.outsideBox.position.x = 0; App.scene.outsideBox.position.z = -45; // App.scene.outsideBox.rotation.rotationSpeed.z = 50; // App.scene.outsideBox.rotValue = 90; App.scene.outsideBox.LightsData.ambientLight.set(1, 1, 1); App.scene.outsideBox.glBlend.blendEnabled = true; App.scene.outsideBox.glBlend.blendParamSrc = ENUMERATORS.glBlend.param[4]; App.scene.outsideBox.glBlend.blendParamDest = ENUMERATORS.glBlend.param[4]; App.scene.outsideBox.rotation.SetDirection(1, 1, 0); // CANVAS2D_SURFACE - IS TEXTURE EDITOR E("HOLDER_STREAMS").style.display = "block"; App.scene.outsideBox.streamTextures = tex; setTimeout(function () { // App.scene.outsideBox.streamTextures.showTextureEditor(); }, 1000); };