|
@@ -1,4 +1,8 @@
|
|
|
+import { Color } from '../math/Color.js';
|
|
|
import { Vector2 } from '../math/Vector2.js';
|
|
|
+import { Vector3 } from '../math/Vector3.js';
|
|
|
+import { Vector4 } from '../math/Vector4.js';
|
|
|
+import { Matrix4 } from '../math/Matrix4.js';
|
|
|
import { FileLoader } from './FileLoader.js';
|
|
|
import { DefaultLoadingManager } from './LoadingManager.js';
|
|
|
import * as Materials from '../materials/Materials.js';
|
|
@@ -63,9 +67,6 @@ Object.assign( MaterialLoader.prototype, {
|
|
|
if ( json.shininess !== undefined ) material.shininess = json.shininess;
|
|
|
if ( json.clearCoat !== undefined ) material.clearCoat = json.clearCoat;
|
|
|
if ( json.clearCoatRoughness !== undefined ) material.clearCoatRoughness = json.clearCoatRoughness;
|
|
|
- if ( json.uniforms !== undefined ) material.uniforms = json.uniforms;
|
|
|
- if ( json.vertexShader !== undefined ) material.vertexShader = json.vertexShader;
|
|
|
- if ( json.fragmentShader !== undefined ) material.fragmentShader = json.fragmentShader;
|
|
|
if ( json.vertexColors !== undefined ) material.vertexColors = json.vertexColors;
|
|
|
if ( json.fog !== undefined ) material.fog = json.fog;
|
|
|
if ( json.flatShading !== undefined ) material.flatShading = json.flatShading;
|
|
@@ -100,6 +101,54 @@ Object.assign( MaterialLoader.prototype, {
|
|
|
if ( json.visible !== undefined ) material.visible = json.visible;
|
|
|
if ( json.userData !== undefined ) material.userData = json.userData;
|
|
|
|
|
|
+ // Shader Material
|
|
|
+
|
|
|
+ if ( json.uniforms !== undefined ) {
|
|
|
+
|
|
|
+ for ( var name in json.uniforms ) {
|
|
|
+
|
|
|
+ var uniform = json.uniforms[ name ];
|
|
|
+
|
|
|
+ material.uniforms[ name ] = {};
|
|
|
+
|
|
|
+ switch ( uniform.type ) {
|
|
|
+
|
|
|
+ case 't':
|
|
|
+ material.uniforms[ name ].value = getTexture( uniform.value );
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'c':
|
|
|
+ material.uniforms[ name ].value = new Color().setHex( uniform.value );
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'v2':
|
|
|
+ material.uniforms[ name ].value = new Vector2().fromArray( uniform.value );
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'v3':
|
|
|
+ material.uniforms[ name ].value = new Vector3().fromArray( uniform.value );
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'v4':
|
|
|
+ material.uniforms[ name ].value = new Vector4().fromArray( uniform.value );
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'm4':
|
|
|
+ material.uniforms[ name ].value = new Matrix4().fromArray( uniform.value );
|
|
|
+ break;
|
|
|
+
|
|
|
+ default:
|
|
|
+ material.uniforms[ name ].value = uniform.value;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if ( json.vertexShader !== undefined ) material.vertexShader = json.vertexShader;
|
|
|
+ if ( json.fragmentShader !== undefined ) material.fragmentShader = json.fragmentShader;
|
|
|
+
|
|
|
// Deprecated
|
|
|
|
|
|
if ( json.shading !== undefined ) material.flatShading = json.shading === 1; // THREE.FlatShading
|