PositionNode.js 915 B

12345678910
  1. import { attribute } from '../core/AttributeNode.js';
  2. import { varying } from '../core/VaryingNode.js';
  3. import { modelWorldMatrix, modelViewMatrix } from './ModelNode.js';
  4. export const positionGeometry = /*#__PURE__*/ attribute( 'position', 'vec3' );
  5. export const positionLocal = /*#__PURE__*/ positionGeometry.toVar( 'positionLocal' );
  6. export const positionWorld = /*#__PURE__*/ varying( modelWorldMatrix.mul( positionLocal ).xyz, 'v_positionWorld' );
  7. export const positionWorldDirection = /*#__PURE__*/ varying( positionLocal.transformDirection( modelWorldMatrix ), 'v_positionWorldDirection' ).normalize().toVar( 'positionWorldDirection' );
  8. export const positionView = /*#__PURE__*/ varying( modelViewMatrix.mul( positionLocal ).xyz, 'v_positionView' );
  9. export const positionViewDirection = /*#__PURE__*/ varying( positionView.negate(), 'v_positionViewDirection' ).normalize().toVar( 'positionViewDirection' );