@triforge/shader-core 0.2.1 → 0.4.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/dist/bundle.js +196 -39
- package/dist/core/CompileContext.d.ts +2 -0
- package/dist/core/CompileContext.d.ts.map +1 -1
- package/dist/core/CompileContext.js +24 -9
- package/dist/core/OutputNode.d.ts.map +1 -1
- package/dist/core/OutputNode.js +1 -0
- package/dist/core/ShaderNode.d.ts +7 -0
- package/dist/core/ShaderNode.d.ts.map +1 -1
- package/dist/core/ShaderNode.js +23 -0
- package/dist/core/SocketType.d.ts +1 -1
- package/dist/core/SocketType.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/nodes/output/MaterialOutput.js +2 -2
- package/dist/nodes/process/AddShader.js +4 -4
- package/dist/nodes/process/Bump.d.ts +25 -2
- package/dist/nodes/process/Bump.d.ts.map +1 -1
- package/dist/nodes/process/Bump.js +113 -32
- package/dist/nodes/process/DiffuseBSDF.js +8 -8
- package/dist/nodes/process/Emission.js +4 -4
- package/dist/nodes/process/GlassBSDF.js +14 -14
- package/dist/nodes/process/GlossyBSDF.js +15 -15
- package/dist/nodes/process/MixShader.js +4 -4
- package/dist/nodes/process/PrincipledBSDF.d.ts +7 -0
- package/dist/nodes/process/PrincipledBSDF.d.ts.map +1 -1
- package/dist/nodes/process/PrincipledBSDF.js +55 -40
- package/dist/nodes/process/PrincipledHair.js +71 -71
- package/dist/nodes/process/PrincipledVolume.js +22 -22
- package/dist/nodes/process/RefractionBSDF.js +8 -8
- package/dist/nodes/process/ShaderScript.d.ts +2 -2
- package/dist/nodes/process/ShaderScript.d.ts.map +1 -1
- package/dist/nodes/process/ShaderScript.js +7 -3
- package/dist/nodes/process/ShaderToRGB.js +2 -2
- package/dist/nodes/process/SheenBSDF.js +13 -13
- package/dist/nodes/process/SpecularBSDF.js +16 -16
- package/dist/nodes/process/SubsurfaceScattering.js +8 -8
- package/dist/nodes/process/ToonBSDF.js +7 -7
- package/dist/nodes/process/TranslucentBSDF.js +6 -6
- package/dist/nodes/process/TransparentBSDF.d.ts +26 -0
- package/dist/nodes/process/TransparentBSDF.d.ts.map +1 -0
- package/dist/nodes/process/TransparentBSDF.js +29 -0
- package/dist/nodes/process/VolumeAbsorption.js +4 -4
- package/dist/nodes/process/VolumeScatter.js +8 -8
- package/dist/nodes/shader/RayPortal.js +1 -1
- package/package.json +1 -1
package/dist/core/ShaderNode.js
CHANGED
|
@@ -60,6 +60,13 @@ export class ShaderNode {
|
|
|
60
60
|
vertexInjections() {
|
|
61
61
|
return [];
|
|
62
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Whether this node's contribution to the compiled material requires
|
|
65
|
+
* `transparent: true` on the resulting THREE.ShaderMaterial (e.g. a
|
|
66
|
+
* `shader`-socket alpha channel that can read below 1.0).
|
|
67
|
+
* Override in nodes that carry alpha semantics — see PrincipledBSDF.
|
|
68
|
+
*/
|
|
69
|
+
wantsTransparency() { return false; }
|
|
63
70
|
/**
|
|
64
71
|
* Returns the named output socket.
|
|
65
72
|
* Throws ShaderNodeError if the socket does not exist.
|
|
@@ -144,6 +151,22 @@ export class ShaderNode {
|
|
|
144
151
|
enumerable: true,
|
|
145
152
|
configurable: true,
|
|
146
153
|
});
|
|
154
|
+
// Per-component aliases (e.g. parameters['location.x']) for any vector-typed
|
|
155
|
+
// uniform parameter, so a KeyframeTrack can animate a single axis. Reads/writes
|
|
156
|
+
// go through the same uniforms[uniformName].value array as the whole-vector
|
|
157
|
+
// getter/setter above, so both access styles stay in sync automatically.
|
|
158
|
+
const AXES = ['x', 'y', 'z'];
|
|
159
|
+
AXES.forEach((axis, idx) => {
|
|
160
|
+
Object.defineProperty(this.parameters, `${paramName}.${axis}`, {
|
|
161
|
+
get: () => uniforms[uniformName].value[idx],
|
|
162
|
+
set: (v) => {
|
|
163
|
+
const arr = uniforms[uniformName].value;
|
|
164
|
+
arr[idx] = finiteOr(v, 0);
|
|
165
|
+
},
|
|
166
|
+
enumerable: true,
|
|
167
|
+
configurable: true,
|
|
168
|
+
});
|
|
169
|
+
});
|
|
147
170
|
}
|
|
148
171
|
else {
|
|
149
172
|
Object.defineProperty(this.parameters, paramName, {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Socket types mirror Blender's socket colours.
|
|
3
3
|
*
|
|
4
|
-
* shader — yellow — BSDF / material output
|
|
4
|
+
* shader — yellow — BSDF / material output — vec4 RGB + alpha
|
|
5
5
|
* color — yellow-green — vec3 RGB
|
|
6
6
|
* vector — purple — vec2 / vec3 spatial
|
|
7
7
|
* float — grey — single scalar
|
package/dist/core/SocketType.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -83,6 +83,7 @@ export { SubsurfaceScattering } from './nodes/process/SubsurfaceScattering.js';
|
|
|
83
83
|
export { ToonBSDF } from './nodes/process/ToonBSDF.js';
|
|
84
84
|
export { SpecularBSDF } from './nodes/process/SpecularBSDF.js';
|
|
85
85
|
export { TranslucentBSDF } from './nodes/process/TranslucentBSDF.js';
|
|
86
|
+
export { TransparentBSDF } from './nodes/process/TransparentBSDF.js';
|
|
86
87
|
export { PrincipledHair } from './nodes/process/PrincipledHair.js';
|
|
87
88
|
export { Math as ShaderMath } from './nodes/process/Math.js';
|
|
88
89
|
export { Clamp } from './nodes/process/Clamp.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -88,6 +88,7 @@ export { SubsurfaceScattering } from './nodes/process/SubsurfaceScattering.js';
|
|
|
88
88
|
export { ToonBSDF } from './nodes/process/ToonBSDF.js';
|
|
89
89
|
export { SpecularBSDF } from './nodes/process/SpecularBSDF.js';
|
|
90
90
|
export { TranslucentBSDF } from './nodes/process/TranslucentBSDF.js';
|
|
91
|
+
export { TransparentBSDF } from './nodes/process/TransparentBSDF.js';
|
|
91
92
|
export { PrincipledHair } from './nodes/process/PrincipledHair.js';
|
|
92
93
|
// ── Process nodes — Converter ─────────────────────────────────────────────────
|
|
93
94
|
export { Math as ShaderMath } from './nodes/process/Math.js';
|
|
@@ -112,7 +112,7 @@ export class MaterialOutput extends OutputNode {
|
|
|
112
112
|
compileCall(ctx) {
|
|
113
113
|
const sv = this._inputs.surface.isConnected()
|
|
114
114
|
? ctx.outputVar(this._inputs.surface.connection.node, this._inputs.surface.connection.name)
|
|
115
|
-
: '
|
|
116
|
-
return `gl_FragColor =
|
|
115
|
+
: 'vec4(0.8, 0.8, 0.8, 1.0)';
|
|
116
|
+
return `gl_FragColor = ${sv};`;
|
|
117
117
|
}
|
|
118
118
|
}
|
|
@@ -26,11 +26,11 @@ export class AddShader extends ProcessNode {
|
|
|
26
26
|
compileCall(ctx) {
|
|
27
27
|
const s1 = ctx.resolveInput(this._inputs.shader1);
|
|
28
28
|
const s2 = ctx.resolveInput(this._inputs.shader2);
|
|
29
|
-
return `
|
|
29
|
+
return `vec4 ${ctx.outputVar(this, 'BSDF')} = _st_addShader(${s1}, ${s2});`;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
AddShader.instanceSpecificDef = false;
|
|
33
|
-
AddShader.glslFunction = `
|
|
34
|
-
|
|
35
|
-
return a + b;
|
|
33
|
+
AddShader.glslFunction = `
|
|
34
|
+
vec4 _st_addShader(vec4 a, vec4 b) {
|
|
35
|
+
return vec4(a.rgb + b.rgb, max(a.a, b.a));
|
|
36
36
|
}`;
|
|
@@ -7,19 +7,42 @@ export interface BumpInputs {
|
|
|
7
7
|
distance?: OutputSocket | number;
|
|
8
8
|
height?: OutputSocket;
|
|
9
9
|
normal?: OutputSocket;
|
|
10
|
+
/**
|
|
11
|
+
* 'derivative' (default) — height gradient via dFdx/dFdy of the `height` input.
|
|
12
|
+
* Screen-space, camera/rasterization-dependent: stable for procedural/vertex-fed
|
|
13
|
+
* height but can speckle or seam-flicker across a wide camera-distance range when
|
|
14
|
+
* `height` comes from a sampled texture.
|
|
15
|
+
*
|
|
16
|
+
* 'uv-offset' — explicit texelSize-offset samples of a height texture at a fixed
|
|
17
|
+
* LOD, independent of screen-space derivatives. Stable under camera motion for
|
|
18
|
+
* texture-driven relief (e.g. planetary crater/regolith maps). Requires `uniformName`.
|
|
19
|
+
*/
|
|
20
|
+
method?: 'derivative' | 'uv-offset';
|
|
21
|
+
/** Required when method:'uv-offset'. Name of the sampler2D height-map uniform. */
|
|
22
|
+
uniformName?: string;
|
|
23
|
+
/** UV to sample at, when method:'uv-offset'. Defaults to the surface UV (vUv). */
|
|
24
|
+
vector?: OutputSocket;
|
|
25
|
+
/** Texel size (1 / texture resolution) for the uv-offset samples. Default 1/512. */
|
|
26
|
+
texelSize?: OutputSocket | number;
|
|
27
|
+
/** Explicit mip/LOD level for the uv-offset samples. Default 0. */
|
|
28
|
+
lod?: OutputSocket | number;
|
|
10
29
|
}
|
|
11
30
|
/**
|
|
12
31
|
* Bump — Blender "Bump" node equivalent.
|
|
13
|
-
* Converts a height map into a perturbed surface normal
|
|
32
|
+
* Converts a height map into a perturbed surface normal.
|
|
14
33
|
*
|
|
15
34
|
* Inputs: strength [0-1], distance, height (float), normal (optional override)
|
|
35
|
+
* method ('derivative' | 'uv-offset'), uniformName/vector/texelSize/lod
|
|
36
|
+
* (uv-offset mode only)
|
|
16
37
|
* Outputs: Normal (color/vec3)
|
|
17
38
|
*/
|
|
18
39
|
export declare class Bump extends ProcessNode {
|
|
19
40
|
get nodeType(): string;
|
|
20
41
|
static instanceSpecificDef: boolean;
|
|
21
42
|
get metadata(): NodeMetadata;
|
|
22
|
-
static
|
|
43
|
+
static derivativeGlslFunction: string;
|
|
44
|
+
private readonly _method;
|
|
45
|
+
private readonly _uniformName;
|
|
23
46
|
private readonly _inputs;
|
|
24
47
|
private readonly _outputs;
|
|
25
48
|
constructor(inputs?: BumpInputs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bump.d.ts","sourceRoot":"","sources":["../../../src/nodes/process/Bump.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"Bump.d.ts","sourceRoot":"","sources":["../../../src/nodes/process/Bump.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAIvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,YAAY,GAAG,MAAM,CAAA;IAChC,QAAQ,CAAC,EAAE,YAAY,GAAG,MAAM,CAAA;IAChC,MAAM,CAAC,EAAI,YAAY,CAAA;IACvB,MAAM,CAAC,EAAI,YAAY,CAAA;IACvB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAO,YAAY,GAAG,WAAW,CAAA;IACxC,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kFAAkF;IAClF,MAAM,CAAC,EAAO,YAAY,CAAA;IAC1B,oFAAoF;IACpF,SAAS,CAAC,EAAI,YAAY,GAAG,MAAM,CAAA;IACnC,mEAAmE;IACnE,GAAG,CAAC,EAAU,YAAY,GAAG,MAAM,CAAA;CACpC;AAED;;;;;;;;GAQG;AACH,qBAAa,IAAK,SAAQ,WAAW;IACnC,IAAI,QAAQ,WAAoB;IAKhC,MAAM,CAAC,mBAAmB,UAAO;IAEjC,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED,MAAM,CAAC,sBAAsB,SA8BxB;IAEL,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2E;IACnG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmE;gBAEhF,MAAM,GAAE,UAAe;IA+BnC,eAAe;IACf,gBAAgB;IAEhB,WAAW,IAAI,MAAM;IAarB,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM;CAkDzC"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { ProcessNode } from '../../core/ProcessNode.js';
|
|
2
|
+
import { ShaderNodeError } from '../../core/ShaderNodeError.js';
|
|
3
|
+
import { ShaderConfig } from '../../core/ShaderConfig.js';
|
|
4
|
+
import { assertGlslIdentifier } from '../../core/glslIdentifier.js';
|
|
2
5
|
/**
|
|
3
6
|
* Bump — Blender "Bump" node equivalent.
|
|
4
|
-
* Converts a height map into a perturbed surface normal
|
|
7
|
+
* Converts a height map into a perturbed surface normal.
|
|
5
8
|
*
|
|
6
9
|
* Inputs: strength [0-1], distance, height (float), normal (optional override)
|
|
10
|
+
* method ('derivative' | 'uv-offset'), uniformName/vector/texelSize/lod
|
|
11
|
+
* (uv-offset mode only)
|
|
7
12
|
* Outputs: Normal (color/vec3)
|
|
8
13
|
*/
|
|
9
14
|
export class Bump extends ProcessNode {
|
|
@@ -13,53 +18,129 @@ export class Bump extends ProcessNode {
|
|
|
13
18
|
}
|
|
14
19
|
constructor(inputs = {}) {
|
|
15
20
|
super('Bump');
|
|
21
|
+
this._method = inputs.method ?? 'derivative';
|
|
22
|
+
if (this._method === 'uv-offset') {
|
|
23
|
+
if (ShaderConfig.errorLevel !== 'off' && !inputs.uniformName) {
|
|
24
|
+
ShaderNodeError.throw({
|
|
25
|
+
nodeType: 'Bump',
|
|
26
|
+
nodeId: this.id,
|
|
27
|
+
problem: 'uniformName is required when method:"uv-offset".',
|
|
28
|
+
fix: 'new Bump({ method: "uv-offset", uniformName: "uHeightTex" })\n After compile(): mat.material.uniforms.uHeightTex = { value: texture }',
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
if (inputs.uniformName)
|
|
32
|
+
assertGlslIdentifier(inputs.uniformName, 'Bump uniformName');
|
|
33
|
+
this._uniformName = inputs.uniformName ?? null;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this._uniformName = null;
|
|
37
|
+
}
|
|
16
38
|
this._inputs = this.createInputs(inputs, {
|
|
17
39
|
strength: ['float', inputs.strength ?? 1.0],
|
|
18
40
|
distance: ['float', inputs.distance ?? 1.0],
|
|
19
41
|
height: ['float', 0.5],
|
|
20
42
|
normal: ['color', null],
|
|
43
|
+
vector: ['vector', null],
|
|
44
|
+
texelSize: ['float', inputs.texelSize ?? 1 / 512],
|
|
45
|
+
lod: ['float', inputs.lod ?? 0.0],
|
|
21
46
|
});
|
|
22
47
|
this._outputs = this.createOutputs({ Normal: 'color' });
|
|
23
48
|
}
|
|
24
49
|
getInputSockets() { return this._inputs; }
|
|
25
50
|
getOutputSockets() { return this._outputs; }
|
|
26
|
-
compileDefs() {
|
|
51
|
+
compileDefs() {
|
|
52
|
+
if (this._method === 'uv-offset') {
|
|
53
|
+
return [
|
|
54
|
+
'#ifndef _ST_BUMP_TEXLOD_EXT',
|
|
55
|
+
'#define _ST_BUMP_TEXLOD_EXT',
|
|
56
|
+
'#extension GL_EXT_shader_texture_lod : enable',
|
|
57
|
+
'#endif',
|
|
58
|
+
`uniform sampler2D ${this._uniformName};`,
|
|
59
|
+
].join('\n');
|
|
60
|
+
}
|
|
61
|
+
return Bump.derivativeGlslFunction;
|
|
62
|
+
}
|
|
27
63
|
compileCall(ctx) {
|
|
28
|
-
const height = ctx.resolveInput(this._inputs.height);
|
|
29
64
|
const strength = ctx.resolveInput(this._inputs.strength);
|
|
30
65
|
const distance = ctx.resolveInput(this._inputs.distance);
|
|
31
66
|
const normal = this._inputs.normal.isConnected()
|
|
32
67
|
? ctx.outputVar(this._inputs.normal.connection.node, this._inputs.normal.connection.name)
|
|
33
68
|
: 'normalize(vNormal)';
|
|
69
|
+
if (this._method === 'uv-offset') {
|
|
70
|
+
const uv = this._inputs.vector.isConnected() ? ctx.resolveInput(this._inputs.vector) : 'vUv';
|
|
71
|
+
const texelSize = ctx.resolveInput(this._inputs.texelSize);
|
|
72
|
+
const lod = ctx.resolveInput(this._inputs.lod);
|
|
73
|
+
const id = this.id;
|
|
74
|
+
const hL = `_bmp_${id}_hL`, hR = `_bmp_${id}_hR`;
|
|
75
|
+
const hD = `_bmp_${id}_hD`, hU = `_bmp_${id}_hU`;
|
|
76
|
+
const dPdx = `_bmp_${id}_dPdx`, dPdy = `_bmp_${id}_dPdy`;
|
|
77
|
+
const dUdx = `_bmp_${id}_dUdx`, dUdy = `_bmp_${id}_dUdy`;
|
|
78
|
+
const det = `_bmp_${id}_det`, sgn = `_bmp_${id}_sgn`, invDet = `_bmp_${id}_invDet`;
|
|
79
|
+
const T = `_bmp_${id}_T`, B = `_bmp_${id}_B`;
|
|
80
|
+
const dhdu = `_bmp_${id}_dhdu`, dhdv = `_bmp_${id}_dhdv`;
|
|
81
|
+
const scale = `_bmp_${id}_scale`;
|
|
82
|
+
const ts = `_bmp_${id}_ts`;
|
|
83
|
+
return [
|
|
84
|
+
`float ${ts} = ${texelSize};`,
|
|
85
|
+
`float ${hL} = texture2DLodEXT(${this._uniformName}, ${uv} - vec2(${ts}, 0.0), ${lod}).r;`,
|
|
86
|
+
`float ${hR} = texture2DLodEXT(${this._uniformName}, ${uv} + vec2(${ts}, 0.0), ${lod}).r;`,
|
|
87
|
+
`float ${hD} = texture2DLodEXT(${this._uniformName}, ${uv} - vec2(0.0, ${ts}), ${lod}).r;`,
|
|
88
|
+
`float ${hU} = texture2DLodEXT(${this._uniformName}, ${uv} + vec2(0.0, ${ts}), ${lod}).r;`,
|
|
89
|
+
// Cotangent frame from screen-space derivatives — this builds the tangent
|
|
90
|
+
// basis (surface-fixed), not the height sample, so it doesn't carry the
|
|
91
|
+
// camera-distance instability the uv-offset method exists to avoid.
|
|
92
|
+
`vec3 ${dPdx} = dFdx(vPosition);`,
|
|
93
|
+
`vec3 ${dPdy} = dFdy(vPosition);`,
|
|
94
|
+
`vec2 ${dUdx} = dFdx(vUv);`,
|
|
95
|
+
`vec2 ${dUdy} = dFdy(vUv);`,
|
|
96
|
+
`float ${det} = ${dUdx}.x * ${dUdy}.y - ${dUdx}.y * ${dUdy}.x;`,
|
|
97
|
+
`float ${sgn} = sign(${det});`,
|
|
98
|
+
`float ${invDet} = ${sgn} / max(abs(${det}), 1e-6);`,
|
|
99
|
+
`vec3 ${T} = normalize((${dUdy}.y * ${dPdx} - ${dUdx}.y * ${dPdy}) * ${invDet});`,
|
|
100
|
+
`vec3 ${B} = normalize(cross(${normal}, ${T})) * ${sgn};`,
|
|
101
|
+
`float ${dhdu} = (${hR} - ${hL}) / max(2.0 * ${ts}, 1e-6);`,
|
|
102
|
+
`float ${dhdv} = (${hU} - ${hD}) / max(2.0 * ${ts}, 1e-6);`,
|
|
103
|
+
`float ${scale} = ${strength} * ${distance} * 50.0;`,
|
|
104
|
+
`vec3 ${ctx.outputVar(this, 'Normal')} = normalize(${normal} - ${T} * ${dhdu} * ${scale} - ${B} * ${dhdv} * ${scale});`,
|
|
105
|
+
].join('\n ');
|
|
106
|
+
}
|
|
107
|
+
const height = ctx.resolveInput(this._inputs.height);
|
|
34
108
|
return `vec3 ${ctx.outputVar(this, 'Normal')} = _st_bump(${height}, ${strength}, ${distance}, ${normal});`;
|
|
35
109
|
}
|
|
36
110
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
111
|
+
// Both modes emit their own per-instance defs (a #ifndef-guarded shared function
|
|
112
|
+
// for 'derivative', a per-instance uniform declaration for 'uv-offset' — see
|
|
113
|
+
// compileDefs). instanceSpecificDef:true is required so multiple 'uv-offset'
|
|
114
|
+
// instances each get their own uniform decl instead of being deduped by nodeType.
|
|
115
|
+
Bump.instanceSpecificDef = true;
|
|
116
|
+
Bump.derivativeGlslFunction = `
|
|
117
|
+
#ifndef _ST_BUMP_FN
|
|
118
|
+
#define _ST_BUMP_FN
|
|
119
|
+
vec3 _st_bump(float height, float strength, float distance, vec3 N) {
|
|
120
|
+
// Cotangent frame bump — camera-independent.
|
|
121
|
+
// We derive world-space surface tangent T and bitangent B from the UV
|
|
122
|
+
// parameterisation (cotangent frame). This gives vectors that are fixed
|
|
123
|
+
// to the surface regardless of camera orientation.
|
|
124
|
+
// Then we express the height gradient in UV space (dh/du, dh/dv) which
|
|
125
|
+
// is also surface-fixed, eliminating the screen-space dependency.
|
|
126
|
+
vec3 dPdx = dFdx(vPosition);
|
|
127
|
+
vec3 dPdy = dFdy(vPosition);
|
|
128
|
+
vec2 dUdx = dFdx(vUv);
|
|
129
|
+
vec2 dUdy = dFdy(vUv);
|
|
130
|
+
|
|
131
|
+
float det = dUdx.x * dUdy.y - dUdx.y * dUdy.x;
|
|
132
|
+
float sgn = sign(det);
|
|
133
|
+
float invDet = sgn / max(abs(det), 1e-6);
|
|
134
|
+
|
|
135
|
+
// World-space tangent and bitangent from UV Jacobian (camera-independent)
|
|
136
|
+
vec3 T = normalize((dUdy.y * dPdx - dUdx.y * dPdy) * invDet);
|
|
137
|
+
vec3 B = normalize(cross(N, T)) * sgn;
|
|
138
|
+
|
|
139
|
+
// Height gradient in UV space (camera-independent)
|
|
140
|
+
float dhdu = (dUdy.y * dFdx(height) - dUdx.y * dFdy(height)) * invDet;
|
|
141
|
+
float dhdv = (dUdx.x * dFdy(height) - dUdy.x * dFdx(height)) * invDet;
|
|
142
|
+
|
|
143
|
+
float scale = strength * distance * 50.0;
|
|
144
|
+
return normalize(N - T * dhdu * scale - B * dhdv * scale);
|
|
145
|
+
}
|
|
146
|
+
#endif`;
|
|
@@ -29,15 +29,15 @@ export class DiffuseBSDF extends ProcessNode {
|
|
|
29
29
|
const normal = this._inputs.normal.isConnected()
|
|
30
30
|
? ctx.outputVar(this._inputs.normal.connection.node, this._inputs.normal.connection.name)
|
|
31
31
|
: 'normalize(vNormal)';
|
|
32
|
-
return `
|
|
32
|
+
return `vec4 ${ctx.outputVar(this, 'BSDF')} = vec4(_st_diffuseBSDF(${color}, ${roughness}, ${normal}), 1.0);`;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
DiffuseBSDF.instanceSpecificDef = false;
|
|
36
|
-
DiffuseBSDF.glslFunction = `
|
|
37
|
-
vec3 _st_diffuseBSDF(vec3 color, float roughness, vec3 N) {
|
|
38
|
-
vec3 L = normalize(vec3(1.0, 2.0, 1.0));
|
|
39
|
-
float NdotL = max(dot(N, L), 0.0);
|
|
40
|
-
float diffuse = NdotL / 3.14159265;
|
|
41
|
-
vec3 ambient = color * 0.15;
|
|
42
|
-
return ambient + color * (diffuse * (1.0 - roughness * 0.5));
|
|
36
|
+
DiffuseBSDF.glslFunction = `
|
|
37
|
+
vec3 _st_diffuseBSDF(vec3 color, float roughness, vec3 N) {
|
|
38
|
+
vec3 L = normalize(vec3(1.0, 2.0, 1.0));
|
|
39
|
+
float NdotL = max(dot(N, L), 0.0);
|
|
40
|
+
float diffuse = NdotL / 3.14159265;
|
|
41
|
+
vec3 ambient = color * 0.15;
|
|
42
|
+
return ambient + color * (diffuse * (1.0 - roughness * 0.5));
|
|
43
43
|
}`;
|
|
@@ -26,11 +26,11 @@ export class Emission extends ProcessNode {
|
|
|
26
26
|
compileCall(ctx) {
|
|
27
27
|
const color = ctx.resolveInput(this._inputs.color);
|
|
28
28
|
const strength = ctx.resolveInput(this._inputs.strength);
|
|
29
|
-
return `
|
|
29
|
+
return `vec4 ${ctx.outputVar(this, 'BSDF')} = vec4(_st_emission(${color}, ${strength}), 1.0);`;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
Emission.instanceSpecificDef = false;
|
|
33
|
-
Emission.glslFunction = `
|
|
34
|
-
vec3 _st_emission(vec3 color, float strength) {
|
|
35
|
-
return color * strength;
|
|
33
|
+
Emission.glslFunction = `
|
|
34
|
+
vec3 _st_emission(vec3 color, float strength) {
|
|
35
|
+
return color * strength;
|
|
36
36
|
}`;
|
|
@@ -31,21 +31,21 @@ export class GlassBSDF extends ProcessNode {
|
|
|
31
31
|
const normal = this._inputs.normal.isConnected()
|
|
32
32
|
? ctx.outputVar(this._inputs.normal.connection.node, this._inputs.normal.connection.name)
|
|
33
33
|
: 'normalize(vNormal)';
|
|
34
|
-
return `
|
|
34
|
+
return `vec4 ${ctx.outputVar(this, 'BSDF')} = vec4(_st_glassBSDF(${color}, ${roughness}, ${ior}, ${normal}), 1.0);`;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
GlassBSDF.instanceSpecificDef = false;
|
|
38
|
-
GlassBSDF.glslFunction = `
|
|
39
|
-
vec3 _st_glassBSDF(vec3 color, float roughness, float ior, vec3 N) {
|
|
40
|
-
vec3 V = normalize(cameraPosition - vPosition);
|
|
41
|
-
vec3 L = normalize(vec3(1.0, 2.0, 1.0));
|
|
42
|
-
vec3 H = normalize(L + V);
|
|
43
|
-
float F0 = pow((1.0 - ior) / (1.0 + ior), 2.0);
|
|
44
|
-
float fresnel = F0 + (1.0 - F0) * pow(1.0 - max(dot(V, N), 0.0), 5.0);
|
|
45
|
-
float NdotH = max(dot(N, H), 0.0);
|
|
46
|
-
float a2 = roughness * roughness * roughness * roughness;
|
|
47
|
-
float D = a2 / max(3.14159 * pow(NdotH * NdotH * (a2 - 1.0) + 1.0, 2.0), 0.0001);
|
|
48
|
-
vec3 spec = vec3(1.0) * D * fresnel;
|
|
49
|
-
vec3 refr = color * (1.0 - fresnel) * (1.0 - roughness * 0.3);
|
|
50
|
-
return spec + refr;
|
|
38
|
+
GlassBSDF.glslFunction = `
|
|
39
|
+
vec3 _st_glassBSDF(vec3 color, float roughness, float ior, vec3 N) {
|
|
40
|
+
vec3 V = normalize(cameraPosition - vPosition);
|
|
41
|
+
vec3 L = normalize(vec3(1.0, 2.0, 1.0));
|
|
42
|
+
vec3 H = normalize(L + V);
|
|
43
|
+
float F0 = pow((1.0 - ior) / (1.0 + ior), 2.0);
|
|
44
|
+
float fresnel = F0 + (1.0 - F0) * pow(1.0 - max(dot(V, N), 0.0), 5.0);
|
|
45
|
+
float NdotH = max(dot(N, H), 0.0);
|
|
46
|
+
float a2 = roughness * roughness * roughness * roughness;
|
|
47
|
+
float D = a2 / max(3.14159 * pow(NdotH * NdotH * (a2 - 1.0) + 1.0, 2.0), 0.0001);
|
|
48
|
+
vec3 spec = vec3(1.0) * D * fresnel;
|
|
49
|
+
vec3 refr = color * (1.0 - fresnel) * (1.0 - roughness * 0.3);
|
|
50
|
+
return spec + refr;
|
|
51
51
|
}`;
|
|
@@ -29,22 +29,22 @@ export class GlossyBSDF extends ProcessNode {
|
|
|
29
29
|
const normal = this._inputs.normal.isConnected()
|
|
30
30
|
? ctx.outputVar(this._inputs.normal.connection.node, this._inputs.normal.connection.name)
|
|
31
31
|
: 'normalize(vNormal)';
|
|
32
|
-
return `
|
|
32
|
+
return `vec4 ${ctx.outputVar(this, 'BSDF')} = vec4(_st_glossyBSDF(${color}, ${roughness}, ${normal}), 1.0);`;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
GlossyBSDF.instanceSpecificDef = false;
|
|
36
|
-
GlossyBSDF.glslFunction = `
|
|
37
|
-
vec3 _st_glossyBSDF(vec3 color, float roughness, vec3 N) {
|
|
38
|
-
vec3 L = normalize(vec3(1.0, 2.0, 1.0));
|
|
39
|
-
vec3 V = normalize(cameraPosition - vPosition);
|
|
40
|
-
vec3 H = normalize(L + V);
|
|
41
|
-
float a = roughness * roughness;
|
|
42
|
-
float a2 = a * a;
|
|
43
|
-
float NdotH = max(dot(N, H), 0.0);
|
|
44
|
-
float D = a2 / max(3.14159265 * pow(NdotH * NdotH * (a2 - 1.0) + 1.0, 2.0), 0.0001);
|
|
45
|
-
float NdotL = max(dot(N, L), 0.0);
|
|
46
|
-
float NdotV = max(dot(N, V), 0.0001);
|
|
47
|
-
float k = (roughness + 1.0) * (roughness + 1.0) / 8.0;
|
|
48
|
-
float G = (NdotL / (NdotL * (1.0 - k) + k)) * (NdotV / (NdotV * (1.0 - k) + k));
|
|
49
|
-
return color * D * G / max(4.0 * NdotL * NdotV, 0.0001) * NdotL;
|
|
36
|
+
GlossyBSDF.glslFunction = `
|
|
37
|
+
vec3 _st_glossyBSDF(vec3 color, float roughness, vec3 N) {
|
|
38
|
+
vec3 L = normalize(vec3(1.0, 2.0, 1.0));
|
|
39
|
+
vec3 V = normalize(cameraPosition - vPosition);
|
|
40
|
+
vec3 H = normalize(L + V);
|
|
41
|
+
float a = roughness * roughness;
|
|
42
|
+
float a2 = a * a;
|
|
43
|
+
float NdotH = max(dot(N, H), 0.0);
|
|
44
|
+
float D = a2 / max(3.14159265 * pow(NdotH * NdotH * (a2 - 1.0) + 1.0, 2.0), 0.0001);
|
|
45
|
+
float NdotL = max(dot(N, L), 0.0);
|
|
46
|
+
float NdotV = max(dot(N, V), 0.0001);
|
|
47
|
+
float k = (roughness + 1.0) * (roughness + 1.0) / 8.0;
|
|
48
|
+
float G = (NdotL / (NdotL * (1.0 - k) + k)) * (NdotV / (NdotV * (1.0 - k) + k));
|
|
49
|
+
return color * D * G / max(4.0 * NdotL * NdotV, 0.0001) * NdotL;
|
|
50
50
|
}`;
|
|
@@ -37,11 +37,11 @@ export class MixShader extends ProcessNode {
|
|
|
37
37
|
const fac = ctx.resolveInput(this._inputs.fac);
|
|
38
38
|
const shader1 = ctx.resolveInput(this._inputs.shader1);
|
|
39
39
|
const shader2 = ctx.resolveInput(this._inputs.shader2);
|
|
40
|
-
return `
|
|
40
|
+
return `vec4 ${ctx.outputVar(this, 'BSDF')} = _st_mixShader(${fac}, ${shader1}, ${shader2});`;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
MixShader.instanceSpecificDef = false;
|
|
44
|
-
MixShader.glslFunction = `
|
|
45
|
-
|
|
46
|
-
return mix(a, b, clamp(fac, 0.0, 1.0));
|
|
44
|
+
MixShader.glslFunction = `
|
|
45
|
+
vec4 _st_mixShader(float fac, vec4 a, vec4 b) {
|
|
46
|
+
return mix(a, b, clamp(fac, 0.0, 1.0));
|
|
47
47
|
}`;
|
|
@@ -27,6 +27,13 @@ export declare class PrincipledBSDF extends ProcessNode {
|
|
|
27
27
|
getInputSockets(): Record<string, import("../../index.js").InputSocket<unknown>>;
|
|
28
28
|
getOutputSockets(): Record<string, OutputSocket>;
|
|
29
29
|
compileDefs(): string;
|
|
30
|
+
/**
|
|
31
|
+
* Alpha has no channel of its own in the underlying vec3 lighting function —
|
|
32
|
+
* it's applied as the vec4 alpha component at the call site instead (see
|
|
33
|
+
* compileCall). transparent:true is needed whenever alpha can read below 1.0:
|
|
34
|
+
* a non-default literal, or any live/connected value (conservatively true).
|
|
35
|
+
*/
|
|
36
|
+
wantsTransparency(): boolean;
|
|
30
37
|
compileCall(ctx: CompileContext): string;
|
|
31
38
|
}
|
|
32
39
|
//# sourceMappingURL=PrincipledBSDF.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrincipledBSDF.d.ts","sourceRoot":"","sources":["../../../src/nodes/process/PrincipledBSDF.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,YAAY,GAAG,MAAM,CAAA;IACjC,QAAQ,CAAC,EAAG,YAAY,GAAG,MAAM,CAAA;IACjC,SAAS,CAAC,EAAE,YAAY,GAAG,MAAM,CAAA;IACjC,GAAG,CAAC,EAAQ,YAAY,GAAG,MAAM,CAAA;IACjC,KAAK,CAAC,EAAM,YAAY,GAAG,MAAM,CAAA;IACjC,MAAM,CAAC,EAAK,YAAY,CAAA;CACzB;AAED;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAC7C,IAAI,QAAQ,WAA8B;IAC1C,MAAM,CAAC,mBAAmB,UAAQ;IAElC,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED,MAAM,CAAC,YAAY,SAuCnB;IAEA,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2E;IACnG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmE;gBAEhF,MAAM,GAAE,oBAAyB;IAa7C,eAAe;IACf,gBAAgB;IAChB,WAAW;IAEX,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"PrincipledBSDF.d.ts","sourceRoot":"","sources":["../../../src/nodes/process/PrincipledBSDF.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,YAAY,GAAG,MAAM,CAAA;IACjC,QAAQ,CAAC,EAAG,YAAY,GAAG,MAAM,CAAA;IACjC,SAAS,CAAC,EAAE,YAAY,GAAG,MAAM,CAAA;IACjC,GAAG,CAAC,EAAQ,YAAY,GAAG,MAAM,CAAA;IACjC,KAAK,CAAC,EAAM,YAAY,GAAG,MAAM,CAAA;IACjC,MAAM,CAAC,EAAK,YAAY,CAAA;CACzB;AAED;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAC7C,IAAI,QAAQ,WAA8B;IAC1C,MAAM,CAAC,mBAAmB,UAAQ;IAElC,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED,MAAM,CAAC,YAAY,SAuCnB;IAEA,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2E;IACnG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmE;gBAEhF,MAAM,GAAE,oBAAyB;IAa7C,eAAe;IACf,gBAAgB;IAChB,WAAW;IAEX;;;;;OAKG;IACH,iBAAiB,IAAI,OAAO;IAO5B,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM;CAQzC"}
|