1 | 'use strict';
|
2 |
|
3 | var _tape = require('tape');
|
4 |
|
5 | var _tape2 = _interopRequireDefault(_tape);
|
6 |
|
7 | var _readPixel = require('../read-pixel');
|
8 |
|
9 | var _readPixel2 = _interopRequireDefault(_readPixel);
|
10 |
|
11 | var _geo3dBox = require('geo-3d-box');
|
12 |
|
13 | var _geo3dBox2 = _interopRequireDefault(_geo3dBox);
|
14 |
|
15 | var _lib = require('../../lib');
|
16 |
|
17 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
18 |
|
19 | (0, _tape2.default)('Lambert Lit Augmentation', function (t) {
|
20 | var scene = (0, _lib.Scene)({
|
21 | autoStart: false,
|
22 | renderer: (0, _lib.ForwardRenderer)({
|
23 | autoResizeCanvas: false,
|
24 | width: 100,
|
25 | height: 100
|
26 | })
|
27 | });
|
28 |
|
29 | var gl = scene.renderer.gl;
|
30 | var camera = (0, _lib.PerspectiveCamera)();
|
31 | scene.add(camera);
|
32 | var geometry = (0, _lib.Geometry)((0, _geo3dBox2.default)({ size: 5 }));
|
33 |
|
34 | var material = (0, _lib.LitMaterial)({
|
35 | color: [51 / 255, 0, 0]
|
36 | }).use(_lib.LambertAugment, {
|
37 | diffuse: [1, 1, 1]
|
38 | });
|
39 |
|
40 | var mesh = (0, _lib.Mesh)(geometry, material);
|
41 |
|
42 | var whiteLight = (0, _lib.DirectionalLight)({ color: [1, 1, 1], direction: [1, 0, 0] });
|
43 | var redLight = (0, _lib.DirectionalLight)({ color: [1, 0, 0], direction: [-1, 0, 0] });
|
44 |
|
45 | camera.position[2] = 20;
|
46 | mesh.transform.euler[1] = Math.PI * 0.25;
|
47 | scene.add(mesh);
|
48 |
|
49 | t.test('no lights renders the ambient color', function (t) {
|
50 | t.plan(3);
|
51 |
|
52 | scene.render(camera);
|
53 |
|
54 | t.deepLooseEqual((0, _readPixel2.default)(gl, 50, 50), [51, 0, 0], 'The center is dark red');
|
55 | t.deepLooseEqual((0, _readPixel2.default)(gl, 35, 50), [51, 0, 0], 'The left is dark red');
|
56 | t.deepLooseEqual((0, _readPixel2.default)(gl, 65, 50), [51, 0, 0], 'The right is dark red');
|
57 | });
|
58 |
|
59 | t.test('the box is affected by a single light', function (t) {
|
60 | t.plan(2);
|
61 |
|
62 | scene.add(whiteLight);
|
63 | scene.render(camera);
|
64 |
|
65 | t.deepLooseEqual((0, _readPixel2.default)(gl, 35, 50), [51, 0, 0], 'The left is black');
|
66 | t.deepLooseEqual((0, _readPixel2.default)(gl, 65, 50), [231, 180, 180], 'The right is pink');
|
67 | });
|
68 |
|
69 | t.test('the box is affected by a single light', function (t) {
|
70 | t.plan(2);
|
71 |
|
72 | scene.add(redLight);
|
73 | scene.render(camera);
|
74 |
|
75 | t.deepLooseEqual((0, _readPixel2.default)(gl, 35, 50), [231, 0, 0], 'The left is red');
|
76 | t.deepLooseEqual((0, _readPixel2.default)(gl, 65, 50), [231, 180, 180], 'The right is pink');
|
77 |
|
78 | scene.renderer.destroy();
|
79 | });
|
80 | }); |
\ | No newline at end of file |