1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import { MaterialLoader } from 'three';
- import { createNodeMaterialFromType } from '../materials/Materials.js';
- const superFromTypeFunction = MaterialLoader.createMaterialFromType;
- MaterialLoader.createMaterialFromType = function ( type ) {
- const material = createNodeMaterialFromType( type );
- if ( material !== undefined ) {
- return material;
- }
- return superFromTypeFunction.call( this, type );
- };
- class NodeMaterialLoader extends MaterialLoader {
- constructor( manager ) {
- super( manager );
- this.nodes = {};
- }
- parse( json ) {
- const material = super.parse( json );
- const nodes = this.nodes;
- const inputNodes = json.inputNodes;
- for ( const property in inputNodes ) {
- const uuid = inputNodes[ property ];
- material[ property ] = nodes[ uuid ];
- }
- return material;
- }
- setNodes( value ) {
- this.nodes = value;
- return this;
- }
- }
- export default NodeMaterialLoader;
|