import keplerEngine from './engine/kepler.js'; import entity from './engine/entity.js'; import material from './engine/material.js'; import sampler2D from './engine/sampler2D.js'; import mesh from './engine/mesh.js'; import viewport from './engine/viewport.js'; import {matrix4} from './engine/math.js'; import template from './engine/renderPasses/template.js'; import sceneNode from './engine/sceneNode.js'; kepler = new keplerEngine(); // Viewport var ViewPort = new viewport("keplerEngine"); // Load model kepler.assimpLoader.load( "demo.json", ViewPort.scene ); // Add viewport kepler.addViewport( ViewPort ); // Material var groundMaterial = new material(); // Samplers var normalTexture = kepler.resources.getTexture("floorTiles_normal"); var normalSampler = new sampler2D(); normalSampler.addTexture(normalTexture); var diffuseTexture = kepler.resources.getTexture("floorTiles_diff"); var diffuseSampler = new sampler2D(); diffuseSampler.addTexture(diffuseTexture); groundMaterial.addTexture(diffuseSampler); groundMaterial.addNormal(normalSampler); //groundMaterial.addRoughness(normalSampler); // Properties groundMaterial.diffuseColor = [179/256,199/256,217/256]; groundMaterial.alpha = 1; groundMaterial.reflection = 0.2; groundMaterial.roughness = 0.3; groundMaterial.metalic = 0.1; groundMaterial.uvMultiplier = 6; groundMaterial.create(); // Cube mesh var cubeMesh = ViewPort.primitives.createCube(10); cubeMesh.addMaterial(groundMaterial); // Cube Entity var cubeEntity = new entity( ); cubeEntity.addMesh( cubeMesh ); cubeEntity.name = "sky sphere"; cubeEntity.transform.position = [0, -10, 0]; cubeEntity.transform.update(); ViewPort.scene.addEntity( cubeEntity ); // Start application kepler.application(); // Template.js import framebuffer from '../framebuffer.js'; import sampler2D from '../sampler2D.js'; import {math, vector3, matrix4} from '../math.js'; import samplerCube from '../samplerCube.js'; import shader from '../shader.js'; class template { /** * set viewport * @param {(viewport)} viewport **/ setViewport( viewport ){ this.viewport = viewport; this.gl = viewport.gl; } prepare() { this.width = this.viewport.width; this.height = this.viewport.height; this.targetSampler = new sampler2D( ); this.targetSampler.type = this.gl.FLOAT; this.framebuffer = new framebuffer( ); this.framebuffer.setViewport( this.viewport ); this.framebuffer.width = this.width; this.framebuffer.height = this.height; this.framebuffer.addSampler( this.targetSampler ); this.framebuffer.create(); this.shader = new shader(); this.shader.createFromFile("shaders/template.shader"); this.shader.setUniform("viewProjection", this.viewport.quad.viewProjection ); } render() { //this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, this.framebuffer.glFramebuffer); this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, null); this.gl.clearColor( 0, 0, 0, 1 ); this.gl.clear(this.gl.COLOR_BUFFER_BIT | this.gl.DEPTH_BUFFER_BIT); this.viewport.quad.draw( this.shader ); } } export {template as default};