@babylonjs/materials 5.20.0 → 5.22.1
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/cell/cell.fragment.js +14 -2
- package/cell/cell.fragment.js.map +1 -1
- package/cell/cell.vertex.js +45 -3
- package/cell/cell.vertex.js.map +1 -1
- package/cell/cellMaterial.js +112 -120
- package/cell/cellMaterial.js.map +1 -1
- package/custom/customMaterial.js +69 -81
- package/custom/customMaterial.js.map +1 -1
- package/custom/pbrCustomMaterial.js +80 -89
- package/custom/pbrCustomMaterial.js.map +1 -1
- package/fire/fire.fragment.js +44 -3
- package/fire/fire.fragment.js.map +1 -1
- package/fire/fire.vertex.js +54 -3
- package/fire/fire.vertex.js.map +1 -1
- package/fire/fireMaterial.js +101 -109
- package/fire/fireMaterial.js.map +1 -1
- package/fur/fur.fragment.js +67 -3
- package/fur/fur.fragment.js.map +1 -1
- package/fur/fur.vertex.js +97 -3
- package/fur/fur.vertex.js.map +1 -1
- package/fur/furMaterial.js +181 -193
- package/fur/furMaterial.js.map +1 -1
- package/gradient/gradient.fragment.js +36 -3
- package/gradient/gradient.fragment.js.map +1 -1
- package/gradient/gradient.vertex.js +41 -3
- package/gradient/gradient.vertex.js.map +1 -1
- package/gradient/gradientMaterial.js +113 -121
- package/gradient/gradientMaterial.js.map +1 -1
- package/grid/grid.fragment.js +8 -2
- package/grid/grid.fragment.js.map +1 -1
- package/grid/grid.vertex.js +22 -3
- package/grid/grid.vertex.js.map +1 -1
- package/grid/gridMaterial.js +93 -101
- package/grid/gridMaterial.js.map +1 -1
- package/lava/lava.fragment.js +62 -3
- package/lava/lava.fragment.js.map +1 -1
- package/lava/lava.vertex.js +84 -3
- package/lava/lava.vertex.js.map +1 -1
- package/lava/lavaMaterial.js +175 -183
- package/lava/lavaMaterial.js.map +1 -1
- package/legacy/legacy-cell.js +2 -2
- package/legacy/legacy-cell.js.map +1 -1
- package/legacy/legacy-custom.js +2 -2
- package/legacy/legacy-custom.js.map +1 -1
- package/legacy/legacy-fire.js +2 -2
- package/legacy/legacy-fire.js.map +1 -1
- package/legacy/legacy-fur.js +2 -2
- package/legacy/legacy-fur.js.map +1 -1
- package/legacy/legacy-gradient.js +2 -2
- package/legacy/legacy-gradient.js.map +1 -1
- package/legacy/legacy-grid.js +2 -2
- package/legacy/legacy-grid.js.map +1 -1
- package/legacy/legacy-lava.js +2 -2
- package/legacy/legacy-lava.js.map +1 -1
- package/legacy/legacy-mix.js +2 -2
- package/legacy/legacy-mix.js.map +1 -1
- package/legacy/legacy-normal.js +2 -2
- package/legacy/legacy-normal.js.map +1 -1
- package/legacy/legacy-shadowOnly.js +2 -2
- package/legacy/legacy-shadowOnly.js.map +1 -1
- package/legacy/legacy-simple.js +2 -2
- package/legacy/legacy-simple.js.map +1 -1
- package/legacy/legacy-sky.js +2 -2
- package/legacy/legacy-sky.js.map +1 -1
- package/legacy/legacy-terrain.js +2 -2
- package/legacy/legacy-terrain.js.map +1 -1
- package/legacy/legacy-triPlanar.js +2 -2
- package/legacy/legacy-triPlanar.js.map +1 -1
- package/legacy/legacy-water.js +2 -2
- package/legacy/legacy-water.js.map +1 -1
- package/legacy/legacy.js +2 -2
- package/legacy/legacy.js.map +1 -1
- package/mix/mix.fragment.js +33 -2
- package/mix/mix.fragment.js.map +1 -1
- package/mix/mix.vertex.js +67 -3
- package/mix/mix.vertex.js.map +1 -1
- package/mix/mixMaterial.js +166 -174
- package/mix/mixMaterial.js.map +1 -1
- package/normal/normal.fragment.js +41 -3
- package/normal/normal.fragment.js.map +1 -1
- package/normal/normal.vertex.js +42 -3
- package/normal/normal.vertex.js.map +1 -1
- package/normal/normalMaterial.js +143 -151
- package/normal/normalMaterial.js.map +1 -1
- package/package.json +3 -6
- package/shadowOnly/shadowOnly.fragment.js +21 -3
- package/shadowOnly/shadowOnly.fragment.js.map +1 -1
- package/shadowOnly/shadowOnly.vertex.js +30 -3
- package/shadowOnly/shadowOnly.vertex.js.map +1 -1
- package/shadowOnly/shadowOnlyMaterial.js +73 -89
- package/shadowOnly/shadowOnlyMaterial.js.map +1 -1
- package/simple/simple.fragment.js +36 -3
- package/simple/simple.fragment.js.map +1 -1
- package/simple/simple.vertex.js +45 -3
- package/simple/simple.vertex.js.map +1 -1
- package/simple/simpleMaterial.js +102 -110
- package/simple/simpleMaterial.js.map +1 -1
- package/sky/sky.fragment.js +17 -3
- package/sky/sky.fragment.js.map +1 -1
- package/sky/sky.vertex.js +20 -3
- package/sky/sky.vertex.js.map +1 -1
- package/sky/skyMaterial.js +111 -119
- package/sky/skyMaterial.js.map +1 -1
- package/terrain/terrain.fragment.js +36 -2
- package/terrain/terrain.fragment.js.map +1 -1
- package/terrain/terrain.vertex.js +67 -3
- package/terrain/terrain.vertex.js.map +1 -1
- package/terrain/terrainMaterial.js +148 -156
- package/terrain/terrainMaterial.js.map +1 -1
- package/triPlanar/triPlanarMaterial.js +157 -165
- package/triPlanar/triPlanarMaterial.js.map +1 -1
- package/triPlanar/triplanar.fragment.js +64 -3
- package/triPlanar/triplanar.fragment.js.map +1 -1
- package/triPlanar/triplanar.vertex.js +45 -3
- package/triPlanar/triplanar.vertex.js.map +1 -1
- package/water/water.fragment.js +83 -3
- package/water/water.fragment.js.map +1 -1
- package/water/water.vertex.js +56 -3
- package/water/water.vertex.js.map +1 -1
- package/water/waterMaterial.js +284 -313
- package/water/waterMaterial.js.map +1 -1
package/custom/customMaterial.js
CHANGED
@@ -1,33 +1,24 @@
|
|
1
|
-
import { __extends } from "tslib";
|
2
1
|
import { Effect } from "@babylonjs/core/Materials/effect.js";
|
3
2
|
import { StandardMaterial } from "@babylonjs/core/Materials/standardMaterial.js";
|
4
3
|
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
var _this = _super.call(this, name, scene) || this;
|
21
|
-
_this.CustomParts = new ShaderSpecialParts();
|
22
|
-
_this.customShaderNameResolve = _this.Builder;
|
23
|
-
_this.FragmentShader = Effect.ShadersStore["defaultPixelShader"];
|
24
|
-
_this.VertexShader = Effect.ShadersStore["defaultVertexShader"];
|
25
|
-
return _this;
|
26
|
-
}
|
27
|
-
CustomMaterial.prototype.AttachAfterBind = function (mesh, effect) {
|
4
|
+
export class CustomShaderStructure {
|
5
|
+
constructor() { }
|
6
|
+
}
|
7
|
+
export class ShaderSpecialParts {
|
8
|
+
constructor() { }
|
9
|
+
}
|
10
|
+
export class CustomMaterial extends StandardMaterial {
|
11
|
+
constructor(name, scene) {
|
12
|
+
super(name, scene);
|
13
|
+
this.CustomParts = new ShaderSpecialParts();
|
14
|
+
this.customShaderNameResolve = this.Builder;
|
15
|
+
this.FragmentShader = Effect.ShadersStore["defaultPixelShader"];
|
16
|
+
this.VertexShader = Effect.ShadersStore["defaultVertexShader"];
|
17
|
+
}
|
18
|
+
AttachAfterBind(mesh, effect) {
|
28
19
|
if (this._newUniformInstances) {
|
29
|
-
for (
|
30
|
-
|
20
|
+
for (const el in this._newUniformInstances) {
|
21
|
+
const ea = el.toString().split("-");
|
31
22
|
if (ea[0] == "vec2") {
|
32
23
|
effect.setVector2(ea[1], this._newUniformInstances[el]);
|
33
24
|
}
|
@@ -46,35 +37,34 @@ var CustomMaterial = /** @class */ (function (_super) {
|
|
46
37
|
}
|
47
38
|
}
|
48
39
|
if (this._newSamplerInstances) {
|
49
|
-
for (
|
50
|
-
|
40
|
+
for (const el in this._newSamplerInstances) {
|
41
|
+
const ea = el.toString().split("-");
|
51
42
|
if (ea[0] == "sampler2D" && this._newSamplerInstances[el].isReady && this._newSamplerInstances[el].isReady()) {
|
52
43
|
effect.setTexture(ea[1], this._newSamplerInstances[el]);
|
53
44
|
}
|
54
45
|
}
|
55
46
|
}
|
56
|
-
}
|
57
|
-
|
47
|
+
}
|
48
|
+
ReviewUniform(name, arr) {
|
58
49
|
if (name == "uniform" && this._newUniforms) {
|
59
|
-
for (
|
50
|
+
for (let ind = 0; ind < this._newUniforms.length; ind++) {
|
60
51
|
if (this._customUniform[ind].indexOf("sampler") == -1) {
|
61
52
|
arr.push(this._newUniforms[ind]);
|
62
53
|
}
|
63
54
|
}
|
64
55
|
}
|
65
56
|
if (name == "sampler" && this._newUniforms) {
|
66
|
-
for (
|
57
|
+
for (let ind = 0; ind < this._newUniforms.length; ind++) {
|
67
58
|
if (this._customUniform[ind].indexOf("sampler") != -1) {
|
68
59
|
arr.push(this._newUniforms[ind]);
|
69
60
|
}
|
70
61
|
}
|
71
62
|
}
|
72
63
|
return arr;
|
73
|
-
}
|
74
|
-
|
75
|
-
var _this = this;
|
64
|
+
}
|
65
|
+
Builder(shaderName, uniforms, uniformBuffers, samplers, defines, attributes) {
|
76
66
|
if (attributes && this._customAttributes && this._customAttributes.length > 0) {
|
77
|
-
attributes.push
|
67
|
+
attributes.push(...this._customAttributes);
|
78
68
|
}
|
79
69
|
this.ReviewUniform("uniform", uniforms);
|
80
70
|
this.ReviewUniform("sampler", samplers);
|
@@ -83,13 +73,13 @@ var CustomMaterial = /** @class */ (function (_super) {
|
|
83
73
|
}
|
84
74
|
this._isCreatedShader = false;
|
85
75
|
CustomMaterial.ShaderIndexer++;
|
86
|
-
|
87
|
-
|
88
|
-
this._afterBind =
|
76
|
+
const name = "custom_" + CustomMaterial.ShaderIndexer;
|
77
|
+
const fn_afterBind = this._afterBind.bind(this);
|
78
|
+
this._afterBind = (m, e) => {
|
89
79
|
if (!e) {
|
90
80
|
return;
|
91
81
|
}
|
92
|
-
|
82
|
+
this.AttachAfterBind(m, e);
|
93
83
|
try {
|
94
84
|
fn_afterBind(m, e);
|
95
85
|
}
|
@@ -118,8 +108,8 @@ var CustomMaterial = /** @class */ (function (_super) {
|
|
118
108
|
this._isCreatedShader = true;
|
119
109
|
this._createdShaderName = name;
|
120
110
|
return name;
|
121
|
-
}
|
122
|
-
|
111
|
+
}
|
112
|
+
AddUniform(name, kind, param) {
|
123
113
|
if (!this._customUniform) {
|
124
114
|
this._customUniform = new Array();
|
125
115
|
this._newUniforms = new Array();
|
@@ -137,81 +127,79 @@ var CustomMaterial = /** @class */ (function (_super) {
|
|
137
127
|
this._customUniform.push("uniform " + kind + " " + name + ";");
|
138
128
|
this._newUniforms.push(name);
|
139
129
|
return this;
|
140
|
-
}
|
141
|
-
|
130
|
+
}
|
131
|
+
AddAttribute(name) {
|
142
132
|
if (!this._customAttributes) {
|
143
133
|
this._customAttributes = [];
|
144
134
|
}
|
145
135
|
this._customAttributes.push(name);
|
146
136
|
return this;
|
147
|
-
}
|
148
|
-
|
137
|
+
}
|
138
|
+
Fragment_Begin(shaderPart) {
|
149
139
|
this.CustomParts.Fragment_Begin = shaderPart;
|
150
140
|
return this;
|
151
|
-
}
|
152
|
-
|
141
|
+
}
|
142
|
+
Fragment_Definitions(shaderPart) {
|
153
143
|
this.CustomParts.Fragment_Definitions = shaderPart;
|
154
144
|
return this;
|
155
|
-
}
|
156
|
-
|
145
|
+
}
|
146
|
+
Fragment_MainBegin(shaderPart) {
|
157
147
|
this.CustomParts.Fragment_MainBegin = shaderPart;
|
158
148
|
return this;
|
159
|
-
}
|
160
|
-
|
149
|
+
}
|
150
|
+
Fragment_MainEnd(shaderPart) {
|
161
151
|
this.CustomParts.Fragment_MainEnd = shaderPart;
|
162
152
|
return this;
|
163
|
-
}
|
164
|
-
|
153
|
+
}
|
154
|
+
Fragment_Custom_Diffuse(shaderPart) {
|
165
155
|
this.CustomParts.Fragment_Custom_Diffuse = shaderPart.replace("result", "diffuseColor");
|
166
156
|
return this;
|
167
|
-
}
|
168
|
-
|
157
|
+
}
|
158
|
+
Fragment_Custom_Alpha(shaderPart) {
|
169
159
|
this.CustomParts.Fragment_Custom_Alpha = shaderPart.replace("result", "alpha");
|
170
160
|
return this;
|
171
|
-
}
|
172
|
-
|
161
|
+
}
|
162
|
+
Fragment_Before_Lights(shaderPart) {
|
173
163
|
this.CustomParts.Fragment_Before_Lights = shaderPart;
|
174
164
|
return this;
|
175
|
-
}
|
176
|
-
|
165
|
+
}
|
166
|
+
Fragment_Before_Fog(shaderPart) {
|
177
167
|
this.CustomParts.Fragment_Before_Fog = shaderPart;
|
178
168
|
return this;
|
179
|
-
}
|
180
|
-
|
169
|
+
}
|
170
|
+
Fragment_Before_FragColor(shaderPart) {
|
181
171
|
this.CustomParts.Fragment_Before_FragColor = shaderPart.replace("result", "color");
|
182
172
|
return this;
|
183
|
-
}
|
184
|
-
|
173
|
+
}
|
174
|
+
Vertex_Begin(shaderPart) {
|
185
175
|
this.CustomParts.Vertex_Begin = shaderPart;
|
186
176
|
return this;
|
187
|
-
}
|
188
|
-
|
177
|
+
}
|
178
|
+
Vertex_Definitions(shaderPart) {
|
189
179
|
this.CustomParts.Vertex_Definitions = shaderPart;
|
190
180
|
return this;
|
191
|
-
}
|
192
|
-
|
181
|
+
}
|
182
|
+
Vertex_MainBegin(shaderPart) {
|
193
183
|
this.CustomParts.Vertex_MainBegin = shaderPart;
|
194
184
|
return this;
|
195
|
-
}
|
196
|
-
|
185
|
+
}
|
186
|
+
Vertex_Before_PositionUpdated(shaderPart) {
|
197
187
|
this.CustomParts.Vertex_Before_PositionUpdated = shaderPart.replace("result", "positionUpdated");
|
198
188
|
return this;
|
199
|
-
}
|
200
|
-
|
189
|
+
}
|
190
|
+
Vertex_Before_NormalUpdated(shaderPart) {
|
201
191
|
this.CustomParts.Vertex_Before_NormalUpdated = shaderPart.replace("result", "normalUpdated");
|
202
192
|
return this;
|
203
|
-
}
|
204
|
-
|
193
|
+
}
|
194
|
+
Vertex_After_WorldPosComputed(shaderPart) {
|
205
195
|
this.CustomParts.Vertex_After_WorldPosComputed = shaderPart;
|
206
196
|
return this;
|
207
|
-
}
|
208
|
-
|
197
|
+
}
|
198
|
+
Vertex_MainEnd(shaderPart) {
|
209
199
|
this.CustomParts.Vertex_MainEnd = shaderPart;
|
210
200
|
return this;
|
211
|
-
}
|
212
|
-
|
213
|
-
|
214
|
-
}(StandardMaterial));
|
215
|
-
export { CustomMaterial };
|
201
|
+
}
|
202
|
+
}
|
203
|
+
CustomMaterial.ShaderIndexer = 1;
|
216
204
|
RegisterClass("BABYLON.CustomMaterial", CustomMaterial);
|
217
205
|
//# sourceMappingURL=customMaterial.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"customMaterial.js","sourceRoot":"","sources":["../../../../../lts/materials/generated/custom/customMaterial.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Texture } from \"core/Materials/Textures/texture\";\r\nimport { Effect } from \"core/Materials/effect\";\r\nimport type { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { StandardMaterial } from \"core/Materials/standardMaterial\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\n\r\nexport class CustomShaderStructure {\r\n public FragmentStore: string;\r\n public VertexStore: string;\r\n\r\n constructor() {}\r\n}\r\n\r\nexport class ShaderSpecialParts {\r\n constructor() {}\r\n\r\n public Fragment_Begin: string;\r\n public Fragment_Definitions: string;\r\n public Fragment_MainBegin: string;\r\n public Fragment_MainEnd: string;\r\n\r\n // diffuseColor\r\n public Fragment_Custom_Diffuse: string;\r\n // lights\r\n public Fragment_Before_Lights: string;\r\n // fog\r\n public Fragment_Before_Fog: string;\r\n // alpha\r\n public Fragment_Custom_Alpha: string;\r\n\r\n public Fragment_Before_FragColor: string;\r\n\r\n public Vertex_Begin: string;\r\n public Vertex_Definitions: string;\r\n public Vertex_MainBegin: string;\r\n\r\n // positionUpdated\r\n public Vertex_Before_PositionUpdated: string;\r\n\r\n // normalUpdated\r\n public Vertex_Before_NormalUpdated: string;\r\n\r\n // worldPosComputed\r\n public Vertex_After_WorldPosComputed: string;\r\n\r\n // mainEnd\r\n public Vertex_MainEnd: string;\r\n}\r\n\r\nexport class CustomMaterial extends StandardMaterial {\r\n public static ShaderIndexer = 1;\r\n public CustomParts: ShaderSpecialParts;\r\n _isCreatedShader: boolean;\r\n _createdShaderName: string;\r\n _customUniform: string[];\r\n _newUniforms: string[];\r\n _newUniformInstances: { [name: string]: any };\r\n _newSamplerInstances: { [name: string]: Texture };\r\n _customAttributes: string[];\r\n\r\n public FragmentShader: string;\r\n public VertexShader: string;\r\n\r\n public AttachAfterBind(mesh: Mesh | undefined, effect: Effect) {\r\n if (this._newUniformInstances) {\r\n for (const el in this._newUniformInstances) {\r\n const ea = el.toString().split(\"-\");\r\n if (ea[0] == \"vec2\") {\r\n effect.setVector2(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"vec3\") {\r\n effect.setVector3(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"vec4\") {\r\n effect.setVector4(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"mat4\") {\r\n effect.setMatrix(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"float\") {\r\n effect.setFloat(ea[1], this._newUniformInstances[el]);\r\n }\r\n }\r\n }\r\n if (this._newSamplerInstances) {\r\n for (const el in this._newSamplerInstances) {\r\n const ea = el.toString().split(\"-\");\r\n if (ea[0] == \"sampler2D\" && this._newSamplerInstances[el].isReady && this._newSamplerInstances[el].isReady()) {\r\n effect.setTexture(ea[1], this._newSamplerInstances[el]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public ReviewUniform(name: string, arr: string[]): string[] {\r\n if (name == \"uniform\" && this._newUniforms) {\r\n for (let ind = 0; ind < this._newUniforms.length; ind++) {\r\n if (this._customUniform[ind].indexOf(\"sampler\") == -1) {\r\n arr.push(this._newUniforms[ind]);\r\n }\r\n }\r\n }\r\n if (name == \"sampler\" && this._newUniforms) {\r\n for (let ind = 0; ind < this._newUniforms.length; ind++) {\r\n if (this._customUniform[ind].indexOf(\"sampler\") != -1) {\r\n arr.push(this._newUniforms[ind]);\r\n }\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n public Builder(shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: MaterialDefines | string[], attributes?: string[]): string {\r\n if (attributes && this._customAttributes && this._customAttributes.length > 0) {\r\n attributes.push(...this._customAttributes);\r\n }\r\n\r\n this.ReviewUniform(\"uniform\", uniforms);\r\n this.ReviewUniform(\"sampler\", samplers);\r\n\r\n if (this._isCreatedShader) {\r\n return this._createdShaderName;\r\n }\r\n this._isCreatedShader = false;\r\n\r\n CustomMaterial.ShaderIndexer++;\r\n const name: string = \"custom_\" + CustomMaterial.ShaderIndexer;\r\n\r\n const fn_afterBind = this._afterBind.bind(this);\r\n this._afterBind = (m, e) => {\r\n if (!e) {\r\n return;\r\n }\r\n this.AttachAfterBind(m, e);\r\n try {\r\n fn_afterBind(m, e);\r\n } catch (e) {}\r\n };\r\n\r\n Effect.ShadersStore[name + \"VertexShader\"] = this.VertexShader.replace(\"#define CUSTOM_VERTEX_BEGIN\", this.CustomParts.Vertex_Begin ? this.CustomParts.Vertex_Begin : \"\")\r\n .replace(\r\n \"#define CUSTOM_VERTEX_DEFINITIONS\",\r\n (this._customUniform ? this._customUniform.join(\"\\n\") : \"\") + (this.CustomParts.Vertex_Definitions ? this.CustomParts.Vertex_Definitions : \"\")\r\n )\r\n .replace(\"#define CUSTOM_VERTEX_MAIN_BEGIN\", this.CustomParts.Vertex_MainBegin ? this.CustomParts.Vertex_MainBegin : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_UPDATE_POSITION\", this.CustomParts.Vertex_Before_PositionUpdated ? this.CustomParts.Vertex_Before_PositionUpdated : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_UPDATE_NORMAL\", this.CustomParts.Vertex_Before_NormalUpdated ? this.CustomParts.Vertex_Before_NormalUpdated : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_MAIN_END\", this.CustomParts.Vertex_MainEnd ? this.CustomParts.Vertex_MainEnd : \"\");\r\n\r\n if (this.CustomParts.Vertex_After_WorldPosComputed) {\r\n Effect.ShadersStore[name + \"VertexShader\"] = Effect.ShadersStore[name + \"VertexShader\"].replace(\r\n \"#define CUSTOM_VERTEX_UPDATE_WORLDPOS\",\r\n this.CustomParts.Vertex_After_WorldPosComputed\r\n );\r\n }\r\n\r\n Effect.ShadersStore[name + \"PixelShader\"] = this.FragmentShader.replace(\r\n \"#define CUSTOM_FRAGMENT_BEGIN\",\r\n this.CustomParts.Fragment_Begin ? this.CustomParts.Fragment_Begin : \"\"\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_MAIN_BEGIN\", this.CustomParts.Fragment_MainBegin ? this.CustomParts.Fragment_MainBegin : \"\")\r\n .replace(\r\n \"#define CUSTOM_FRAGMENT_DEFINITIONS\",\r\n (this._customUniform ? this._customUniform.join(\"\\n\") : \"\") + (this.CustomParts.Fragment_Definitions ? this.CustomParts.Fragment_Definitions : \"\")\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_UPDATE_DIFFUSE\", this.CustomParts.Fragment_Custom_Diffuse ? this.CustomParts.Fragment_Custom_Diffuse : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_UPDATE_ALPHA\", this.CustomParts.Fragment_Custom_Alpha ? this.CustomParts.Fragment_Custom_Alpha : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\", this.CustomParts.Fragment_Before_Lights ? this.CustomParts.Fragment_Before_Lights : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\", this.CustomParts.Fragment_Before_FragColor ? this.CustomParts.Fragment_Before_FragColor : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_MAIN_END\", this.CustomParts.Fragment_MainEnd ? this.CustomParts.Fragment_MainEnd : \"\");\r\n\r\n if (this.CustomParts.Fragment_Before_Fog) {\r\n Effect.ShadersStore[name + \"PixelShader\"] = Effect.ShadersStore[name + \"PixelShader\"].replace(\r\n \"#define CUSTOM_FRAGMENT_BEFORE_FOG\",\r\n this.CustomParts.Fragment_Before_Fog\r\n );\r\n }\r\n\r\n this._isCreatedShader = true;\r\n this._createdShaderName = name;\r\n\r\n return name;\r\n }\r\n\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n this.CustomParts = new ShaderSpecialParts();\r\n this.customShaderNameResolve = this.Builder;\r\n\r\n this.FragmentShader = Effect.ShadersStore[\"defaultPixelShader\"];\r\n this.VertexShader = Effect.ShadersStore[\"defaultVertexShader\"];\r\n }\r\n\r\n public AddUniform(name: string, kind: string, param: any): CustomMaterial {\r\n if (!this._customUniform) {\r\n this._customUniform = new Array();\r\n this._newUniforms = new Array();\r\n this._newSamplerInstances = {};\r\n this._newUniformInstances = {};\r\n }\r\n if (param) {\r\n if (kind.indexOf(\"sampler\") != -1) {\r\n (<any>this._newSamplerInstances)[kind + \"-\" + name] = param;\r\n } else {\r\n (<any>this._newUniformInstances)[kind + \"-\" + name] = param;\r\n }\r\n }\r\n this._customUniform.push(\"uniform \" + kind + \" \" + name + \";\");\r\n this._newUniforms.push(name);\r\n\r\n return this;\r\n }\r\n\r\n public AddAttribute(name: string): CustomMaterial {\r\n if (!this._customAttributes) {\r\n this._customAttributes = [];\r\n }\r\n\r\n this._customAttributes.push(name);\r\n\r\n return this;\r\n }\r\n\r\n public Fragment_Begin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Begin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Definitions(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Definitions = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_MainBegin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_MainBegin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_MainEnd(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_MainEnd = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_Diffuse(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Custom_Diffuse = shaderPart.replace(\"result\", \"diffuseColor\");\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_Alpha(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Custom_Alpha = shaderPart.replace(\"result\", \"alpha\");\r\n return this;\r\n }\r\n\r\n public Fragment_Before_Lights(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Before_Lights = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Before_Fog(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Before_Fog = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Before_FragColor(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Before_FragColor = shaderPart.replace(\"result\", \"color\");\r\n return this;\r\n }\r\n\r\n public Vertex_Begin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Begin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_Definitions(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Definitions = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_MainBegin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_MainBegin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_Before_PositionUpdated(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Before_PositionUpdated = shaderPart.replace(\"result\", \"positionUpdated\");\r\n return this;\r\n }\r\n\r\n public Vertex_Before_NormalUpdated(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Before_NormalUpdated = shaderPart.replace(\"result\", \"normalUpdated\");\r\n return this;\r\n }\r\n\r\n public Vertex_After_WorldPosComputed(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_After_WorldPosComputed = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_MainEnd(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_MainEnd = shaderPart;\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.CustomMaterial\", CustomMaterial);\r\n"]}
|
1
|
+
{"version":3,"file":"customMaterial.js","sourceRoot":"","sources":["../../../../../lts/materials/generated/custom/customMaterial.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Texture } from \"core/Materials/Textures/texture\";\r\nimport { Effect } from \"core/Materials/effect\";\r\nimport type { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { StandardMaterial } from \"core/Materials/standardMaterial\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\n\r\nexport class CustomShaderStructure {\r\n public FragmentStore: string;\r\n public VertexStore: string;\r\n\r\n constructor() {}\r\n}\r\n\r\nexport class ShaderSpecialParts {\r\n constructor() {}\r\n\r\n public Fragment_Begin: string;\r\n public Fragment_Definitions: string;\r\n public Fragment_MainBegin: string;\r\n public Fragment_MainEnd: string;\r\n\r\n // diffuseColor\r\n public Fragment_Custom_Diffuse: string;\r\n // lights\r\n public Fragment_Before_Lights: string;\r\n // fog\r\n public Fragment_Before_Fog: string;\r\n // alpha\r\n public Fragment_Custom_Alpha: string;\r\n\r\n public Fragment_Before_FragColor: string;\r\n\r\n public Vertex_Begin: string;\r\n public Vertex_Definitions: string;\r\n public Vertex_MainBegin: string;\r\n\r\n // positionUpdated\r\n public Vertex_Before_PositionUpdated: string;\r\n\r\n // normalUpdated\r\n public Vertex_Before_NormalUpdated: string;\r\n\r\n // worldPosComputed\r\n public Vertex_After_WorldPosComputed: string;\r\n\r\n // mainEnd\r\n public Vertex_MainEnd: string;\r\n}\r\n\r\nexport class CustomMaterial extends StandardMaterial {\r\n public static ShaderIndexer = 1;\r\n public CustomParts: ShaderSpecialParts;\r\n _isCreatedShader: boolean;\r\n _createdShaderName: string;\r\n _customUniform: string[];\r\n _newUniforms: string[];\r\n _newUniformInstances: { [name: string]: any };\r\n _newSamplerInstances: { [name: string]: Texture };\r\n _customAttributes: string[];\r\n\r\n public FragmentShader: string;\r\n public VertexShader: string;\r\n\r\n public AttachAfterBind(mesh: Mesh | undefined, effect: Effect) {\r\n if (this._newUniformInstances) {\r\n for (const el in this._newUniformInstances) {\r\n const ea = el.toString().split(\"-\");\r\n if (ea[0] == \"vec2\") {\r\n effect.setVector2(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"vec3\") {\r\n effect.setVector3(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"vec4\") {\r\n effect.setVector4(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"mat4\") {\r\n effect.setMatrix(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"float\") {\r\n effect.setFloat(ea[1], this._newUniformInstances[el]);\r\n }\r\n }\r\n }\r\n if (this._newSamplerInstances) {\r\n for (const el in this._newSamplerInstances) {\r\n const ea = el.toString().split(\"-\");\r\n if (ea[0] == \"sampler2D\" && this._newSamplerInstances[el].isReady && this._newSamplerInstances[el].isReady()) {\r\n effect.setTexture(ea[1], this._newSamplerInstances[el]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public ReviewUniform(name: string, arr: string[]): string[] {\r\n if (name == \"uniform\" && this._newUniforms) {\r\n for (let ind = 0; ind < this._newUniforms.length; ind++) {\r\n if (this._customUniform[ind].indexOf(\"sampler\") == -1) {\r\n arr.push(this._newUniforms[ind]);\r\n }\r\n }\r\n }\r\n if (name == \"sampler\" && this._newUniforms) {\r\n for (let ind = 0; ind < this._newUniforms.length; ind++) {\r\n if (this._customUniform[ind].indexOf(\"sampler\") != -1) {\r\n arr.push(this._newUniforms[ind]);\r\n }\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n public Builder(shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: MaterialDefines | string[], attributes?: string[]): string {\r\n if (attributes && this._customAttributes && this._customAttributes.length > 0) {\r\n attributes.push(...this._customAttributes);\r\n }\r\n\r\n this.ReviewUniform(\"uniform\", uniforms);\r\n this.ReviewUniform(\"sampler\", samplers);\r\n\r\n if (this._isCreatedShader) {\r\n return this._createdShaderName;\r\n }\r\n this._isCreatedShader = false;\r\n\r\n CustomMaterial.ShaderIndexer++;\r\n const name: string = \"custom_\" + CustomMaterial.ShaderIndexer;\r\n\r\n const fn_afterBind = this._afterBind.bind(this);\r\n this._afterBind = (m, e) => {\r\n if (!e) {\r\n return;\r\n }\r\n this.AttachAfterBind(m, e);\r\n try {\r\n fn_afterBind(m, e);\r\n } catch (e) {}\r\n };\r\n\r\n Effect.ShadersStore[name + \"VertexShader\"] = this.VertexShader.replace(\"#define CUSTOM_VERTEX_BEGIN\", this.CustomParts.Vertex_Begin ? this.CustomParts.Vertex_Begin : \"\")\r\n .replace(\r\n \"#define CUSTOM_VERTEX_DEFINITIONS\",\r\n (this._customUniform ? this._customUniform.join(\"\\n\") : \"\") + (this.CustomParts.Vertex_Definitions ? this.CustomParts.Vertex_Definitions : \"\")\r\n )\r\n .replace(\"#define CUSTOM_VERTEX_MAIN_BEGIN\", this.CustomParts.Vertex_MainBegin ? this.CustomParts.Vertex_MainBegin : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_UPDATE_POSITION\", this.CustomParts.Vertex_Before_PositionUpdated ? this.CustomParts.Vertex_Before_PositionUpdated : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_UPDATE_NORMAL\", this.CustomParts.Vertex_Before_NormalUpdated ? this.CustomParts.Vertex_Before_NormalUpdated : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_MAIN_END\", this.CustomParts.Vertex_MainEnd ? this.CustomParts.Vertex_MainEnd : \"\");\r\n\r\n if (this.CustomParts.Vertex_After_WorldPosComputed) {\r\n Effect.ShadersStore[name + \"VertexShader\"] = Effect.ShadersStore[name + \"VertexShader\"].replace(\r\n \"#define CUSTOM_VERTEX_UPDATE_WORLDPOS\",\r\n this.CustomParts.Vertex_After_WorldPosComputed\r\n );\r\n }\r\n\r\n Effect.ShadersStore[name + \"PixelShader\"] = this.FragmentShader.replace(\r\n \"#define CUSTOM_FRAGMENT_BEGIN\",\r\n this.CustomParts.Fragment_Begin ? this.CustomParts.Fragment_Begin : \"\"\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_MAIN_BEGIN\", this.CustomParts.Fragment_MainBegin ? this.CustomParts.Fragment_MainBegin : \"\")\r\n .replace(\r\n \"#define CUSTOM_FRAGMENT_DEFINITIONS\",\r\n (this._customUniform ? this._customUniform.join(\"\\n\") : \"\") + (this.CustomParts.Fragment_Definitions ? this.CustomParts.Fragment_Definitions : \"\")\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_UPDATE_DIFFUSE\", this.CustomParts.Fragment_Custom_Diffuse ? this.CustomParts.Fragment_Custom_Diffuse : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_UPDATE_ALPHA\", this.CustomParts.Fragment_Custom_Alpha ? this.CustomParts.Fragment_Custom_Alpha : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\", this.CustomParts.Fragment_Before_Lights ? this.CustomParts.Fragment_Before_Lights : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\", this.CustomParts.Fragment_Before_FragColor ? this.CustomParts.Fragment_Before_FragColor : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_MAIN_END\", this.CustomParts.Fragment_MainEnd ? this.CustomParts.Fragment_MainEnd : \"\");\r\n\r\n if (this.CustomParts.Fragment_Before_Fog) {\r\n Effect.ShadersStore[name + \"PixelShader\"] = Effect.ShadersStore[name + \"PixelShader\"].replace(\r\n \"#define CUSTOM_FRAGMENT_BEFORE_FOG\",\r\n this.CustomParts.Fragment_Before_Fog\r\n );\r\n }\r\n\r\n this._isCreatedShader = true;\r\n this._createdShaderName = name;\r\n\r\n return name;\r\n }\r\n\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n this.CustomParts = new ShaderSpecialParts();\r\n this.customShaderNameResolve = this.Builder;\r\n\r\n this.FragmentShader = Effect.ShadersStore[\"defaultPixelShader\"];\r\n this.VertexShader = Effect.ShadersStore[\"defaultVertexShader\"];\r\n }\r\n\r\n public AddUniform(name: string, kind: string, param: any): CustomMaterial {\r\n if (!this._customUniform) {\r\n this._customUniform = new Array();\r\n this._newUniforms = new Array();\r\n this._newSamplerInstances = {};\r\n this._newUniformInstances = {};\r\n }\r\n if (param) {\r\n if (kind.indexOf(\"sampler\") != -1) {\r\n (<any>this._newSamplerInstances)[kind + \"-\" + name] = param;\r\n } else {\r\n (<any>this._newUniformInstances)[kind + \"-\" + name] = param;\r\n }\r\n }\r\n this._customUniform.push(\"uniform \" + kind + \" \" + name + \";\");\r\n this._newUniforms.push(name);\r\n\r\n return this;\r\n }\r\n\r\n public AddAttribute(name: string): CustomMaterial {\r\n if (!this._customAttributes) {\r\n this._customAttributes = [];\r\n }\r\n\r\n this._customAttributes.push(name);\r\n\r\n return this;\r\n }\r\n\r\n public Fragment_Begin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Begin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Definitions(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Definitions = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_MainBegin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_MainBegin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_MainEnd(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_MainEnd = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_Diffuse(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Custom_Diffuse = shaderPart.replace(\"result\", \"diffuseColor\");\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_Alpha(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Custom_Alpha = shaderPart.replace(\"result\", \"alpha\");\r\n return this;\r\n }\r\n\r\n public Fragment_Before_Lights(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Before_Lights = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Before_Fog(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Before_Fog = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Before_FragColor(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Before_FragColor = shaderPart.replace(\"result\", \"color\");\r\n return this;\r\n }\r\n\r\n public Vertex_Begin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Begin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_Definitions(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Definitions = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_MainBegin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_MainBegin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_Before_PositionUpdated(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Before_PositionUpdated = shaderPart.replace(\"result\", \"positionUpdated\");\r\n return this;\r\n }\r\n\r\n public Vertex_Before_NormalUpdated(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Before_NormalUpdated = shaderPart.replace(\"result\", \"normalUpdated\");\r\n return this;\r\n }\r\n\r\n public Vertex_After_WorldPosComputed(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_After_WorldPosComputed = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_MainEnd(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_MainEnd = shaderPart;\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.CustomMaterial\", CustomMaterial);\r\n"]}
|
@@ -1,31 +1,25 @@
|
|
1
|
-
import { __extends } from "tslib";
|
2
1
|
import { Effect } from "@babylonjs/core/Materials/effect.js";
|
3
2
|
import { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial.js";
|
4
3
|
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
5
4
|
import { ShaderCodeInliner } from "@babylonjs/core/Engines/Processors/shaderCodeInliner.js";
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
_this.FragmentShader = _this.FragmentShader.replace(/#include<pbrBlockReflectivity>/g, Effect.IncludesShadersStore["pbrBlockReflectivity"]);
|
22
|
-
_this.FragmentShader = _this.FragmentShader.replace(/#include<pbrBlockFinalColorComposition>/g, Effect.IncludesShadersStore["pbrBlockFinalColorComposition"]);
|
23
|
-
return _this;
|
24
|
-
}
|
25
|
-
PBRCustomMaterial.prototype.AttachAfterBind = function (mesh, effect) {
|
5
|
+
export class ShaderAlebdoParts {
|
6
|
+
constructor() { }
|
7
|
+
}
|
8
|
+
export class PBRCustomMaterial extends PBRMaterial {
|
9
|
+
constructor(name, scene) {
|
10
|
+
super(name, scene);
|
11
|
+
this.CustomParts = new ShaderAlebdoParts();
|
12
|
+
this.customShaderNameResolve = this.Builder;
|
13
|
+
this.FragmentShader = Effect.ShadersStore["pbrPixelShader"];
|
14
|
+
this.VertexShader = Effect.ShadersStore["pbrVertexShader"];
|
15
|
+
this.FragmentShader = this.FragmentShader.replace(/#include<pbrBlockAlbedoOpacity>/g, Effect.IncludesShadersStore["pbrBlockAlbedoOpacity"]);
|
16
|
+
this.FragmentShader = this.FragmentShader.replace(/#include<pbrBlockReflectivity>/g, Effect.IncludesShadersStore["pbrBlockReflectivity"]);
|
17
|
+
this.FragmentShader = this.FragmentShader.replace(/#include<pbrBlockFinalColorComposition>/g, Effect.IncludesShadersStore["pbrBlockFinalColorComposition"]);
|
18
|
+
}
|
19
|
+
AttachAfterBind(mesh, effect) {
|
26
20
|
if (this._newUniformInstances) {
|
27
|
-
for (
|
28
|
-
|
21
|
+
for (const el in this._newUniformInstances) {
|
22
|
+
const ea = el.toString().split("-");
|
29
23
|
if (ea[0] == "vec2") {
|
30
24
|
effect.setVector2(ea[1], this._newUniformInstances[el]);
|
31
25
|
}
|
@@ -44,47 +38,46 @@ var PBRCustomMaterial = /** @class */ (function (_super) {
|
|
44
38
|
}
|
45
39
|
}
|
46
40
|
if (this._newSamplerInstances) {
|
47
|
-
for (
|
48
|
-
|
41
|
+
for (const el in this._newSamplerInstances) {
|
42
|
+
const ea = el.toString().split("-");
|
49
43
|
if (ea[0] == "sampler2D" && this._newSamplerInstances[el].isReady && this._newSamplerInstances[el].isReady()) {
|
50
44
|
effect.setTexture(ea[1], this._newSamplerInstances[el]);
|
51
45
|
}
|
52
46
|
}
|
53
47
|
}
|
54
|
-
}
|
55
|
-
|
48
|
+
}
|
49
|
+
ReviewUniform(name, arr) {
|
56
50
|
if (name == "uniform" && this._newUniforms) {
|
57
|
-
for (
|
51
|
+
for (let ind = 0; ind < this._newUniforms.length; ind++) {
|
58
52
|
if (this._customUniform[ind].indexOf("sampler") == -1) {
|
59
53
|
arr.push(this._newUniforms[ind]);
|
60
54
|
}
|
61
55
|
}
|
62
56
|
}
|
63
57
|
if (name == "sampler" && this._newUniforms) {
|
64
|
-
for (
|
58
|
+
for (let ind = 0; ind < this._newUniforms.length; ind++) {
|
65
59
|
if (this._customUniform[ind].indexOf("sampler") != -1) {
|
66
60
|
arr.push(this._newUniforms[ind]);
|
67
61
|
}
|
68
62
|
}
|
69
63
|
}
|
70
64
|
return arr;
|
71
|
-
}
|
72
|
-
|
73
|
-
var _this = this;
|
65
|
+
}
|
66
|
+
Builder(shaderName, uniforms, uniformBuffers, samplers, defines, attributes, options) {
|
74
67
|
if (options) {
|
75
|
-
|
76
|
-
options.processFinalCode =
|
68
|
+
const currentProcessing = options.processFinalCode;
|
69
|
+
options.processFinalCode = (type, code) => {
|
77
70
|
if (type === "vertex") {
|
78
|
-
return
|
71
|
+
return currentProcessing ? currentProcessing(type, code) : code;
|
79
72
|
}
|
80
|
-
|
73
|
+
const sci = new ShaderCodeInliner(code);
|
81
74
|
sci.inlineToken = "#define pbr_inline";
|
82
75
|
sci.processCode();
|
83
|
-
return
|
76
|
+
return currentProcessing ? currentProcessing(type, sci.code) : sci.code;
|
84
77
|
};
|
85
78
|
}
|
86
79
|
if (attributes && this._customAttributes && this._customAttributes.length > 0) {
|
87
|
-
attributes.push
|
80
|
+
attributes.push(...this._customAttributes);
|
88
81
|
}
|
89
82
|
this.ReviewUniform("uniform", uniforms);
|
90
83
|
this.ReviewUniform("sampler", samplers);
|
@@ -93,13 +86,13 @@ var PBRCustomMaterial = /** @class */ (function (_super) {
|
|
93
86
|
}
|
94
87
|
this._isCreatedShader = false;
|
95
88
|
PBRCustomMaterial.ShaderIndexer++;
|
96
|
-
|
97
|
-
|
98
|
-
this._afterBind =
|
89
|
+
const name = "custom_" + PBRCustomMaterial.ShaderIndexer;
|
90
|
+
const fn_afterBind = this._afterBind.bind(this);
|
91
|
+
this._afterBind = (m, e) => {
|
99
92
|
if (!e) {
|
100
93
|
return;
|
101
94
|
}
|
102
|
-
|
95
|
+
this.AttachAfterBind(m, e);
|
103
96
|
try {
|
104
97
|
fn_afterBind(m, e);
|
105
98
|
}
|
@@ -131,8 +124,8 @@ var PBRCustomMaterial = /** @class */ (function (_super) {
|
|
131
124
|
this._isCreatedShader = true;
|
132
125
|
this._createdShaderName = name;
|
133
126
|
return name;
|
134
|
-
}
|
135
|
-
|
127
|
+
}
|
128
|
+
AddUniform(name, kind, param) {
|
136
129
|
if (!this._customUniform) {
|
137
130
|
this._customUniform = new Array();
|
138
131
|
this._newUniforms = new Array();
|
@@ -150,93 +143,91 @@ var PBRCustomMaterial = /** @class */ (function (_super) {
|
|
150
143
|
this._customUniform.push("uniform " + kind + " " + name + ";");
|
151
144
|
this._newUniforms.push(name);
|
152
145
|
return this;
|
153
|
-
}
|
154
|
-
|
146
|
+
}
|
147
|
+
AddAttribute(name) {
|
155
148
|
if (!this._customAttributes) {
|
156
149
|
this._customAttributes = [];
|
157
150
|
}
|
158
151
|
this._customAttributes.push(name);
|
159
152
|
return this;
|
160
|
-
}
|
161
|
-
|
153
|
+
}
|
154
|
+
Fragment_Begin(shaderPart) {
|
162
155
|
this.CustomParts.Fragment_Begin = shaderPart;
|
163
156
|
return this;
|
164
|
-
}
|
165
|
-
|
157
|
+
}
|
158
|
+
Fragment_Definitions(shaderPart) {
|
166
159
|
this.CustomParts.Fragment_Definitions = shaderPart;
|
167
160
|
return this;
|
168
|
-
}
|
169
|
-
|
161
|
+
}
|
162
|
+
Fragment_MainBegin(shaderPart) {
|
170
163
|
this.CustomParts.Fragment_MainBegin = shaderPart;
|
171
164
|
return this;
|
172
|
-
}
|
173
|
-
|
165
|
+
}
|
166
|
+
Fragment_Custom_Albedo(shaderPart) {
|
174
167
|
this.CustomParts.Fragment_Custom_Albedo = shaderPart.replace("result", "surfaceAlbedo");
|
175
168
|
return this;
|
176
|
-
}
|
177
|
-
|
169
|
+
}
|
170
|
+
Fragment_Custom_Alpha(shaderPart) {
|
178
171
|
this.CustomParts.Fragment_Custom_Alpha = shaderPart.replace("result", "alpha");
|
179
172
|
return this;
|
180
|
-
}
|
181
|
-
|
173
|
+
}
|
174
|
+
Fragment_Before_Lights(shaderPart) {
|
182
175
|
this.CustomParts.Fragment_Before_Lights = shaderPart;
|
183
176
|
return this;
|
184
|
-
}
|
185
|
-
|
177
|
+
}
|
178
|
+
Fragment_Custom_MetallicRoughness(shaderPart) {
|
186
179
|
this.CustomParts.Fragment_Custom_MetallicRoughness = shaderPart;
|
187
180
|
return this;
|
188
|
-
}
|
189
|
-
|
181
|
+
}
|
182
|
+
Fragment_Custom_MicroSurface(shaderPart) {
|
190
183
|
this.CustomParts.Fragment_Custom_MicroSurface = shaderPart;
|
191
184
|
return this;
|
192
|
-
}
|
193
|
-
|
185
|
+
}
|
186
|
+
Fragment_Before_Fog(shaderPart) {
|
194
187
|
this.CustomParts.Fragment_Before_Fog = shaderPart;
|
195
188
|
return this;
|
196
|
-
}
|
197
|
-
|
189
|
+
}
|
190
|
+
Fragment_Before_FinalColorComposition(shaderPart) {
|
198
191
|
this.CustomParts.Fragment_Before_FinalColorComposition = shaderPart;
|
199
192
|
return this;
|
200
|
-
}
|
201
|
-
|
193
|
+
}
|
194
|
+
Fragment_Before_FragColor(shaderPart) {
|
202
195
|
this.CustomParts.Fragment_Before_FragColor = shaderPart.replace("result", "color");
|
203
196
|
return this;
|
204
|
-
}
|
205
|
-
|
197
|
+
}
|
198
|
+
Fragment_MainEnd(shaderPart) {
|
206
199
|
this.CustomParts.Fragment_MainEnd = shaderPart;
|
207
200
|
return this;
|
208
|
-
}
|
209
|
-
|
201
|
+
}
|
202
|
+
Vertex_Begin(shaderPart) {
|
210
203
|
this.CustomParts.Vertex_Begin = shaderPart;
|
211
204
|
return this;
|
212
|
-
}
|
213
|
-
|
205
|
+
}
|
206
|
+
Vertex_Definitions(shaderPart) {
|
214
207
|
this.CustomParts.Vertex_Definitions = shaderPart;
|
215
208
|
return this;
|
216
|
-
}
|
217
|
-
|
209
|
+
}
|
210
|
+
Vertex_MainBegin(shaderPart) {
|
218
211
|
this.CustomParts.Vertex_MainBegin = shaderPart;
|
219
212
|
return this;
|
220
|
-
}
|
221
|
-
|
213
|
+
}
|
214
|
+
Vertex_Before_PositionUpdated(shaderPart) {
|
222
215
|
this.CustomParts.Vertex_Before_PositionUpdated = shaderPart.replace("result", "positionUpdated");
|
223
216
|
return this;
|
224
|
-
}
|
225
|
-
|
217
|
+
}
|
218
|
+
Vertex_Before_NormalUpdated(shaderPart) {
|
226
219
|
this.CustomParts.Vertex_Before_NormalUpdated = shaderPart.replace("result", "normalUpdated");
|
227
220
|
return this;
|
228
|
-
}
|
229
|
-
|
221
|
+
}
|
222
|
+
Vertex_After_WorldPosComputed(shaderPart) {
|
230
223
|
this.CustomParts.Vertex_After_WorldPosComputed = shaderPart;
|
231
224
|
return this;
|
232
|
-
}
|
233
|
-
|
225
|
+
}
|
226
|
+
Vertex_MainEnd(shaderPart) {
|
234
227
|
this.CustomParts.Vertex_MainEnd = shaderPart;
|
235
228
|
return this;
|
236
|
-
}
|
237
|
-
|
238
|
-
|
239
|
-
}(PBRMaterial));
|
240
|
-
export { PBRCustomMaterial };
|
229
|
+
}
|
230
|
+
}
|
231
|
+
PBRCustomMaterial.ShaderIndexer = 1;
|
241
232
|
RegisterClass("BABYLON.PBRCustomMaterial", PBRCustomMaterial);
|
242
233
|
//# sourceMappingURL=pbrCustomMaterial.js.map
|