Skip to content

Commit

Permalink
Add ViewDirectionNode
Browse files Browse the repository at this point in the history
  • Loading branch information
sunag committed Jan 17, 2024
1 parent 96cb1b5 commit d5eea2b
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
1 change: 1 addition & 0 deletions examples/jsm/nodes/Nodes.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ export { default as TextureNode, texture, textureLoad, /*textureLevel,*/ sampler
export { default as TextureStoreNode, textureStore } from './accessors/TextureStoreNode.js';
export { default as UVNode, uv } from './accessors/UVNode.js';
export { default as UserDataNode, userData } from './accessors/UserDataNode.js';
export { default as ViewDirectionNode, viewDirection, viewDirectionLocal, viewDirectionWorld } from './accessors/ViewDirectionNode.js';

// display
export { default as BlendModeNode, burn, dodge, overlay, screen } from './display/BlendModeNode.js';
Expand Down
30 changes: 30 additions & 0 deletions examples/jsm/nodes/accessors/ViewDirectionNode.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import Node, { addNodeClass } from '../core/Node.js';
import { positionLocal, positionWorld } from './PositionNode.js';
import { cameraPosition } from './CameraNode.js';
import { nodeProxy } from '../shadernode/ShaderNode.js';

class ViewDirectionNode extends Node {

constructor( positionNode ) {

super( 'vec3' );

this.positionNode = positionNode;

}

setup() {

return this.positionNode.sub( cameraPosition ).normalize();

}

}

export default ViewDirectionNode;

export const viewDirection = nodeProxy( ViewDirectionNode );
export const viewDirectionLocal = viewDirection( positionLocal );
export const viewDirectionWorld = viewDirection( positionWorld );

addNodeClass( 'ViewDirectionNode', ViewDirectionNode );

0 comments on commit d5eea2b

Please sign in to comment.