|
@@ -60,7 +60,7 @@ class NodeBuilder {
|
|
|
|
|
|
getTexture( /* textureProperty, uvSnippet */ ) {
|
|
|
|
|
|
-
|
|
|
+ console.warn( 'Abstract function.' );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -83,13 +83,13 @@ class NodeBuilder {
|
|
|
// find attribute
|
|
|
|
|
|
for ( const attribute of attributes ) {
|
|
|
-
|
|
|
+
|
|
|
if ( attribute.name === name ) {
|
|
|
-
|
|
|
+
|
|
|
return attribute;
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
// create a new if no exist
|
|
@@ -109,23 +109,23 @@ class NodeBuilder {
|
|
|
}
|
|
|
|
|
|
isVector( type ) {
|
|
|
-
|
|
|
+
|
|
|
return /vec\d/.test( type );
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
isMatrix( type ) {
|
|
|
-
|
|
|
+
|
|
|
return /mat\d/.test( type );
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
isShaderStage( shaderStage ) {
|
|
|
-
|
|
|
+
|
|
|
return this.shaderStage === shaderStage;
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
getVectorType( type ) {
|
|
|
|
|
|
if ( type === 'color' ) return 'vec3';
|
|
@@ -199,7 +199,7 @@ class NodeBuilder {
|
|
|
}
|
|
|
|
|
|
getVaryFromNode( node, type, value ) {
|
|
|
-
|
|
|
+
|
|
|
const nodeData = this.getDataFromNode( node );
|
|
|
|
|
|
let nodeVary = nodeData.vary;
|
|
@@ -218,7 +218,7 @@ class NodeBuilder {
|
|
|
}
|
|
|
|
|
|
return nodeVary;
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -255,31 +255,31 @@ class NodeBuilder {
|
|
|
|
|
|
getAttributesBodySnippet( /*shaderStage*/ ) {
|
|
|
|
|
|
-
|
|
|
+ console.warn( 'Abstract function.' );
|
|
|
|
|
|
}
|
|
|
|
|
|
getAttributesHeaderSnippet( /*shaderStage*/ ) {
|
|
|
|
|
|
-
|
|
|
+ console.warn( 'Abstract function.' );
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
getVarysHeaderSnippet( /*shaderStage*/ ) {
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+ console.warn( 'Abstract function.' );
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
getVarysBodySnippet( /*shaderStage*/ ) {
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+ console.warn( 'Abstract function.' );
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- getUniformsHeaderSnippet( shaderStage ) {
|
|
|
+ getUniformsHeaderSnippet( /*shaderStage*/ ) {
|
|
|
|
|
|
-
|
|
|
+ console.warn( 'Abstract function.' );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -317,7 +317,7 @@ class NodeBuilder {
|
|
|
this.define( shaderStage, 'NODE_HEADER_UNIFORMS', this.getUniformsHeaderSnippet( shaderStage ) );
|
|
|
this.define( shaderStage, 'NODE_HEADER_ATTRIBUTES', this.getAttributesHeaderSnippet( shaderStage ) );
|
|
|
this.define( shaderStage, 'NODE_HEADER_VARYS', this.getVarysHeaderSnippet( shaderStage ) );
|
|
|
-
|
|
|
+
|
|
|
this.define( shaderStage, 'NODE_BODY_VARYS', this.getVarysBodySnippet( shaderStage ) );
|
|
|
|
|
|
shaderData[ shaderStage ] = this._buildDefines( shaderStage );
|
|
@@ -330,7 +330,7 @@ class NodeBuilder {
|
|
|
return this;
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
format( snippet, fromType, toType ) {
|
|
|
|
|
|
fromType = this.getVectorType( fromType );
|
|
@@ -345,26 +345,26 @@ class NodeBuilder {
|
|
|
case 'float to vec4' : return `vec4( vec3( ${snippet} ), 1.0 )`;
|
|
|
|
|
|
case 'vec2 to float' : return `${snippet}.x`;
|
|
|
- case 'vec2 to vec3' : return `vec3( ${snippet}, 0.0 )`;
|
|
|
- case 'vec2 to vec4' : return `vec4( ${snippet}.xy, 0.0, 1.0 )`;
|
|
|
+ case 'vec2 to vec3' : return `vec3( ${snippet}, 0.0 )`;
|
|
|
+ case 'vec2 to vec4' : return `vec4( ${snippet}.xy, 0.0, 1.0 )`;
|
|
|
|
|
|
case 'vec3 to float' : return `${snippet}.x`;
|
|
|
- case 'vec3 to vec2' : return `${snippet}.xy`;
|
|
|
- case 'vec3 to vec4' : return `vec4( ${snippet}, 1.0 )`;
|
|
|
+ case 'vec3 to vec2' : return `${snippet}.xy`;
|
|
|
+ case 'vec3 to vec4' : return `vec4( ${snippet}, 1.0 )`;
|
|
|
|
|
|
case 'vec4 to float' : return `${snippet}.x`;
|
|
|
- case 'vec4 to vec2' : return `${snippet}.xy`;
|
|
|
- case 'vec4 to vec3' : return `${snippet}.xyz`;
|
|
|
+ case 'vec4 to vec2' : return `${snippet}.xy`;
|
|
|
+ case 'vec4 to vec3' : return `${snippet}.xyz`;
|
|
|
|
|
|
case 'mat3 to float' : return `( ${snippet} * vec3( 1.0 ) ).x`;
|
|
|
- case 'mat3 to vec2' : return `( ${snippet} * vec3( 1.0 ) ).xy`;
|
|
|
- case 'mat3 to vec3' : return `( ${snippet} * vec3( 1.0 ) ).xyz`;
|
|
|
- case 'mat3 to vec4' : return `vec4( ${snippet} * vec3( 1.0 ), 1.0 )`;
|
|
|
+ case 'mat3 to vec2' : return `( ${snippet} * vec3( 1.0 ) ).xy`;
|
|
|
+ case 'mat3 to vec3' : return `( ${snippet} * vec3( 1.0 ) ).xyz`;
|
|
|
+ case 'mat3 to vec4' : return `vec4( ${snippet} * vec3( 1.0 ), 1.0 )`;
|
|
|
|
|
|
case 'mat4 to float' : return `( ${snippet} * vec4( 1.0 ) ).x`;
|
|
|
- case 'mat4 to vec2' : return `( ${snippet} * vec4( 1.0 ) ).xy`;
|
|
|
- case 'mat4 to vec3' : return `( ${snippet} * vec4( 1.0 ) ).xyz`;
|
|
|
- case 'mat4 to vec4' : return `( ${snippet} * vec4( 1.0 ) )`;
|
|
|
+ case 'mat4 to vec2' : return `( ${snippet} * vec4( 1.0 ) ).xy`;
|
|
|
+ case 'mat4 to vec3' : return `( ${snippet} * vec4( 1.0 ) ).xyz`;
|
|
|
+ case 'mat4 to vec4' : return `( ${snippet} * vec4( 1.0 ) )`;
|
|
|
|
|
|
}
|
|
|
|