From c40d00ad2ae41ee15b8118df1ef86073b98ebb0f Mon Sep 17 00:00:00 2001
From: Brian Peiris <brianpeiris@gmail.com>
Date: Thu, 1 Nov 2018 21:31:30 -0700
Subject: [PATCH] Fix effect shader for MobileStandardMaterial

---
 src/materials/MobileStandardMaterial.js | 5 +++++
 src/utils/media-utils.js                | 3 ++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/materials/MobileStandardMaterial.js b/src/materials/MobileStandardMaterial.js
index aa9e10de1..10657605f 100644
--- a/src/materials/MobileStandardMaterial.js
+++ b/src/materials/MobileStandardMaterial.js
@@ -74,6 +74,8 @@ void main() {
 `;
 
 export default class MobileStandardMaterial extends THREE.ShaderMaterial {
+  type = "MobileStandardMaterial";
+  isMobileStandardMaterial = true;
   static fromStandardMaterial(material) {
     const parameters = {
       vertexShader: VERTEX_SHADER,
@@ -107,4 +109,7 @@ export default class MobileStandardMaterial extends THREE.ShaderMaterial {
 
     return mobileMaterial;
   }
+  clone() {
+    return MobileStandardMaterial.fromStandardMaterial(this);
+  }
 }
diff --git a/src/utils/media-utils.js b/src/utils/media-utils.js
index 7db272e7e..a002e8868 100644
--- a/src/utils/media-utils.js
+++ b/src/utils/media-utils.js
@@ -142,12 +142,13 @@ export const addMedia = (src, template, contentOrigin, resolve = false, resize =
 export function injectCustomShaderChunks(obj) {
   const vertexRegex = /\bskinning_vertex\b/;
   const fragRegex = /\bgl_FragColor\b/;
+  const validMaterials = ["MeshStandardMaterial", "MeshBasicMaterial", "MobileStandardMaterial"];
 
   const materialsSeen = new Set();
   const shaderUniforms = [];
 
   obj.traverse(object => {
-    if (!object.material || !["MeshStandardMaterial", "MeshBasicMaterial"].includes(object.material.type)) {
+    if (!object.material || !validMaterials.includes(object.material.type)) {
       return;
     }
     object.material = object.material.clone();
-- 
GitLab