@tolokoban/tgd 2.0.33 → 2.0.35
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/code/coords.d.ts +5 -0
- package/lib/dist/code/coords.d.ts.map +1 -1
- package/lib/dist/code/coords.js +7 -2
- package/lib/dist/code/index.d.ts +3 -0
- package/lib/dist/code/index.d.ts.map +1 -1
- package/lib/dist/code/index.js +4 -1
- package/lib/dist/code/math.d.ts +38 -0
- package/lib/dist/code/math.d.ts.map +1 -0
- package/lib/dist/code/math.js +70 -0
- package/lib/dist/code/noise.d.ts +21 -0
- package/lib/dist/code/noise.d.ts.map +1 -0
- package/lib/dist/code/noise.js +279 -0
- package/lib/dist/code/space.d.ts +24 -0
- package/lib/dist/code/space.d.ts.map +1 -0
- package/lib/dist/code/space.js +42 -0
- package/lib/dist/code/transfo.d.ts +2 -2
- package/lib/dist/code/transfo.d.ts.map +1 -1
- package/lib/dist/code/transfo.js +2 -2
- package/lib/dist/geometry/geometry.d.ts +4 -0
- package/lib/dist/geometry/geometry.d.ts.map +1 -1
- package/lib/dist/geometry/geometry.js +11 -3
- package/lib/dist/input/pointer.d.ts +5 -0
- package/lib/dist/input/pointer.d.ts.map +1 -1
- package/lib/dist/input/pointer.js +30 -2
- package/lib/dist/material/camera-light.d.ts +4 -15
- package/lib/dist/material/camera-light.d.ts.map +1 -1
- package/lib/dist/material/camera-light.js +55 -47
- package/lib/dist/material/depth.d.ts +0 -8
- package/lib/dist/material/depth.d.ts.map +1 -1
- package/lib/dist/material/depth.js +12 -14
- package/lib/dist/material/diffuse.d.ts +1 -12
- package/lib/dist/material/diffuse.d.ts.map +1 -1
- package/lib/dist/material/diffuse.js +53 -44
- package/lib/dist/material/face-orientation.d.ts +0 -12
- package/lib/dist/material/face-orientation.d.ts.map +1 -1
- package/lib/dist/material/face-orientation.js +40 -37
- package/lib/dist/material/flat.d.ts +1 -11
- package/lib/dist/material/flat.d.ts.map +1 -1
- package/lib/dist/material/flat.js +7 -9
- package/lib/dist/material/ghost.d.ts +1 -9
- package/lib/dist/material/ghost.d.ts.map +1 -1
- package/lib/dist/material/ghost.js +15 -15
- package/lib/dist/material/hull.d.ts +1 -14
- package/lib/dist/material/hull.d.ts.map +1 -1
- package/lib/dist/material/hull.js +22 -25
- package/lib/dist/material/index.d.ts +0 -1
- package/lib/dist/material/index.d.ts.map +1 -1
- package/lib/dist/material/index.js +1 -2
- package/lib/dist/material/material.d.ts +52 -5
- package/lib/dist/material/material.d.ts.map +1 -1
- package/lib/dist/material/material.js +15 -18
- package/lib/dist/material/normals.d.ts +0 -9
- package/lib/dist/material/normals.d.ts.map +1 -1
- package/lib/dist/material/normals.js +10 -12
- package/lib/dist/material/toon.d.ts +3 -13
- package/lib/dist/material/toon.d.ts.map +1 -1
- package/lib/dist/material/toon.js +76 -63
- package/lib/dist/painter/fragment-dhader/filter.d.ts +31 -0
- package/lib/dist/painter/fragment-dhader/filter.d.ts.map +1 -0
- package/lib/dist/painter/fragment-dhader/filter.js +161 -0
- package/lib/dist/painter/fragment-dhader/index.d.ts +2 -0
- package/lib/dist/painter/fragment-dhader/index.d.ts.map +1 -0
- package/lib/dist/painter/fragment-dhader/index.js +2 -0
- package/lib/dist/painter/fragment-shader/filter.d.ts +31 -0
- package/lib/dist/painter/fragment-shader/filter.d.ts.map +1 -0
- package/lib/dist/painter/fragment-shader/filter.js +161 -0
- package/lib/dist/painter/fragment-shader/fragment-shader.d.ts +29 -0
- package/lib/dist/painter/fragment-shader/fragment-shader.d.ts.map +1 -0
- package/lib/dist/painter/fragment-shader/fragment-shader.js +70 -0
- package/lib/dist/painter/fragment-shader/index.d.ts +2 -0
- package/lib/dist/painter/fragment-shader/index.d.ts.map +1 -0
- package/lib/dist/painter/fragment-shader/index.js +2 -0
- package/lib/dist/painter/framebuffer-msaa.d.ts +5 -2
- package/lib/dist/painter/framebuffer-msaa.d.ts.map +1 -1
- package/lib/dist/painter/framebuffer-msaa.js +2 -2
- package/lib/dist/painter/index.d.ts +1 -0
- package/lib/dist/painter/index.d.ts.map +1 -1
- package/lib/dist/painter/index.js +2 -1
- package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/painter/mesh/gltf/gltf.js +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.js +9 -12
- package/lib/dist/painter/segments/segments.js +3 -2
- package/lib/dist/painter/x-ray/x-ray.d.ts +8 -2
- package/lib/dist/painter/x-ray/x-ray.d.ts.map +1 -1
- package/lib/dist/painter/x-ray/x-ray.js +1 -1
- package/lib/dist/types/input-pointer.d.ts +4 -0
- package/lib/dist/types/input-pointer.d.ts.map +1 -1
- package/lib/dist/utils/cyclic-buffer.d.ts +12 -0
- package/lib/dist/utils/cyclic-buffer.d.ts.map +1 -0
- package/lib/dist/utils/cyclic-buffer.js +26 -0
- package/lib/dist/utils/index.d.ts +1 -0
- package/lib/dist/utils/index.d.ts.map +1 -1
- package/lib/dist/utils/index.js +2 -1
- package/lib/dist/utils/math.d.ts +1 -0
- package/lib/dist/utils/math.d.ts.map +1 -1
- package/lib/dist/utils/math.js +8 -1
- package/lib/dist/utils/webgl.d.ts +1 -1
- package/lib/dist/utils/webgl.d.ts.map +1 -1
- package/lib/dist/utils/webgl.js +4 -1
- package/package.json +2 -2
- package/lib/dist/painter/segments/segments.frag +0 -22
- package/lib/dist/painter/segments/segments.vert +0 -121
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { WebglAttributeType, WebglUniformType } from "../types";
|
|
2
1
|
import { TgdMaterial } from "./material";
|
|
3
|
-
import { TgdCodeBloc } from "../shader/code";
|
|
4
2
|
import { TgdLight } from "../light";
|
|
5
|
-
import { TgdProgram } from "../program";
|
|
6
3
|
export type TgdMaterialFaceOrientationOptions = Partial<{
|
|
7
4
|
light: TgdLight;
|
|
8
5
|
ambient: TgdLight;
|
|
@@ -18,17 +15,8 @@ export declare class TgdMaterialFaceOrientation extends TgdMaterial {
|
|
|
18
15
|
ambient: TgdLight;
|
|
19
16
|
specularExponent: number;
|
|
20
17
|
specularIntensity: number;
|
|
21
|
-
readonly varyings: {
|
|
22
|
-
[name: string]: WebglAttributeType;
|
|
23
|
-
};
|
|
24
|
-
readonly uniforms: {
|
|
25
|
-
[name: string]: WebglUniformType;
|
|
26
|
-
};
|
|
27
|
-
readonly fragmentShaderCode: TgdCodeBloc;
|
|
28
|
-
readonly vertexShaderCode: TgdCodeBloc;
|
|
29
18
|
private readonly lightColor;
|
|
30
19
|
private readonly ambientColor;
|
|
31
20
|
constructor(options?: TgdMaterialFaceOrientationOptions);
|
|
32
|
-
setUniforms(program: TgdProgram): void;
|
|
33
21
|
}
|
|
34
22
|
//# sourceMappingURL=face-orientation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"face-orientation.d.ts","sourceRoot":"","sources":["../../src/material/face-orientation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"face-orientation.d.ts","sourceRoot":"","sources":["../../src/material/face-orientation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,MAAM,MAAM,iCAAiC,GAAG,OAAO,CAAC;IACpD,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,QAAQ,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;CAC5B,CAAC,CAAA;AAEF;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,WAAW;IAChD,KAAK,WAEV;IACK,OAAO,WAAuD;IAC9D,gBAAgB,SAAK;IACrB,iBAAiB,SAAM;IAE9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAEjC,OAAO,GAAE,iCAAsC;CAyD9D"}
|
|
@@ -7,21 +7,51 @@ import { TgdLight } from "./../light/index.js";
|
|
|
7
7
|
*/
|
|
8
8
|
export class TgdMaterialFaceOrientation extends TgdMaterial {
|
|
9
9
|
constructor(options = {}) {
|
|
10
|
-
super(
|
|
10
|
+
super({
|
|
11
|
+
uniforms: {
|
|
12
|
+
uniLight: "vec3",
|
|
13
|
+
uniLightDir: "vec3",
|
|
14
|
+
uniAmbient: "vec3",
|
|
15
|
+
uniSpecularExponent: "float",
|
|
16
|
+
uniSpecularIntensity: "float",
|
|
17
|
+
uniModelViewMatrix: "mat4",
|
|
18
|
+
},
|
|
19
|
+
varyings: {
|
|
20
|
+
varNormal: "vec3",
|
|
21
|
+
},
|
|
22
|
+
fragmentShaderCode: [
|
|
23
|
+
"vec3 normal = mat3(uniModelViewMatrix) * normalize(varNormal);",
|
|
24
|
+
`float light = 1.0 - dot(normal, uniLightDir);`,
|
|
25
|
+
`vec4 color = vec4(0.8 * (gl_FrontFacing ? vec3(0, .5, 1) : vec3(1, 0, 0)), 1.0);`,
|
|
26
|
+
`float spec = max(0.0, reflect(uniLightDir, normal).z);`,
|
|
27
|
+
`spec = pow(spec, uniSpecularExponent) * uniSpecularIntensity;`,
|
|
28
|
+
`color = vec4(`,
|
|
29
|
+
` color.rgb * (`,
|
|
30
|
+
` uniAmbient + uniLight * light`,
|
|
31
|
+
` ) + vec3(spec),`,
|
|
32
|
+
` 1.0`,
|
|
33
|
+
`);`,
|
|
34
|
+
`return color;`,
|
|
35
|
+
],
|
|
36
|
+
vertexShaderCode: ["varNormal = mat3(uniTransfoMatrix) * normal;"],
|
|
37
|
+
setUniforms: (program) => {
|
|
38
|
+
program.uniform3fv("uniLightDir", this.light.direction);
|
|
39
|
+
this.lightColor.from(this.light.color).scale(this.light.color.w);
|
|
40
|
+
program.uniform3fv("uniLight", this.lightColor);
|
|
41
|
+
this.ambientColor
|
|
42
|
+
.from(this.ambient.color)
|
|
43
|
+
.scale(this.ambient.color.w);
|
|
44
|
+
program.uniform3fv("uniAmbient", this.ambientColor);
|
|
45
|
+
program.uniform1f("uniSpecularExponent", this.specularExponent);
|
|
46
|
+
program.uniform1f("uniSpecularIntensity", this.specularIntensity);
|
|
47
|
+
},
|
|
48
|
+
});
|
|
11
49
|
this.light = new TgdLight({
|
|
12
50
|
direction: new TgdVec3(0.1, 0.2, -1).normalize(),
|
|
13
51
|
});
|
|
14
52
|
this.ambient = new TgdLight({ color: new TgdVec4(0.2, 0.1, 0, 0) });
|
|
15
53
|
this.specularExponent = 20;
|
|
16
54
|
this.specularIntensity = 0.5;
|
|
17
|
-
this.uniforms = {
|
|
18
|
-
uniLight: "vec3",
|
|
19
|
-
uniLightDir: "vec3",
|
|
20
|
-
uniAmbient: "vec3",
|
|
21
|
-
uniSpecularExponent: "float",
|
|
22
|
-
uniSpecularIntensity: "float",
|
|
23
|
-
uniModelViewMatrix: "mat4",
|
|
24
|
-
};
|
|
25
55
|
this.lightColor = new TgdVec3();
|
|
26
56
|
this.ambientColor = new TgdVec3();
|
|
27
57
|
if (options.light) {
|
|
@@ -36,33 +66,6 @@ export class TgdMaterialFaceOrientation extends TgdMaterial {
|
|
|
36
66
|
if (typeof options.specularIntensity === "number") {
|
|
37
67
|
this.specularIntensity = options.specularIntensity;
|
|
38
68
|
}
|
|
39
|
-
this.fragmentShaderCode = [
|
|
40
|
-
"vec3 normal = mat3(uniModelViewMatrix) * normalize(varNormal);",
|
|
41
|
-
`float light = 1.0 - dot(normal, uniLightDir);`,
|
|
42
|
-
`vec4 color = vec4(0.8 * (gl_FrontFacing ? vec3(0, .5, 1) : vec3(1, 0, 0)), 1.0);`,
|
|
43
|
-
`float spec = max(0.0, reflect(uniLightDir, normal).z);`,
|
|
44
|
-
`spec = pow(spec, uniSpecularExponent) * uniSpecularIntensity;`,
|
|
45
|
-
`color = vec4(`,
|
|
46
|
-
` color.rgb * (`,
|
|
47
|
-
` uniAmbient + uniLight * light`,
|
|
48
|
-
` ) + vec3(spec),`,
|
|
49
|
-
` 1.0`,
|
|
50
|
-
`);`,
|
|
51
|
-
`return color;`,
|
|
52
|
-
];
|
|
53
|
-
this.vertexShaderCode = ["varNormal = mat3(uniTransfoMatrix) * normal;"];
|
|
54
|
-
this.varyings = {
|
|
55
|
-
varNormal: "vec3",
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
setUniforms(program) {
|
|
59
|
-
program.uniform3fv("uniLightDir", this.light.direction);
|
|
60
|
-
this.lightColor.from(this.light.color).scale(this.light.color.w);
|
|
61
|
-
program.uniform3fv("uniLight", this.lightColor);
|
|
62
|
-
this.ambientColor.from(this.ambient.color).scale(this.ambient.color.w);
|
|
63
|
-
program.uniform3fv("uniAmbient", this.ambientColor);
|
|
64
|
-
program.uniform1f("uniSpecularExponent", this.specularExponent);
|
|
65
|
-
program.uniform1f("uniSpecularIntensity", this.specularIntensity);
|
|
66
69
|
}
|
|
67
70
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZS1vcmllbnRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9mYWNlLW9yaWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQVVyQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsV0FBVztJQVd2RCxZQUFZLFVBQTZDLEVBQUU7UUFDdkQsS0FBSyxDQUFDO1lBQ0YsUUFBUSxFQUFFO2dCQUNOLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixXQUFXLEVBQUUsTUFBTTtnQkFDbkIsVUFBVSxFQUFFLE1BQU07Z0JBQ2xCLG1CQUFtQixFQUFFLE9BQU87Z0JBQzVCLG9CQUFvQixFQUFFLE9BQU87Z0JBQzdCLGtCQUFrQixFQUFFLE1BQU07YUFDN0I7WUFDRCxRQUFRLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLE1BQU07YUFDcEI7WUFDRCxrQkFBa0IsRUFBRTtnQkFDaEIsZ0VBQWdFO2dCQUNoRSwrQ0FBK0M7Z0JBQy9DLGtGQUFrRjtnQkFDbEYsd0RBQXdEO2dCQUN4RCwrREFBK0Q7Z0JBQy9ELGVBQWU7Z0JBQ2YsaUJBQWlCO2dCQUNqQixtQ0FBbUM7Z0JBQ25DLG1CQUFtQjtnQkFDbkIsT0FBTztnQkFDUCxJQUFJO2dCQUNKLGVBQWU7YUFDbEI7WUFDRCxnQkFBZ0IsRUFBRSxDQUFDLDhDQUE4QyxDQUFDO1lBQ2xFLFdBQVcsRUFBRSxDQUFDLE9BQW1CLEVBQVEsRUFBRTtnQkFDdkMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ2hFLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtnQkFDL0MsSUFBSSxDQUFDLFlBQVk7cUJBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO3FCQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ2hDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtnQkFDbkQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtnQkFDL0QsT0FBTyxDQUFDLFNBQVMsQ0FDYixzQkFBc0IsRUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUN6QixDQUFBO1lBQ0wsQ0FBQztTQUNKLENBQUMsQ0FBQTtRQXBEQyxVQUFLLEdBQUcsSUFBSSxRQUFRLENBQUM7WUFDeEIsU0FBUyxFQUFFLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7U0FDbkQsQ0FBQyxDQUFBO1FBQ0ssWUFBTyxHQUFHLElBQUksUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUM5RCxxQkFBZ0IsR0FBRyxFQUFFLENBQUE7UUFDckIsc0JBQWlCLEdBQUcsR0FBRyxDQUFBO1FBRWIsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7UUFDMUIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBOEN6QyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUE7UUFDOUIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQTtRQUNsQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLE9BQU8sQ0FBQyxnQkFBZ0IsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFBO1FBQ3BELENBQUM7UUFDRCxJQUFJLE9BQU8sT0FBTyxDQUFDLGlCQUFpQixLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUE7UUFDdEQsQ0FBQztJQUNMLENBQUM7Q0FDSiJ9
|
|
@@ -1,20 +1,10 @@
|
|
|
1
|
-
import { ArrayNumber4
|
|
1
|
+
import { ArrayNumber4 } from "../types";
|
|
2
2
|
import { TgdVec4 } from "../math";
|
|
3
3
|
import { TgdMaterial } from "./material";
|
|
4
|
-
import { TgdCodeBloc } from "../shader/code";
|
|
5
4
|
export type TgdMaterialFlatOptions = Partial<{
|
|
6
5
|
color: ArrayNumber4 | TgdVec4;
|
|
7
6
|
}>;
|
|
8
7
|
export declare class TgdMaterialFlat extends TgdMaterial {
|
|
9
|
-
readonly varyings: {
|
|
10
|
-
[name: string]: WebglAttributeType;
|
|
11
|
-
};
|
|
12
|
-
readonly uniforms: {
|
|
13
|
-
[name: string]: WebglUniformType;
|
|
14
|
-
};
|
|
15
|
-
readonly fragmentShaderCode: TgdCodeBloc;
|
|
16
|
-
readonly vertexShaderCode: TgdCodeBloc;
|
|
17
8
|
constructor(options?: TgdMaterialFlatOptions);
|
|
18
|
-
setUniforms(): void;
|
|
19
9
|
}
|
|
20
10
|
//# sourceMappingURL=flat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flat.d.ts","sourceRoot":"","sources":["../../src/material/flat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"flat.d.ts","sourceRoot":"","sources":["../../src/material/flat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAA;CAChC,CAAC,CAAA;AAIF,qBAAa,eAAgB,SAAQ,WAAW;gBAChC,OAAO,GAAE,sBAA2B;CAUnD"}
|
|
@@ -4,15 +4,13 @@ const DEFAULT_COLOR = [0, 0, 0, 1];
|
|
|
4
4
|
export class TgdMaterialFlat extends TgdMaterial {
|
|
5
5
|
constructor(options = {}) {
|
|
6
6
|
var _a;
|
|
7
|
-
super();
|
|
8
|
-
this.uniforms = {
|
|
9
|
-
uniColor: "vec4",
|
|
10
|
-
};
|
|
11
7
|
const color = new TgdVec4((_a = options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
super({
|
|
9
|
+
uniforms: {
|
|
10
|
+
uniColor: "vec4",
|
|
11
|
+
},
|
|
12
|
+
fragmentShaderCode: [`return vec4(${color.join(", ")});`],
|
|
13
|
+
});
|
|
15
14
|
}
|
|
16
|
-
setUniforms() { }
|
|
17
15
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9mbGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQU14QyxNQUFNLGFBQWEsR0FBaUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUVoRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBQzVDLFlBQVksVUFBa0MsRUFBRTs7UUFDNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBQSxPQUFPLENBQUMsS0FBSyxtQ0FBSSxhQUFhLENBQUMsQ0FBQTtRQUV6RCxLQUFLLENBQUM7WUFDRixRQUFRLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLE1BQU07YUFDbkI7WUFDRCxrQkFBa0IsRUFBRSxDQUFDLGVBQWUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzVELENBQUMsQ0FBQTtJQUNOLENBQUM7Q0FDSiJ9
|
|
@@ -1,20 +1,12 @@
|
|
|
1
|
-
import { ArrayNumber4
|
|
1
|
+
import { ArrayNumber4 } from "../types";
|
|
2
2
|
import { TgdVec4 } from "../math";
|
|
3
3
|
import { TgdMaterial } from "./material";
|
|
4
|
-
import { TgdCodeBloc } from "../shader/code";
|
|
5
|
-
import { TgdProgram } from "../program";
|
|
6
4
|
export type TgdMaterialGhostOptions = Partial<{
|
|
7
5
|
color: ArrayNumber4 | TgdVec4;
|
|
8
6
|
exponent: number;
|
|
9
7
|
intensity: number;
|
|
10
8
|
}>;
|
|
11
9
|
export declare class TgdMaterialGhost extends TgdMaterial {
|
|
12
|
-
readonly varyings: {
|
|
13
|
-
[name: string]: WebglAttributeType;
|
|
14
|
-
};
|
|
15
|
-
readonly fragmentShaderCode: TgdCodeBloc;
|
|
16
|
-
readonly vertexShaderCode: TgdCodeBloc;
|
|
17
10
|
constructor({ color, exponent, intensity, }?: TgdMaterialGhostOptions);
|
|
18
|
-
setUniforms(_program: TgdProgram): void;
|
|
19
11
|
}
|
|
20
12
|
//# sourceMappingURL=ghost.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ghost.d.ts","sourceRoot":"","sources":["../../src/material/ghost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"ghost.d.ts","sourceRoot":"","sources":["../../src/material/ghost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC;IAC1C,KAAK,EAAE,YAAY,GAAG,OAAO,CAAA;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAC,CAAA;AAIF,qBAAa,gBAAiB,SAAQ,WAAW;gBACjC,EACR,KAAqB,EACrB,QAAY,EACZ,SAAa,GAChB,GAAE,uBAA4B;CAkBlC"}
|
|
@@ -3,20 +3,20 @@ import { TgdMaterial } from "./material.js";
|
|
|
3
3
|
const DEFAULT_COLOR = new TgdVec4(0.6, 1, 0.9, 1);
|
|
4
4
|
export class TgdMaterialGhost extends TgdMaterial {
|
|
5
5
|
constructor({ color = DEFAULT_COLOR, exponent = 3, intensity = 3, } = {}) {
|
|
6
|
-
super(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
6
|
+
super({
|
|
7
|
+
fragmentShaderCode: [
|
|
8
|
+
`float light = 1.0 - varNormal.z;`,
|
|
9
|
+
`light = pow(light, ${exponent.toFixed(6)});`,
|
|
10
|
+
`vec4 color = vec4(${color.join(", ")});`,
|
|
11
|
+
`return vec4(color.rgb * ${intensity.toFixed(6)}, color.a) * light;`,
|
|
12
|
+
],
|
|
13
|
+
vertexShaderCode: [
|
|
14
|
+
"varNormal = mat3(uniModelViewMatrix) * normal;",
|
|
15
|
+
],
|
|
16
|
+
varyings: {
|
|
17
|
+
varNormal: "vec3",
|
|
18
|
+
},
|
|
19
|
+
});
|
|
19
20
|
}
|
|
20
|
-
setUniforms(_program) { }
|
|
21
21
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2hvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvZ2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBUXhDLE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRWpELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBQzdDLFlBQVksRUFDUixLQUFLLEdBQUcsYUFBYSxFQUNyQixRQUFRLEdBQUcsQ0FBQyxFQUNaLFNBQVMsR0FBRyxDQUFDLE1BQ1ksRUFBRTtRQUMzQixLQUFLLENBQUM7WUFDRixrQkFBa0IsRUFBRTtnQkFDaEIsa0NBQWtDO2dCQUNsQyxzQkFBc0IsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDN0MscUJBQXFCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7Z0JBQ3pDLDJCQUEyQixTQUFTLENBQUMsT0FBTyxDQUN4QyxDQUFDLENBQ0oscUJBQXFCO2FBQ3pCO1lBQ0QsZ0JBQWdCLEVBQUU7Z0JBQ2QsZ0RBQWdEO2FBQ25EO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLFNBQVMsRUFBRSxNQUFNO2FBQ3BCO1NBQ0osQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKIn0=
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { ArrayNumber4
|
|
1
|
+
import { ArrayNumber4 } from "../types";
|
|
2
2
|
import { TgdVec4 } from "../math";
|
|
3
3
|
import { TgdMaterial } from "./material";
|
|
4
|
-
import { TgdCodeBloc } from "../shader/code";
|
|
5
|
-
import { TgdProgram } from "../program";
|
|
6
|
-
import { TgdPainterStateOptions } from "../painter";
|
|
7
4
|
export type TgdMaterialHullOptions = Partial<{
|
|
8
5
|
color: ArrayNumber4 | TgdVec4;
|
|
9
6
|
/**
|
|
@@ -23,16 +20,6 @@ export declare class TgdMaterialHull extends TgdMaterial {
|
|
|
23
20
|
color: TgdVec4;
|
|
24
21
|
thickness: number;
|
|
25
22
|
zShift: number;
|
|
26
|
-
readonly varyings: {
|
|
27
|
-
[name: string]: WebglAttributeType;
|
|
28
|
-
};
|
|
29
|
-
readonly uniforms: {
|
|
30
|
-
[name: string]: WebglUniformType;
|
|
31
|
-
};
|
|
32
|
-
readonly fragmentShaderCode: TgdCodeBloc;
|
|
33
|
-
readonly vertexShaderCode: TgdCodeBloc;
|
|
34
|
-
protected readonly state: Partial<TgdPainterStateOptions>;
|
|
35
23
|
constructor(options?: TgdMaterialHullOptions);
|
|
36
|
-
setUniforms(program: TgdProgram): void;
|
|
37
24
|
}
|
|
38
25
|
//# sourceMappingURL=hull.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hull.d.ts","sourceRoot":"","sources":["../../src/material/hull.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"hull.d.ts","sourceRoot":"","sources":["../../src/material/hull.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAwC,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAKxC,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAA;IAC7B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CACpB,CAAC,CAAA;AAIF,qBAAa,eAAgB,SAAQ,WAAW;IACrC,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,SAAI;IACb,MAAM,SAAO;gBAER,OAAO,GAAE,sBAA2B;CA2BnD"}
|
|
@@ -5,35 +5,32 @@ const DEFAULT_COLOR = [0.111, 0.333, 0.999, 1];
|
|
|
5
5
|
export class TgdMaterialHull extends TgdMaterial {
|
|
6
6
|
constructor(options = {}) {
|
|
7
7
|
var _a, _b, _c;
|
|
8
|
-
super(
|
|
8
|
+
super({
|
|
9
|
+
uniforms: {
|
|
10
|
+
uniColor: "vec4",
|
|
11
|
+
uniExpansion: "float",
|
|
12
|
+
uniZ: "float",
|
|
13
|
+
},
|
|
14
|
+
fragmentShaderCode: [`return uniColor;`],
|
|
15
|
+
vertexShaderCode: [
|
|
16
|
+
"vec3 n = normalize(vec3((mat3(uniModelViewMatrix) * normal).xy, 0));",
|
|
17
|
+
"float size = uniExpansion * gl_Position.w;",
|
|
18
|
+
"n *= size;",
|
|
19
|
+
"gl_Position.xy += n.xy;",
|
|
20
|
+
"gl_Position.z += size * uniZ;",
|
|
21
|
+
],
|
|
22
|
+
setUniforms: (program) => {
|
|
23
|
+
program.uniform4fv("uniColor", this.color);
|
|
24
|
+
program.uniform1f("uniExpansion", this.thickness * 0.01);
|
|
25
|
+
program.uniform1f("uniZ", this.zShift);
|
|
26
|
+
},
|
|
27
|
+
state: { cull: webglPresetCull.front },
|
|
28
|
+
});
|
|
9
29
|
this.thickness = 1;
|
|
10
30
|
this.zShift = 0.01;
|
|
11
|
-
this.uniforms = {
|
|
12
|
-
uniColor: "vec4",
|
|
13
|
-
uniExpansion: "float",
|
|
14
|
-
uniZ: "float",
|
|
15
|
-
};
|
|
16
|
-
this.state = {
|
|
17
|
-
cull: webglPresetCull.front,
|
|
18
|
-
};
|
|
19
31
|
this.color = new TgdVec4((_a = options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR);
|
|
20
32
|
this.thickness = (_b = options.expansion) !== null && _b !== void 0 ? _b : 1;
|
|
21
33
|
this.zShift = (_c = options.zShift) !== null && _c !== void 0 ? _c : 0.01;
|
|
22
|
-
this.fragmentShaderCode = [`return uniColor;`];
|
|
23
|
-
this.vertexShaderCode = [];
|
|
24
|
-
this.varyings = {};
|
|
25
|
-
this.vertexShaderCode = [
|
|
26
|
-
"vec3 n = normalize(vec3((mat3(uniModelViewMatrix) * normal).xy, 0));",
|
|
27
|
-
"float size = uniExpansion * gl_Position.w;",
|
|
28
|
-
"n *= size;",
|
|
29
|
-
"gl_Position.xy += n.xy;",
|
|
30
|
-
"gl_Position.z += size * uniZ;",
|
|
31
|
-
];
|
|
32
|
-
}
|
|
33
|
-
setUniforms(program) {
|
|
34
|
-
program.uniform4fv("uniColor", this.color);
|
|
35
|
-
program.uniform1f("uniExpansion", this.thickness * 0.01);
|
|
36
|
-
program.uniform1f("uniZ", this.zShift);
|
|
37
34
|
}
|
|
38
35
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9odWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBcUJ4QyxNQUFNLGFBQWEsR0FBaUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUU1RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBSzVDLFlBQVksVUFBa0MsRUFBRTs7UUFDNUMsS0FBSyxDQUFDO1lBQ0YsUUFBUSxFQUFFO2dCQUNOLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLE9BQU87YUFDaEI7WUFDRCxrQkFBa0IsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBQ3hDLGdCQUFnQixFQUFFO2dCQUNkLHNFQUFzRTtnQkFDdEUsNENBQTRDO2dCQUM1QyxZQUFZO2dCQUNaLHlCQUF5QjtnQkFDekIsK0JBQStCO2FBQ2xDO1lBQ0QsV0FBVyxFQUFFLENBQUMsT0FBbUIsRUFBUSxFQUFFO2dCQUN2QyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQzFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUE7Z0JBQ3hELE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUMxQyxDQUFDO1lBQ0QsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxLQUFLLEVBQUU7U0FDekMsQ0FBQyxDQUFBO1FBeEJDLGNBQVMsR0FBRyxDQUFDLENBQUE7UUFDYixXQUFNLEdBQUcsSUFBSSxDQUFBO1FBeUJoQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLE1BQUEsT0FBTyxDQUFDLEtBQUssbUNBQUksYUFBYSxDQUFDLENBQUE7UUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFBLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQUEsT0FBTyxDQUFDLE1BQU0sbUNBQUksSUFBSSxDQUFBO0lBQ3hDLENBQUM7Q0FDSiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/material/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/material/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA"}
|
|
@@ -6,6 +6,5 @@ export * from "./ghost.js";
|
|
|
6
6
|
export * from "./hull.js";
|
|
7
7
|
export * from "./material.js";
|
|
8
8
|
export * from "./normals.js";
|
|
9
|
-
export * from "./solid.js";
|
|
10
9
|
export * from "./toon.js";
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLFFBQVEsQ0FBQSJ9
|
|
@@ -1,7 +1,51 @@
|
|
|
1
|
-
import { TgdCodeBloc } from "../shader/code";
|
|
1
|
+
import { TgdCodeBloc, TgdCodeFunctions } from "../shader/code";
|
|
2
2
|
import { TgdPainterStateOptions, WebglAttributeType, WebglUniformType } from "..";
|
|
3
3
|
import { TgdProgram } from "../program";
|
|
4
|
-
export
|
|
4
|
+
export interface TgdMaterialOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Name of the vec4 attribute holding the vertex position.
|
|
7
|
+
* Default to `POSITION`.
|
|
8
|
+
*/
|
|
9
|
+
attPosition: string;
|
|
10
|
+
/**
|
|
11
|
+
* Name of the vec3 attribute holding the normal.
|
|
12
|
+
* Default to `NORMAL`.
|
|
13
|
+
*/
|
|
14
|
+
attNormal: string;
|
|
15
|
+
/**
|
|
16
|
+
* Name of the vec2 attribute holding the texture coordinates (UV).
|
|
17
|
+
* Default to `TEXCOORD_0`
|
|
18
|
+
*/
|
|
19
|
+
attUV: string;
|
|
20
|
+
varyings: {
|
|
21
|
+
[name: string]: WebglAttributeType;
|
|
22
|
+
};
|
|
23
|
+
uniforms: {
|
|
24
|
+
[name: string]: WebglUniformType;
|
|
25
|
+
};
|
|
26
|
+
fragmentShaderCode: TgdCodeBloc;
|
|
27
|
+
extraFragmentShaderFunctions: TgdCodeFunctions;
|
|
28
|
+
vertexShaderCode: TgdCodeBloc;
|
|
29
|
+
extraVertexShaderFunctions: TgdCodeFunctions;
|
|
30
|
+
/**
|
|
31
|
+
* Body of the function `vec4 getPosition(vec4 pos)` of the vertex shader.
|
|
32
|
+
*
|
|
33
|
+
* By default, this body is `return pos;`.
|
|
34
|
+
* Yo can use this code to apply any transformation on the vertex position
|
|
35
|
+
* before convertion to screen space.
|
|
36
|
+
*/
|
|
37
|
+
vertexShaderCodeForGetPosition: TgdCodeBloc;
|
|
38
|
+
/**
|
|
39
|
+
* If this function is defined, it will be called at each frame.
|
|
40
|
+
* Most of the time, it is used tu update the uniforms.
|
|
41
|
+
*/
|
|
42
|
+
setUniforms(program: TgdProgram, time: number, delay: number): void;
|
|
43
|
+
/**
|
|
44
|
+
* You may need specific CULL, BLEND, DEPTH, ...
|
|
45
|
+
*/
|
|
46
|
+
state: Partial<TgdPainterStateOptions>;
|
|
47
|
+
}
|
|
48
|
+
export declare class TgdMaterial {
|
|
5
49
|
attPosition: string;
|
|
6
50
|
attNormal: string;
|
|
7
51
|
attUV: string;
|
|
@@ -23,11 +67,13 @@ export declare abstract class TgdMaterial {
|
|
|
23
67
|
/**
|
|
24
68
|
* The code of a `vec4 applyMaterial()` function.
|
|
25
69
|
*/
|
|
26
|
-
|
|
70
|
+
readonly fragmentShaderCode: TgdCodeBloc;
|
|
71
|
+
readonly extraFragmentShaderFunctions: TgdCodeFunctions;
|
|
27
72
|
/**
|
|
28
73
|
* The code of a `void applyMaterial(position, normal, uv)` function.
|
|
29
74
|
*/
|
|
30
|
-
|
|
75
|
+
readonly vertexShaderCode: TgdCodeBloc;
|
|
76
|
+
readonly extraVertexShaderFunctions: TgdCodeFunctions;
|
|
31
77
|
/**
|
|
32
78
|
* Body of the function `vec4 getPosition(vec4 pos)` of the vertex shader.
|
|
33
79
|
*
|
|
@@ -36,8 +82,9 @@ export declare abstract class TgdMaterial {
|
|
|
36
82
|
* before convertion to screen space.
|
|
37
83
|
*/
|
|
38
84
|
vertexShaderCodeForGetPosition?: TgdCodeBloc;
|
|
39
|
-
|
|
85
|
+
readonly setUniforms: undefined | ((program: TgdProgram, time: number, delay: number) => void);
|
|
40
86
|
protected readonly state: Partial<TgdPainterStateOptions>;
|
|
41
87
|
applyState(gl: WebGL2RenderingContext, action: () => void): void;
|
|
88
|
+
constructor({ attPosition, attNormal, attUV, varyings, uniforms, fragmentShaderCode, extraFragmentShaderFunctions, vertexShaderCode, extraVertexShaderFunctions, vertexShaderCodeForGetPosition, setUniforms, state, }: Partial<TgdMaterialOptions>);
|
|
42
89
|
}
|
|
43
90
|
//# sourceMappingURL=material.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"material.d.ts","sourceRoot":"","sources":["../../src/material/material.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"material.d.ts","sourceRoot":"","sources":["../../src/material/material.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAEH,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EACnB,MAAM,IAAI,CAAA;AACX,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,WAAW,kBAAkB;IAC/B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;IAChD,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAA;IAC9C,kBAAkB,EAAE,WAAW,CAAA;IAC/B,4BAA4B,EAAE,gBAAgB,CAAA;IAC9C,gBAAgB,EAAE,WAAW,CAAA;IAC7B,0BAA0B,EAAE,gBAAgB,CAAA;IAC5C;;;;;;OAMG;IACH,8BAA8B,EAAE,WAAW,CAAA;IAC3C;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACnE;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAA;CACzC;AAED,qBAAa,WAAW;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IAEpB;;;;;;;;OAQG;IACH,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAA;IAEhE,SAAgB,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAA;IAE9D;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAA;IAExC,QAAQ,CAAC,4BAA4B,EAAE,gBAAgB,CAAA;IAEvD;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAA;IAEtC,QAAQ,CAAC,0BAA0B,EAAE,gBAAgB,CAAA;IAErD;;;;;;OAMG;IACH,8BAA8B,CAAC,EAAE,WAAW,CAAA;IAE5C,QAAQ,CAAC,WAAW,EACd,SAAS,GACT,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,CAAA;IAElE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAElD,UAAU,CAAC,EAAE,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,IAAI;gBAUpD,EACR,WAAwB,EACxB,SAAoB,EACpB,KAAoB,EACpB,QAAa,EACb,QAAa,EACb,kBAAqD,EACrD,4BAAiC,EACjC,gBAAqB,EACrB,0BAA+B,EAC/B,8BAA8C,EAC9C,WAAW,EACX,KAAU,GACb,EAAE,OAAO,CAAC,kBAAkB,CAAC;CAcjC"}
|
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
import { TgdPainterState, } from "../index.js";
|
|
2
2
|
export class TgdMaterial {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.attPosition = "POSITION";
|
|
5
|
-
this.attNormal = "NORMAL";
|
|
6
|
-
this.attUV = "TEXCOORD_0";
|
|
7
|
-
/**
|
|
8
|
-
* Example:
|
|
9
|
-
* ```
|
|
10
|
-
* {
|
|
11
|
-
* varNormal: "vec3",
|
|
12
|
-
* varUV: "vec2"
|
|
13
|
-
* }
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
this.varyings = {};
|
|
17
|
-
this.uniforms = {};
|
|
18
|
-
this.state = {};
|
|
19
|
-
}
|
|
20
3
|
applyState(gl, action) {
|
|
21
4
|
TgdPainterState.do(Object.assign({ gl }, this.state), action);
|
|
22
5
|
}
|
|
6
|
+
constructor({ attPosition = "POSITION", attNormal = "NORMAL", attUV = "TEXCOORD_0", varyings = {}, uniforms = {}, fragmentShaderCode = ["return vec4(1, .666, .1, 1);"], extraFragmentShaderFunctions = {}, vertexShaderCode = [], extraVertexShaderFunctions = {}, vertexShaderCodeForGetPosition = "return pos;", setUniforms, state = {}, }) {
|
|
7
|
+
this.attPosition = attPosition;
|
|
8
|
+
this.attNormal = attNormal;
|
|
9
|
+
this.attUV = attUV;
|
|
10
|
+
this.varyings = varyings;
|
|
11
|
+
this.uniforms = uniforms;
|
|
12
|
+
this.fragmentShaderCode = fragmentShaderCode;
|
|
13
|
+
this.extraFragmentShaderFunctions = extraFragmentShaderFunctions;
|
|
14
|
+
this.vertexShaderCode = vertexShaderCode;
|
|
15
|
+
this.extraVertexShaderFunctions = extraVertexShaderFunctions;
|
|
16
|
+
this.vertexShaderCodeForGetPosition = vertexShaderCodeForGetPosition;
|
|
17
|
+
this.setUniforms = setUniforms;
|
|
18
|
+
this.state = state;
|
|
19
|
+
}
|
|
23
20
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILGVBQWUsR0FJbEIsTUFBTSxJQUFJLENBQUE7QUE0Q1gsTUFBTSxPQUFPLFdBQVc7SUErQ2IsVUFBVSxDQUFDLEVBQTBCLEVBQUUsTUFBa0I7UUFDNUQsZUFBZSxDQUFDLEVBQUUsaUJBRVYsRUFBRSxJQUNDLElBQUksQ0FBQyxLQUFLLEdBRWpCLE1BQU0sQ0FDVCxDQUFBO0lBQ0wsQ0FBQztJQUVELFlBQVksRUFDUixXQUFXLEdBQUcsVUFBVSxFQUN4QixTQUFTLEdBQUcsUUFBUSxFQUNwQixLQUFLLEdBQUcsWUFBWSxFQUNwQixRQUFRLEdBQUcsRUFBRSxFQUNiLFFBQVEsR0FBRyxFQUFFLEVBQ2Isa0JBQWtCLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxFQUNyRCw0QkFBNEIsR0FBRyxFQUFFLEVBQ2pDLGdCQUFnQixHQUFHLEVBQUUsRUFDckIsMEJBQTBCLEdBQUcsRUFBRSxFQUMvQiw4QkFBOEIsR0FBRyxhQUFhLEVBQzlDLFdBQVcsRUFDWCxLQUFLLEdBQUcsRUFBRSxHQUNnQjtRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUE7UUFDNUMsSUFBSSxDQUFDLDRCQUE0QixHQUFHLDRCQUE0QixDQUFBO1FBQ2hFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQTtRQUN4QyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsMEJBQTBCLENBQUE7UUFDNUQsSUFBSSxDQUFDLDhCQUE4QixHQUFHLDhCQUE4QixDQUFBO1FBQ3BFLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLENBQUM7Q0FDSiJ9
|
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
import { WebglAttributeType } from "../types";
|
|
2
1
|
import { TgdMaterial } from "./material";
|
|
3
|
-
import { TgdCodeBloc } from "../shader/code";
|
|
4
|
-
import { TgdProgram } from "../program";
|
|
5
2
|
export declare class TgdMaterialNormals extends TgdMaterial {
|
|
6
|
-
readonly varyings: {
|
|
7
|
-
[name: string]: WebglAttributeType;
|
|
8
|
-
};
|
|
9
|
-
readonly fragmentShaderCode: TgdCodeBloc;
|
|
10
|
-
readonly vertexShaderCode: TgdCodeBloc;
|
|
11
3
|
constructor();
|
|
12
|
-
setUniforms(_program: TgdProgram): void;
|
|
13
4
|
}
|
|
14
5
|
//# sourceMappingURL=normals.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normals.d.ts","sourceRoot":"","sources":["../../src/material/normals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"normals.d.ts","sourceRoot":"","sources":["../../src/material/normals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,qBAAa,kBAAmB,SAAQ,WAAW;;CAYlD"}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { TgdMaterial } from "./material.js";
|
|
2
2
|
export class TgdMaterialNormals extends TgdMaterial {
|
|
3
3
|
constructor() {
|
|
4
|
-
super(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
4
|
+
super({
|
|
5
|
+
varyings: { varNormal: "vec3" },
|
|
6
|
+
fragmentShaderCode: [
|
|
7
|
+
`vec3 color = vec3(1.0) + normalize(varNormal);`,
|
|
8
|
+
`color *= 0.5;`,
|
|
9
|
+
`return vec4(color, 1.0);`,
|
|
10
|
+
],
|
|
11
|
+
vertexShaderCode: ["varNormal = NORMAL;"],
|
|
12
|
+
});
|
|
14
13
|
}
|
|
15
|
-
setUniforms(_program) { }
|
|
16
14
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9ub3JtYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFeEMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQVc7SUFDL0M7UUFDSSxLQUFLLENBQUM7WUFDRixRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO1lBQy9CLGtCQUFrQixFQUFFO2dCQUNoQixnREFBZ0Q7Z0JBQ2hELGVBQWU7Z0JBQ2YsMEJBQTBCO2FBQzdCO1lBQ0QsZ0JBQWdCLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztTQUM1QyxDQUFDLENBQUE7SUFDTixDQUFDO0NBQ0oifQ==
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { ArrayNumber4
|
|
1
|
+
import { ArrayNumber4 } from "../types";
|
|
2
2
|
import { TgdVec4 } from "../math";
|
|
3
3
|
import { TgdMaterial } from "./material";
|
|
4
|
-
import { TgdCodeBloc } from "../shader/code";
|
|
5
4
|
import { TgdLight } from "../light";
|
|
6
5
|
import { TgdTexture2D } from "../texture";
|
|
7
|
-
import { TgdProgram } from "../program";
|
|
8
6
|
export type TgdMaterialToonOptions = Partial<{
|
|
9
7
|
color: TgdVec4 | ArrayNumber4 | TgdTexture2D;
|
|
10
8
|
light: TgdLight;
|
|
@@ -12,6 +10,7 @@ export type TgdMaterialToonOptions = Partial<{
|
|
|
12
10
|
specularSharpness: number;
|
|
13
11
|
specularSize: number;
|
|
14
12
|
specularIntensity: number;
|
|
13
|
+
shades: number;
|
|
15
14
|
}>;
|
|
16
15
|
export type TgdMaterialToonShades = number;
|
|
17
16
|
export declare class TgdMaterialToon extends TgdMaterial {
|
|
@@ -20,19 +19,10 @@ export declare class TgdMaterialToon extends TgdMaterial {
|
|
|
20
19
|
specularSharpness: number;
|
|
21
20
|
specularSize: number;
|
|
22
21
|
specularIntensity: number;
|
|
23
|
-
|
|
24
|
-
[name: string]: WebglAttributeType;
|
|
25
|
-
};
|
|
26
|
-
readonly uniforms: {
|
|
27
|
-
[name: string]: WebglUniformType;
|
|
28
|
-
};
|
|
29
|
-
readonly fragmentShaderCode: TgdCodeBloc;
|
|
30
|
-
readonly vertexShaderCode: TgdCodeBloc;
|
|
22
|
+
shades: number;
|
|
31
23
|
private readonly texture;
|
|
32
24
|
private readonly lightColor;
|
|
33
25
|
private readonly ambientColor;
|
|
34
|
-
private _shades;
|
|
35
26
|
constructor(options?: TgdMaterialToonOptions);
|
|
36
|
-
setUniforms(program: TgdProgram): void;
|
|
37
27
|
}
|
|
38
28
|
//# sourceMappingURL=toon.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toon.d.ts","sourceRoot":"","sources":["../../src/material/toon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"toon.d.ts","sourceRoot":"","sources":["../../src/material/toon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwC,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAW,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3C,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,CAAA;IAC5C,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,QAAQ,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;CACjB,CAAC,CAAA;AAIF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAA;AAE1C,qBAAa,eAAgB,SAAQ,WAAW;IACrC,KAAK,WAEV;IACK,OAAO,WAAuD;IAC9D,iBAAiB,SAAM;IACvB,YAAY,SAAM;IAClB,iBAAiB,SAAM;IACvB,MAAM,SAAI;IAEjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAEjC,OAAO,GAAE,sBAA2B;CAmGnD"}
|