diff --git a/src/materials/MobileStandardMaterial.js b/src/materials/MobileStandardMaterial.js index aa9e10de101be73807c0259e1eb75f222e4d974d..10657605f2818c8ddad3eb723fe1d7dc7c4babac 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 7db272e7e61a07e067dd063aef29f06d71bc2ecb..a002e88681184eae87500acbf3d161eaadb96adb 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();