12345678910111213141516171819202122232425262728293031323334 |
- import { WebGLNodeBuilder } from './WebGLNodeBuilder.js';
- import NodeFrame from '../../nodes/core/NodeFrame.js';
- import { Material } from 'three';
- const builders = new WeakMap();
- export const nodeFrame = new NodeFrame();
- Material.prototype.onBuild = function ( object, parameters, renderer ) {
- builders.set( this, new WebGLNodeBuilder( object, renderer, parameters ).build() );
- };
- Material.prototype.onBeforeRender = function ( renderer, scene, camera, geometry, object ) {
- const nodeBuilder = builders.get( this );
- if ( nodeBuilder !== undefined ) {
- nodeFrame.material = this;
- nodeFrame.camera = camera;
- nodeFrame.object = object;
- nodeFrame.renderer = renderer;
- for ( const node of nodeBuilder.updateNodes ) {
- nodeFrame.updateNode( node );
- }
- }
- };
|