glam
Version:
Experimental WebGL Engine
66 lines (48 loc) • 1.98 kB
JavaScript
;
var _tape = require('tape');
var _tape2 = _interopRequireDefault(_tape);
var _readPixel = require('../read-pixel');
var _readPixel2 = _interopRequireDefault(_readPixel);
var _geo3dBox = require('geo-3d-box');
var _geo3dBox2 = _interopRequireDefault(_geo3dBox);
var _lib = require('../../lib');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _tape2.default)("FogAugment Flat Augmentation", function (t) {
var scene = (0, _lib.Scene)({
autoStart: false,
renderer: (0, _lib.ForwardRenderer)({
autoResizeCanvas: false,
width: 100,
height: 100
})
});
var gl = scene.renderer.gl;
var camera = (0, _lib.PerspectiveCamera)();camera.transform.position[2] = 20;
var geometry = (0, _lib.Geometry)((0, _geo3dBox2.default)({ size: 5 }));
var mesh;
scene.add(camera);
t.test("the red box is affected by dark fog", function (t) {
t.plan(3);
var material = (0, _lib.FogAugment)((0, _lib.FlatMaterial)({ color: [1, 0, 0] }), {
near: 10,
far: 30,
color: [0, 0, 0]
});
mesh = (0, _lib.Mesh)(geometry, material);
mesh.transform.euler[1] = Math.PI * 0.25;
scene.add(mesh);
scene.render(camera);
t.deepLooseEqual((0, _readPixel2.default)(gl, 50, 50), [169, 0, 0], "The center is mostly red");
t.deepLooseEqual((0, _readPixel2.default)(gl, 35, 50), [139, 0, 0], "The left is darker");
t.deepLooseEqual((0, _readPixel2.default)(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((0, _readPixel2.default)(gl, 50, 50), [255, 86, 86], "The center is mostly red");
t.deepLooseEqual((0, _readPixel2.default)(gl, 35, 50), [255, 116, 116], "The left is lighter");
t.deepLooseEqual((0, _readPixel2.default)(gl, 65, 50), [255, 118, 118], "The right is darker");
scene.renderer.destroy();
});
});