/* * Copyright 2012-2019, kaj dijkstra Inc, * Author, Kaj Dijkstra. * All rights reserved. * */ import keplerEngine from './kepler.js'; import scene from './scene.js'; import primitives from './primitives.js'; import samplerCube from './samplerCube.js'; import sampler2D from './sampler2D.js'; import shader from './shader.js'; import framebuffer from './framebuffer.js'; import {math, vector3, matrix4} from './math.js'; import renderPipeline from './renderPipeline.js'; // import render passes import deferred from './renderPasses/deferred.js'; import uber from './renderPasses/uber.js'; import ssao from './renderPasses/ssao.js'; import convolution from './renderPasses/convolution.js'; import fxaa from './renderPasses/fxaa.js'; import highpassFilter from './renderPasses/highpassFilter.js'; import hdr from './renderPasses/hdr.js'; import depth from './renderPasses/depth.js'; import shadow from './renderPasses/shadow.js'; import tonemap from './renderPasses/tonemap.js'; /** * Rendersystem **/ class renderSystem{ constructor( ) { this.scene = new scene(); this.render_type = "forward"; // "Forward" or "Deferred" this.viewMode = 0; this.depthPasses = []; } setRenderMode( mode ) { // "deferred", "forward" this.render_type = mode; } setViewMode( mode ) { "lit", "unlit", "lighting Only", "Reflections", this.viewMode = mode; var uberPass = this.deferredRenderPipeline.getRenderpass("uber"); uberPass.shader.setUniform("viewMode", mode ); } setViewport( viewPort ){ this.viewPort = viewPort; this.gl = viewPort.gl; this.forwardRenderPipeline = new renderPipeline( this.viewPort ); this.deferredRenderPipeline = new renderPipeline( this.viewPort ); } createRenderPasses(){ //this.createCubemapSampler(); // create render passes var deferredPass = new deferred(); var uberPass = new uber(); var ssaoPass = new ssao(); var ssaoConvolutionXPass = new convolution(); var ssaoConvolutionYPass = new convolution(); var fxaaPass = new fxaa(); var highpassFilterPass = new highpassFilter(); var bloomConvolutionXPass = new convolution(); var bloomConvolutionYPass = new convolution(); var hdrPass = new hdr(); var shadowPass = new shadow(); var tonemapPass = new tonemap(); var forwardRenderPass = new deferred(); deferredPass.render_type = "deferred"; forwardRenderPass.render_type = "forward"; // Add lights var lightEntitys = this.viewPort.scene.getLights(); for(var c = 0; c