UNPKG

glam

Version:

Experimental WebGL Engine

80 lines (60 loc) 2.67 kB
import Test from 'tape' import ReadPixel from '../read-pixel' import Mesh from "../../lib/mesh" import Camera from "../../lib/camera/perspective" import Material from "../../lib/material/flat" import Renderer from "../../lib/renderer/forward" import Scene from "../../lib/scene" import Geometry from "../../lib/geometry" import Box from 'geo-3d-box' Test("Flat Material", function(t) { var scene = Scene({ autoStart: false, renderer: Renderer({ autoResizeCanvas : false, width: 100, height: 100 }) }) var gl = scene.renderer.gl var camera = Camera() var material = Material() var geometry = Geometry( Box({size: 5}) ) var mesh = Mesh( geometry, material ) scene.add( camera ) scene.add( mesh ) material.shading.color = [1,0,0] mesh.transform.position[2] = 0 camera.transform.position[2] = 20 t.test("creates a scene with a red box", function(t) { t.plan(5) scene.render( camera ) t.deepLooseEqual( ReadPixel( gl, 50, 50 ), [255, 0, 0], "The center is red" ) t.deepLooseEqual( ReadPixel( gl, 35, 35 ), [255, 0, 0], "The top left is red" ) t.deepLooseEqual( ReadPixel( gl, 65, 65 ), [255, 0, 0], "The bottom right is red" ) t.deepLooseEqual( ReadPixel( gl, 30, 30 ), [255, 255, 255], "The top left outside is white" ) t.deepLooseEqual( ReadPixel( gl, 70, 70 ), [255, 255, 255], "The bottom right outside is white" ) }) t.test("can change the box's color", function(t) { t.plan(5) material.shading.color = [0,1,1] scene.render( camera ) t.deepLooseEqual( ReadPixel( gl, 50, 50 ), [0, 255, 255], "The center is cyan" ) t.deepLooseEqual( ReadPixel( gl, 35, 35 ), [0, 255, 255], "The top left is cyan" ) t.deepLooseEqual( ReadPixel( gl, 65, 65 ), [0, 255, 255], "The bottom right is cyan" ) t.deepLooseEqual( ReadPixel( gl, 30, 30 ), [255, 255, 255], "The top left outside is white" ) t.deepLooseEqual( ReadPixel( gl, 70, 70 ), [255, 255, 255], "The bottom right outside is white" ) }) t.test("the box can scale", function(t) { t.plan(5) material.shading.color = [255,0,255] mesh.transform.scale = [0.2, 0.2, 0.2] scene.render( camera ) t.deepLooseEqual( ReadPixel( gl, 50, 50 ), [255, 0, 255], "The center is magenta" ) t.deepLooseEqual( ReadPixel( gl, 48, 48 ), [255, 0, 255], "The top left is magenta" ) t.deepLooseEqual( ReadPixel( gl, 52, 52 ), [255, 0, 255], "The bottom right is magenta" ) t.deepLooseEqual( ReadPixel( gl, 45, 45 ), [255, 255, 255], "The top left outside is white" ) t.deepLooseEqual( ReadPixel( gl, 55, 55 ), [255, 255, 255], "The bottom right outside is white" ) scene.renderer.destroy() }) })