@tolokoban/tgd 2.0.84 → 2.0.87
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/lib/dist/bounding-box.d.ts +19 -0
- package/lib/dist/bounding-box.d.ts.map +1 -0
- package/lib/dist/bounding-box.js +59 -0
- package/lib/dist/camera/camera-orthographic.js +2 -2
- package/lib/dist/camera/camera.js +2 -2
- package/lib/dist/controller/camera/orbit.d.ts +1 -2
- package/lib/dist/controller/camera/orbit.d.ts.map +1 -1
- package/lib/dist/controller/camera/orbit.js +10 -14
- package/lib/dist/dataset/dataset.d.ts +1 -0
- package/lib/dist/dataset/dataset.d.ts.map +1 -1
- package/lib/dist/dataset/dataset.js +17 -4
- package/lib/dist/geometry/geometry.d.ts +8 -1
- package/lib/dist/geometry/geometry.d.ts.map +1 -1
- package/lib/dist/geometry/geometry.js +26 -6
- package/lib/dist/index.d.ts +1 -0
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +2 -1
- package/lib/dist/material/face-orientation.d.ts +1 -1
- package/lib/dist/material/face-orientation.d.ts.map +1 -1
- package/lib/dist/material/face-orientation.js +13 -13
- package/lib/dist/material/index.d.ts +2 -1
- package/lib/dist/material/index.d.ts.map +1 -1
- package/lib/dist/material/index.js +3 -2
- package/lib/dist/material/mask.d.ts +17 -0
- package/lib/dist/material/mask.d.ts.map +1 -0
- package/lib/dist/material/mask.js +31 -0
- package/lib/dist/material/material.d.ts +10 -4
- package/lib/dist/material/material.d.ts.map +1 -1
- package/lib/dist/material/material.js +8 -2
- package/lib/dist/material/normal-map.js +8 -8
- package/lib/dist/painter/framebuffer-msaa.d.ts +5 -5
- package/lib/dist/painter/framebuffer-msaa.d.ts.map +1 -1
- package/lib/dist/painter/framebuffer-msaa.js +2 -2
- package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.js +2 -1
- package/lib/dist/painter/points-cloud/index.d.ts +1 -0
- package/lib/dist/painter/points-cloud/index.d.ts.map +1 -1
- package/lib/dist/painter/points-cloud/index.js +2 -1
- package/lib/dist/painter/points-cloud/points-cloud-morphing.d.ts +121 -0
- package/lib/dist/painter/points-cloud/points-cloud-morphing.d.ts.map +1 -0
- package/lib/dist/painter/points-cloud/points-cloud-morphing.js +214 -0
- package/lib/dist/painter/points-cloud/points-cloud.d.ts +0 -1
- package/lib/dist/painter/points-cloud/points-cloud.d.ts.map +1 -1
- package/lib/dist/painter/points-cloud/points-cloud.js +3 -3
- package/lib/dist/shader/fragment.d.ts +9 -2
- package/lib/dist/shader/fragment.d.ts.map +1 -1
- package/lib/dist/shader/fragment.js +7 -5
- package/lib/dist/texture/texture2d.d.ts +5 -5
- package/lib/dist/texture/texture2d.d.ts.map +1 -1
- package/lib/dist/texture/texture2d.js +6 -4
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/painter/points-cloud/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/painter/points-cloud/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,yBAAyB,CAAA"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from "./points-cloud.js";
|
|
2
|
-
|
|
2
|
+
export * from "./points-cloud-morphing.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9wb2ludHMtY2xvdWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLHlCQUF5QixDQUFBIn0=
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import type { TgdContext } from "../../context";
|
|
2
|
+
import { type TgdCodeBloc } from "../../shader";
|
|
3
|
+
import { TgdTexture2D } from "../../texture";
|
|
4
|
+
import { TgdPainter } from "../painter";
|
|
5
|
+
interface TgdPainterPointsCloudMorphingData {
|
|
6
|
+
/**
|
|
7
|
+
* Flatten array of points:
|
|
8
|
+
* `[ x1, y1, z1, radius1, x2, y2, z2, radius2, ... ]`
|
|
9
|
+
*/
|
|
10
|
+
point: Float32Array;
|
|
11
|
+
/**
|
|
12
|
+
* Flatten array of UVs:
|
|
13
|
+
* `[ u1, v1, u2, v2, ... ]`
|
|
14
|
+
*/
|
|
15
|
+
uv?: Float32Array;
|
|
16
|
+
}
|
|
17
|
+
export interface TgdPainterPointsCloudMorphingOptions {
|
|
18
|
+
name?: string;
|
|
19
|
+
data: [
|
|
20
|
+
TgdPainterPointsCloudMorphingData,
|
|
21
|
+
TgdPainterPointsCloudMorphingData
|
|
22
|
+
][];
|
|
23
|
+
/**
|
|
24
|
+
* Mix between two point clouds.
|
|
25
|
+
*
|
|
26
|
+
* Default to `0.0`.
|
|
27
|
+
*/
|
|
28
|
+
mix?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Multiply the radius of each point by this value.
|
|
31
|
+
*
|
|
32
|
+
* Default to 1.
|
|
33
|
+
*/
|
|
34
|
+
radiusMultiplier?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Depending on the radius and the distance to the camera,
|
|
37
|
+
* the point can be invisible.
|
|
38
|
+
* This value is the minimum size of the point in pixels.
|
|
39
|
+
*
|
|
40
|
+
* Default to 0.
|
|
41
|
+
*/
|
|
42
|
+
minSizeInPixels?: number;
|
|
43
|
+
texture?: TgdTexture2D;
|
|
44
|
+
/**
|
|
45
|
+
* The content of a fragment shader function that takes
|
|
46
|
+
* `vec4 color` as argument and must return a `vec4` color.
|
|
47
|
+
*
|
|
48
|
+
* The following uniforms are available:
|
|
49
|
+
*
|
|
50
|
+
* ```glsl
|
|
51
|
+
* uniform float uniSpecularExponent;
|
|
52
|
+
* uniform float uniSpecularIntensity;
|
|
53
|
+
* uniform float uniShadowThickness;
|
|
54
|
+
* uniform float uniShadowIntensity;
|
|
55
|
+
* uniform float uniLight;
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* You can also use `TgdPainterPointsCloud.fragCode*()` static functions
|
|
59
|
+
* to provide preset functions.
|
|
60
|
+
*/
|
|
61
|
+
fragCode?: TgdCodeBloc;
|
|
62
|
+
/**
|
|
63
|
+
* Default to 10
|
|
64
|
+
*/
|
|
65
|
+
specularExponent?: number;
|
|
66
|
+
/**
|
|
67
|
+
* Default to 0.33
|
|
68
|
+
*/
|
|
69
|
+
specularIntensity?: number;
|
|
70
|
+
/**
|
|
71
|
+
* Default to 0.5
|
|
72
|
+
*/
|
|
73
|
+
shadowIntensity?: number;
|
|
74
|
+
/**
|
|
75
|
+
* Default to 1
|
|
76
|
+
*/
|
|
77
|
+
shadowThickness?: number;
|
|
78
|
+
/**
|
|
79
|
+
* Default to 1
|
|
80
|
+
*/
|
|
81
|
+
light?: number;
|
|
82
|
+
}
|
|
83
|
+
export declare class TgdPainterPointsCloudMorphing extends TgdPainter {
|
|
84
|
+
readonly context: TgdContext;
|
|
85
|
+
/**
|
|
86
|
+
* Draw spheres with simple diffuse/specular material.
|
|
87
|
+
*/
|
|
88
|
+
static fragCodeSphere(options?: Partial<{
|
|
89
|
+
specularExponent: number;
|
|
90
|
+
specularIntensity: number;
|
|
91
|
+
shadowThickness: number;
|
|
92
|
+
shadowIntensity: number;
|
|
93
|
+
light: number;
|
|
94
|
+
}>): TgdCodeBloc;
|
|
95
|
+
/**
|
|
96
|
+
* Mixing between two clouds: 0.0 (firts) and 1.0 (second).
|
|
97
|
+
*/
|
|
98
|
+
mix: number;
|
|
99
|
+
texture: TgdTexture2D;
|
|
100
|
+
radiusMultiplier: number;
|
|
101
|
+
minSizeInPixels: number;
|
|
102
|
+
specularExponent: number;
|
|
103
|
+
specularIntensity: number;
|
|
104
|
+
shadowIntensity: number;
|
|
105
|
+
shadowThickness: number;
|
|
106
|
+
light: number;
|
|
107
|
+
private readonly textureMustBeDeleted;
|
|
108
|
+
private readonly datasets;
|
|
109
|
+
private readonly program;
|
|
110
|
+
private readonly vaos;
|
|
111
|
+
private readonly counts;
|
|
112
|
+
constructor(context: TgdContext, options: TgdPainterPointsCloudMorphingOptions);
|
|
113
|
+
delete(): void;
|
|
114
|
+
paint(): void;
|
|
115
|
+
private createDataset;
|
|
116
|
+
get count(): number;
|
|
117
|
+
private get vao();
|
|
118
|
+
private createProgram;
|
|
119
|
+
}
|
|
120
|
+
export {};
|
|
121
|
+
//# sourceMappingURL=points-cloud-morphing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"points-cloud-morphing.d.ts","sourceRoot":"","sources":["../../../src/painter/points-cloud/points-cloud-morphing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAG9C,OAAO,EACH,KAAK,WAAW,EAGnB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,UAAU,iCAAiC;IACvC;;;OAGG;IACH,KAAK,EAAE,YAAY,CAAA;IACnB;;;OAGG;IACH,EAAE,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,oCAAoC;IACjD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE;QACF,iCAAiC;QACjC,iCAAiC;KACpC,EAAE,CAAA;IACH;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,6BAA8B,SAAQ,UAAU;aAuErC,OAAO,EAAE,UAAU;IAtEvC;;OAEG;IACH,MAAM,CAAC,cAAc,CACjB,OAAO,GAAE,OAAO,CAAC;QACb,gBAAgB,EAAE,MAAM,CAAA;QACxB,iBAAiB,EAAE,MAAM,CAAA;QACzB,eAAe,EAAE,MAAM,CAAA;QACvB,eAAe,EAAE,MAAM,CAAA;QACvB,KAAK,EAAE,MAAM,CAAA;KAChB,CAAM,GACR,WAAW;IAsCd;;OAEG;IACI,GAAG,SAAI;IACP,OAAO,EAAE,YAAY,CAAA;IACrB,gBAAgB,SAAI;IACpB,eAAe,SAAI;IAEnB,gBAAgB,SAAK;IACrB,iBAAiB,SAAO;IACxB,eAAe,SAAM;IACrB,eAAe,SAAI;IACnB,KAAK,SAAI;IAEhB,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAGb,OAAO,EAAE,UAAU,EACnC,OAAO,EAAE,oCAAoC;IA0CjD,MAAM,IAAI,IAAI;IAMd,KAAK,IAAI,IAAI;IA6Bb,OAAO,CAAC,aAAa;IAgCrB,IAAI,KAAK,WAGR;IAED,OAAO,KAAK,GAAG,GAGd;IAED,OAAO,CAAC,aAAa;CAoExB"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { tgdColorMakeHueWheel } from "./../../color/index.js";
|
|
2
|
+
import { TgdDataset } from "./../../dataset/index.js";
|
|
3
|
+
import { TgdProgram } from "./../../program/index.js";
|
|
4
|
+
import { TgdShaderFragment, TgdShaderVertex, } from "./../../shader/index.js";
|
|
5
|
+
import { TgdTexture2D } from "./../../texture/index.js";
|
|
6
|
+
import { tgdCanvasCreateGradientHorizontal } from "./../../utils/index.js";
|
|
7
|
+
import { TgdVertexArray } from "./../../vao/index.js";
|
|
8
|
+
import { TgdPainter } from "../painter.js";
|
|
9
|
+
export class TgdPainterPointsCloudMorphing extends TgdPainter {
|
|
10
|
+
/**
|
|
11
|
+
* Draw spheres with simple diffuse/specular material.
|
|
12
|
+
*/
|
|
13
|
+
static fragCodeSphere(options = {}) {
|
|
14
|
+
const { specularExponent, specularIntensity, shadowThickness, shadowIntensity, light, } = options;
|
|
15
|
+
const SpE = typeof specularExponent === "number"
|
|
16
|
+
? specularExponent.toFixed(6)
|
|
17
|
+
: "uniSpecularExponent";
|
|
18
|
+
const SpI = typeof specularIntensity === "number"
|
|
19
|
+
? specularIntensity.toFixed(6)
|
|
20
|
+
: "uniSpecularIntensity";
|
|
21
|
+
const ShT = typeof shadowThickness === "number"
|
|
22
|
+
? shadowThickness.toFixed(6)
|
|
23
|
+
: "uniShadowThickness";
|
|
24
|
+
const ShI = typeof shadowIntensity === "number"
|
|
25
|
+
? shadowIntensity.toFixed(6)
|
|
26
|
+
: "uniShadowIntensity";
|
|
27
|
+
const L = typeof light === "number" ? light.toFixed(6) : "uniLight";
|
|
28
|
+
return [
|
|
29
|
+
"vec2 coords = 2.0 * (gl_PointCoord - vec2(.5));",
|
|
30
|
+
"float len = 1.0 - dot(coords, coords);",
|
|
31
|
+
"if (len < 0.0) discard;",
|
|
32
|
+
"gl_FragDepth = gl_FragCoord.z - len * 1e-5;",
|
|
33
|
+
`float light = smoothstep(0.0, ${ShT}, len) * ${ShI} + (1.0 - ${ShI});`,
|
|
34
|
+
specularIntensity
|
|
35
|
+
? `float spec = pow(len, ${SpE}) * ${SpI};`
|
|
36
|
+
: "// No specular.",
|
|
37
|
+
`return color * vec4(vec3(light * ${L}), 1.0) + vec4(vec3(spec), 0.0);`,
|
|
38
|
+
];
|
|
39
|
+
}
|
|
40
|
+
constructor(context, options) {
|
|
41
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
42
|
+
super();
|
|
43
|
+
this.context = context;
|
|
44
|
+
/**
|
|
45
|
+
* Mixing between two clouds: 0.0 (firts) and 1.0 (second).
|
|
46
|
+
*/
|
|
47
|
+
this.mix = 0;
|
|
48
|
+
this.radiusMultiplier = 1;
|
|
49
|
+
this.minSizeInPixels = 0;
|
|
50
|
+
this.specularExponent = 10;
|
|
51
|
+
this.specularIntensity = 0.33;
|
|
52
|
+
this.shadowIntensity = 0.5;
|
|
53
|
+
this.shadowThickness = 1;
|
|
54
|
+
this.light = 1;
|
|
55
|
+
this.datasets = [];
|
|
56
|
+
this.name = (_a = options.name) !== null && _a !== void 0 ? _a : this.name;
|
|
57
|
+
this.mix = (_b = options.mix) !== null && _b !== void 0 ? _b : 0;
|
|
58
|
+
this.radiusMultiplier = (_c = options.radiusMultiplier) !== null && _c !== void 0 ? _c : 1;
|
|
59
|
+
this.minSizeInPixels = (_d = options.minSizeInPixels) !== null && _d !== void 0 ? _d : 0;
|
|
60
|
+
this.specularExponent = (_e = options.specularExponent) !== null && _e !== void 0 ? _e : 10;
|
|
61
|
+
this.specularIntensity = (_f = options.specularIntensity) !== null && _f !== void 0 ? _f : 0.33;
|
|
62
|
+
this.shadowIntensity = (_g = options.shadowIntensity) !== null && _g !== void 0 ? _g : 0.5;
|
|
63
|
+
this.shadowThickness = (_h = options.shadowThickness) !== null && _h !== void 0 ? _h : 1;
|
|
64
|
+
this.light = (_j = options.light) !== null && _j !== void 0 ? _j : 1;
|
|
65
|
+
if (options.texture) {
|
|
66
|
+
this.texture = options.texture;
|
|
67
|
+
this.textureMustBeDeleted = false;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this.texture = new TgdTexture2D(context).loadBitmap(tgdCanvasCreateGradientHorizontal(128, tgdColorMakeHueWheel({ luminance: 0.2 })));
|
|
71
|
+
this.textureMustBeDeleted = true;
|
|
72
|
+
}
|
|
73
|
+
if (options.data.length === 0) {
|
|
74
|
+
throw new Error("[TgdPainterPointsCloud] options.data must not be empty!");
|
|
75
|
+
}
|
|
76
|
+
this.counts = options.data.map(([{ point }]) => point.length >> 2);
|
|
77
|
+
this.program = this.createProgram(options.fragCode);
|
|
78
|
+
this.vaos = options.data.map(([dataA, dataB]) => {
|
|
79
|
+
const datasetA = this.createDataset(dataA, "A");
|
|
80
|
+
const datasetB = this.createDataset(dataB, "B");
|
|
81
|
+
this.datasets.push(datasetA, datasetB);
|
|
82
|
+
return new TgdVertexArray(context.gl, this.program, [
|
|
83
|
+
datasetA,
|
|
84
|
+
datasetB,
|
|
85
|
+
]);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
delete() {
|
|
89
|
+
if (this.textureMustBeDeleted)
|
|
90
|
+
this.texture.delete();
|
|
91
|
+
this.program.delete();
|
|
92
|
+
this.vao.delete();
|
|
93
|
+
}
|
|
94
|
+
paint() {
|
|
95
|
+
const { context, program, vao, texture, count, radiusMultiplier, minSizeInPixels, } = this;
|
|
96
|
+
const { gl, camera } = context;
|
|
97
|
+
program.use();
|
|
98
|
+
texture.activate(0, program, "uniTexture");
|
|
99
|
+
program.uniform1f("uniMix", this.mix);
|
|
100
|
+
program.uniform1f("uniRadiusMultiplier", radiusMultiplier);
|
|
101
|
+
program.uniform1f("uniMinSizeInPixels", minSizeInPixels);
|
|
102
|
+
program.uniform1f("uniHalfScreenHeightInPixels", context.height * 0.5);
|
|
103
|
+
program.uniform1f("uniSpecularExponent", this.specularExponent);
|
|
104
|
+
program.uniform1f("uniSpecularIntensity", this.specularIntensity);
|
|
105
|
+
program.uniform1f("uniShadowIntensity", this.shadowIntensity);
|
|
106
|
+
program.uniform1f("uniShadowThickness", this.shadowThickness);
|
|
107
|
+
program.uniform1f("uniLight", this.light);
|
|
108
|
+
program.uniformMatrix4fv("uniModelViewMatrix", camera.matrixModelView);
|
|
109
|
+
program.uniformMatrix4fv("uniProjectionMatrix", camera.matrixProjection);
|
|
110
|
+
vao.bind();
|
|
111
|
+
gl.drawArrays(gl.POINTS, 0, count);
|
|
112
|
+
vao.unbind();
|
|
113
|
+
}
|
|
114
|
+
createDataset(data, suffix) {
|
|
115
|
+
var _a;
|
|
116
|
+
const { point } = data;
|
|
117
|
+
if (point.length % 4 !== 0) {
|
|
118
|
+
throw new Error(`[TgdPainterPointsCloud] point.length must be a multiple of 4! Current value: ${point.length}`);
|
|
119
|
+
}
|
|
120
|
+
const uv = (_a = data.uv) !== null && _a !== void 0 ? _a : new Float32Array(point.length / 2);
|
|
121
|
+
if (uv.length % 2 !== 0) {
|
|
122
|
+
throw new Error(`[TgdPainterPointsCloud] uv.length must be a multiple of 2! Current value: ${uv.length}`);
|
|
123
|
+
}
|
|
124
|
+
if (point.length !== uv.length * 2) {
|
|
125
|
+
throw new Error(`[TgdPainterPointsCloud] point.length must be twice the size of uv.length! point.length === ${point.length}, uv.length === ${uv.length}`);
|
|
126
|
+
}
|
|
127
|
+
const attPoint = `attPoint_${suffix}`;
|
|
128
|
+
const attUV = `attUV_${suffix}`;
|
|
129
|
+
const dataset = new TgdDataset({
|
|
130
|
+
[attPoint]: "vec4",
|
|
131
|
+
[attUV]: "vec2",
|
|
132
|
+
});
|
|
133
|
+
dataset.set(attPoint, point);
|
|
134
|
+
dataset.set(attUV, uv);
|
|
135
|
+
return dataset;
|
|
136
|
+
}
|
|
137
|
+
get count() {
|
|
138
|
+
const [count] = this.counts;
|
|
139
|
+
return count;
|
|
140
|
+
}
|
|
141
|
+
get vao() {
|
|
142
|
+
const [vao] = this.vaos;
|
|
143
|
+
return vao;
|
|
144
|
+
}
|
|
145
|
+
createProgram(render) {
|
|
146
|
+
const vert = new TgdShaderVertex({
|
|
147
|
+
uniforms: {
|
|
148
|
+
uniMix: "float",
|
|
149
|
+
uniMinSizeInPixels: "float",
|
|
150
|
+
uniRadiusMultiplier: "float",
|
|
151
|
+
uniHalfScreenHeightInPixels: "float",
|
|
152
|
+
uniModelViewMatrix: "mat4",
|
|
153
|
+
uniProjectionMatrix: "mat4",
|
|
154
|
+
},
|
|
155
|
+
attributes: {
|
|
156
|
+
attPoint_A: "vec4",
|
|
157
|
+
attUV_A: "vec2",
|
|
158
|
+
attPoint_B: "vec4",
|
|
159
|
+
attUV_B: "vec2",
|
|
160
|
+
},
|
|
161
|
+
varying: {
|
|
162
|
+
varUV: "vec2",
|
|
163
|
+
},
|
|
164
|
+
mainCode: [
|
|
165
|
+
"vec4 attPoint = mix(attPoint_A, attPoint_B, uniMix);",
|
|
166
|
+
"vec2 attUV = mix(attUV_A, attUV_B, uniMix);",
|
|
167
|
+
"varUV = attUV;",
|
|
168
|
+
"float radius = attPoint.w;",
|
|
169
|
+
"vec4 point = vec4(attPoint.xyz, 1.0);",
|
|
170
|
+
"gl_Position = uniProjectionMatrix * uniModelViewMatrix * point;",
|
|
171
|
+
"gl_PointSize = max(",
|
|
172
|
+
" uniMinSizeInPixels,",
|
|
173
|
+
" uniRadiusMultiplier * radius * uniHalfScreenHeightInPixels / gl_Position.w",
|
|
174
|
+
");",
|
|
175
|
+
],
|
|
176
|
+
}).code;
|
|
177
|
+
const frag = new TgdShaderFragment({
|
|
178
|
+
uniforms: {
|
|
179
|
+
uniTexture: "sampler2D",
|
|
180
|
+
uniSpecularExponent: "float",
|
|
181
|
+
uniSpecularIntensity: "float",
|
|
182
|
+
uniShadowIntensity: "float",
|
|
183
|
+
uniShadowThickness: "float",
|
|
184
|
+
uniLight: "float",
|
|
185
|
+
},
|
|
186
|
+
varying: {
|
|
187
|
+
varUV: "vec2",
|
|
188
|
+
},
|
|
189
|
+
outputs: { FragColor: "vec4" },
|
|
190
|
+
functions: {
|
|
191
|
+
render: [
|
|
192
|
+
"vec4 render(vec4 color) {",
|
|
193
|
+
render !== null && render !== void 0 ? render : [
|
|
194
|
+
"vec2 coords = 2.0 * (gl_PointCoord - vec2(.5));",
|
|
195
|
+
"float len = 1.0 - dot(coords, coords);",
|
|
196
|
+
"if (len < 0.0) discard;",
|
|
197
|
+
"gl_FragDepth = gl_FragCoord.z - len * 1e-5;",
|
|
198
|
+
"float light = smoothstep(0.0, uniShadowThickness, len) * uniShadowIntensity + (1.0 - uniShadowIntensity);",
|
|
199
|
+
"float spec = pow(len, uniSpecularExponent) * uniSpecularIntensity;",
|
|
200
|
+
"return color * vec4(vec3(light * uniLight), 1.0) + vec4(vec3(spec), 0.0);",
|
|
201
|
+
],
|
|
202
|
+
"}",
|
|
203
|
+
],
|
|
204
|
+
},
|
|
205
|
+
mainCode: [
|
|
206
|
+
"vec4 color = texture(uniTexture, varUV);",
|
|
207
|
+
"FragColor = render(color);",
|
|
208
|
+
],
|
|
209
|
+
}).code;
|
|
210
|
+
const program = new TgdProgram(this.context.gl, { vert, frag });
|
|
211
|
+
return program;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRzLWNsb3VkLW1vcnBoaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhaW50ZXIvcG9pbnRzLWNsb3VkL3BvaW50cy1jbG91ZC1tb3JwaGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsZUFBZSxHQUNsQixNQUFNLGFBQWEsQ0FBQTtBQUNwQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzNDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFrRnZDLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxVQUFVO0lBQ3pEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FDakIsVUFNSyxFQUFFO1FBRVAsTUFBTSxFQUNGLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGVBQWUsRUFDZixLQUFLLEdBQ1IsR0FBRyxPQUFPLENBQUE7UUFDWCxNQUFNLEdBQUcsR0FDTCxPQUFPLGdCQUFnQixLQUFLLFFBQVE7WUFDaEMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0IsQ0FBQyxDQUFDLHFCQUFxQixDQUFBO1FBQy9CLE1BQU0sR0FBRyxHQUNMLE9BQU8saUJBQWlCLEtBQUssUUFBUTtZQUNqQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM5QixDQUFDLENBQUMsc0JB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"points-cloud.d.ts","sourceRoot":"","sources":["../../../src/painter/points-cloud/points-cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAIvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,OAAO,EAAE,WAAW,EAAsC,MAAM,aAAa,CAAA;AAE7E,MAAM,WAAW,4BAA4B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,SAAS,EAAE,YAAY,CAAA;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,
|
|
1
|
+
{"version":3,"file":"points-cloud.d.ts","sourceRoot":"","sources":["../../../src/painter/points-cloud/points-cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAIvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,OAAO,EAAE,WAAW,EAAsC,MAAM,aAAa,CAAA;AAE7E,MAAM,WAAW,4BAA4B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,SAAS,EAAE,YAAY,CAAA;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,qBAAsB,SAAQ,UAAU;aAqE7B,OAAO,EAAE,UAAU;IApEvC;;OAEG;IACH,MAAM,CAAC,cAAc,CACjB,OAAO,GAAE,OAAO,CAAC;QACb,gBAAgB,EAAE,MAAM,CAAA;QACxB,iBAAiB,EAAE,MAAM,CAAA;QACzB,eAAe,EAAE,MAAM,CAAA;QACvB,eAAe,EAAE,MAAM,CAAA;QACvB,KAAK,EAAE,MAAM,CAAA;KAChB,CAAM,GACR,WAAW;IAsCd,SAAgB,KAAK,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,YAAY,CAAA;IACrB,gBAAgB,SAAI;IACpB,eAAe,SAAI;IAEnB,gBAAgB,SAAK;IACrB,iBAAiB,SAAO;IACxB,eAAe,SAAM;IACrB,eAAe,SAAI;IACnB,KAAK,SAAI;IAEhB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;gBAGhB,OAAO,EAAE,UAAU,EACnC,OAAO,EAAE,4BAA4B;IAgDzC,MAAM,IAAI,IAAI;IAMd,KAAK,IAAI,IAAI;IA4Bb,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;CA+DxB"}
|
|
@@ -38,7 +38,7 @@ export class TgdPainterPointsCloud extends TgdPainter {
|
|
|
38
38
|
];
|
|
39
39
|
}
|
|
40
40
|
constructor(context, options) {
|
|
41
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j
|
|
41
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
42
42
|
super();
|
|
43
43
|
this.context = context;
|
|
44
44
|
this.radiusMultiplier = 1;
|
|
@@ -72,7 +72,7 @@ export class TgdPainterPointsCloud extends TgdPainter {
|
|
|
72
72
|
}
|
|
73
73
|
if (options.texture) {
|
|
74
74
|
this.texture = options.texture;
|
|
75
|
-
this.textureMustBeDeleted =
|
|
75
|
+
this.textureMustBeDeleted = false;
|
|
76
76
|
}
|
|
77
77
|
else {
|
|
78
78
|
this.texture = new TgdTexture2D(context).loadBitmap(tgdCanvasCreateGradientHorizontal(128, tgdColorMakeHueWheel({ luminance: 0.2 })));
|
|
@@ -181,4 +181,4 @@ export class TgdPainterPointsCloud extends TgdPainter {
|
|
|
181
181
|
return program;
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRzLWNsb3VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhaW50ZXIvcG9pbnRzLWNsb3VkL3BvaW50cy1jbG91ZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFekMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNqRCxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBcUU3RSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsVUFBVTtJQUNqRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQ2pCLFVBTUssRUFBRTtRQUVQLE1BQU0sRUFDRixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixlQUFlLEVBQ2YsS0FBSyxHQUNSLEdBQUcsT0FBTyxDQUFBO1FBQ1gsTUFBTSxHQUFHLEdBQ0wsT0FBTyxnQkFBZ0IsS0FBSyxRQUFRO1lBQ2hDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQTtRQUMvQixNQUFNLEdBQUcsR0FDTCxPQUFPLGlCQUFpQixLQUFLLFFBQVE7WUFDakMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDLHNCQUFzQixDQUFBO1FBQ2hDLE1BQU0sR0FBRyxHQUNMLE9BQU8sZUFBZSxLQUFLLFFBQVE7WUFDL0IsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQTtRQUM5QixNQUFNLEdBQUcsR0FDTCxPQUFPLGVBQWUsS0FBSyxRQUFRO1lBQy9CLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM1QixDQUFDLENBQUMsb0JBQW9CLENBQUE7UUFDOUIsTUFBTSxDQUFDLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUE7UUFDbkUsT0FBTztZQUNILGlEQUFpRDtZQUNqRCx3Q0FBd0M7WUFDeEMseUJBQXlCO1lBQ3pCLDZDQUE2QztZQUM3QyxpQ0FBaUMsR0FBRyxZQUFZLEdBQUcsYUFBYSxHQUFHLElBQUk7WUFDdkUsaUJBQWlCO2dCQUNiLENBQUMsQ0FBQyx5QkFBeUIsR0FBRyxPQUFPLEdBQUcsR0FBRztnQkFDM0MsQ0FBQyxDQUFDLGlCQUFpQjtZQUN2QixvQ0FBb0MsQ0FBQyxrQ0FBa0M7U0FDMUUsQ0FBQTtJQUNMLENBQUM7SUFvQkQsWUFDb0IsT0FBbUIsRUFDbkMsT0FBcUM7O1FBRXJDLEtBQUssRUFBRSxDQUFBO1FBSFMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQWpCaEMscUJBQWdCLEdBQUcsQ0FBQyxDQUFBO1FBQ3BCLG9CQUFlLEdBQUcsQ0FBQyxDQUFBO1FBRW5CLHFCQUFnQixHQUFHLEVBQUUsQ0FBQTtRQUNyQixzQkFBaUIsR0FBRyxJQUFJLENBQUE7UUFDeEIsb0JBQWUsR0FBRyxHQUFHLENBQUE7UUFDckIsb0JBQWUsR0FBRyxDQUFDLENBQUE7UUFDbkIsVUFBSyxHQUFHLENBQUMsQ0FBQTtRQWNaLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBQSxPQUFPLENBQUMsSUFBSSxtQ0FBSSxJQUFJLENBQUMsSUFBSSxDQUFBO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFBLE9BQU8sQ0FBQyxnQkFBZ0IsbUNBQUksQ0FBQyxDQUFBO1FBQ3JELElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBQSxPQUFPLENBQUMsZUFBZSxtQ0FBSSxDQUFDLENBQUE7UUFDbkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQUEsT0FBTyxDQUFDLGdCQUFnQixtQ0FBSSxFQUFFLENBQUE7UUFDdEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQUEsT0FBTyxDQUFDLGlCQUFpQixtQ0FBSSxJQUFJLENBQUE7UUFDMUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFBLE9BQU8sQ0FBQyxlQUFlLG1DQUFJLEdBQUcsQ0FBQTtRQUNyRCxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQUEsT0FBTyxDQUFDLGVBQWUsbUNBQUksQ0FBQyxDQUFBO1FBQ25ELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBQSxPQUFPLENBQUMsS0FBSyxtQ0FBSSxDQUFDLENBQUE7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFBO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksS0FBSyxDQUNYLGlIQUFpSCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUMzSSxDQUFBO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNO1lBQ1AsTUFBQSxPQUFPLENBQUMsTUFBTSxtQ0FBSSxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUNsRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25ELE1BQU0sT0FBTyxHQUFHLG9GQUFvRixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0seUJBQXlCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUE7WUFDdEssT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxPQUFPLENBQUMsQ0FBQTtZQUNqRCxPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQzNELE9BQU8sQ0FBQyxLQUFLLENBQ1QsMENBQTBDLEVBQzFDLElBQUksQ0FBQyxTQUFTLENBQ2pCLENBQUE7WUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNuRSxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzVCLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUE7WUFDOUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQTtRQUNyQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUMvQyxpQ0FBaUMsQ0FDN0IsR0FBRyxFQUNILG9CQUFvQixDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQzNDLENBQ0osQ0FBQTtZQUNELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUE7UUFDcEMsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDbkQsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksSUFBSSxDQUFDLG9CQUFvQjtZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ3JCLENBQUM7SUFFRCxLQUFLO1FBQ0QsTUFBTSxFQUNGLE9BQU8sRUFDUCxPQUFPLEVBQ1AsR0FBRyxFQUNILE9BQU8sRUFDUCxLQUFLLEVBQ0wsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FDbEIsR0FBRyxJQUFJLENBQUE7UUFDUixNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUM5QixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUE7UUFDYixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUE7UUFDMUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO1FBQzFELE9BQU8sQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsZUFBZSxDQUFDLENBQUE7UUFDeEQsT0FBTyxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsRUFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFBO1FBQ3RFLE9BQU8sQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDL0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUNqRSxPQUFPLENBQUMsU0FBUyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUM3RCxPQUFPLENBQUMsU0FBUyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUM3RCxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDekMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUN0RSxPQUFPLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDeEUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ1YsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUNsQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDaEIsQ0FBQztJQUVPLGFBQWE7UUFDakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDM0IsUUFBUSxFQUFFLE1BQU07WUFDaEIsS0FBSyxFQUFFLE1BQU07U0FDaEIsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNqQyxPQUFPLE9BQU8sQ0FBQTtJQUNsQixDQUFDO0lBRU8sYUFBYSxDQUFDLE1BQW9CO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksZUFBZSxDQUFDO1lBQzdCLFFBQVEsRUFBRTtnQkFDTixrQkFBa0IsRUFBRSxPQUFPO2dCQUMzQixtQkFBbUIsRUFBRSxPQUFPO2dCQUM1QiwyQkFBMkIsRUFBRSxPQUFPO2dCQUNwQyxrQkFBa0IsRUFBRSxNQUFNO2dCQUMxQixtQkFBbUIsRUFBRSxNQUFNO2FBQzlCO1lBQ0QsVUFBVSxFQUFFO2dCQUNSLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixLQUFLLEVBQUUsTUFBTTthQUNoQjtZQUNELE9BQU8sRUFBRTtnQkFDTCxLQUFLLEVBQUUsTUFBTTthQUNoQjtZQUNELFFBQVEsRUFBRTtnQkFDTixnQkFBZ0I7Z0JBQ2hCLDRCQUE0QjtnQkFDNUIsdUNBQXVDO2dCQUN2QyxpRUFBaUU7Z0JBQ2pFLHFCQUFxQjtnQkFDckIsdUJBQXVCO2dCQUN2Qiw4RUFBOEU7Z0JBQzlFLElBQUk7YUFDUDtTQUNKLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDUCxNQUFNLElBQUksR0FBRyxJQUFJLGlCQUFpQixDQUFDO1lBQy9CLFFBQVEsRUFBRTtnQkFDTixVQUFVLEVBQUUsV0FBVztnQkFDdkIsbUJBQW1CLEVBQUUsT0FBTztnQkFDNUIsb0JBQW9CLEVBQUUsT0FBTztnQkFDN0Isa0JBQWtCLEVBQUUsT0FBTztnQkFDM0Isa0JBQWtCLEVBQUUsT0FBTztnQkFDM0IsUUFBUSxFQUFFLE9BQU87YUFDcEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFLE1BQU07YUFDaEI7WUFDRCxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO1lBQzlCLFNBQVMsRUFBRTtnQkFDUCxNQUFNLEVBQUU7b0JBQ0osMkJBQTJCO29CQUMzQixNQUFNLGFBQU4sTUFBTSxjQUFOLE1BQU0sR0FBSTt3QkFDTixpREFBaUQ7d0JBQ2pELHdDQUF3Qzt3QkFDeEMseUJBQXlCO3dCQUN6Qiw2Q0FBNkM7d0JBQzdDLDJHQUEyRzt3QkFDM0csb0VBQW9FO3dCQUNwRSwyRUFBMkU7cUJBQzlFO29CQUNELEdBQUc7aUJBQ047YUFDSjtZQUNELFFBQVEsRUFBRTtnQkFDTiwwQ0FBMEM7Z0JBQzFDLDRCQUE0QjthQUMvQjtTQUNKLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDUCxNQUFNLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQy9ELE9BQU8sT0FBTyxDQUFBO0lBQ2xCLENBQUM7Q0FDSiJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { WebglAttributeType, WebglUniformType } from "..";
|
|
2
|
-
import { TgdCodeBloc, TgdCodeFunctions, TgdCodeVariables } from "./code";
|
|
1
|
+
import { type WebglAttributeType, type WebglUniformType } from "..";
|
|
2
|
+
import { type TgdCodeBloc, type TgdCodeFunctions, type TgdCodeVariables } from "./code";
|
|
3
3
|
/**
|
|
4
4
|
* Helper to write the code of a fragment Shader.
|
|
5
5
|
* @see https://registry.khronos.org/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf
|
|
@@ -18,6 +18,12 @@ export declare class TgdShaderFragment {
|
|
|
18
18
|
*/
|
|
19
19
|
functions: TgdCodeFunctions | TgdCodeBloc;
|
|
20
20
|
mainCode: TgdCodeBloc;
|
|
21
|
+
/**
|
|
22
|
+
* Thinkg that you put at the beginnig of your shader.
|
|
23
|
+
*
|
|
24
|
+
* Example: `layout(origin_upper_left) in vec4 gl_FragCoord;`
|
|
25
|
+
*/
|
|
26
|
+
header: TgdCodeBloc;
|
|
21
27
|
constructor(options?: Partial<{
|
|
22
28
|
precision: "lowp" | "mediump" | "highp";
|
|
23
29
|
uniforms: TgdCodeVariables<WebglUniformType>;
|
|
@@ -25,6 +31,7 @@ export declare class TgdShaderFragment {
|
|
|
25
31
|
varying: TgdCodeVariables<WebglAttributeType>;
|
|
26
32
|
functions: TgdCodeFunctions | TgdCodeBloc;
|
|
27
33
|
mainCode: TgdCodeBloc;
|
|
34
|
+
header: TgdCodeBloc;
|
|
28
35
|
}>);
|
|
29
36
|
get code(): string;
|
|
30
37
|
debug(caption?: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragment.d.ts","sourceRoot":"","sources":["../../src/shader/fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"fragment.d.ts","sourceRoot":"","sources":["../../src/shader/fragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,IAAI,CAAA;AAC/E,OAAO,EAGH,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAExB,MAAM,QAAQ,CAAA;AAEf;;;GAGG;AACH,qBAAa,iBAAiB;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAY;IACnD,QAAQ,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAA;IAC5C,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAA;IAC7C,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAA;IACpD;;;;;;OAMG;IACI,SAAS,EAAE,gBAAgB,GAAG,WAAW,CAAA;IACzC,QAAQ,EAAE,WAAW,CAAA;IAC5B;;;;OAIG;IACI,MAAM,EAAE,WAAW,CAAA;gBAGtB,OAAO,GAAE,OAAO,CAAC;QACb,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;QACvC,QAAQ,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAA;QAC5C,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAA;QAC7C,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAA;QAC7C,SAAS,EAAE,gBAAgB,GAAG,WAAW,CAAA;QACzC,QAAQ,EAAE,WAAW,CAAA;QACrB,MAAM,EAAE,WAAW,CAAA;KACtB,CAAM;IAsBX,IAAI,IAAI,WAcP;IAED,KAAK,CAAC,OAAO,SAAkB;CAalC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TgdConsole } from "../index.js";
|
|
2
|
-
import { expandFunctions,
|
|
2
|
+
import { expandFunctions, expandVariables, tgdCodeStringify, } from "./code.js";
|
|
3
3
|
/**
|
|
4
4
|
* Helper to write the code of a fragment Shader.
|
|
5
5
|
* @see https://registry.khronos.org/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf
|
|
@@ -9,24 +9,26 @@ export class TgdShaderFragment {
|
|
|
9
9
|
this.precision = "mediump";
|
|
10
10
|
const { precision = "highp", uniforms = {}, outputs = {
|
|
11
11
|
FragColor: "vec4",
|
|
12
|
-
}, varying = {}, functions = {}, mainCode = ["FragColor = vec4(1, 0.667, 0, 1);"], } = options;
|
|
12
|
+
}, varying = {}, functions = {}, mainCode = ["FragColor = vec4(1, 0.667, 0, 1);"], header = [], } = options;
|
|
13
13
|
this.precision = precision;
|
|
14
14
|
this.uniforms = uniforms;
|
|
15
15
|
this.outputs = outputs;
|
|
16
16
|
this.varying = varying;
|
|
17
17
|
this.functions = functions;
|
|
18
18
|
this.mainCode = mainCode;
|
|
19
|
+
this.header = header;
|
|
19
20
|
}
|
|
20
21
|
get code() {
|
|
21
22
|
return tgdCodeStringify([
|
|
22
|
-
|
|
23
|
+
"#version 300 es",
|
|
23
24
|
`precision ${this.precision} float;`,
|
|
25
|
+
...(Array.isArray(this.header) ? this.header : [this.header]),
|
|
24
26
|
...expandVariables(this.uniforms, "uniform"),
|
|
25
27
|
...expandVariables(this.varying, "in"),
|
|
26
28
|
...expandVariables(this.outputs, "out"),
|
|
27
29
|
...expandFunctions(this.functions),
|
|
28
30
|
"",
|
|
29
|
-
|
|
31
|
+
"void main() {",
|
|
30
32
|
this.mainCode,
|
|
31
33
|
"}",
|
|
32
34
|
]);
|
|
@@ -42,4 +44,4 @@ export class TgdShaderFragment {
|
|
|
42
44
|
out.debug();
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2hhZGVyL2ZyYWdtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWtELE1BQU0sSUFBSSxDQUFBO0FBQy9FLE9BQU8sRUFDSCxlQUFlLEVBQ2YsZUFBZSxFQUlmLGdCQUFnQixHQUNuQixNQUFNLFFBQVEsQ0FBQTtBQUVmOzs7R0FHRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFxQjFCLFlBQ0ksVUFRSyxFQUFFO1FBN0JKLGNBQVMsR0FBaUMsU0FBUyxDQUFBO1FBK0J0RCxNQUFNLEVBQ0YsU0FBUyxHQUFHLE9BQU8sRUFDbkIsUUFBUSxHQUFHLEVBQUUsRUFDYixPQUFPLEdBQUc7WUFDTixTQUFTLEVBQUUsTUFBTTtTQUNwQixFQUNELE9BQU8sR0FBRyxFQUFFLEVBQ1osU0FBUyxHQUFHLEVBQUUsRUFDZCxRQUFRLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQyxFQUNoRCxNQUFNLEdBQUcsRUFBRSxHQUNkLEdBQUcsT0FBTyxDQUFBO1FBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDeEIsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sZ0JBQWdCLENBQUM7WUFDcEIsaUJBQWlCO1lBQ2pCLGFBQWEsSUFBSSxDQUFDLFNBQVMsU0FBUztZQUNwQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdELEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO1lBQzVDLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO1lBQ3RDLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBQ3ZDLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDbEMsRUFBRTtZQUNGLGVBQWU7WUFDZixJQUFJLENBQUMsUUFBUTtZQUNiLEdBQUc7U0FDTixDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sR0FBRyxlQUFlO1FBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDcEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQTtRQUNyQixNQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FDdEI7WUFDSSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUk7WUFDM0IsSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUUsTUFBTTtTQUNoQixFQUNELElBQUksQ0FDUCxDQUFBO1FBQ0QsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ2YsQ0FBQztDQUNKIn0=
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { TgdEvent } from "../event";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import type { TgdFilter } from "../filter";
|
|
3
|
+
import type { TgdProgram } from "../program";
|
|
4
|
+
import { type WebglImage, type WebglTexParameter } from "../types";
|
|
5
|
+
import { type WebglTextureInternalFormat, type WebglTextureParameters } from "../webgl";
|
|
6
|
+
import { type LoadBmpOptions } from "./types";
|
|
7
7
|
interface TgdTexture2DStorage {
|
|
8
8
|
width: number;
|
|
9
9
|
height: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"texture2d.d.ts","sourceRoot":"","sources":["../../src/texture/texture2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"texture2d.d.ts","sourceRoot":"","sources":["../../src/texture/texture2d.ts"],"names":[],"mappings":"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"}
|