super-three 0.156.0 → 0.157.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/three.cjs +279 -224
- package/build/three.js +279 -224
- package/build/three.min.js +2 -2
- package/build/three.module.js +276 -223
- package/build/three.module.min.js +1 -1
- package/examples/jsm/capabilities/WebGL.js +17 -0
- package/examples/jsm/controls/DragControls.js +3 -2
- package/examples/jsm/csm/CSMShader.js +25 -21
- package/examples/jsm/exporters/EXRExporter.js +102 -24
- package/examples/jsm/exporters/GLTFExporter.js +1 -1
- package/examples/jsm/libs/rhino3dm/rhino3dm.js +8726 -4
- package/examples/jsm/libs/rhino3dm/rhino3dm.module.js +8737 -4
- package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
- package/examples/jsm/lights/LightProbeGenerator.js +37 -3
- package/examples/jsm/lines/LineMaterial.js +90 -156
- package/examples/jsm/loaders/3DMLoader.js +378 -104
- package/examples/jsm/loaders/GLTFLoader.js +1 -1
- package/examples/jsm/loaders/LDrawLoader.js +22 -16
- package/examples/jsm/loaders/RGBELoader.js +1 -1
- package/examples/jsm/loaders/USDZLoader.js +215 -12
- package/examples/jsm/materials/MeshGouraudMaterial.js +22 -18
- package/examples/jsm/nodes/Nodes.js +5 -1
- package/examples/jsm/nodes/accessors/BitangentNode.js +1 -1
- package/examples/jsm/nodes/accessors/BufferAttributeNode.js +2 -2
- package/examples/jsm/nodes/accessors/BufferNode.js +1 -1
- package/examples/jsm/nodes/accessors/CameraNode.js +1 -1
- package/examples/jsm/nodes/accessors/CubeTextureNode.js +2 -2
- package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +6 -5
- package/examples/jsm/nodes/accessors/InstanceNode.js +2 -2
- package/examples/jsm/nodes/accessors/LineMaterialNode.js +7 -9
- package/examples/jsm/nodes/accessors/MaterialNode.js +34 -46
- package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +9 -9
- package/examples/jsm/nodes/accessors/ModelNode.js +1 -1
- package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +5 -4
- package/examples/jsm/nodes/accessors/MorphNode.js +4 -4
- package/examples/jsm/nodes/accessors/NormalNode.js +1 -1
- package/examples/jsm/nodes/accessors/Object3DNode.js +1 -1
- package/examples/jsm/nodes/accessors/PointUVNode.js +1 -1
- package/examples/jsm/nodes/accessors/PositionNode.js +1 -1
- package/examples/jsm/nodes/accessors/ReferenceNode.js +13 -7
- package/examples/jsm/nodes/accessors/ReflectVectorNode.js +2 -2
- package/examples/jsm/nodes/accessors/SceneNode.js +2 -2
- package/examples/jsm/nodes/accessors/SkinningNode.js +2 -2
- package/examples/jsm/nodes/accessors/StorageBufferNode.js +1 -1
- package/examples/jsm/nodes/accessors/TangentNode.js +1 -1
- package/examples/jsm/nodes/accessors/TextureBicubicNode.js +2 -2
- package/examples/jsm/nodes/accessors/TextureNode.js +12 -6
- package/examples/jsm/nodes/accessors/TextureSizeNode.js +2 -2
- package/examples/jsm/nodes/accessors/TextureStoreNode.js +1 -1
- package/examples/jsm/nodes/accessors/UVNode.js +1 -1
- package/examples/jsm/nodes/accessors/UserDataNode.js +2 -2
- package/examples/jsm/nodes/code/CodeNode.js +1 -1
- package/examples/jsm/nodes/code/ExpressionNode.js +1 -1
- package/examples/jsm/nodes/code/FunctionCallNode.js +1 -1
- package/examples/jsm/nodes/code/FunctionNode.js +18 -7
- package/examples/jsm/nodes/code/ScriptableNode.js +2 -2
- package/examples/jsm/nodes/code/ScriptableValueNode.js +2 -2
- package/examples/jsm/nodes/core/ArrayUniformNode.js +1 -1
- package/examples/jsm/nodes/core/AttributeNode.js +1 -1
- package/examples/jsm/nodes/core/BypassNode.js +1 -1
- package/examples/jsm/nodes/core/CacheNode.js +1 -1
- package/examples/jsm/nodes/core/ConstNode.js +1 -1
- package/examples/jsm/nodes/core/ContextNode.js +2 -2
- package/examples/jsm/nodes/core/IndexNode.js +1 -1
- package/examples/jsm/nodes/core/InputNode.js +1 -1
- package/examples/jsm/nodes/core/Node.js +28 -13
- package/examples/jsm/nodes/core/NodeBuilder.js +3 -17
- package/examples/jsm/nodes/core/NodeFrame.js +37 -14
- package/examples/jsm/nodes/core/OutputStructNode.js +8 -4
- package/examples/jsm/nodes/core/PropertyNode.js +3 -3
- package/examples/jsm/nodes/core/StackNode.js +1 -1
- package/examples/jsm/nodes/core/StructTypeNode.js +1 -1
- package/examples/jsm/nodes/core/TempNode.js +1 -1
- package/examples/jsm/nodes/core/UniformNode.js +3 -1
- package/examples/jsm/nodes/core/VarNode.js +1 -1
- package/examples/jsm/nodes/core/VaryingNode.js +1 -1
- package/examples/jsm/nodes/core/constants.js +1 -1
- package/examples/jsm/nodes/display/BlendModeNode.js +2 -2
- package/examples/jsm/nodes/display/BumpMapNode.js +2 -2
- package/examples/jsm/nodes/display/ColorAdjustmentNode.js +2 -2
- package/examples/jsm/nodes/display/ColorSpaceNode.js +2 -2
- package/examples/jsm/nodes/display/FrontFacingNode.js +1 -1
- package/examples/jsm/nodes/display/NormalMapNode.js +2 -2
- package/examples/jsm/nodes/display/PosterizeNode.js +2 -2
- package/examples/jsm/nodes/display/ToneMappingNode.js +2 -2
- package/examples/jsm/nodes/display/ViewportDepthNode.js +2 -2
- package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +1 -1
- package/examples/jsm/nodes/display/ViewportNode.js +2 -2
- package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +1 -1
- package/examples/jsm/nodes/display/ViewportTextureNode.js +1 -1
- package/examples/jsm/nodes/fog/FogExp2Node.js +2 -2
- package/examples/jsm/nodes/fog/FogNode.js +2 -2
- package/examples/jsm/nodes/fog/FogRangeNode.js +2 -2
- package/examples/jsm/nodes/geometry/RangeNode.js +2 -2
- package/examples/jsm/nodes/gpgpu/ComputeNode.js +1 -1
- package/examples/jsm/nodes/lighting/AONode.js +2 -2
- package/examples/jsm/nodes/lighting/AmbientLightNode.js +3 -3
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +4 -4
- package/examples/jsm/nodes/lighting/DirectionalLightNode.js +4 -4
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +2 -2
- package/examples/jsm/nodes/lighting/HemisphereLightNode.js +3 -3
- package/examples/jsm/nodes/lighting/IESSpotLightNode.js +2 -2
- package/examples/jsm/nodes/lighting/LightNode.js +2 -2
- package/examples/jsm/nodes/lighting/LightingContextNode.js +3 -3
- package/examples/jsm/nodes/lighting/LightingNode.js +1 -1
- package/examples/jsm/nodes/lighting/LightsNode.js +4 -4
- package/examples/jsm/nodes/lighting/PointLightNode.js +3 -3
- package/examples/jsm/nodes/lighting/SpotLightNode.js +4 -4
- package/examples/jsm/nodes/materials/Line2NodeMaterial.js +449 -0
- package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +1 -1
- package/examples/jsm/nodes/materials/LineDashedNodeMaterial.js +2 -2
- package/examples/jsm/nodes/materials/Materials.js +1 -0
- package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +1 -1
- package/examples/jsm/nodes/materials/MeshLambertNodeMaterial.js +2 -2
- package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +2 -2
- package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +3 -3
- package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +6 -6
- package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +3 -3
- package/examples/jsm/nodes/materials/NodeMaterial.js +27 -26
- package/examples/jsm/nodes/materials/PointsNodeMaterial.js +1 -1
- package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +2 -2
- package/examples/jsm/nodes/math/CondNode.js +1 -1
- package/examples/jsm/nodes/math/HashNode.js +8 -9
- package/examples/jsm/nodes/math/MathNode.js +2 -2
- package/examples/jsm/nodes/math/OperatorNode.js +1 -1
- package/examples/jsm/nodes/procedural/CheckerNode.js +3 -3
- package/examples/jsm/nodes/shadernode/ShaderNode.js +81 -28
- package/examples/jsm/nodes/utils/ArrayElementNode.js +1 -1
- package/examples/jsm/nodes/utils/ConvertNode.js +1 -1
- package/examples/jsm/nodes/utils/DiscardNode.js +1 -1
- package/examples/jsm/nodes/utils/EquirectUVNode.js +2 -2
- package/examples/jsm/nodes/utils/JoinNode.js +1 -1
- package/examples/jsm/nodes/utils/LoopNode.js +11 -11
- package/examples/jsm/nodes/utils/MatcapUVNode.js +2 -2
- package/examples/jsm/nodes/utils/MaxMipLevelNode.js +1 -1
- package/examples/jsm/nodes/utils/OscNode.js +2 -2
- package/examples/jsm/nodes/utils/PackingNode.js +2 -2
- package/examples/jsm/nodes/utils/RemapNode.js +2 -2
- package/examples/jsm/nodes/utils/RotateUVNode.js +2 -2
- package/examples/jsm/nodes/utils/SetNode.js +62 -0
- package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +2 -2
- package/examples/jsm/nodes/utils/SplitNode.js +1 -1
- package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +2 -2
- package/examples/jsm/nodes/utils/TimerNode.js +2 -2
- package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +2 -2
- package/examples/jsm/objects/Sky.js +1 -3
- package/examples/jsm/postprocessing/OutputPass.js +3 -2
- package/examples/jsm/renderers/common/Background.js +2 -2
- package/examples/jsm/renderers/common/Bindings.js +3 -5
- package/examples/jsm/renderers/common/Pipelines.js +7 -7
- package/examples/jsm/renderers/common/RenderContext.js +3 -0
- package/examples/jsm/renderers/common/RenderObject.js +40 -16
- package/examples/jsm/renderers/common/RenderObjects.js +8 -14
- package/examples/jsm/renderers/common/Renderer.js +40 -13
- package/examples/jsm/renderers/common/SampledTexture.js +4 -2
- package/examples/jsm/renderers/common/StorageTexture.js +19 -0
- package/examples/jsm/renderers/common/Textures.js +14 -9
- package/examples/jsm/renderers/common/nodes/NodeBuilderState.js +35 -0
- package/examples/jsm/renderers/common/nodes/NodeSampledTexture.js +20 -10
- package/examples/jsm/renderers/common/nodes/NodeSampler.js +0 -6
- package/examples/jsm/renderers/common/nodes/Nodes.js +51 -24
- package/examples/jsm/renderers/webgl/WebGLBackend.js +100 -5
- package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +92 -6
- package/examples/jsm/renderers/webgl/utils/WebGLTextureUtils.js +13 -0
- package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +3 -3
- package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodes.js +14 -2
- package/examples/jsm/renderers/webgpu/WebGPUBackend.js +5 -5
- package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +6 -3
- package/examples/jsm/renderers/webgpu/utils/WebGPUPipelineUtils.js +5 -5
- package/examples/jsm/renderers/webgpu/utils/WebGPUTexturePassUtils.js +285 -0
- package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +197 -167
- package/examples/jsm/shaders/GammaCorrectionShader.js +1 -1
- package/examples/jsm/shaders/MMDToonShader.js +4 -4
- package/examples/jsm/shaders/OutputShader.js +2 -2
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +6 -6
- package/examples/jsm/utils/BufferGeometryUtils.js +6 -4
- package/package.json +1 -1
- package/src/Three.js +0 -2
- package/src/animation/AnimationUtils.js +3 -20
- package/src/animation/KeyframeTrack.js +8 -8
- package/src/cameras/Camera.js +1 -5
- package/src/cameras/CubeCamera.js +14 -8
- package/src/constants.js +7 -1
- package/src/core/RenderTarget.js +16 -7
- package/src/extras/core/CurvePath.js +4 -1
- package/src/loaders/MaterialLoader.js +1 -1
- package/src/loaders/ObjectLoader.js +6 -0
- package/src/materials/Material.js +8 -8
- package/src/math/Color.js +1 -5
- package/src/math/ColorManagement.js +82 -60
- package/src/objects/Sprite.js +2 -2
- package/src/renderers/WebGLRenderer.js +21 -2
- package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_begin.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +35 -2
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -9
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +19 -15
- package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +4 -4
- package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +3 -3
- package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +11 -6
- package/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +4 -4
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +16 -16
- package/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +3 -3
- package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +1 -1
- package/src/renderers/shaders/UniformsUtils.js +2 -2
- package/src/renderers/webgl/WebGLBackground.js +4 -3
- package/src/renderers/webgl/WebGLLights.js +14 -3
- package/src/renderers/webgl/WebGLProgram.js +34 -5
- package/src/renderers/webgl/WebGLPrograms.js +6 -2
- package/src/renderers/webgl/WebGLTextures.js +17 -6
- package/src/renderers/webgl/WebGLUtils.js +21 -23
- package/src/scenes/Fog.js +1 -0
- package/src/scenes/FogExp2.js +1 -0
- package/src/textures/Source.js +2 -2
- package/examples/jsm/renderers/webgpu/utils/WebGPUTextureMipmapUtils.js +0 -163
- package/src/lights/AmbientLightProbe.js +0 -21
- package/src/lights/HemisphereLightProbe.js +0 -30
|
@@ -29,7 +29,7 @@ class ExtendedMaterialNode extends MaterialNode {
|
|
|
29
29
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
setup( builder ) {
|
|
33
33
|
|
|
34
34
|
const material = builder.material;
|
|
35
35
|
const scope = this.scope;
|
|
@@ -40,10 +40,11 @@ class ExtendedMaterialNode extends MaterialNode {
|
|
|
40
40
|
|
|
41
41
|
if ( material.normalMap ) {
|
|
42
42
|
|
|
43
|
-
node = normalMap( this.getTexture(
|
|
43
|
+
node = normalMap( this.getTexture( 'normalMap' ), materialReference( 'normalScale', 'vec2' ) );
|
|
44
44
|
|
|
45
45
|
} else if ( material.bumpMap ) {
|
|
46
46
|
|
|
47
|
+
// @TODO: Replace material.bumpMap to this.getTexture( 'bumpMap' )
|
|
47
48
|
node = bumpMap( material.bumpMap, materialReference( 'bumpScale', 'float' ) );
|
|
48
49
|
|
|
49
50
|
} else {
|
|
@@ -54,11 +55,11 @@ class ExtendedMaterialNode extends MaterialNode {
|
|
|
54
55
|
|
|
55
56
|
} else if ( scope === ExtendedMaterialNode.CLEARCOAT_NORMAL ) {
|
|
56
57
|
|
|
57
|
-
node = material.clearcoatNormalMap ? normalMap( this.getTexture(
|
|
58
|
+
node = material.clearcoatNormalMap ? normalMap( this.getTexture( 'clearcoatNormalMap' ), materialReference( 'clearcoatNormalScale', 'vec2' ) ) : normalView;
|
|
58
59
|
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
return node || super.
|
|
62
|
+
return node || super.setup( builder );
|
|
62
63
|
|
|
63
64
|
}
|
|
64
65
|
|
|
@@ -72,4 +73,4 @@ export default ExtendedMaterialNode;
|
|
|
72
73
|
export const materialNormal = nodeImmutable( ExtendedMaterialNode, ExtendedMaterialNode.NORMAL );
|
|
73
74
|
export const materialClearcoatNormal = nodeImmutable( ExtendedMaterialNode, ExtendedMaterialNode.CLEARCOAT_NORMAL );
|
|
74
75
|
|
|
75
|
-
addNodeClass( ExtendedMaterialNode );
|
|
76
|
+
addNodeClass( 'ExtendedMaterialNode', ExtendedMaterialNode );
|
|
@@ -17,7 +17,7 @@ class InstanceNode extends Node {
|
|
|
17
17
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
setup( builder ) {
|
|
21
21
|
|
|
22
22
|
let instanceMatrixNode = this.instanceMatrixNode;
|
|
23
23
|
|
|
@@ -68,4 +68,4 @@ export default InstanceNode;
|
|
|
68
68
|
|
|
69
69
|
export const instance = nodeProxy( InstanceNode );
|
|
70
70
|
|
|
71
|
-
addNodeClass( InstanceNode );
|
|
71
|
+
addNodeClass( 'InstanceNode', InstanceNode );
|
|
@@ -4,15 +4,9 @@ import { nodeImmutable } from '../shadernode/ShaderNode.js';
|
|
|
4
4
|
|
|
5
5
|
class LineMaterialNode extends MaterialNode {
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
setup( /*builder*/ ) {
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
construct( builder ) {
|
|
14
|
-
|
|
15
|
-
return this.getFloat( builder, this.scope );
|
|
9
|
+
return this.getFloat( this.scope );
|
|
16
10
|
|
|
17
11
|
}
|
|
18
12
|
|
|
@@ -21,11 +15,15 @@ class LineMaterialNode extends MaterialNode {
|
|
|
21
15
|
LineMaterialNode.SCALE = 'scale';
|
|
22
16
|
LineMaterialNode.DASH_SIZE = 'dashSize';
|
|
23
17
|
LineMaterialNode.GAP_SIZE = 'gapSize';
|
|
18
|
+
LineMaterialNode.LINEWIDTH = 'linewidth';
|
|
19
|
+
LineMaterialNode.DASH_OFFSET = 'dashOffset';
|
|
24
20
|
|
|
25
21
|
export default LineMaterialNode;
|
|
26
22
|
|
|
27
23
|
export const materialLineScale = nodeImmutable( LineMaterialNode, LineMaterialNode.SCALE );
|
|
24
|
+
export const materialLineDashOffset = nodeImmutable( LineMaterialNode, LineMaterialNode.DASH_OFFSET );
|
|
28
25
|
export const materialLineDashSize = nodeImmutable( LineMaterialNode, LineMaterialNode.DASH_SIZE );
|
|
29
26
|
export const materialLineGapSize = nodeImmutable( LineMaterialNode, LineMaterialNode.GAP_SIZE );
|
|
27
|
+
export const materialLineWidth = nodeImmutable( LineMaterialNode, LineMaterialNode.LINEWIDTH );
|
|
30
28
|
|
|
31
|
-
addNodeClass( LineMaterialNode );
|
|
29
|
+
addNodeClass( 'LineMaterialNode', LineMaterialNode );
|
|
@@ -3,7 +3,7 @@ import { reference } from './ReferenceNode.js';
|
|
|
3
3
|
import { materialReference } from './MaterialReferenceNode.js';
|
|
4
4
|
import { nodeImmutable, float } from '../shadernode/ShaderNode.js';
|
|
5
5
|
|
|
6
|
-
const
|
|
6
|
+
const _propertyCache = new Map();
|
|
7
7
|
|
|
8
8
|
class MaterialNode extends Node {
|
|
9
9
|
|
|
@@ -15,27 +15,15 @@ class MaterialNode extends Node {
|
|
|
15
15
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
getCache(
|
|
18
|
+
getCache( property, type ) {
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
let cacheMaterial = cache.get( material );
|
|
23
|
-
|
|
24
|
-
if ( cacheMaterial === undefined ) {
|
|
25
|
-
|
|
26
|
-
cacheMaterial = {};
|
|
27
|
-
|
|
28
|
-
cache.set( material, cacheMaterial );
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
let node = cacheMaterial[ property ];
|
|
20
|
+
let node = _propertyCache.get( property );
|
|
33
21
|
|
|
34
22
|
if ( node === undefined ) {
|
|
35
23
|
|
|
36
24
|
node = materialReference( property, type );
|
|
37
25
|
|
|
38
|
-
|
|
26
|
+
_propertyCache.set( property, node );
|
|
39
27
|
|
|
40
28
|
}
|
|
41
29
|
|
|
@@ -43,25 +31,25 @@ class MaterialNode extends Node {
|
|
|
43
31
|
|
|
44
32
|
}
|
|
45
33
|
|
|
46
|
-
getFloat(
|
|
34
|
+
getFloat( property ) {
|
|
47
35
|
|
|
48
|
-
return this.getCache(
|
|
36
|
+
return this.getCache( property, 'float' );
|
|
49
37
|
|
|
50
38
|
}
|
|
51
39
|
|
|
52
|
-
getColor(
|
|
40
|
+
getColor( property ) {
|
|
53
41
|
|
|
54
|
-
return this.getCache(
|
|
42
|
+
return this.getCache( property, 'color' );
|
|
55
43
|
|
|
56
44
|
}
|
|
57
45
|
|
|
58
|
-
getTexture(
|
|
46
|
+
getTexture( property ) {
|
|
59
47
|
|
|
60
|
-
return this.getCache(
|
|
48
|
+
return this.getCache( property, 'texture' );
|
|
61
49
|
|
|
62
50
|
}
|
|
63
51
|
|
|
64
|
-
|
|
52
|
+
setup( builder ) {
|
|
65
53
|
|
|
66
54
|
const material = builder.context.material;
|
|
67
55
|
const scope = this.scope;
|
|
@@ -70,19 +58,19 @@ class MaterialNode extends Node {
|
|
|
70
58
|
|
|
71
59
|
if ( scope === MaterialNode.ALPHA_TEST || scope === MaterialNode.SHININESS || scope === MaterialNode.REFLECTIVITY || scope === MaterialNode.ROTATION || scope === MaterialNode.IRIDESCENCE || scope === MaterialNode.IRIDESCENCE_IOR ) {
|
|
72
60
|
|
|
73
|
-
node = this.getFloat(
|
|
61
|
+
node = this.getFloat( scope );
|
|
74
62
|
|
|
75
63
|
} else if ( scope === MaterialNode.SPECULAR_COLOR ) {
|
|
76
64
|
|
|
77
|
-
node = this.getColor(
|
|
65
|
+
node = this.getColor( 'specular' );
|
|
78
66
|
|
|
79
67
|
} else if ( scope === MaterialNode.COLOR ) {
|
|
80
68
|
|
|
81
|
-
const colorNode = this.getColor(
|
|
69
|
+
const colorNode = this.getColor( 'color' );
|
|
82
70
|
|
|
83
71
|
if ( material.map && material.map.isTexture === true ) {
|
|
84
72
|
|
|
85
|
-
node = colorNode.mul( this.getTexture(
|
|
73
|
+
node = colorNode.mul( this.getTexture( 'map' ) );
|
|
86
74
|
|
|
87
75
|
} else {
|
|
88
76
|
|
|
@@ -92,11 +80,11 @@ class MaterialNode extends Node {
|
|
|
92
80
|
|
|
93
81
|
} else if ( scope === MaterialNode.OPACITY ) {
|
|
94
82
|
|
|
95
|
-
const opacityNode = this.getFloat(
|
|
83
|
+
const opacityNode = this.getFloat( 'opacity' );
|
|
96
84
|
|
|
97
85
|
if ( material.alphaMap && material.alphaMap.isTexture === true ) {
|
|
98
86
|
|
|
99
|
-
node = opacityNode.mul( this.getTexture(
|
|
87
|
+
node = opacityNode.mul( this.getTexture( 'alphaMap' ) );
|
|
100
88
|
|
|
101
89
|
} else {
|
|
102
90
|
|
|
@@ -108,7 +96,7 @@ class MaterialNode extends Node {
|
|
|
108
96
|
|
|
109
97
|
if ( material.specularMap && material.specularMap.isTexture === true ) {
|
|
110
98
|
|
|
111
|
-
node = this.getTexture(
|
|
99
|
+
node = this.getTexture( 'specularMap' ).r;
|
|
112
100
|
|
|
113
101
|
} else {
|
|
114
102
|
|
|
@@ -118,11 +106,11 @@ class MaterialNode extends Node {
|
|
|
118
106
|
|
|
119
107
|
} else if ( scope === MaterialNode.ROUGHNESS ) {
|
|
120
108
|
|
|
121
|
-
const roughnessNode = this.getFloat(
|
|
109
|
+
const roughnessNode = this.getFloat( 'roughness' );
|
|
122
110
|
|
|
123
111
|
if ( material.roughnessMap && material.roughnessMap.isTexture === true ) {
|
|
124
112
|
|
|
125
|
-
node = roughnessNode.mul( this.getTexture(
|
|
113
|
+
node = roughnessNode.mul( this.getTexture( 'roughnessMap' ).g );
|
|
126
114
|
|
|
127
115
|
} else {
|
|
128
116
|
|
|
@@ -132,11 +120,11 @@ class MaterialNode extends Node {
|
|
|
132
120
|
|
|
133
121
|
} else if ( scope === MaterialNode.METALNESS ) {
|
|
134
122
|
|
|
135
|
-
const metalnessNode = this.getFloat(
|
|
123
|
+
const metalnessNode = this.getFloat( 'metalness' );
|
|
136
124
|
|
|
137
125
|
if ( material.metalnessMap && material.metalnessMap.isTexture === true ) {
|
|
138
126
|
|
|
139
|
-
node = metalnessNode.mul( this.getTexture(
|
|
127
|
+
node = metalnessNode.mul( this.getTexture( 'metalnessMap' ).b );
|
|
140
128
|
|
|
141
129
|
} else {
|
|
142
130
|
|
|
@@ -146,11 +134,11 @@ class MaterialNode extends Node {
|
|
|
146
134
|
|
|
147
135
|
} else if ( scope === MaterialNode.EMISSIVE ) {
|
|
148
136
|
|
|
149
|
-
const emissiveNode = this.getColor(
|
|
137
|
+
const emissiveNode = this.getColor( 'emissive' );
|
|
150
138
|
|
|
151
139
|
if ( material.emissiveMap && material.emissiveMap.isTexture === true ) {
|
|
152
140
|
|
|
153
|
-
node = emissiveNode.mul( this.getTexture(
|
|
141
|
+
node = emissiveNode.mul( this.getTexture( 'emissiveMap' ) );
|
|
154
142
|
|
|
155
143
|
} else {
|
|
156
144
|
|
|
@@ -160,11 +148,11 @@ class MaterialNode extends Node {
|
|
|
160
148
|
|
|
161
149
|
} else if ( scope === MaterialNode.CLEARCOAT ) {
|
|
162
150
|
|
|
163
|
-
const clearcoatNode = this.getFloat(
|
|
151
|
+
const clearcoatNode = this.getFloat( 'clearcoat' );
|
|
164
152
|
|
|
165
153
|
if ( material.clearcoatMap && material.clearcoatMap.isTexture === true ) {
|
|
166
154
|
|
|
167
|
-
node = clearcoatNode.mul( this.getTexture(
|
|
155
|
+
node = clearcoatNode.mul( this.getTexture( 'clearcoatMap' ).r );
|
|
168
156
|
|
|
169
157
|
} else {
|
|
170
158
|
|
|
@@ -174,11 +162,11 @@ class MaterialNode extends Node {
|
|
|
174
162
|
|
|
175
163
|
} else if ( scope === MaterialNode.CLEARCOAT_ROUGHNESS ) {
|
|
176
164
|
|
|
177
|
-
const clearcoatRoughnessNode = this.getFloat(
|
|
165
|
+
const clearcoatRoughnessNode = this.getFloat( 'clearcoatRoughness' );
|
|
178
166
|
|
|
179
167
|
if ( material.clearcoatRoughnessMap && material.clearcoatRoughnessMap.isTexture === true ) {
|
|
180
168
|
|
|
181
|
-
node = clearcoatRoughnessNode.mul( this.getTexture(
|
|
169
|
+
node = clearcoatRoughnessNode.mul( this.getTexture( 'clearcoatRoughnessMap' ).r );
|
|
182
170
|
|
|
183
171
|
} else {
|
|
184
172
|
|
|
@@ -188,11 +176,11 @@ class MaterialNode extends Node {
|
|
|
188
176
|
|
|
189
177
|
} else if ( scope === MaterialNode.SHEEN ) {
|
|
190
178
|
|
|
191
|
-
const sheenNode = this.getColor(
|
|
179
|
+
const sheenNode = this.getColor( 'sheenColor' ).mul( this.getFloat( 'sheen' ) ); // Move this mul() to CPU
|
|
192
180
|
|
|
193
181
|
if ( material.sheenColorMap && material.sheenColorMap.isTexture === true ) {
|
|
194
182
|
|
|
195
|
-
node = sheenNode.mul( this.getTexture(
|
|
183
|
+
node = sheenNode.mul( this.getTexture( 'sheenColorMap' ).rgb );
|
|
196
184
|
|
|
197
185
|
} else {
|
|
198
186
|
|
|
@@ -202,11 +190,11 @@ class MaterialNode extends Node {
|
|
|
202
190
|
|
|
203
191
|
} else if ( scope === MaterialNode.SHEEN_ROUGHNESS ) {
|
|
204
192
|
|
|
205
|
-
const sheenRoughnessNode = this.getFloat(
|
|
193
|
+
const sheenRoughnessNode = this.getFloat( 'sheenRoughness' );
|
|
206
194
|
|
|
207
195
|
if ( material.sheenRoughnessMap && material.sheenRoughnessMap.isTexture === true ) {
|
|
208
196
|
|
|
209
|
-
node = sheenRoughnessNode.mul( this.getTexture(
|
|
197
|
+
node = sheenRoughnessNode.mul( this.getTexture( 'sheenRoughnessMap' ).a );
|
|
210
198
|
|
|
211
199
|
} else {
|
|
212
200
|
|
|
@@ -224,7 +212,7 @@ class MaterialNode extends Node {
|
|
|
224
212
|
|
|
225
213
|
const iridescenceThicknessMinimum = reference( 0, 'float', material.iridescenceThicknessRange );
|
|
226
214
|
|
|
227
|
-
node = iridescenceThicknessMaximum.sub( iridescenceThicknessMinimum ).mul( this.getTexture(
|
|
215
|
+
node = iridescenceThicknessMaximum.sub( iridescenceThicknessMinimum ).mul( this.getTexture( 'iridescenceThicknessMap' ).g ).add( iridescenceThicknessMinimum );
|
|
228
216
|
|
|
229
217
|
} else {
|
|
230
218
|
|
|
@@ -286,4 +274,4 @@ export const materialIridescence = nodeImmutable( MaterialNode, MaterialNode.IRI
|
|
|
286
274
|
export const materialIridescenceIOR = nodeImmutable( MaterialNode, MaterialNode.IRIDESCENCE_IOR );
|
|
287
275
|
export const materialIridescenceThickness = nodeImmutable( MaterialNode, MaterialNode.IRIDESCENCE_THICKNESS );
|
|
288
276
|
|
|
289
|
-
addNodeClass( MaterialNode );
|
|
277
|
+
addNodeClass( 'MaterialNode', MaterialNode );
|
|
@@ -15,21 +15,21 @@ class MaterialReferenceNode extends ReferenceNode {
|
|
|
15
15
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
updateReference( frame ) {
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
this.node.value = material[ this.property ];
|
|
20
|
+
this.reference = this.material !== null ? this.material : frame.material;
|
|
23
21
|
|
|
24
|
-
return
|
|
22
|
+
return this.reference;
|
|
25
23
|
|
|
26
24
|
}
|
|
27
25
|
|
|
28
|
-
|
|
26
|
+
setup( builder ) {
|
|
29
27
|
|
|
30
|
-
|
|
28
|
+
const material = this.material !== null ? this.material : builder.material;
|
|
29
|
+
|
|
30
|
+
this.node.value = material[ this.property ];
|
|
31
31
|
|
|
32
|
-
super.
|
|
32
|
+
return super.setup( builder );
|
|
33
33
|
|
|
34
34
|
}
|
|
35
35
|
|
|
@@ -39,4 +39,4 @@ export default MaterialReferenceNode;
|
|
|
39
39
|
|
|
40
40
|
export const materialReference = ( name, type, material ) => nodeObject( new MaterialReferenceNode( name, type, material ) );
|
|
41
41
|
|
|
42
|
-
addNodeClass( MaterialReferenceNode );
|
|
42
|
+
addNodeClass( 'MaterialReferenceNode', MaterialReferenceNode );
|
|
@@ -31,4 +31,4 @@ export const modelPosition = nodeImmutable( ModelNode, ModelNode.POSITION );
|
|
|
31
31
|
export const modelScale = nodeImmutable( ModelNode, ModelNode.SCALE );
|
|
32
32
|
export const modelViewPosition = nodeImmutable( ModelNode, ModelNode.VIEW_POSITION );
|
|
33
33
|
|
|
34
|
-
addNodeClass( ModelNode );
|
|
34
|
+
addNodeClass( 'ModelNode', ModelNode );
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { addNodeClass } from '../core/Node.js';
|
|
2
|
+
import TempNode from '../core/TempNode.js';
|
|
2
3
|
import { cameraProjectionMatrix } from './CameraNode.js';
|
|
3
4
|
import { modelViewMatrix } from './ModelNode.js';
|
|
4
5
|
import { positionLocal } from './PositionNode.js';
|
|
5
6
|
import { nodeProxy } from '../shadernode/ShaderNode.js';
|
|
6
7
|
|
|
7
|
-
class ModelViewProjectionNode extends
|
|
8
|
+
class ModelViewProjectionNode extends TempNode {
|
|
8
9
|
|
|
9
10
|
constructor( positionNode = positionLocal ) {
|
|
10
11
|
|
|
@@ -14,7 +15,7 @@ class ModelViewProjectionNode extends Node {
|
|
|
14
15
|
|
|
15
16
|
}
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
setup() {
|
|
18
19
|
|
|
19
20
|
return cameraProjectionMatrix.mul( modelViewMatrix ).mul( this.positionNode );
|
|
20
21
|
|
|
@@ -26,4 +27,4 @@ export default ModelViewProjectionNode;
|
|
|
26
27
|
|
|
27
28
|
export const modelViewProjection = nodeProxy( ModelViewProjectionNode );
|
|
28
29
|
|
|
29
|
-
addNodeClass( ModelViewProjectionNode );
|
|
30
|
+
addNodeClass( 'ModelViewProjectionNode', ModelViewProjectionNode );
|
|
@@ -19,7 +19,7 @@ class MorphNode extends Node {
|
|
|
19
19
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
setupAttribute( builder, name, assignNode = positionLocal ) {
|
|
23
23
|
|
|
24
24
|
const mesh = this.mesh;
|
|
25
25
|
const attributes = mesh.geometry.morphAttributes[ name ];
|
|
@@ -39,9 +39,9 @@ class MorphNode extends Node {
|
|
|
39
39
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
setup( builder ) {
|
|
43
43
|
|
|
44
|
-
this.
|
|
44
|
+
this.setupAttribute( builder, 'position' );
|
|
45
45
|
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -67,4 +67,4 @@ export default MorphNode;
|
|
|
67
67
|
|
|
68
68
|
export const morph = nodeProxy( MorphNode );
|
|
69
69
|
|
|
70
|
-
addNodeClass( MorphNode );
|
|
70
|
+
addNodeClass( 'MorphNode', MorphNode );
|
|
@@ -93,4 +93,4 @@ export const transformedNormalView = property( 'vec3', 'TransformedNormalView' )
|
|
|
93
93
|
export const transformedNormalWorld = transformedNormalView.transformDirection( cameraViewMatrix ).normalize();
|
|
94
94
|
export const transformedClearcoatNormalView = property( 'vec3', 'TransformedClearcoatNormalView' );
|
|
95
95
|
|
|
96
|
-
addNodeClass( NormalNode );
|
|
96
|
+
addNodeClass( 'NormalNode', NormalNode );
|
|
@@ -147,4 +147,4 @@ export const objectPosition = nodeProxy( Object3DNode, Object3DNode.POSITION );
|
|
|
147
147
|
export const objectScale = nodeProxy( Object3DNode, Object3DNode.SCALE );
|
|
148
148
|
export const objectViewPosition = nodeProxy( Object3DNode, Object3DNode.VIEW_POSITION );
|
|
149
149
|
|
|
150
|
-
addNodeClass( Object3DNode );
|
|
150
|
+
addNodeClass( 'Object3DNode', Object3DNode );
|
|
@@ -101,4 +101,4 @@ export const positionWorldDirection = nodeImmutable( PositionNode, PositionNode.
|
|
|
101
101
|
export const positionView = nodeImmutable( PositionNode, PositionNode.VIEW );
|
|
102
102
|
export const positionViewDirection = nodeImmutable( PositionNode, PositionNode.VIEW_DIRECTION );
|
|
103
103
|
|
|
104
|
-
addNodeClass( PositionNode );
|
|
104
|
+
addNodeClass( 'PositionNode', PositionNode );
|
|
@@ -15,6 +15,7 @@ class ReferenceNode extends Node {
|
|
|
15
15
|
this.uniformType = uniformType;
|
|
16
16
|
|
|
17
17
|
this.object = object;
|
|
18
|
+
this.reference = null;
|
|
18
19
|
|
|
19
20
|
this.node = null;
|
|
20
21
|
|
|
@@ -24,6 +25,14 @@ class ReferenceNode extends Node {
|
|
|
24
25
|
|
|
25
26
|
}
|
|
26
27
|
|
|
28
|
+
updateReference( frame ) {
|
|
29
|
+
|
|
30
|
+
this.reference = this.object !== null ? this.object : frame.object;
|
|
31
|
+
|
|
32
|
+
return this.reference;
|
|
33
|
+
|
|
34
|
+
}
|
|
35
|
+
|
|
27
36
|
setNodeType( uniformType ) {
|
|
28
37
|
|
|
29
38
|
let node = null;
|
|
@@ -48,16 +57,13 @@ class ReferenceNode extends Node {
|
|
|
48
57
|
|
|
49
58
|
}
|
|
50
59
|
|
|
51
|
-
update( frame ) {
|
|
52
|
-
|
|
53
|
-
const object = this.object !== null ? this.object : frame.object;
|
|
54
|
-
const property = this.property;
|
|
60
|
+
update( /*frame*/ ) {
|
|
55
61
|
|
|
56
|
-
this.node.value =
|
|
62
|
+
this.node.value = this.reference[ this.property ];
|
|
57
63
|
|
|
58
64
|
}
|
|
59
65
|
|
|
60
|
-
|
|
66
|
+
setup( /*builder*/ ) {
|
|
61
67
|
|
|
62
68
|
return this.node;
|
|
63
69
|
|
|
@@ -69,4 +75,4 @@ export default ReferenceNode;
|
|
|
69
75
|
|
|
70
76
|
export const reference = ( name, type, object ) => nodeObject( new ReferenceNode( name, type, object ) );
|
|
71
77
|
|
|
72
|
-
addNodeClass( ReferenceNode );
|
|
78
|
+
addNodeClass( 'ReferenceNode', ReferenceNode );
|
|
@@ -18,7 +18,7 @@ class ReflectVectorNode extends Node {
|
|
|
18
18
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
setup() {
|
|
22
22
|
|
|
23
23
|
const reflectView = positionViewDirection.negate().reflect( transformedNormalView );
|
|
24
24
|
|
|
@@ -32,4 +32,4 @@ export default ReflectVectorNode;
|
|
|
32
32
|
|
|
33
33
|
export const reflectVector = nodeImmutable( ReflectVectorNode );
|
|
34
34
|
|
|
35
|
-
addNodeClass( ReflectVectorNode );
|
|
35
|
+
addNodeClass( 'ReflectVectorNode', ReflectVectorNode );
|
|
@@ -14,7 +14,7 @@ class SceneNode extends Node {
|
|
|
14
14
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
setup( builder ) {
|
|
18
18
|
|
|
19
19
|
const scope = this.scope;
|
|
20
20
|
const scene = this.scene !== null ? this.scene : builder.scene;
|
|
@@ -49,4 +49,4 @@ export default SceneNode;
|
|
|
49
49
|
export const backgroundBlurriness = nodeImmutable( SceneNode, SceneNode.BACKGROUND_BLURRINESS );
|
|
50
50
|
export const backgroundIntensity = nodeImmutable( SceneNode, SceneNode.BACKGROUND_INTENSITY );
|
|
51
51
|
|
|
52
|
-
addNodeClass( SceneNode );
|
|
52
|
+
addNodeClass( 'SceneNode', SceneNode );
|
|
@@ -30,7 +30,7 @@ class SkinningNode extends Node {
|
|
|
30
30
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
setup( builder ) {
|
|
34
34
|
|
|
35
35
|
const { skinIndexNode, skinWeightNode, bindMatrixNode, bindMatrixInverseNode, boneMatricesNode } = this;
|
|
36
36
|
|
|
@@ -90,4 +90,4 @@ export default SkinningNode;
|
|
|
90
90
|
|
|
91
91
|
export const skinning = nodeProxy( SkinningNode );
|
|
92
92
|
|
|
93
|
-
addNodeClass( SkinningNode );
|
|
93
|
+
addNodeClass( 'SkinningNode', SkinningNode );
|
|
@@ -100,4 +100,4 @@ export const tangentWorld = nodeImmutable( TangentNode, TangentNode.WORLD );
|
|
|
100
100
|
export const transformedTangentView = temp( tangentView, 'TransformedTangentView' );
|
|
101
101
|
export const transformedTangentWorld = normalize( transformedTangentView.transformDirection( cameraViewMatrix ) );
|
|
102
102
|
|
|
103
|
-
addNodeClass( TangentNode );
|
|
103
|
+
addNodeClass( 'TangentNode', TangentNode );
|
|
@@ -77,7 +77,7 @@ class TextureBicubicNode extends TempNode {
|
|
|
77
77
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
setup() {
|
|
81
81
|
|
|
82
82
|
return textureBicubicMethod( this.textureNode, this.blurNode );
|
|
83
83
|
|
|
@@ -91,4 +91,4 @@ export const textureBicubic = nodeProxy( TextureBicubicNode );
|
|
|
91
91
|
|
|
92
92
|
addNodeElement( 'bicubic', textureBicubic );
|
|
93
93
|
|
|
94
|
-
addNodeClass( TextureBicubicNode );
|
|
94
|
+
addNodeClass( 'TextureBicubicNode', TextureBicubicNode );
|
|
@@ -53,7 +53,13 @@ class TextureNode extends UniformNode {
|
|
|
53
53
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
updateReference( /*frame*/ ) {
|
|
57
|
+
|
|
58
|
+
return this.value;
|
|
59
|
+
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
getTransformedUV( uvNode ) {
|
|
57
63
|
|
|
58
64
|
const texture = this.value;
|
|
59
65
|
|
|
@@ -70,7 +76,7 @@ class TextureNode extends UniformNode {
|
|
|
70
76
|
|
|
71
77
|
}
|
|
72
78
|
|
|
73
|
-
|
|
79
|
+
setup( builder ) {
|
|
74
80
|
|
|
75
81
|
const properties = builder.getNodeProperties( this );
|
|
76
82
|
|
|
@@ -86,9 +92,9 @@ class TextureNode extends UniformNode {
|
|
|
86
92
|
|
|
87
93
|
if ( ! uvNode ) uvNode = this.getDefaultUV();
|
|
88
94
|
|
|
89
|
-
if ( this.updateMatrix ) {
|
|
95
|
+
if ( this.updateMatrix === true ) {
|
|
90
96
|
|
|
91
|
-
uvNode = this.
|
|
97
|
+
uvNode = this.getTransformedUV( uvNode );
|
|
92
98
|
|
|
93
99
|
}
|
|
94
100
|
|
|
@@ -181,7 +187,7 @@ class TextureNode extends UniformNode {
|
|
|
181
187
|
|
|
182
188
|
if ( builder.needsColorSpaceToLinear( this.value ) ) {
|
|
183
189
|
|
|
184
|
-
snippet = colorSpaceToLinear( expression( snippet, nodeType ), this.value.colorSpace ).
|
|
190
|
+
snippet = colorSpaceToLinear( expression( snippet, nodeType ), this.value.colorSpace ).setup( builder ).build( builder, nodeType );
|
|
185
191
|
|
|
186
192
|
}
|
|
187
193
|
|
|
@@ -272,4 +278,4 @@ export const sampler = ( aTexture ) => ( aTexture.isNode === true ? aTexture : t
|
|
|
272
278
|
addNodeElement( 'texture', texture );
|
|
273
279
|
//addNodeElement( 'textureLevel', textureLevel );
|
|
274
280
|
|
|
275
|
-
addNodeClass( TextureNode );
|
|
281
|
+
addNodeClass( 'TextureNode', TextureNode );
|
|
@@ -20,7 +20,7 @@ class TextureSizeNode extends Node {
|
|
|
20
20
|
const textureProperty = this.textureNode.build( builder, 'property' );
|
|
21
21
|
const levelNode = this.levelNode.build( builder, 'int' );
|
|
22
22
|
|
|
23
|
-
return builder.format(
|
|
23
|
+
return builder.format( `${builder.getMethod( 'textureDimensions' )}( ${textureProperty}, ${levelNode} )`, this.getNodeType( builder ), output );
|
|
24
24
|
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -32,4 +32,4 @@ export const textureSize = nodeProxy( TextureSizeNode );
|
|
|
32
32
|
|
|
33
33
|
addNodeElement( 'textureSize', textureSize );
|
|
34
34
|
|
|
35
|
-
addNodeClass( TextureSizeNode );
|
|
35
|
+
addNodeClass( 'TextureSizeNode', TextureSizeNode );
|
|
@@ -14,7 +14,7 @@ class UserDataNode extends ReferenceNode {
|
|
|
14
14
|
|
|
15
15
|
update( frame ) {
|
|
16
16
|
|
|
17
|
-
this.
|
|
17
|
+
this.reference = this.userData !== null ? this.userData : frame.object.userData;
|
|
18
18
|
|
|
19
19
|
super.update( frame );
|
|
20
20
|
|
|
@@ -26,4 +26,4 @@ export default UserDataNode;
|
|
|
26
26
|
|
|
27
27
|
export const userData = ( name, inputType, userData ) => nodeObject( new UserDataNode( name, inputType, userData ) );
|
|
28
28
|
|
|
29
|
-
addNodeClass( UserDataNode );
|
|
29
|
+
addNodeClass( 'UserDataNode', UserDataNode );
|