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
85 lines (75 loc) • 2.6 kB
JavaScript
/**
* @Author Nikola Lukic
* @license MIT
* @Description Matrix Engine Api Example.
* Free for all
*/
import App from "../program/manifest";
export var runThis = world => {
var textuteImageSamplers = {
source: ["res/images/complex_texture_1/diffuse.webp"],
mix_operation: "multiply",
};
matrixEngine.Events.camera.yawAmp = 5
App.camera.SceneController = true;
matrixEngine.Events.camera.yPos = 13;
matrixEngine.Events.camera.zPos = 72;
// Floor
world.Add("cubeLightTex", 1, "floor", textuteImageSamplers);
App.scene.floor.position.SetY(0);
App.scene.floor.geometry.setScaleByX(31);
App.scene.floor.geometry.setScaleByZ(31);
App.scene.floor.position.y = -1;
App.scene.floor.position.z = 0;
App.scene.floor.rotation.roty = -90
App.scene.floor.setFBO({
cameraX: 0,
cameraY: 0,
cameraZ: 20,
pitch: 0,
yaw: 0
})
App.scene.floor.activateShadows('spot-shadow')
world.Add("squareTex", 1, "MyCubeTex1", textuteImageSamplers);
App.scene.MyCubeTex1.activateShadows('spot-shadow')
App.scene.MyCubeTex1.geometry.setScaleByX(2);
App.scene.MyCubeTex1.geometry.setScaleByY(2);
App.scene.MyCubeTex1.position.y = 3;
App.scene.MyCubeTex1.position.x = 6;
setTimeout(() => {
App.scene.MyCubeTex1.shadows.lightPosition = [0.1, -0.2, 0.1]
}, 200)
function onLoadObj(meshes) {
for(let key in meshes) {matrixEngine.objLoader.initMeshBuffers(world.GL.gl, meshes[key])}
var textuteImageSamplers2 = {
source: ["res/images/armor.webp", "res/images/armor.webp"],
mix_operation: "multiply",
};
var textuteImageSamplers = {
source: ["res/images/dagger.webp"],
mix_operation: "multiply",
};
world.Add("obj", 1, "armor", textuteImageSamplers2, meshes.armor);
App.scene.armor.position.y = 3;
App.scene.armor.rotation.rotationSpeed.y = 20;
App.scene.armor.LightsData.ambientLight.set(1, 1, 1);
App.scene.armor.position.z = -6;
App.scene.armor.mesh.setScale(3)
setTimeout(() => {
App.scene.armor.activateShadows('spot-shadow')
App.scene.mac.activateShadows('spot-shadow')
App.scene.armor.shadows.lightPosition = [10, 2, -1]
}, 200)
world.Add("obj", 1, "mac", textuteImageSamplers, meshes.mac);
App.scene.mac.position.y = 1;
App.scene.mac.position.x = -3;
App.scene.mac.rotation.rotationSpeed.y = 20;
App.scene.mac.LightsData.ambientLight.set(1, 1, 1);
App.scene.mac.mesh.setScale(3)
}
matrixEngine.objLoader.downloadMeshes(
{armor: "res/3d-objects/armor.obj", mac: "res/3d-objects/mac.obj"},
onLoadObj,
{swap: [0, 2]}
);
};