Modify 3D example with light and bump shader.

Depends on what I assume the final version of https://skia-review.googlesource.com/c/skia/+/272646 will be
Change-Id: I53485c5f47e0fef120c8a1bd6d0620fddfb3cde9
Bug: skia:9866
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/272529
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
diff --git a/modules/canvaskit/interface.js b/modules/canvaskit/interface.js
index 0b95c69..e7bb71e 100644
--- a/modules/canvaskit/interface.js
+++ b/modules/canvaskit/interface.js
@@ -214,6 +214,9 @@
   CanvasKit.SkVector.sub = function(a, b) {
     return a.map(function(v, i) { return v-b[i]; });
   }
+  CanvasKit.SkVector.dist = function(a, b) {
+    return CanvasKit.SkVector.length(CanvasKit.SkVector.sub(a, b));
+  }
   CanvasKit.SkVector.normalize = function(v) {
     return CanvasKit.SkVector.mulScalar(v, 1/CanvasKit.SkVector.length(v));
   }
@@ -408,6 +411,14 @@
     return tmp;
   }
 
+  CanvasKit.SkM44.transpose = function(m) {
+    return [
+      m[0], m[4], m[8], m[12],
+      m[1], m[5], m[9], m[13],
+      m[2], m[6], m[10], m[14],
+      m[3], m[7], m[11], m[15],
+    ];
+  }
 
   // An SkColorMatrix is a 4x4 color matrix that transforms the 4 color channels
   //  with a 1x4 matrix that post-translates those 4 channels.
@@ -421,6 +432,11 @@
   // Much of this was hand-transcribed from SkColorMatrix.cpp, because it's easier to
   // deal with a Float32Array of length 20 than to try to expose the SkColorMatrix object.
 
+  var rScale = 0;
+  var gScale = 6;
+  var bScale = 12;
+  var aScale = 18;
+
   var rPostTrans = 4;
   var gPostTrans = 9;
   var bPostTrans = 14;
@@ -428,21 +444,21 @@
 
   CanvasKit.SkColorMatrix = {};
   CanvasKit.SkColorMatrix.identity = function() {
-    return Float32Array.of([
-      1, 0, 0, 0, 0,
-      0, 1, 0, 0, 0,
-      0, 0, 1, 0, 0,
-      0, 0, 0, 1, 0,
-    ]);
+    var m = new Float32Array(20);
+    m[rScale] = 1;
+    m[gScale] = 1;
+    m[bScale] = 1;
+    m[aScale] = 1;
+    return m;
   }
 
   CanvasKit.SkColorMatrix.scaled = function(rs, gs, bs, as) {
-    return Float32Array.of([
-      rs,  0,  0,  0,  0,
-       0, gs,  0,  0,  0,
-       0,  0, bs,  0,  0,
-       0,  0,  0, as,  0,
-    ]);
+    var m = new Float32Array(20);
+    m[rScale] = rs;
+    m[gScale] = gs;
+    m[bScale] = bs;
+    m[aScale] = as;
+    return m;
   }
 
   var rotateIndices = [