CubeTextureNode.js 959 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import TextureNode from './TextureNode.js';
  2. import { reflectVector } from './ReflectVectorNode.js';
  3. import { addNodeClass } from '../core/Node.js';
  4. import { addNodeElement, nodeProxy, vec3 } from '../shadernode/ShaderNode.js';
  5. class CubeTextureNode extends TextureNode {
  6. constructor( value, uvNode = null, levelNode = null ) {
  7. super( value, uvNode, levelNode );
  8. this.isCubeTextureNode = true;
  9. }
  10. getInputType( /*builder*/ ) {
  11. return 'cubeTexture';
  12. }
  13. getDefaultUV() {
  14. return reflectVector;
  15. }
  16. setUpdateMatrix( /*updateMatrix*/ ) { } // Ignore .updateMatrix for CubeTextureNode
  17. setupUV( builder, uvNode ) {
  18. return vec3( uvNode.x.negate(), uvNode.yz );
  19. }
  20. generateUV( builder, cubeUV ) {
  21. return cubeUV.build( builder, 'vec3' );
  22. }
  23. }
  24. export default CubeTextureNode;
  25. export const cubeTexture = nodeProxy( CubeTextureNode );
  26. addNodeElement( 'cubeTexture', cubeTexture );
  27. addNodeClass( 'CubeTextureNode', CubeTextureNode );