You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
548 B
31 lines
548 B
import Node from '../core/Node.js';
|
|
import {
|
|
transformedNormalView, positionViewDirection,
|
|
transformDirection, negate, reflect, cameraViewMatrix
|
|
} from '../shadernode/ShaderNodeBaseElements.js';
|
|
|
|
class ReflectVectorNode extends Node {
|
|
|
|
constructor() {
|
|
|
|
super( 'vec3' );
|
|
|
|
}
|
|
|
|
getHash( /*builder*/ ) {
|
|
|
|
return 'reflectVector';
|
|
|
|
}
|
|
|
|
construct() {
|
|
|
|
const reflectView = reflect( negate( positionViewDirection ), transformedNormalView );
|
|
|
|
return transformDirection( reflectView, cameraViewMatrix );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
export default ReflectVectorNode;
|
|
|