|
@@ -20,7 +20,7 @@ import MaterialNode from '../accessors/MaterialNode.js';
|
|
import MaterialReferenceNode from '../accessors/MaterialReferenceNode.js';
|
|
import MaterialReferenceNode from '../accessors/MaterialReferenceNode.js';
|
|
import ModelViewProjectionNode from '../accessors/ModelViewProjectionNode.js';
|
|
import ModelViewProjectionNode from '../accessors/ModelViewProjectionNode.js';
|
|
import NormalNode from '../accessors/NormalNode.js';
|
|
import NormalNode from '../accessors/NormalNode.js';
|
|
-import Object3DNode from '../accessors/Object3DNode.js';
|
|
|
|
|
|
+import ModelNode from '../accessors/ModelNode.js';
|
|
import PointUVNode from '../accessors/PointUVNode.js';
|
|
import PointUVNode from '../accessors/PointUVNode.js';
|
|
import PositionNode from '../accessors/PositionNode.js';
|
|
import PositionNode from '../accessors/PositionNode.js';
|
|
import ReferenceNode from '../accessors/ReferenceNode.js';
|
|
import ReferenceNode from '../accessors/ReferenceNode.js';
|
|
@@ -39,9 +39,6 @@ import MathNode from '../math/MathNode.js';
|
|
import OperatorNode from '../math/OperatorNode.js';
|
|
import OperatorNode from '../math/OperatorNode.js';
|
|
import CondNode from '../math/CondNode.js';
|
|
import CondNode from '../math/CondNode.js';
|
|
|
|
|
|
-// lights
|
|
|
|
-import ReflectedLightNode from '../lights/ReflectedLightNode.js';
|
|
|
|
-
|
|
|
|
// utils
|
|
// utils
|
|
import ArrayElementNode from '../utils/ArrayElementNode.js';
|
|
import ArrayElementNode from '../utils/ArrayElementNode.js';
|
|
import ConvertNode from '../utils/ConvertNode.js';
|
|
import ConvertNode from '../utils/ConvertNode.js';
|
|
@@ -49,7 +46,7 @@ import ConvertNode from '../utils/ConvertNode.js';
|
|
// shader node utils
|
|
// shader node utils
|
|
import { ShaderNode, nodeObject, nodeObjects, nodeArray, nodeProxy, nodeImmutable, ConvertType, getConstNodeType, cacheMaps } from './ShaderNode.js';
|
|
import { ShaderNode, nodeObject, nodeObjects, nodeArray, nodeProxy, nodeImmutable, ConvertType, getConstNodeType, cacheMaps } from './ShaderNode.js';
|
|
|
|
|
|
-// shader node utils
|
|
|
|
|
|
+// shader node base
|
|
|
|
|
|
export { ShaderNode, nodeObject, nodeObjects, nodeArray, nodeProxy, nodeImmutable };
|
|
export { ShaderNode, nodeObject, nodeObjects, nodeArray, nodeProxy, nodeImmutable };
|
|
|
|
|
|
@@ -104,7 +101,7 @@ export const uniform = ( nodeOrType ) => {
|
|
|
|
|
|
const nodeType = getConstNodeType( nodeOrType );
|
|
const nodeType = getConstNodeType( nodeOrType );
|
|
|
|
|
|
- // TODO: get ConstNode from .traverse() in the future
|
|
|
|
|
|
+ // @TODO: get ConstNode from .traverse() in the future
|
|
const value = nodeOrType.isNode === true ? nodeOrType.node?.value || nodeOrType.value : nodeOrType;
|
|
const value = nodeOrType.isNode === true ? nodeOrType.node?.value || nodeOrType.value : nodeOrType;
|
|
|
|
|
|
return nodeObject( new UniformNode( value, nodeType ) );
|
|
return nodeObject( new UniformNode( value, nodeType ) );
|
|
@@ -137,8 +134,9 @@ export const cameraPosition = nodeImmutable( CameraNode, CameraNode.POSITION );
|
|
|
|
|
|
export const materialAlphaTest = nodeImmutable( MaterialNode, MaterialNode.ALPHA_TEST );
|
|
export const materialAlphaTest = nodeImmutable( MaterialNode, MaterialNode.ALPHA_TEST );
|
|
export const materialColor = nodeImmutable( MaterialNode, MaterialNode.COLOR );
|
|
export const materialColor = nodeImmutable( MaterialNode, MaterialNode.COLOR );
|
|
|
|
+export const materialEmissive = nodeImmutable( MaterialNode, MaterialNode.EMISSIVE );
|
|
export const materialOpacity = nodeImmutable( MaterialNode, MaterialNode.OPACITY );
|
|
export const materialOpacity = nodeImmutable( MaterialNode, MaterialNode.OPACITY );
|
|
-export const materialSpecular = nodeImmutable( MaterialNode, MaterialNode.SPECULAR );
|
|
|
|
|
|
+//export const materialSpecular = nodeImmutable( MaterialNode, MaterialNode.SPECULAR );
|
|
export const materialRoughness = nodeImmutable( MaterialNode, MaterialNode.ROUGHNESS );
|
|
export const materialRoughness = nodeImmutable( MaterialNode, MaterialNode.ROUGHNESS );
|
|
export const materialMetalness = nodeImmutable( MaterialNode, MaterialNode.METALNESS );
|
|
export const materialMetalness = nodeImmutable( MaterialNode, MaterialNode.METALNESS );
|
|
|
|
|
|
@@ -159,11 +157,11 @@ export const normalWorld = nodeImmutable( NormalNode, NormalNode.WORLD );
|
|
export const normalView = nodeImmutable( NormalNode, NormalNode.VIEW );
|
|
export const normalView = nodeImmutable( NormalNode, NormalNode.VIEW );
|
|
export const transformedNormalView = nodeImmutable( VarNode, normalView, 'TransformedNormalView' );
|
|
export const transformedNormalView = nodeImmutable( VarNode, normalView, 'TransformedNormalView' );
|
|
|
|
|
|
-export const viewMatrix = nodeProxy( Object3DNode, Object3DNode.VIEW_MATRIX );
|
|
|
|
-export const normalMatrix = nodeProxy( Object3DNode, Object3DNode.NORMAL_MATRIX );
|
|
|
|
-export const worldMatrix = nodeProxy( Object3DNode, Object3DNode.WORLD_MATRIX );
|
|
|
|
-export const position = nodeProxy( Object3DNode, Object3DNode.POSITION );
|
|
|
|
-export const viewPosition = nodeProxy( Object3DNode, Object3DNode.VIEW_POSITION );
|
|
|
|
|
|
+export const modelViewMatrix = nodeImmutable( ModelNode, ModelNode.VIEW_MATRIX );
|
|
|
|
+export const modelNormalMatrix = nodeImmutable( ModelNode, ModelNode.NORMAL_MATRIX );
|
|
|
|
+export const modelWorldMatrix = nodeImmutable( ModelNode, ModelNode.WORLD_MATRIX );
|
|
|
|
+export const modelPosition = nodeImmutable( ModelNode, ModelNode.POSITION );
|
|
|
|
+export const modelViewPosition = nodeImmutable( ModelNode, ModelNode.VIEW_POSITION );
|
|
|
|
|
|
export const positionGeometry = nodeImmutable( PositionNode, PositionNode.GEOMETRY );
|
|
export const positionGeometry = nodeImmutable( PositionNode, PositionNode.GEOMETRY );
|
|
export const positionLocal = nodeImmutable( PositionNode, PositionNode.LOCAL );
|
|
export const positionLocal = nodeImmutable( PositionNode, PositionNode.LOCAL );
|
|
@@ -260,9 +258,8 @@ export const faceforward = nodeProxy( MathNode, MathNode.FACEFORWARD );
|
|
export const frontFacing = nodeImmutable( FrontFacingNode );
|
|
export const frontFacing = nodeImmutable( FrontFacingNode );
|
|
export const faceDirection = sub( mul( float( frontFacing ), 2 ), 1 );
|
|
export const faceDirection = sub( mul( float( frontFacing ), 2 ), 1 );
|
|
|
|
|
|
-// lights
|
|
|
|
|
|
+// lighting
|
|
|
|
|
|
-export const reflectedLight = nodeProxy( ReflectedLightNode );
|
|
|
|
|
|
|
|
// utils
|
|
// utils
|
|
|
|
|
|
@@ -271,3 +268,4 @@ export const element = nodeProxy( ArrayElementNode );
|
|
// miscellaneous
|
|
// miscellaneous
|
|
|
|
|
|
export const dotNV = saturate( dot( transformedNormalView, positionViewDirection ) );
|
|
export const dotNV = saturate( dot( transformedNormalView, positionViewDirection ) );
|
|
|
|
+export const transformedNormalWorld = normalize( transformDirection( transformedNormalView, cameraViewMatrix ) );
|