Skip to content

Commit

Permalink
Added: SceneNode, backgroundBlurriness
Browse files Browse the repository at this point in the history
  • Loading branch information
sunag committed Jun 26, 2023
1 parent c944e5a commit 04d2cf7
Show file tree
Hide file tree
Showing 7 changed files with 56 additions and 8 deletions.
1 change: 1 addition & 0 deletions examples/jsm/nodes/Nodes.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ export { default as PositionNode, positionGeometry, positionLocal, positionWorld
export { default as ReferenceNode, reference } from './accessors/ReferenceNode.js';
export { default as ReflectVectorNode, reflectVector } from './accessors/ReflectVectorNode.js';
export { default as SkinningNode, skinning } from './accessors/SkinningNode.js';
export { default as SceneNode, backgroundBlurriness } from './accessors/SceneNode.js';
export { default as StorageBufferNode, storage } from './accessors/StorageBufferNode.js';
export { default as TangentNode, tangentGeometry, tangentLocal, tangentView, tangentWorld, transformedTangentView, transformedTangentWorld } from './accessors/TangentNode.js';
export { default as TextureNode, texture, /*textureLevel,*/ sampler } from './accessors/TextureNode.js';
Expand Down
46 changes: 46 additions & 0 deletions examples/jsm/nodes/accessors/SceneNode.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import Node from '../core/Node.js';
import { addNodeClass } from '../core/Node.js';
import { nodeImmutable } from '../shadernode/ShaderNode.js';
import { reference } from './ReferenceNode.js';

class SceneNode extends Node {

constructor( scope = SceneNode.BACKGROUND_BLURRINESS, scene = null ) {

super();

this.scope = scope;
this.scene = scene;

}

construct( builder ) {

const scope = this.scope;
const scene = this.scene !== null ? this.scene : builder.scene;

let output;

if ( scope === SceneNode.BACKGROUND_BLURRINESS ) {

output = reference( 'backgroundBlurriness', 'float', scene );

} else {

console.error( 'THREE.SceneNode: Unknown scope:', scope );

}

return output;

}

}

SceneNode.BACKGROUND_BLURRINESS = 'backgroundBlurriness';

export default SceneNode;

export const backgroundBlurriness = nodeImmutable( SceneNode, SceneNode.BACKGROUND_BLURRINESS );

addNodeClass( SceneNode );
3 changes: 2 additions & 1 deletion examples/jsm/nodes/core/NodeBuilder.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,14 @@ const toFloat = ( value ) => {

class NodeBuilder {

constructor( object, renderer, parser ) {
constructor( object, renderer, parser, scene = null ) {

this.object = object;
this.material = ( object && object.material ) || null;
this.geometry = ( object && object.geometry ) || null;
this.renderer = renderer;
this.parser = parser;
this.scene = scene;

this.nodes = [];
this.updateNodes = [];
Expand Down
2 changes: 1 addition & 1 deletion examples/jsm/renderers/common/nodes/Nodes.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Nodes extends DataMap {

if ( nodeBuilder === undefined ) {

nodeBuilder = this.backend.createNodeBuilder( renderObject.object, this.renderer );
nodeBuilder = this.backend.createNodeBuilder( renderObject.object, this.renderer, renderObject.scene );
nodeBuilder.material = renderObject.material;
nodeBuilder.lightsNode = renderObject.lightsNode;
nodeBuilder.environmentNode = this.getEnvironmentNode( renderObject.scene );
Expand Down
4 changes: 2 additions & 2 deletions examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ const precisionLib = {

class GLSLNodeBuilder extends NodeBuilder {

constructor( object, renderer ) {
constructor( object, renderer, scene = null ) {

super( object, renderer, new GLSLNodeParser() );
super( object, renderer, new GLSLNodeParser(), scene );

}

Expand Down
4 changes: 2 additions & 2 deletions examples/jsm/renderers/webgpu/WebGPUBackend.js
Original file line number Diff line number Diff line change
Expand Up @@ -574,9 +574,9 @@ class WebGPUBackend extends Backend {

// node builder

createNodeBuilder( object, renderer ) {
createNodeBuilder( object, renderer, scene = null ) {

return new WGSLNodeBuilder( object, renderer );
return new WGSLNodeBuilder( object, renderer, scene );

}

Expand Down
4 changes: 2 additions & 2 deletions examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,9 @@ fn threejs_repeatWrapping( uv : vec2<f32>, dimension : vec2<u32> ) -> vec2<u32>

class WGSLNodeBuilder extends NodeBuilder {

constructor( object, renderer ) {
constructor( object, renderer, scene = null ) {

super( object, renderer, new WGSLNodeParser() );
super( object, renderer, new WGSLNodeParser(), scene );

this.uniformsGroup = {};

Expand Down

0 comments on commit 04d2cf7

Please sign in to comment.