glam
Version:
Experimental WebGL Engine
69 lines (54 loc) • 1.64 kB
JavaScript
import Test from 'tape'
import ReadPixel from '../read-pixel'
import Cube from 'geo-3d-box'
import {
Mesh,
PerspectiveCamera,
FlatMaterial,
FogAugment,
ForwardRenderer,
Scene,
Geometry,
} from "../../lib"
Test("FogAugment Flat Augmentation", function(t) {
var scene = Scene({
autoStart: false,
renderer: ForwardRenderer({
autoResizeCanvas : false,
width: 100,
height: 100
})
})
var gl = scene.renderer.gl
var camera = PerspectiveCamera(); camera.transform.position[2] = 20
var geometry = Geometry( Cube({ size: 5 }) )
var mesh
scene.add( camera )
t.test("the red box is affected by dark fog", function(t) {
t.plan(3)
var material = FogAugment(
FlatMaterial({ color : [1,0,0] }),
{
near : 10,
far : 30,
color : [0,0,0]
}
)
mesh = Mesh( geometry, material )
mesh.transform.euler[1] = Math.PI * 0.25
scene.add( mesh )
scene.render( camera )
t.deepLooseEqual( ReadPixel( gl, 50, 50 ), [169, 0, 0], "The center is mostly red" )
t.deepLooseEqual( ReadPixel( gl, 35, 50 ), [139, 0, 0], "The left is darker" )
t.deepLooseEqual( ReadPixel( gl, 65, 50 ), [137, 0, 0], "The right is darker" )
})
t.test("the red box is affected by light fog", function(t) {
t.plan(3)
mesh.material.shading.fog.color = [1,1,1]
scene.render( camera )
t.deepLooseEqual( ReadPixel( gl, 50, 50 ), [255, 86, 86], "The center is mostly red" )
t.deepLooseEqual( ReadPixel( gl, 35, 50 ), [255, 116, 116], "The left is lighter" )
t.deepLooseEqual( ReadPixel( gl, 65, 50 ), [255, 118, 118], "The right is darker" )
scene.renderer.destroy()
})
})