@babylonjs/procedural-textures 5.0.0-alpha.8 → 5.0.0-beta.10
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/brick/brickProceduralTexture.d.ts +2 -1
- package/brick/brickProceduralTexture.fragment.js +3 -3
- package/brick/brickProceduralTexture.fragment.js.map +1 -1
- package/brick/brickProceduralTexture.js +7 -6
- package/brick/brickProceduralTexture.js.map +1 -1
- package/brick/index.js +1 -1
- package/cloud/cloudProceduralTexture.d.ts +8 -1
- package/cloud/cloudProceduralTexture.fragment.js +3 -3
- package/cloud/cloudProceduralTexture.fragment.js.map +1 -1
- package/cloud/cloudProceduralTexture.js +39 -6
- package/cloud/cloudProceduralTexture.js.map +1 -1
- package/cloud/index.js +1 -1
- package/fire/fireProceduralTexture.d.ts +2 -1
- package/fire/fireProceduralTexture.fragment.js +2 -2
- package/fire/fireProceduralTexture.fragment.js.map +1 -1
- package/fire/fireProceduralTexture.js +8 -7
- package/fire/fireProceduralTexture.js.map +1 -1
- package/fire/index.js +1 -1
- package/grass/grassProceduralTexture.d.ts +2 -1
- package/grass/grassProceduralTexture.fragment.js +3 -3
- package/grass/grassProceduralTexture.fragment.js.map +1 -1
- package/grass/grassProceduralTexture.js +7 -6
- package/grass/grassProceduralTexture.js.map +1 -1
- package/grass/index.js +1 -1
- package/index.d.ts +10 -10
- package/index.js +10 -10
- package/index.js.map +1 -1
- package/legacy/legacy-brick.js +2 -2
- package/legacy/legacy-cloud.js +2 -2
- package/legacy/legacy-fire.d.ts +1 -1
- package/legacy/legacy-fire.js +2 -2
- package/legacy/legacy-fire.js.map +1 -1
- package/legacy/legacy-grass.d.ts +1 -1
- package/legacy/legacy-grass.js +2 -2
- package/legacy/legacy-grass.js.map +1 -1
- package/legacy/legacy-marble.d.ts +1 -1
- package/legacy/legacy-marble.js +2 -2
- package/legacy/legacy-marble.js.map +1 -1
- package/legacy/legacy-normalMap.d.ts +1 -1
- package/legacy/legacy-normalMap.js +2 -2
- package/legacy/legacy-normalMap.js.map +1 -1
- package/legacy/legacy-perlinNoise.d.ts +1 -1
- package/legacy/legacy-perlinNoise.js +2 -2
- package/legacy/legacy-perlinNoise.js.map +1 -1
- package/legacy/legacy-road.d.ts +1 -1
- package/legacy/legacy-road.js +2 -2
- package/legacy/legacy-road.js.map +1 -1
- package/legacy/legacy-starfield.d.ts +1 -1
- package/legacy/legacy-starfield.js +2 -2
- package/legacy/legacy-starfield.js.map +1 -1
- package/legacy/legacy-wood.d.ts +1 -1
- package/legacy/legacy-wood.js +2 -2
- package/legacy/legacy-wood.js.map +1 -1
- package/legacy/legacy.js +2 -2
- package/marble/index.js +1 -1
- package/marble/marbleProceduralTexture.d.ts +2 -1
- package/marble/marbleProceduralTexture.fragment.js +2 -2
- package/marble/marbleProceduralTexture.fragment.js.map +1 -1
- package/marble/marbleProceduralTexture.js +7 -6
- package/marble/marbleProceduralTexture.js.map +1 -1
- package/normalMap/index.js +1 -1
- package/normalMap/normalMapProceduralTexture.d.ts +2 -1
- package/normalMap/normalMapProceduralTexture.fragment.js +2 -2
- package/normalMap/normalMapProceduralTexture.fragment.js.map +1 -1
- package/normalMap/normalMapProceduralTexture.js +6 -5
- package/normalMap/normalMapProceduralTexture.js.map +1 -1
- package/package.json +3 -3
- package/perlinNoise/index.js +1 -1
- package/perlinNoise/perlinNoiseProceduralTexture.d.ts +2 -1
- package/perlinNoise/perlinNoiseProceduralTexture.fragment.js +3 -3
- package/perlinNoise/perlinNoiseProceduralTexture.fragment.js.map +1 -1
- package/perlinNoise/perlinNoiseProceduralTexture.js +6 -5
- package/perlinNoise/perlinNoiseProceduralTexture.js.map +1 -1
- package/road/index.js +1 -1
- package/road/roadProceduralTexture.d.ts +2 -1
- package/road/roadProceduralTexture.fragment.js +3 -3
- package/road/roadProceduralTexture.fragment.js.map +1 -1
- package/road/roadProceduralTexture.js +7 -6
- package/road/roadProceduralTexture.js.map +1 -1
- package/starfield/index.js +1 -1
- package/starfield/starfieldProceduralTexture.d.ts +2 -1
- package/starfield/starfieldProceduralTexture.fragment.js +2 -2
- package/starfield/starfieldProceduralTexture.fragment.js.map +1 -1
- package/starfield/starfieldProceduralTexture.js +6 -5
- package/starfield/starfieldProceduralTexture.js.map +1 -1
- package/wood/index.js +1 -1
- package/wood/woodProceduralTexture.d.ts +2 -1
- package/wood/woodProceduralTexture.fragment.js +3 -3
- package/wood/woodProceduralTexture.fragment.js.map +1 -1
- package/wood/woodProceduralTexture.js +7 -6
- package/wood/woodProceduralTexture.js.map +1 -1
package/road/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./roadProceduralTexture";
|
|
1
|
+
export * from "./roadProceduralTexture.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -2,10 +2,11 @@ import { Color3 } from "@babylonjs/core/Maths/math.color";
|
|
|
2
2
|
import { Texture } from "@babylonjs/core/Materials/Textures/texture";
|
|
3
3
|
import { ProceduralTexture } from "@babylonjs/core/Materials/Textures/Procedurals/proceduralTexture";
|
|
4
4
|
import { Scene } from "@babylonjs/core/scene";
|
|
5
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
5
6
|
import "./roadProceduralTexture.fragment";
|
|
6
7
|
export declare class RoadProceduralTexture extends ProceduralTexture {
|
|
7
8
|
private _roadColor;
|
|
8
|
-
constructor(name: string, size: number, scene
|
|
9
|
+
constructor(name: string, size: number, scene?: Nullable<Scene>, fallbackTexture?: Texture, generateMipMaps?: boolean);
|
|
9
10
|
updateShaderUniforms(): void;
|
|
10
11
|
get roadColor(): Color3;
|
|
11
12
|
set roadColor(value: Color3);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
|
|
2
2
|
var name = 'roadProceduralTexturePixelShader';
|
|
3
|
-
var shader = "precision highp float;\nvarying vec2 vUV;\nuniform vec3 roadColor;\nfloat rand(vec2 n) {\nreturn fract(cos(dot(n,vec2(12.9898,4.1414)))*43758.5453);\n}\nfloat noise(vec2 n) {\nconst vec2 d=vec2(0.0,1.0);\nvec2 b=floor(n),f=smoothstep(vec2(0.0),vec2(1.0),fract(n));\nreturn mix(mix(rand(b),rand(b+d.yx),f.x),mix(rand(b+d.xy),rand(b+d.yy),f.x),f.y);\n}\nfloat fbm(vec2 n) {\nfloat total=0.0,amplitude=1.0;\nfor (int i=0; i<4; i++) {\ntotal+=noise(n)*amplitude;\nn+=n;\namplitude*=0.5;\n}\nreturn total;\n}\nvoid main(void) {\nfloat ratioy=mod(gl_FragCoord.y*100.0 ,fbm(vUV*2.0));\nvec3 color=roadColor*ratioy;\ngl_FragColor=vec4(color,1.0);\n}";
|
|
4
|
-
|
|
3
|
+
var shader = "precision highp float;\nvarying vec2 vUV;\nuniform vec3 roadColor;\nfloat rand(vec2 n) {\nreturn fract(cos(dot(n,vec2(12.9898,4.1414)))*43758.5453);\n}\nfloat noise(vec2 n) {\nconst vec2 d=vec2(0.0,1.0);\nvec2 b=floor(n),f=smoothstep(vec2(0.0),vec2(1.0),fract(n));\nreturn mix(mix(rand(b),rand(b+d.yx),f.x),mix(rand(b+d.xy),rand(b+d.yy),f.x),f.y);\n}\nfloat fbm(vec2 n) {\nfloat total=0.0,amplitude=1.0;\nfor (int i=0; i<4; i++) {\ntotal+=noise(n)*amplitude;\nn+=n;\namplitude*=0.5;\n}\nreturn total;\n}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nfloat ratioy=mod(gl_FragCoord.y*100.0 ,fbm(vUV*2.0));\nvec3 color=roadColor*ratioy;\ngl_FragColor=vec4(color,1.0);\n#define CUSTOM_FRAGMENT_MAIN_END\n}";
|
|
4
|
+
ShaderStore.ShadersStore[name] = shader;
|
|
5
5
|
/** @hidden */
|
|
6
6
|
export var roadProceduralTexturePixelShader = { name: name, shader: shader };
|
|
7
7
|
//# sourceMappingURL=roadProceduralTexture.fragment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roadProceduralTexture.fragment.js","sourceRoot":"","sources":["../../../sourceES6/proceduralTexturesLibrary/src/road/roadProceduralTexture.fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"roadProceduralTexture.fragment.js","sourceRoot":"","sources":["../../../sourceES6/proceduralTexturesLibrary/src/road/roadProceduralTexture.fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,IAAI,IAAI,GAAG,kCAAkC,CAAC;AAC9C,IAAI,MAAM,GAAG,8uBA2BX,CAAC;AAEH,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAI,gCAAgC,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC","sourcesContent":["import { ShaderStore } from \"@babylonjs/core/Engines/shaderStore\";\n\nlet name = 'roadProceduralTexturePixelShader';\nlet shader = `precision highp float;\nvarying vec2 vUV;\nuniform vec3 roadColor;\nfloat rand(vec2 n) {\nreturn fract(cos(dot(n,vec2(12.9898,4.1414)))*43758.5453);\n}\nfloat noise(vec2 n) {\nconst vec2 d=vec2(0.0,1.0);\nvec2 b=floor(n),f=smoothstep(vec2(0.0),vec2(1.0),fract(n));\nreturn mix(mix(rand(b),rand(b+d.yx),f.x),mix(rand(b+d.xy),rand(b+d.yy),f.x),f.y);\n}\nfloat fbm(vec2 n) {\nfloat total=0.0,amplitude=1.0;\nfor (int i=0; i<4; i++) {\ntotal+=noise(n)*amplitude;\nn+=n;\namplitude*=0.5;\n}\nreturn total;\n}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nfloat ratioy=mod(gl_FragCoord.y*100.0 ,fbm(vUV*2.0));\nvec3 color=roadColor*ratioy;\ngl_FragColor=vec4(color,1.0);\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\n\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport var roadProceduralTexturePixelShader = { name, shader };\n"]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { __decorate, __extends } from "tslib";
|
|
2
|
-
import { serializeAsColor3, SerializationHelper } from "@babylonjs/core/Misc/decorators";
|
|
3
|
-
import { Color3 } from "@babylonjs/core/Maths/math.color";
|
|
4
|
-
import { ProceduralTexture } from "@babylonjs/core/Materials/Textures/Procedurals/proceduralTexture";
|
|
5
|
-
import {
|
|
6
|
-
import "./roadProceduralTexture.fragment";
|
|
2
|
+
import { serializeAsColor3, SerializationHelper } from "@babylonjs/core/Misc/decorators.js";
|
|
3
|
+
import { Color3 } from "@babylonjs/core/Maths/math.color.js";
|
|
4
|
+
import { ProceduralTexture } from "@babylonjs/core/Materials/Textures/Procedurals/proceduralTexture.js";
|
|
5
|
+
import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
|
|
6
|
+
import "./roadProceduralTexture.fragment.js";
|
|
7
7
|
var RoadProceduralTexture = /** @class */ (function (_super) {
|
|
8
8
|
__extends(RoadProceduralTexture, _super);
|
|
9
9
|
function RoadProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
|
|
10
|
+
if (scene === void 0) { scene = null; }
|
|
10
11
|
var _this = _super.call(this, name, size, "roadProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
|
|
11
12
|
_this._roadColor = new Color3(0.53, 0.53, 0.53);
|
|
12
13
|
_this.updateShaderUniforms();
|
|
@@ -52,5 +53,5 @@ var RoadProceduralTexture = /** @class */ (function (_super) {
|
|
|
52
53
|
return RoadProceduralTexture;
|
|
53
54
|
}(ProceduralTexture));
|
|
54
55
|
export { RoadProceduralTexture };
|
|
55
|
-
|
|
56
|
+
RegisterClass("BABYLON.RoadProceduralTexture", RoadProceduralTexture);
|
|
56
57
|
//# sourceMappingURL=roadProceduralTexture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roadProceduralTexture.js","sourceRoot":"","sources":["../../../sourceES6/proceduralTexturesLibrary/src/road/roadProceduralTexture.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAErG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"roadProceduralTexture.js","sourceRoot":"","sources":["../../../sourceES6/proceduralTexturesLibrary/src/road/roadProceduralTexture.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAErG,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,kCAAkC,CAAC;AAE1C;IAA2C,yCAAiB;IAGxD,+BAAY,IAAY,EAAE,IAAY,EAAE,KAA6B,EAAE,eAAyB,EAAE,eAAyB;QAAnF,sBAAA,EAAA,YAA6B;QAArE,YACI,kBAAM,IAAI,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,CAAC,SAEtF;QALO,gBAAU,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAI9C,KAAI,CAAC,oBAAoB,EAAE,CAAC;;IAChC,CAAC;IAEM,oDAAoB,GAA3B;QACI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAGD,sBAAW,4CAAS;aAApB;YACI,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;aAED,UAAqB,KAAa;YAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC;;;OALA;IAOD;;;OAGG;IACI,yCAAS,GAAhB;QACI,IAAI,mBAAmB,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAM,SAAS,WAAE,CAAC,CAAC;QACjF,mBAAmB,CAAC,UAAU,GAAG,+BAA+B,CAAC;QAEjE,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACW,2BAAK,GAAnB,UAAoB,aAAkB,EAAE,KAAY,EAAE,OAAe;QACjE,IAAI,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,cAAM,OAAA,IAAI,qBAAqB,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,gBAAgB,CAAC,EAApH,CAAoH,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAEnM,OAAO,OAAO,CAAC;IACnB,CAAC;IA/BD;QADC,iBAAiB,EAAE;0DAGnB;IA8BL,4BAAC;CAAA,AA7CD,CAA2C,iBAAiB,GA6C3D;SA7CY,qBAAqB;AA+ClC,aAAa,CAAC,+BAA+B,EAAE,qBAAqB,CAAC,CAAC","sourcesContent":["import { serializeAsColor3, SerializationHelper } from \"@babylonjs/core/Misc/decorators\";\r\nimport { Color3 } from \"@babylonjs/core/Maths/math.color\";\r\nimport { Texture } from \"@babylonjs/core/Materials/Textures/texture\";\r\nimport { ProceduralTexture } from \"@babylonjs/core/Materials/Textures/Procedurals/proceduralTexture\";\r\nimport { Scene } from \"@babylonjs/core/scene\";\r\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\r\nimport { Nullable } from \"@babylonjs/core/types\";\r\nimport \"./roadProceduralTexture.fragment\";\r\n\r\nexport class RoadProceduralTexture extends ProceduralTexture {\r\n private _roadColor = new Color3(0.53, 0.53, 0.53);\r\n\r\n constructor(name: string, size: number, scene: Nullable<Scene> = null, fallbackTexture?: Texture, generateMipMaps?: boolean) {\r\n super(name, size, \"roadProceduralTexture\", scene, fallbackTexture, generateMipMaps);\r\n this.updateShaderUniforms();\r\n }\r\n\r\n public updateShaderUniforms() {\r\n this.setColor3(\"roadColor\", this._roadColor);\r\n }\r\n\r\n @serializeAsColor3()\r\n public get roadColor(): Color3 {\r\n return this._roadColor;\r\n }\r\n\r\n public set roadColor(value: Color3) {\r\n this._roadColor = value;\r\n this.updateShaderUniforms();\r\n }\r\n\r\n /**\r\n * Serializes this road procedural texture\r\n * @returns a serialized road procedural texture object\r\n */\r\n public serialize(): any {\r\n var serializationObject = SerializationHelper.Serialize(this, super.serialize());\r\n serializationObject.customType = \"BABYLON.RoadProceduralTexture\";\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * Creates a Road Procedural Texture from parsed road procedural texture data\r\n * @param parsedTexture defines parsed texture data\r\n * @param scene defines the current scene\r\n * @param rootUrl defines the root URL containing road procedural texture information\r\n * @returns a parsed Road Procedural Texture\r\n */\r\n public static Parse(parsedTexture: any, scene: Scene, rootUrl: string): RoadProceduralTexture {\r\n var texture = SerializationHelper.Parse(() => new RoadProceduralTexture(parsedTexture.name, parsedTexture._size, scene, undefined, parsedTexture._generateMipMaps), parsedTexture, scene, rootUrl);\r\n\r\n return texture;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.RoadProceduralTexture\", RoadProceduralTexture);"]}
|
package/starfield/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./starfieldProceduralTexture";
|
|
1
|
+
export * from "./starfieldProceduralTexture.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Texture } from "@babylonjs/core/Materials/Textures/texture";
|
|
2
2
|
import { ProceduralTexture } from "@babylonjs/core/Materials/Textures/Procedurals/proceduralTexture";
|
|
3
3
|
import { Scene } from "@babylonjs/core/scene";
|
|
4
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
4
5
|
import "./starfieldProceduralTexture.fragment";
|
|
5
6
|
export declare class StarfieldProceduralTexture extends ProceduralTexture {
|
|
6
7
|
private _time;
|
|
@@ -14,7 +15,7 @@ export declare class StarfieldProceduralTexture extends ProceduralTexture {
|
|
|
14
15
|
private _darkmatter;
|
|
15
16
|
private _distfading;
|
|
16
17
|
private _saturation;
|
|
17
|
-
constructor(name: string, size: number, scene
|
|
18
|
+
constructor(name: string, size: number, scene?: Nullable<Scene>, fallbackTexture?: Texture, generateMipMaps?: boolean);
|
|
18
19
|
updateShaderUniforms(): void;
|
|
19
20
|
get time(): number;
|
|
20
21
|
set time(value: number);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
|
|
2
2
|
var name = 'starfieldProceduralTexturePixelShader';
|
|
3
3
|
var shader = "precision highp float;\n\n#define volsteps 20\n#define iterations 15\nvarying vec2 vPosition;\nvarying vec2 vUV;\nuniform float time;\nuniform float alpha;\nuniform float beta;\nuniform float zoom;\nuniform float formuparam;\nuniform float stepsize;\nuniform float tile;\nuniform float brightness;\nuniform float darkmatter;\nuniform float distfading;\nuniform float saturation;\nvoid main()\n{\nvec3 dir=vec3(vUV*zoom,1.);\nfloat localTime=time*0.0001;\n\nmat2 rot1=mat2(cos(alpha),sin(alpha),-sin(alpha),cos(alpha));\nmat2 rot2=mat2(cos(beta),sin(beta),-sin(beta),cos(beta));\ndir.xz*=rot1;\ndir.xy*=rot2;\nvec3 from=vec3(1.,.5,0.5);\nfrom+=vec3(-2.,localTime*2.,localTime);\nfrom.xz*=rot1;\nfrom.xy*=rot2;\n\nfloat s=0.1,fade=1.;\nvec3 v=vec3(0.);\nfor (int r=0; r<volsteps; r++) {\nvec3 p=from+s*dir*.5;\np=abs(vec3(tile)-mod(p,vec3(tile*2.)));\nfloat pa,a=pa=0.;\nfor (int i=0; i<iterations; i++) {\np=abs(p)/dot(p,p)-formuparam;\na+=abs(length(p)-pa);\npa=length(p);\n}\nfloat dm=max(0.,darkmatter-a*a*.001);\na*=a*a;\nif (r>6) fade*=1.-dm;\n\nv+=fade;\nv+=vec3(s,s*s,s*s*s*s)*a*brightness*fade;\nfade*=distfading;\ns+=stepsize;\n}\nv=mix(vec3(length(v)),v,saturation);\ngl_FragColor=vec4(v*.01,1.);\n}";
|
|
4
|
-
|
|
4
|
+
ShaderStore.ShadersStore[name] = shader;
|
|
5
5
|
/** @hidden */
|
|
6
6
|
export var starfieldProceduralTexturePixelShader = { name: name, shader: shader };
|
|
7
7
|
//# sourceMappingURL=starfieldProceduralTexture.fragment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starfieldProceduralTexture.fragment.js","sourceRoot":"","sources":["../../../sourceES6/proceduralTexturesLibrary/src/starfield/starfieldProceduralTexture.fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"starfieldProceduralTexture.fragment.js","sourceRoot":"","sources":["../../../sourceES6/proceduralTexturesLibrary/src/starfield/starfieldProceduralTexture.fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,IAAI,IAAI,GAAG,uCAAuC,CAAC;AACnD,IAAI,MAAM,GAAG,0rCAqDX,CAAC;AAEH,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAI,qCAAqC,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC","sourcesContent":["import { ShaderStore } from \"@babylonjs/core/Engines/shaderStore\";\n\nlet name = 'starfieldProceduralTexturePixelShader';\nlet shader = `precision highp float;\n\n#define volsteps 20\n#define iterations 15\nvarying vec2 vPosition;\nvarying vec2 vUV;\nuniform float time;\nuniform float alpha;\nuniform float beta;\nuniform float zoom;\nuniform float formuparam;\nuniform float stepsize;\nuniform float tile;\nuniform float brightness;\nuniform float darkmatter;\nuniform float distfading;\nuniform float saturation;\nvoid main()\n{\nvec3 dir=vec3(vUV*zoom,1.);\nfloat localTime=time*0.0001;\n\nmat2 rot1=mat2(cos(alpha),sin(alpha),-sin(alpha),cos(alpha));\nmat2 rot2=mat2(cos(beta),sin(beta),-sin(beta),cos(beta));\ndir.xz*=rot1;\ndir.xy*=rot2;\nvec3 from=vec3(1.,.5,0.5);\nfrom+=vec3(-2.,localTime*2.,localTime);\nfrom.xz*=rot1;\nfrom.xy*=rot2;\n\nfloat s=0.1,fade=1.;\nvec3 v=vec3(0.);\nfor (int r=0; r<volsteps; r++) {\nvec3 p=from+s*dir*.5;\np=abs(vec3(tile)-mod(p,vec3(tile*2.)));\nfloat pa,a=pa=0.;\nfor (int i=0; i<iterations; i++) {\np=abs(p)/dot(p,p)-formuparam;\na+=abs(length(p)-pa);\npa=length(p);\n}\nfloat dm=max(0.,darkmatter-a*a*.001);\na*=a*a;\nif (r>6) fade*=1.-dm;\n\nv+=fade;\nv+=vec3(s,s*s,s*s*s*s)*a*brightness*fade;\nfade*=distfading;\ns+=stepsize;\n}\nv=mix(vec3(length(v)),v,saturation);\ngl_FragColor=vec4(v*.01,1.);\n}`;\n\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport var starfieldProceduralTexturePixelShader = { name, shader };\n"]}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { __decorate, __extends } from "tslib";
|
|
2
|
-
import { serialize, SerializationHelper } from "@babylonjs/core/Misc/decorators";
|
|
3
|
-
import { ProceduralTexture } from "@babylonjs/core/Materials/Textures/Procedurals/proceduralTexture";
|
|
4
|
-
import {
|
|
5
|
-
import "./starfieldProceduralTexture.fragment";
|
|
2
|
+
import { serialize, SerializationHelper } from "@babylonjs/core/Misc/decorators.js";
|
|
3
|
+
import { ProceduralTexture } from "@babylonjs/core/Materials/Textures/Procedurals/proceduralTexture.js";
|
|
4
|
+
import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
|
|
5
|
+
import "./starfieldProceduralTexture.fragment.js";
|
|
6
6
|
var StarfieldProceduralTexture = /** @class */ (function (_super) {
|
|
7
7
|
__extends(StarfieldProceduralTexture, _super);
|
|
8
8
|
function StarfieldProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
|
|
9
|
+
if (scene === void 0) { scene = null; }
|
|
9
10
|
var _this = _super.call(this, name, size, "starfieldProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
|
|
10
11
|
_this._time = 1;
|
|
11
12
|
_this._alpha = 0.5;
|
|
@@ -211,5 +212,5 @@ var StarfieldProceduralTexture = /** @class */ (function (_super) {
|
|
|
211
212
|
return StarfieldProceduralTexture;
|
|
212
213
|
}(ProceduralTexture));
|
|
213
214
|
export { StarfieldProceduralTexture };
|
|
214
|
-
|
|
215
|
+
RegisterClass("BABYLON.StarfieldProceduralTexture", StarfieldProceduralTexture);
|
|
215
216
|
//# sourceMappingURL=starfieldProceduralTexture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starfieldProceduralTexture.js","sourceRoot":"","sources":["../../../sourceES6/proceduralTexturesLibrary/src/starfield/starfieldProceduralTexture.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAErG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"starfieldProceduralTexture.js","sourceRoot":"","sources":["../../../sourceES6/proceduralTexturesLibrary/src/starfield/starfieldProceduralTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import { serialize, SerializationHelper } from \"@babylonjs/core/Misc/decorators\";\nimport { Texture } from \"@babylonjs/core/Materials/Textures/texture\";\nimport { ProceduralTexture } from \"@babylonjs/core/Materials/Textures/Procedurals/proceduralTexture\";\nimport { Scene } from \"@babylonjs/core/scene\";\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\nimport { Nullable } from \"@babylonjs/core/types\";\nimport \"./starfieldProceduralTexture.fragment\";\n\nexport class StarfieldProceduralTexture extends ProceduralTexture {\n private _time = 1;\n private _alpha = 0.5;\n private _beta = 0.8;\n private _zoom = 0.8;\n private _formuparam = 0.53;\n private _stepsize = 0.1;\n private _tile = 0.850;\n private _brightness = 0.0015;\n private _darkmatter = 0.400;\n private _distfading = 0.730;\n private _saturation = 0.850;\n\n constructor(name: string, size: number, scene: Nullable<Scene> = null, fallbackTexture?: Texture, generateMipMaps?: boolean) {\n super(name, size, \"starfieldProceduralTexture\", scene, fallbackTexture, generateMipMaps);\n this.updateShaderUniforms();\n }\n\n public updateShaderUniforms() {\n this.setFloat(\"time\", this._time);\n this.setFloat(\"alpha\", this._alpha);\n this.setFloat(\"beta\", this._beta);\n this.setFloat(\"zoom\", this._zoom);\n this.setFloat(\"formuparam\", this._formuparam);\n this.setFloat(\"stepsize\", this._stepsize);\n this.setFloat(\"tile\", this._tile);\n this.setFloat(\"brightness\", this._brightness);\n this.setFloat(\"darkmatter\", this._darkmatter);\n this.setFloat(\"distfading\", this._distfading);\n this.setFloat(\"saturation\", this._saturation);\n }\n\n @serialize()\n public get time(): number {\n return this._time;\n }\n\n public set time(value: number) {\n this._time = value;\n this.updateShaderUniforms();\n }\n\n @serialize()\n public get alpha(): number {\n return this._alpha;\n }\n\n public set alpha(value: number) {\n this._alpha = value;\n this.updateShaderUniforms();\n }\n\n @serialize()\n public get beta(): number {\n return this._beta;\n }\n\n public set beta(value: number) {\n this._beta = value;\n this.updateShaderUniforms();\n }\n\n @serialize()\n public get formuparam(): number {\n return this._formuparam;\n }\n\n public set formuparam(value: number) {\n this._formuparam = value;\n this.updateShaderUniforms();\n }\n\n @serialize()\n public get stepsize(): number {\n return this._stepsize;\n }\n\n public set stepsize(value: number) {\n this._stepsize = value;\n this.updateShaderUniforms();\n }\n\n @serialize()\n public get zoom(): number {\n return this._zoom;\n }\n\n public set zoom(value: number) {\n this._zoom = value;\n this.updateShaderUniforms();\n }\n\n @serialize()\n public get tile(): number {\n return this._tile;\n }\n\n public set tile(value: number) {\n this._tile = value;\n this.updateShaderUniforms();\n }\n\n @serialize()\n public get brightness(): number {\n return this._brightness;\n }\n\n public set brightness(value: number) {\n this._brightness = value;\n this.updateShaderUniforms();\n }\n\n @serialize()\n public get darkmatter(): number {\n return this._darkmatter;\n }\n\n public set darkmatter(value: number) {\n this._darkmatter = value;\n this.updateShaderUniforms();\n }\n\n @serialize()\n public get distfading(): number {\n return this._distfading;\n }\n\n public set distfading(value: number) {\n this._distfading = value;\n this.updateShaderUniforms();\n }\n\n @serialize()\n public get saturation(): number {\n return this._saturation;\n }\n\n public set saturation(value: number) {\n this._saturation = value;\n this.updateShaderUniforms();\n }\n\n /**\n * Serializes this starfield procedural texture\n * @returns a serialized starfield procedural texture object\n */\n public serialize(): any {\n var serializationObject = SerializationHelper.Serialize(this, super.serialize());\n serializationObject.customType = \"BABYLON.StarfieldProceduralTexture\";\n\n return serializationObject;\n }\n\n /**\n * Creates a Starfield Procedural Texture from parsed startfield procedural texture data\n * @param parsedTexture defines parsed texture data\n * @param scene defines the current scene\n * @param rootUrl defines the root URL containing startfield procedural texture information\n * @returns a parsed Starfield Procedural Texture\n */\n public static Parse(parsedTexture: any, scene: Scene, rootUrl: string): StarfieldProceduralTexture {\n var texture = SerializationHelper.Parse(() => new StarfieldProceduralTexture(parsedTexture.name, parsedTexture._size, scene, undefined, parsedTexture._generateMipMaps), parsedTexture, scene, rootUrl);\n\n return texture;\n }\n}\n\nRegisterClass(\"BABYLON.StarfieldProceduralTexture\", StarfieldProceduralTexture);"]}
|
package/wood/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./woodProceduralTexture";
|
|
1
|
+
export * from "./woodProceduralTexture.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -2,11 +2,12 @@ import { Color3 } from "@babylonjs/core/Maths/math.color";
|
|
|
2
2
|
import { Texture } from "@babylonjs/core/Materials/Textures/texture";
|
|
3
3
|
import { ProceduralTexture } from "@babylonjs/core/Materials/Textures/Procedurals/proceduralTexture";
|
|
4
4
|
import { Scene } from "@babylonjs/core/scene";
|
|
5
|
+
import { Nullable } from "@babylonjs/core/types";
|
|
5
6
|
import "./woodProceduralTexture.fragment";
|
|
6
7
|
export declare class WoodProceduralTexture extends ProceduralTexture {
|
|
7
8
|
private _ampScale;
|
|
8
9
|
private _woodColor;
|
|
9
|
-
constructor(name: string, size: number, scene
|
|
10
|
+
constructor(name: string, size: number, scene?: Nullable<Scene>, fallbackTexture?: Texture, generateMipMaps?: boolean);
|
|
10
11
|
updateShaderUniforms(): void;
|
|
11
12
|
get ampScale(): number;
|
|
12
13
|
set ampScale(value: number);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
|
|
2
2
|
var name = 'woodProceduralTexturePixelShader';
|
|
3
|
-
var shader = "precision highp float;\nvarying vec2 vPosition;\nvarying vec2 vUV;\nuniform float ampScale;\nuniform vec3 woodColor;\nfloat rand(vec2 n) {\nreturn fract(cos(dot(n,vec2(12.9898,4.1414)))*43758.5453);\n}\nfloat noise(vec2 n) {\nconst vec2 d=vec2(0.0,1.0);\nvec2 b=floor(n),f=smoothstep(vec2(0.0),vec2(1.0),fract(n));\nreturn mix(mix(rand(b),rand(b+d.yx),f.x),mix(rand(b+d.xy),rand(b+d.yy),f.x),f.y);\n}\nfloat fbm(vec2 n) {\nfloat total=0.0,amplitude=1.0;\nfor (int i=0; i<4; i++) {\ntotal+=noise(n)*amplitude;\nn+=n;\namplitude*=0.5;\n}\nreturn total;\n}\nvoid main(void) {\nfloat ratioy=mod(vUV.x*ampScale,2.0+fbm(vUV*0.8));\nvec3 wood=woodColor*ratioy;\ngl_FragColor=vec4(wood,1.0);\n}";
|
|
4
|
-
|
|
3
|
+
var shader = "precision highp float;\nvarying vec2 vPosition;\nvarying vec2 vUV;\nuniform float ampScale;\nuniform vec3 woodColor;\nfloat rand(vec2 n) {\nreturn fract(cos(dot(n,vec2(12.9898,4.1414)))*43758.5453);\n}\nfloat noise(vec2 n) {\nconst vec2 d=vec2(0.0,1.0);\nvec2 b=floor(n),f=smoothstep(vec2(0.0),vec2(1.0),fract(n));\nreturn mix(mix(rand(b),rand(b+d.yx),f.x),mix(rand(b+d.xy),rand(b+d.yy),f.x),f.y);\n}\nfloat fbm(vec2 n) {\nfloat total=0.0,amplitude=1.0;\nfor (int i=0; i<4; i++) {\ntotal+=noise(n)*amplitude;\nn+=n;\namplitude*=0.5;\n}\nreturn total;\n}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nfloat ratioy=mod(vUV.x*ampScale,2.0+fbm(vUV*0.8));\nvec3 wood=woodColor*ratioy;\ngl_FragColor=vec4(wood,1.0);\n#define CUSTOM_FRAGMENT_MAIN_END\n}";
|
|
4
|
+
ShaderStore.ShadersStore[name] = shader;
|
|
5
5
|
/** @hidden */
|
|
6
6
|
export var woodProceduralTexturePixelShader = { name: name, shader: shader };
|
|
7
7
|
//# sourceMappingURL=woodProceduralTexture.fragment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"woodProceduralTexture.fragment.js","sourceRoot":"","sources":["../../../sourceES6/proceduralTexturesLibrary/src/wood/woodProceduralTexture.fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"woodProceduralTexture.fragment.js","sourceRoot":"","sources":["../../../sourceES6/proceduralTexturesLibrary/src/wood/woodProceduralTexture.fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,IAAI,IAAI,GAAG,kCAAkC,CAAC;AAC9C,IAAI,MAAM,GAAG,2xBA6BX,CAAC;AAEH,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAI,gCAAgC,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC","sourcesContent":["import { ShaderStore } from \"@babylonjs/core/Engines/shaderStore\";\n\nlet name = 'woodProceduralTexturePixelShader';\nlet shader = `precision highp float;\nvarying vec2 vPosition;\nvarying vec2 vUV;\nuniform float ampScale;\nuniform vec3 woodColor;\nfloat rand(vec2 n) {\nreturn fract(cos(dot(n,vec2(12.9898,4.1414)))*43758.5453);\n}\nfloat noise(vec2 n) {\nconst vec2 d=vec2(0.0,1.0);\nvec2 b=floor(n),f=smoothstep(vec2(0.0),vec2(1.0),fract(n));\nreturn mix(mix(rand(b),rand(b+d.yx),f.x),mix(rand(b+d.xy),rand(b+d.yy),f.x),f.y);\n}\nfloat fbm(vec2 n) {\nfloat total=0.0,amplitude=1.0;\nfor (int i=0; i<4; i++) {\ntotal+=noise(n)*amplitude;\nn+=n;\namplitude*=0.5;\n}\nreturn total;\n}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nfloat ratioy=mod(vUV.x*ampScale,2.0+fbm(vUV*0.8));\nvec3 wood=woodColor*ratioy;\ngl_FragColor=vec4(wood,1.0);\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\n\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport var woodProceduralTexturePixelShader = { name, shader };\n"]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { __decorate, __extends } from "tslib";
|
|
2
|
-
import { serialize, serializeAsColor3, SerializationHelper } from "@babylonjs/core/Misc/decorators";
|
|
3
|
-
import { Color3 } from "@babylonjs/core/Maths/math.color";
|
|
4
|
-
import { ProceduralTexture } from "@babylonjs/core/Materials/Textures/Procedurals/proceduralTexture";
|
|
5
|
-
import {
|
|
6
|
-
import "./woodProceduralTexture.fragment";
|
|
2
|
+
import { serialize, serializeAsColor3, SerializationHelper } from "@babylonjs/core/Misc/decorators.js";
|
|
3
|
+
import { Color3 } from "@babylonjs/core/Maths/math.color.js";
|
|
4
|
+
import { ProceduralTexture } from "@babylonjs/core/Materials/Textures/Procedurals/proceduralTexture.js";
|
|
5
|
+
import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
|
|
6
|
+
import "./woodProceduralTexture.fragment.js";
|
|
7
7
|
var WoodProceduralTexture = /** @class */ (function (_super) {
|
|
8
8
|
__extends(WoodProceduralTexture, _super);
|
|
9
9
|
function WoodProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
|
|
10
|
+
if (scene === void 0) { scene = null; }
|
|
10
11
|
var _this = _super.call(this, name, size, "woodProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
|
|
11
12
|
_this._ampScale = 100.0;
|
|
12
13
|
_this._woodColor = new Color3(0.32, 0.17, 0.09);
|
|
@@ -68,5 +69,5 @@ var WoodProceduralTexture = /** @class */ (function (_super) {
|
|
|
68
69
|
return WoodProceduralTexture;
|
|
69
70
|
}(ProceduralTexture));
|
|
70
71
|
export { WoodProceduralTexture };
|
|
71
|
-
|
|
72
|
+
RegisterClass("BABYLON.WoodProceduralTexture", WoodProceduralTexture);
|
|
72
73
|
//# sourceMappingURL=woodProceduralTexture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"woodProceduralTexture.js","sourceRoot":"","sources":["../../../sourceES6/proceduralTexturesLibrary/src/wood/woodProceduralTexture.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACpG,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAErG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"woodProceduralTexture.js","sourceRoot":"","sources":["../../../sourceES6/proceduralTexturesLibrary/src/wood/woodProceduralTexture.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACpG,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAErG,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,kCAAkC,CAAC;AAE1C;IAA2C,yCAAiB;IAIxD,+BAAY,IAAY,EAAE,IAAY,EAAE,KAA6B,EAAE,eAAyB,EAAE,eAAyB;QAAnF,sBAAA,EAAA,YAA6B;QAArE,YACI,kBAAM,IAAI,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,CAAC,SAEtF;QANO,eAAS,GAAW,KAAK,CAAC;QAC1B,gBAAU,GAAW,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAItD,KAAI,CAAC,oBAAoB,EAAE,CAAC;;IAChC,CAAC;IAEM,oDAAoB,GAA3B;QACI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAGD,sBAAW,2CAAQ;aAAnB;YACI,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aAED,UAAoB,KAAa;YAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC;;;OALA;IAQD,sBAAW,4CAAS;aAApB;YACI,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;aAED,UAAqB,KAAa;YAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC;;;OALA;IAOD;;;OAGG;IACI,yCAAS,GAAhB;QACI,IAAI,mBAAmB,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAM,SAAS,WAAE,CAAC,CAAC;QACjF,mBAAmB,CAAC,UAAU,GAAG,+BAA+B,CAAC;QAEjE,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACW,2BAAK,GAAnB,UAAoB,aAAkB,EAAE,KAAY,EAAE,OAAe;QACjE,IAAI,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,cAAM,OAAA,IAAI,qBAAqB,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,gBAAgB,CAAC,EAApH,CAAoH,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAEnM,OAAO,OAAO,CAAC;IACnB,CAAC;IAzCD;QADC,SAAS,EAAE;yDAGX;IAQD;QADC,iBAAiB,EAAE;0DAGnB;IA8BL,4BAAC;CAAA,AAzDD,CAA2C,iBAAiB,GAyD3D;SAzDY,qBAAqB;AA2DlC,aAAa,CAAC,+BAA+B,EAAE,qBAAqB,CAAC,CAAC","sourcesContent":["import { serialize, serializeAsColor3, SerializationHelper } from \"@babylonjs/core/Misc/decorators\";\r\nimport { Color3 } from \"@babylonjs/core/Maths/math.color\";\r\nimport { Texture } from \"@babylonjs/core/Materials/Textures/texture\";\r\nimport { ProceduralTexture } from \"@babylonjs/core/Materials/Textures/Procedurals/proceduralTexture\";\r\nimport { Scene } from \"@babylonjs/core/scene\";\r\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\r\nimport { Nullable } from \"@babylonjs/core/types\";\r\nimport \"./woodProceduralTexture.fragment\";\r\n\r\nexport class WoodProceduralTexture extends ProceduralTexture {\r\n private _ampScale: number = 100.0;\r\n private _woodColor: Color3 = new Color3(0.32, 0.17, 0.09);\r\n\r\n constructor(name: string, size: number, scene: Nullable<Scene> = null, fallbackTexture?: Texture, generateMipMaps?: boolean) {\r\n super(name, size, \"woodProceduralTexture\", scene, fallbackTexture, generateMipMaps);\r\n this.updateShaderUniforms();\r\n }\r\n\r\n public updateShaderUniforms() {\r\n this.setFloat(\"ampScale\", this._ampScale);\r\n this.setColor3(\"woodColor\", this._woodColor);\r\n }\r\n\r\n @serialize()\r\n public get ampScale(): number {\r\n return this._ampScale;\r\n }\r\n\r\n public set ampScale(value: number) {\r\n this._ampScale = value;\r\n this.updateShaderUniforms();\r\n }\r\n\r\n @serializeAsColor3()\r\n public get woodColor(): Color3 {\r\n return this._woodColor;\r\n }\r\n\r\n public set woodColor(value: Color3) {\r\n this._woodColor = value;\r\n this.updateShaderUniforms();\r\n }\r\n\r\n /**\r\n * Serializes this wood procedural texture\r\n * @returns a serialized wood procedural texture object\r\n */\r\n public serialize(): any {\r\n var serializationObject = SerializationHelper.Serialize(this, super.serialize());\r\n serializationObject.customType = \"BABYLON.WoodProceduralTexture\";\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * Creates a Wood Procedural Texture from parsed wood procedural texture data\r\n * @param parsedTexture defines parsed texture data\r\n * @param scene defines the current scene\r\n * @param rootUrl defines the root URL containing wood procedural texture information\r\n * @returns a parsed Wood Procedural Texture\r\n */\r\n public static Parse(parsedTexture: any, scene: Scene, rootUrl: string): WoodProceduralTexture {\r\n var texture = SerializationHelper.Parse(() => new WoodProceduralTexture(parsedTexture.name, parsedTexture._size, scene, undefined, parsedTexture._generateMipMaps), parsedTexture, scene, rootUrl);\r\n\r\n return texture;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.WoodProceduralTexture\", WoodProceduralTexture);"]}
|