Part 3 – Shader Editor
Besides the built-in shaders, KickJS also support custom built shaders. These shaders can be created using the KickJS shader editor.
http://www.kickjs.org/example/shader_editor/shader_editor.html
The following code shows how to setup a custom shader in KickJS:
// init engine (create 3d context) var engine = new kick.core.Engine('3dCanvas'); // create a game object in [0,0,0] facing down the -z axis var cameraObject = engine.activeScene.createGameObject(); cameraObject.transform.position = [0,0,5]; // create a orthographics camera var camera = new kick.scene.Camera({ perspective: false, left:-5, right:5, top:5, bottom:-5 }); cameraObject.addComponent(camera); // create shader - Note that it is bad practice to inline GLSL shader code in JavaScript var vertexShaderStr = "attribute vec3 vertex;\n"+ "uniform mat4 _mvProj;\n"+ "void main(void) {\n"+ " gl_Position = _mvProj * vec4(vertex, 1.0);\n"+ "}"; var fragmentShaderStr = "uniform highp float _time;\n"+ "void main(void) {\n"+ " highp float fraction = mod(_time/1000.0,1.0);\n"+ " gl_FragColor = vec4(fraction,fraction,fraction, 1.0);\n"+ "}"; var shader = new kick.material.Shader( { vertexShaderSrc: vertexShaderStr, fragmentShaderSrc: fragmentShaderStr }); var material = new kick.material.Material({ shader: shader, uniformData:{ } }); // create cube var gameObject = engine.activeScene.createGameObject(); gameObject.transform.position = [0.0,0,0]; var meshRenderer = new kick.scene.MeshRenderer(); meshRenderer.mesh = engine.project.load(engine.project.ENGINE_MESH_CUBE); meshRenderer.material = material; gameObject.addComponent(meshRenderer);