Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion examples/js/loaders/NodeMaterialLoader.js
Original file line number Diff line number Diff line change
Expand Up @@ -184,9 +184,10 @@ Object.assign( THREE.NodeMaterialLoader.prototype, {

switch ( node.type ) {

case "IntNode":
case "FloatNode":

object.number = node.number;
object.value = node.value;

break;

Expand Down
4 changes: 2 additions & 2 deletions examples/js/nodes/InputNode.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ THREE.InputNode.prototype.generate = function ( builder, output, uuid, type, ns,

if ( ! data.vertex ) {

data.vertex = material.createVertexUniform( type, this.value, ns, needsUpdate );
data.vertex = material.createVertexUniform( type, this, ns, needsUpdate );

}

Expand All @@ -52,7 +52,7 @@ THREE.InputNode.prototype.generate = function ( builder, output, uuid, type, ns,

if ( ! data.fragment ) {

data.fragment = material.createFragmentUniform( type, this.value, ns, needsUpdate );
data.fragment = material.createFragmentUniform( type, this, ns, needsUpdate );

}

Expand Down
16 changes: 8 additions & 8 deletions examples/js/nodes/NodeMaterial.js
Original file line number Diff line number Diff line change
Expand Up @@ -282,16 +282,16 @@ THREE.NodeMaterial.prototype.mergeUniform = function ( uniforms ) {

};

THREE.NodeMaterial.prototype.createUniform = function ( type, value, ns, needsUpdate ) {
THREE.NodeMaterial.prototype.createUniform = function ( type, node, ns, needsUpdate ) {

var index = this.uniformList.length;

var uniform = {
var uniform = new THREE.NodeUniform( {
type: type,
value: value,
name: ns ? ns : 'nVu' + index,
node: node,
needsUpdate: needsUpdate
};
} );

this.uniformList.push( uniform );

Expand Down Expand Up @@ -487,9 +487,9 @@ THREE.NodeMaterial.prototype.getCodePars = function ( pars, prefix ) {

};

THREE.NodeMaterial.prototype.createVertexUniform = function ( type, value, ns, needsUpdate ) {
THREE.NodeMaterial.prototype.createVertexUniform = function ( type, node, ns, needsUpdate ) {

var uniform = this.createUniform( type, value, ns, needsUpdate );
var uniform = this.createUniform( type, node, ns, needsUpdate );

this.vertexUniform.push( uniform );
this.vertexUniform[ uniform.name ] = uniform;
Expand All @@ -500,9 +500,9 @@ THREE.NodeMaterial.prototype.createVertexUniform = function ( type, value, ns, n

};

THREE.NodeMaterial.prototype.createFragmentUniform = function ( type, value, ns, needsUpdate ) {
THREE.NodeMaterial.prototype.createFragmentUniform = function ( type, node, ns, needsUpdate ) {

var uniform = this.createUniform( type, value, ns, needsUpdate );
var uniform = this.createUniform( type, node, ns, needsUpdate );

this.fragmentUniform.push( uniform );
this.fragmentUniform[ uniform.name ] = uniform;
Expand Down
29 changes: 29 additions & 0 deletions examples/js/nodes/NodeUniform.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/**
* @author sunag / http://www.sunag.com.br/
*/

THREE.NodeUniform = function ( params ) {

params = params || {};

this.name = params.name;
this.type = params.type;
this.node = params.node;
this.needsUpdate = params.needsUpdate;

};

Object.defineProperties( THREE.NodeUniform.prototype, {
value: {
get: function () {

return this.node.value;

},
set: function ( val ) {

this.node.value = val;

}
}
} );
8 changes: 4 additions & 4 deletions examples/js/nodes/accessors/CameraNode.js
Original file line number Diff line number Diff line change
Expand Up @@ -150,8 +150,8 @@ THREE.CameraNode.prototype.onUpdateFrame = function ( frame ) {

var camera = this.camera;

this.near.number = camera.near;
this.far.number = camera.far;
this.near.value = camera.near;
this.far.value = camera.far;

break;

Expand All @@ -175,8 +175,8 @@ THREE.CameraNode.prototype.toJSON = function ( meta ) {

case THREE.CameraNode.DEPTH:

data.near = this.near.number;
data.far = this.far.number;
data.near = this.near.value;
data.far = this.far.value;

break;

Expand Down
23 changes: 4 additions & 19 deletions examples/js/nodes/inputs/FloatNode.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,19 @@ THREE.FloatNode = function ( value ) {

THREE.InputNode.call( this, 'fv1' );

this.value = [ value || 0 ];
this.value = value || 0;

};

THREE.FloatNode.prototype = Object.create( THREE.InputNode.prototype );
THREE.FloatNode.prototype.constructor = THREE.FloatNode;
THREE.FloatNode.prototype.nodeType = "Float";

Object.defineProperties( THREE.FloatNode.prototype, {
number: {
get: function () {

return this.value[ 0 ];

},
set: function ( val ) {

this.value[ 0 ] = val;

}
}
} );

THREE.FloatNode.prototype.generateReadonly = function ( builder, output, uuid, type, ns, needsUpdate ) {

var value = this.number;
var val = this.value;

return builder.format( Math.floor( value ) !== value ? value : value + ".0", type, output );
return builder.format( Math.floor( val ) !== val ? val : val + ".0", type, output );

};

Expand All @@ -45,7 +30,7 @@ THREE.FloatNode.prototype.toJSON = function ( meta ) {

data = this.createJSONNode( meta );

data.number = this.number;
data.value = this.value;

if ( this.readonly === true ) data.readonly = true;

Expand Down
21 changes: 3 additions & 18 deletions examples/js/nodes/inputs/IntNode.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,17 @@ THREE.IntNode = function ( value ) {

THREE.InputNode.call( this, 'iv1' );

this.value = [ Math.floor( value || 0 ) ];
this.value = Math.floor( value || 0 );

};

THREE.IntNode.prototype = Object.create( THREE.InputNode.prototype );
THREE.IntNode.prototype.constructor = THREE.IntNode;
THREE.IntNode.prototype.nodeType = "Int";

Object.defineProperties( THREE.IntNode.prototype, {
number: {
get: function () {

return this.value[ 0 ];

},
set: function ( val ) {

this.value[ 0 ] = Math.floor( val );

}
}
} );

THREE.IntNode.prototype.generateReadonly = function ( builder, output, uuid, type, ns, needsUpdate ) {

return builder.format( this.number, type, output );
return builder.format( this.value, type, output );

};

Expand All @@ -43,7 +28,7 @@ THREE.IntNode.prototype.toJSON = function ( meta ) {

data = this.createJSONNode( meta );

data.number = this.number;
data.value = this.value;

if ( this.readonly === true ) data.readonly = true;

Expand Down
8 changes: 4 additions & 4 deletions examples/js/nodes/utils/BlurNode.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,15 +59,15 @@ THREE.BlurNode.prototype.updateFrame = function ( frame ) {

if ( this.size ) {

this.horizontal.number = this.radius.x / this.size.x;
this.vertical.number = this.radius.y / this.size.y;
this.horizontal.value = this.radius.x / this.size.x;
this.vertical.value = this.radius.y / this.size.y;

} else if ( this.value.value && this.value.value.image ) {

var image = this.value.value.image;

this.horizontal.number = this.radius.x / image.width;
this.vertical.number = this.radius.y / image.height;
this.horizontal.value = this.radius.x / image.width;
this.vertical.value = this.radius.y / image.height;

}

Expand Down
6 changes: 3 additions & 3 deletions examples/js/nodes/utils/TimerNode.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,19 +42,19 @@ THREE.TimerNode.prototype.updateFrame = function ( frame ) {

case THREE.TimerNode.LOCAL:

this.number += frame.delta * scale;
this.value += frame.delta * scale;

break;

case THREE.TimerNode.DELTA:

this.number = frame.delta * scale;
this.value = frame.delta * scale;

break;

default:

this.number = frame.time * scale;
this.value = frame.time * scale;

}

Expand Down
4 changes: 2 additions & 2 deletions examples/js/nodes/utils/VelocityNode.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ THREE.VelocityNode.prototype.setTarget = function ( target ) {

if ( target ) {

this.position = target.getWorldPosition();
this.position = target.getWorldPosition( this.position || new THREE.Vector3() );
this.oldPosition = this.position.clone();

}
Expand All @@ -85,7 +85,7 @@ THREE.VelocityNode.prototype.updateFrameVelocity = function ( frame ) {

if ( this.target ) {

this.position = this.target.getWorldPosition();
this.position = this.target.getWorldPosition( this.position || new THREE.Vector3() );
this.velocity.subVectors( this.position, this.oldPosition );
this.oldPosition.copy( this.position );

Expand Down
2 changes: 1 addition & 1 deletion examples/nodes/caustic.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"nodes":{"0C853FCD-3CB8-4144-B7A3-F49CED812B61":{"uuid":"0C853FCD-3CB8-4144-B7A3-F49CED812B61","type":"StandardNode","color":"69ACB125-2EAB-4F1C-9A30-C8A2E886BBFB","roughness":"6C740750-9287-47E1-9A13-6A5DE38EF80C","metalness":"290C6194-C8F5-4CAD-8790-098E506DA454","ambient":"E9EC29E0-A9F3-4046-BB0A-C743D5A60528"},"69ACB125-2EAB-4F1C-9A30-C8A2E886BBFB":{"uuid":"69ACB125-2EAB-4F1C-9A30-C8A2E886BBFB","type":"Math3Node","a":"C051EF5D-5269-4A12-AC20-4102377D5D57","b":"02ED8121-2961-4074-ACA7-F386EB1290A1","c":"6C7A71AD-A8CC-4E19-9F26-F9C3B2CD0B8F","method":"mix"},"C051EF5D-5269-4A12-AC20-4102377D5D57":{"uuid":"C051EF5D-5269-4A12-AC20-4102377D5D57","type":"ColorNode","r":1,"g":1,"b":1},"02ED8121-2961-4074-ACA7-F386EB1290A1":{"uuid":"02ED8121-2961-4074-ACA7-F386EB1290A1","type":"Math3Node","a":"8D184736-20DD-4EFB-8BDE-657B0B7E0374","b":"C187F032-F8B4-475F-9317-305998EDA247","c":"962F8B0A-B3DA-4789-AF1B-C47B8FE5A01B","method":"mix"},"8D184736-20DD-4EFB-8BDE-657B0B7E0374":{"uuid":"8D184736-20DD-4EFB-8BDE-657B0B7E0374","type":"ColorNode","r":0,"g":0.32941176470588235,"b":0.8745098039215686},"C187F032-F8B4-475F-9317-305998EDA247":{"uuid":"C187F032-F8B4-475F-9317-305998EDA247","type":"ColorNode","r":1,"g":1,"b":1},"962F8B0A-B3DA-4789-AF1B-C47B8FE5A01B":{"uuid":"962F8B0A-B3DA-4789-AF1B-C47B8FE5A01B","type":"Math1Node","a":"025D9840-CC59-4345-9ECF-58F30EA1BC18","method":"saturate"},"025D9840-CC59-4345-9ECF-58F30EA1BC18":{"uuid":"025D9840-CC59-4345-9ECF-58F30EA1BC18","type":"OperatorNode","a":"F33136D1-4646-46A9-8168-B5F3A7F0E6E7","b":"C1E4ED63-76C4-454E-8042-3FEB65265365","op":"*"},"F33136D1-4646-46A9-8168-B5F3A7F0E6E7":{"uuid":"F33136D1-4646-46A9-8168-B5F3A7F0E6E7","type":"FunctionCallNode","value":"34DE7BBF-67F0-42AE-A92F-E41A88065E2C","inputs":{"p":"29DDBD3C-E348-4E25-B79A-3D75D5576E47","time":"91645353-F838-4ECB-A54F-0B0BD81EF0CE"}},"34DE7BBF-67F0-42AE-A92F-E41A88065E2C":{"uuid":"34DE7BBF-67F0-42AE-A92F-E41A88065E2C","type":"FunctionNode","name":"voronoiLayers","src":"float voronoiLayers(vec2 p, in float time) {\n\tfloat v = 0.0;\n\tfloat a = 0.4;\n\tfor (int i = 0; i < 3; i++) {\n\t\tv += voronoi(p, time) * a;\n\t\tp *= 2.0;\n\t\ta *= 0.5;\n\t}\n\treturn v;\n}","isMethod":true,"useKeywords":true,"extensions":{},"keywords":{},"includes":["3E1A3E00-4D57-4363-B4E8-9AC7FFFD1162"]},"3E1A3E00-4D57-4363-B4E8-9AC7FFFD1162":{"uuid":"3E1A3E00-4D57-4363-B4E8-9AC7FFFD1162","type":"FunctionNode","name":"voronoi","src":"float voronoi(vec2 p, in float time) {\n\tvec2 n = floor(p);\n\tvec2 f = fract(p);\n\tfloat md = 5.0;\n\tvec2 m = vec2(0.0);\n\tfor (int i = -1; i <= 1; i++) {\n\t\tfor (int j = -1; j <= 1; j++) {\n\t\t\tvec2 g = vec2(i, j);\n\t\t\tvec2 o = hash2(n + g);\n\t\t\to = 0.5 + 0.5 * sin(time + 5.038 * o);\n\t\t\tvec2 r = g + o - f;\n\t\t\tfloat d = dot(r, r);\n\t\t\tif (d < md) {\n\t\t\t\tmd = d;\n\t\t\t\tm = n+g+o;\n\t\t\t}\n\t\t}\n\t}\n\treturn md;\n}","isMethod":true,"useKeywords":true,"extensions":{},"keywords":{},"includes":["DFB9B6EF-EAD5-4CA4-B491-CED3B14BDCF3"]},"DFB9B6EF-EAD5-4CA4-B491-CED3B14BDCF3":{"uuid":"DFB9B6EF-EAD5-4CA4-B491-CED3B14BDCF3","type":"FunctionNode","name":"hash2","src":"vec2 hash2(vec2 p) {\n\treturn fract(sin(vec2(dot(p, vec2(123.4, 748.6)), dot(p, vec2(547.3, 659.3))))*5232.85324);\n}","isMethod":true,"useKeywords":true,"extensions":{},"keywords":{}},"29DDBD3C-E348-4E25-B79A-3D75D5576E47":{"uuid":"29DDBD3C-E348-4E25-B79A-3D75D5576E47","type":"OperatorNode","a":"37FCB5FB-D6C5-4D51-B6C9-D65CFF8E56F5","b":"C2939E11-9118-412E-8656-687BDEE7F259","op":"*"},"37FCB5FB-D6C5-4D51-B6C9-D65CFF8E56F5":{"uuid":"37FCB5FB-D6C5-4D51-B6C9-D65CFF8E56F5","type":"SwitchNode","node":"B5FE994F-6069-45C5-87D0-E5BBB5DDAA9B","components":"xz"},"B5FE994F-6069-45C5-87D0-E5BBB5DDAA9B":{"uuid":"B5FE994F-6069-45C5-87D0-E5BBB5DDAA9B","type":"PositionNode","scope":"world"},"C2939E11-9118-412E-8656-687BDEE7F259":{"uuid":"C2939E11-9118-412E-8656-687BDEE7F259","type":"FloatNode","number":0.1},"91645353-F838-4ECB-A54F-0B0BD81EF0CE":{"uuid":"91645353-F838-4ECB-A54F-0B0BD81EF0CE","type":"OperatorNode","a":"4301B6EC-D918-4C2C-A8A4-BDA39B67FC88","b":"2BD5D8FE-FA0F-4B6F-A15D-1C6341A2A49A","op":"*"},"4301B6EC-D918-4C2C-A8A4-BDA39B67FC88":{"uuid":"4301B6EC-D918-4C2C-A8A4-BDA39B67FC88","type":"TimerNode","name":"time","scale":1},"2BD5D8FE-FA0F-4B6F-A15D-1C6341A2A49A":{"uuid":"2BD5D8FE-FA0F-4B6F-A15D-1C6341A2A49A","type":"FloatNode","name":"speed","number":2},"C1E4ED63-76C4-454E-8042-3FEB65265365":{"uuid":"C1E4ED63-76C4-454E-8042-3FEB65265365","type":"FloatNode","number":1.5},"6C7A71AD-A8CC-4E19-9F26-F9C3B2CD0B8F":{"uuid":"6C7A71AD-A8CC-4E19-9F26-F9C3B2CD0B8F","type":"OperatorNode","a":"484155DB-1D71-4C53-BD67-8C7F0D39DFAF","b":"E26C242B-22E1-4CF0-8E6A-9D3EE3009DDF","op":"*"},"484155DB-1D71-4C53-BD67-8C7F0D39DFAF":{"uuid":"484155DB-1D71-4C53-BD67-8C7F0D39DFAF","type":"FloatNode","number":1},"E26C242B-22E1-4CF0-8E6A-9D3EE3009DDF":{"uuid":"E26C242B-22E1-4CF0-8E6A-9D3EE3009DDF","type":"Math1Node","a":"4E7D0932-B617-4DC8-B3EE-CB2F2D0C71D3","method":"saturate"},"4E7D0932-B617-4DC8-B3EE-CB2F2D0C71D3":{"uuid":"4E7D0932-B617-4DC8-B3EE-CB2F2D0C71D3","type":"SwitchNode","node":"121C70CA-F385-46EA-85DF-8803A8DFA94A","components":"y"},"121C70CA-F385-46EA-85DF-8803A8DFA94A":{"uuid":"121C70CA-F385-46EA-85DF-8803A8DFA94A","type":"NormalNode","scope":"world"},"6C740750-9287-47E1-9A13-6A5DE38EF80C":{"uuid":"6C740750-9287-47E1-9A13-6A5DE38EF80C","type":"FloatNode","number":0.5},"290C6194-C8F5-4CAD-8790-098E506DA454":{"uuid":"290C6194-C8F5-4CAD-8790-098E506DA454","type":"FloatNode","number":0.5},"E9EC29E0-A9F3-4046-BB0A-C743D5A60528":{"uuid":"E9EC29E0-A9F3-4046-BB0A-C743D5A60528","type":"OperatorNode","a":"025D9840-CC59-4345-9ECF-58F30EA1BC18","b":"6C7A71AD-A8CC-4E19-9F26-F9C3B2CD0B8F","op":"*"}},"materials":{"F60E153B-B020-448B-8309-FA32A7387B37":{"uuid":"F60E153B-B020-448B-8309-FA32A7387B37","type":"StandardNodeMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"fog":false,"lights":true,"vertex":"0C853FCD-3CB8-4144-B7A3-F49CED812B61","fragment":"0C853FCD-3CB8-4144-B7A3-F49CED812B61"}},"material":"F60E153B-B020-448B-8309-FA32A7387B37"}
{"nodes":{"0C853FCD-3CB8-4144-B7A3-F49CED812B61":{"uuid":"0C853FCD-3CB8-4144-B7A3-F49CED812B61","type":"StandardNode","color":"69ACB125-2EAB-4F1C-9A30-C8A2E886BBFB","roughness":"6C740750-9287-47E1-9A13-6A5DE38EF80C","metalness":"290C6194-C8F5-4CAD-8790-098E506DA454","ambient":"E9EC29E0-A9F3-4046-BB0A-C743D5A60528"},"69ACB125-2EAB-4F1C-9A30-C8A2E886BBFB":{"uuid":"69ACB125-2EAB-4F1C-9A30-C8A2E886BBFB","type":"Math3Node","a":"C051EF5D-5269-4A12-AC20-4102377D5D57","b":"02ED8121-2961-4074-ACA7-F386EB1290A1","c":"6C7A71AD-A8CC-4E19-9F26-F9C3B2CD0B8F","method":"mix"},"C051EF5D-5269-4A12-AC20-4102377D5D57":{"uuid":"C051EF5D-5269-4A12-AC20-4102377D5D57","type":"ColorNode","r":1,"g":1,"b":1},"02ED8121-2961-4074-ACA7-F386EB1290A1":{"uuid":"02ED8121-2961-4074-ACA7-F386EB1290A1","type":"Math3Node","a":"8D184736-20DD-4EFB-8BDE-657B0B7E0374","b":"C187F032-F8B4-475F-9317-305998EDA247","c":"962F8B0A-B3DA-4789-AF1B-C47B8FE5A01B","method":"mix"},"8D184736-20DD-4EFB-8BDE-657B0B7E0374":{"uuid":"8D184736-20DD-4EFB-8BDE-657B0B7E0374","type":"ColorNode","r":0,"g":0.32941176470588235,"b":0.8745098039215686},"C187F032-F8B4-475F-9317-305998EDA247":{"uuid":"C187F032-F8B4-475F-9317-305998EDA247","type":"ColorNode","r":1,"g":1,"b":1},"962F8B0A-B3DA-4789-AF1B-C47B8FE5A01B":{"uuid":"962F8B0A-B3DA-4789-AF1B-C47B8FE5A01B","type":"Math1Node","a":"025D9840-CC59-4345-9ECF-58F30EA1BC18","method":"saturate"},"025D9840-CC59-4345-9ECF-58F30EA1BC18":{"uuid":"025D9840-CC59-4345-9ECF-58F30EA1BC18","type":"OperatorNode","a":"F33136D1-4646-46A9-8168-B5F3A7F0E6E7","b":"C1E4ED63-76C4-454E-8042-3FEB65265365","op":"*"},"F33136D1-4646-46A9-8168-B5F3A7F0E6E7":{"uuid":"F33136D1-4646-46A9-8168-B5F3A7F0E6E7","type":"FunctionCallNode","value":"34DE7BBF-67F0-42AE-A92F-E41A88065E2C","inputs":{"p":"29DDBD3C-E348-4E25-B79A-3D75D5576E47","time":"91645353-F838-4ECB-A54F-0B0BD81EF0CE"}},"34DE7BBF-67F0-42AE-A92F-E41A88065E2C":{"uuid":"34DE7BBF-67F0-42AE-A92F-E41A88065E2C","type":"FunctionNode","name":"voronoiLayers","src":"float voronoiLayers(vec2 p, in float time) {\n\tfloat v = 0.0;\n\tfloat a = 0.4;\n\tfor (int i = 0; i < 3; i++) {\n\t\tv += voronoi(p, time) * a;\n\t\tp *= 2.0;\n\t\ta *= 0.5;\n\t}\n\treturn v;\n}","isMethod":true,"useKeywords":true,"extensions":{},"keywords":{},"includes":["3E1A3E00-4D57-4363-B4E8-9AC7FFFD1162"]},"3E1A3E00-4D57-4363-B4E8-9AC7FFFD1162":{"uuid":"3E1A3E00-4D57-4363-B4E8-9AC7FFFD1162","type":"FunctionNode","name":"voronoi","src":"float voronoi(vec2 p, in float time) {\n\tvec2 n = floor(p);\n\tvec2 f = fract(p);\n\tfloat md = 5.0;\n\tvec2 m = vec2(0.0);\n\tfor (int i = -1; i <= 1; i++) {\n\t\tfor (int j = -1; j <= 1; j++) {\n\t\t\tvec2 g = vec2(i, j);\n\t\t\tvec2 o = hash2(n + g);\n\t\t\to = 0.5 + 0.5 * sin(time + 5.038 * o);\n\t\t\tvec2 r = g + o - f;\n\t\t\tfloat d = dot(r, r);\n\t\t\tif (d < md) {\n\t\t\t\tmd = d;\n\t\t\t\tm = n+g+o;\n\t\t\t}\n\t\t}\n\t}\n\treturn md;\n}","isMethod":true,"useKeywords":true,"extensions":{},"keywords":{},"includes":["DFB9B6EF-EAD5-4CA4-B491-CED3B14BDCF3"]},"DFB9B6EF-EAD5-4CA4-B491-CED3B14BDCF3":{"uuid":"DFB9B6EF-EAD5-4CA4-B491-CED3B14BDCF3","type":"FunctionNode","name":"hash2","src":"vec2 hash2(vec2 p) {\n\treturn fract(sin(vec2(dot(p, vec2(123.4, 748.6)), dot(p, vec2(547.3, 659.3))))*5232.85324);\n}","isMethod":true,"useKeywords":true,"extensions":{},"keywords":{}},"29DDBD3C-E348-4E25-B79A-3D75D5576E47":{"uuid":"29DDBD3C-E348-4E25-B79A-3D75D5576E47","type":"OperatorNode","a":"37FCB5FB-D6C5-4D51-B6C9-D65CFF8E56F5","b":"C2939E11-9118-412E-8656-687BDEE7F259","op":"*"},"37FCB5FB-D6C5-4D51-B6C9-D65CFF8E56F5":{"uuid":"37FCB5FB-D6C5-4D51-B6C9-D65CFF8E56F5","type":"SwitchNode","node":"B5FE994F-6069-45C5-87D0-E5BBB5DDAA9B","components":"xz"},"B5FE994F-6069-45C5-87D0-E5BBB5DDAA9B":{"uuid":"B5FE994F-6069-45C5-87D0-E5BBB5DDAA9B","type":"PositionNode","scope":"world"},"C2939E11-9118-412E-8656-687BDEE7F259":{"uuid":"C2939E11-9118-412E-8656-687BDEE7F259","type":"FloatNode","value":0.1},"91645353-F838-4ECB-A54F-0B0BD81EF0CE":{"uuid":"91645353-F838-4ECB-A54F-0B0BD81EF0CE","type":"OperatorNode","a":"4301B6EC-D918-4C2C-A8A4-BDA39B67FC88","b":"2BD5D8FE-FA0F-4B6F-A15D-1C6341A2A49A","op":"*"},"4301B6EC-D918-4C2C-A8A4-BDA39B67FC88":{"uuid":"4301B6EC-D918-4C2C-A8A4-BDA39B67FC88","type":"TimerNode","name":"time","scale":1},"2BD5D8FE-FA0F-4B6F-A15D-1C6341A2A49A":{"uuid":"2BD5D8FE-FA0F-4B6F-A15D-1C6341A2A49A","type":"FloatNode","name":"speed","value":2},"C1E4ED63-76C4-454E-8042-3FEB65265365":{"uuid":"C1E4ED63-76C4-454E-8042-3FEB65265365","type":"FloatNode","value":1.5},"6C7A71AD-A8CC-4E19-9F26-F9C3B2CD0B8F":{"uuid":"6C7A71AD-A8CC-4E19-9F26-F9C3B2CD0B8F","type":"OperatorNode","a":"484155DB-1D71-4C53-BD67-8C7F0D39DFAF","b":"E26C242B-22E1-4CF0-8E6A-9D3EE3009DDF","op":"*"},"484155DB-1D71-4C53-BD67-8C7F0D39DFAF":{"uuid":"484155DB-1D71-4C53-BD67-8C7F0D39DFAF","type":"FloatNode","value":1},"E26C242B-22E1-4CF0-8E6A-9D3EE3009DDF":{"uuid":"E26C242B-22E1-4CF0-8E6A-9D3EE3009DDF","type":"Math1Node","a":"4E7D0932-B617-4DC8-B3EE-CB2F2D0C71D3","method":"saturate"},"4E7D0932-B617-4DC8-B3EE-CB2F2D0C71D3":{"uuid":"4E7D0932-B617-4DC8-B3EE-CB2F2D0C71D3","type":"SwitchNode","node":"121C70CA-F385-46EA-85DF-8803A8DFA94A","components":"y"},"121C70CA-F385-46EA-85DF-8803A8DFA94A":{"uuid":"121C70CA-F385-46EA-85DF-8803A8DFA94A","type":"NormalNode","scope":"world"},"6C740750-9287-47E1-9A13-6A5DE38EF80C":{"uuid":"6C740750-9287-47E1-9A13-6A5DE38EF80C","type":"FloatNode","value":0.5},"290C6194-C8F5-4CAD-8790-098E506DA454":{"uuid":"290C6194-C8F5-4CAD-8790-098E506DA454","type":"FloatNode","value":0.5},"E9EC29E0-A9F3-4046-BB0A-C743D5A60528":{"uuid":"E9EC29E0-A9F3-4046-BB0A-C743D5A60528","type":"OperatorNode","a":"025D9840-CC59-4345-9ECF-58F30EA1BC18","b":"6C7A71AD-A8CC-4E19-9F26-F9C3B2CD0B8F","op":"*"}},"materials":{"F60E153B-B020-448B-8309-FA32A7387B37":{"uuid":"F60E153B-B020-448B-8309-FA32A7387B37","type":"StandardNodeMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"fog":false,"lights":true,"vertex":"0C853FCD-3CB8-4144-B7A3-F49CED812B61","fragment":"0C853FCD-3CB8-4144-B7A3-F49CED812B61"}},"material":"F60E153B-B020-448B-8309-FA32A7387B37"}
Loading