UNPKG

2.21 kBJavaScriptView Raw
1'use strict';
2
3var _tape = require('tape');
4
5var _tape2 = _interopRequireDefault(_tape);
6
7var _normals = require('normals');
8
9var _normals2 = _interopRequireDefault(_normals);
10
11var _readPixel = require('../read-pixel');
12
13var _readPixel2 = _interopRequireDefault(_readPixel);
14
15var _geo3dBox = require('geo-3d-box');
16
17var _geo3dBox2 = _interopRequireDefault(_geo3dBox);
18
19var _lib = require('../../lib');
20
21function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
23(0, _tape2.default)('Fog Lit Augmentation', function (t) {
24 var scene = (0, _lib.Scene)({
25 autoStart: false,
26 renderer: (0, _lib.ForwardRenderer)({
27 autoResizeCanvas: false,
28 width: 100,
29 height: 100
30 })
31 });
32
33 var gl = scene.renderer.gl;
34 var camera = (0, _lib.PerspectiveCamera)();
35 var box = (0, _geo3dBox2.default)({ size: 5 });
36 box.normals = _normals2.default.vertexNormals(box.cells, box.positions);
37 var geometry = (0, _lib.Geometry)(box);
38 var mesh;
39 scene.add(camera);
40 camera.position[2] = 20;
41
42 t.test('the red box is affected by dark fog', function (t) {
43 t.plan(3);
44
45 var material = (0, _lib.FogAugment)((0, _lib.LitMaterial)({ color: [1, 0, 0] }), {
46 near: 10,
47 far: 30,
48 color: [0, 0, 0]
49 });
50 mesh = (0, _lib.Mesh)(geometry, material);
51 mesh.transform.euler[1] = Math.PI * 0.25;
52 scene.add(mesh);
53 scene.render(camera);
54
55 t.deepLooseEqual((0, _readPixel2.default)(gl, 50, 50), [169, 0, 0], 'The center is mostly red');
56 t.deepLooseEqual((0, _readPixel2.default)(gl, 35, 50), [139, 0, 0], 'The left is darker');
57 t.deepLooseEqual((0, _readPixel2.default)(gl, 65, 50), [137, 0, 0], 'The right is darker');
58 });
59
60 t.test('the red box is affected by light fog', function (t) {
61 t.plan(3);
62
63 mesh.material.shading.fog.color = [1, 1, 1];
64 scene.render(camera);
65
66 t.deepLooseEqual((0, _readPixel2.default)(gl, 50, 50), [255, 86, 86], 'The center is mostly red');
67 t.deepLooseEqual((0, _readPixel2.default)(gl, 35, 50), [255, 116, 116], 'The left is lighter');
68 t.deepLooseEqual((0, _readPixel2.default)(gl, 65, 50), [255, 118, 118], 'The right is darker');
69
70 scene.renderer.destroy();
71 });
72});
\No newline at end of file