Skip to content

Commit 561a1b5

Browse files
committed
Handle vertex normals too
1 parent 640ce49 commit 561a1b5

1 file changed

Lines changed: 20 additions & 4 deletions

File tree

src/gameobjects/mesh/Mesh.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ var GameObjectEvents = require('../events');
1111
var GetCalcMatrix = require('../GetCalcMatrix');
1212
var MeshRender = require('./MeshRender');
1313
var MeshCamera = require('./MeshCamera');
14+
var MeshLight = require('./MeshLight');
1415
var Model = require('../../geom/mesh/Model');
16+
var Vector3 = require('../../math/Vector3');
1517

1618
/**
1719
* @classdesc
@@ -84,6 +86,8 @@ var Mesh = new Class({
8486
*/
8587
this.camera = new MeshCamera(45, 0, 0, -10, 0.01, 1000);
8688

89+
this.light = new MeshLight();
90+
8791
/**
8892
* An array of Model instances that have been created in this Mesh.
8993
*
@@ -152,7 +156,8 @@ var Mesh = new Class({
152156

153157
this.setSize(renderer.width, renderer.height);
154158

155-
this.initPipeline();
159+
// TODO - Change to const
160+
this.initPipeline('MeshPipeline');
156161

157162
if (vertices)
158163
{
@@ -324,6 +329,7 @@ var Mesh = new Class({
324329

325330
var vertices = modelData.vertices;
326331
var textureCoords = modelData.textureCoords;
332+
var normals = modelData.vertexNormals;
327333
var faces = modelData.faces;
328334

329335
var defaultUV1 = { u: 0, v: 1 };
@@ -334,14 +340,20 @@ var Mesh = new Class({
334340
{
335341
var face = faces[i];
336342

343+
// {textureCoordsIndex: 0, vertexIndex: 16, vertexNormalIndex: 16}
337344
var v1 = face.vertices[0];
338345
var v2 = face.vertices[1];
339346
var v3 = face.vertices[2];
340347

348+
// {x: 0.19509, y: 0.980785, z: 0}
341349
var m1 = vertices[v1.vertexIndex];
342350
var m2 = vertices[v2.vertexIndex];
343351
var m3 = vertices[v3.vertexIndex];
344352

353+
var n1 = normals[v1.vertexNormalIndex];
354+
var n2 = normals[v2.vertexNormalIndex];
355+
var n3 = normals[v3.vertexNormalIndex];
356+
345357
var t1 = v1.textureCoordsIndex;
346358
var t2 = v2.textureCoordsIndex;
347359
var t3 = v3.textureCoordsIndex;
@@ -350,9 +362,9 @@ var Mesh = new Class({
350362
var uv2 = (t2 === -1) ? defaultUV2 : textureCoords[t2];
351363
var uv3 = (t3 === -1) ? defaultUV3 : textureCoords[t3];
352364

353-
var vert1 = model.addVertex(originX + m1.x * scale, originY + m1.y * scale, originZ + m1.z * scale, uv1.u, uv1.v);
354-
var vert2 = model.addVertex(originX + m2.x * scale, originY + m2.y * scale, originZ + m2.z * scale, uv2.u, uv2.v);
355-
var vert3 = model.addVertex(originX + m3.x * scale, originY + m3.y * scale, originZ + m3.z * scale, uv3.u, uv3.v);
365+
var vert1 = model.addVertex(originX + m1.x * scale, originY + m1.y * scale, originZ + m1.z * scale, uv1.u, uv1.v, n1.x, n1.y, n1.z);
366+
var vert2 = model.addVertex(originX + m2.x * scale, originY + m2.y * scale, originZ + m2.z * scale, uv2.u, uv2.v, n2.x, n2.y, n2.z);
367+
var vert3 = model.addVertex(originX + m3.x * scale, originY + m3.y * scale, originZ + m3.z * scale, uv3.u, uv3.v, n3.x, n3.y, n3.z);
356368

357369
model.addFace(vert1, vert2, vert3);
358370
}
@@ -533,6 +545,7 @@ var Mesh = new Class({
533545

534546
var camera = this.camera;
535547

548+
/*
536549
if (camera.dirty || width !== this._prevWidth || height !== this._prevHeight)
537550
{
538551
// Mesh has resized, flow that down to the Camera
@@ -541,6 +554,9 @@ var Mesh = new Class({
541554
this._prevWidth = width;
542555
this._prevHeight = height;
543556
}
557+
*/
558+
559+
camera.update(width, height);
544560

545561
var models = this.models;
546562

0 commit comments

Comments
 (0)