@tolokoban/tgd 2.0.118 → 2.0.121
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.js +2 -2
- package/lib/dist/buffer/buffer.js +7 -9
- package/lib/dist/camera/camera-orthographic.d.ts +1 -0
- package/lib/dist/camera/camera-orthographic.d.ts.map +1 -1
- package/lib/dist/camera/camera-orthographic.js +13 -3
- package/lib/dist/camera/camera-perspective.d.ts +1 -0
- package/lib/dist/camera/camera-perspective.d.ts.map +1 -1
- package/lib/dist/camera/camera-perspective.js +13 -3
- package/lib/dist/camera/camera.d.ts +1 -0
- package/lib/dist/camera/camera.d.ts.map +1 -1
- package/lib/dist/camera/camera.js +7 -8
- package/lib/dist/canvas/gizmo/gizmo.js +16 -15
- package/lib/dist/canvas/landscape/landscape.js +8 -2
- package/lib/dist/code/math.js +6 -3
- package/lib/dist/code/noise.js +18 -6
- package/lib/dist/color/color.d.ts +1 -1
- package/lib/dist/color/color.d.ts.map +1 -1
- package/lib/dist/color/color.js +16 -2
- package/lib/dist/context/animation/animation-manager.d.ts +3 -0
- package/lib/dist/context/animation/animation-manager.d.ts.map +1 -1
- package/lib/dist/context/animation/animation-manager.js +10 -11
- package/lib/dist/context/console.d.ts +12 -0
- package/lib/dist/context/console.d.ts.map +1 -0
- package/lib/dist/context/console.js +31 -0
- package/lib/dist/context/context.d.ts +23 -1
- package/lib/dist/context/context.d.ts.map +1 -1
- package/lib/dist/context/context.js +65 -26
- package/lib/dist/context/webgl-params.d.ts +9 -3
- package/lib/dist/context/webgl-params.d.ts.map +1 -1
- package/lib/dist/context/webgl-params.js +39 -12
- package/lib/dist/controller/camera/orbit.js +26 -6
- package/lib/dist/dataset/dataset.d.ts.map +1 -1
- package/lib/dist/dataset/dataset.js +26 -35
- package/lib/dist/debug/console.js +6 -4
- package/lib/dist/debug/debug.js +5 -6
- package/lib/dist/factory/mesh-glb.d.ts +4 -6
- package/lib/dist/factory/mesh-glb.d.ts.map +1 -1
- package/lib/dist/factory/mesh-glb.js +6 -6
- package/lib/dist/filter/blur.js +14 -8
- package/lib/dist/filter/filter.js +2 -3
- package/lib/dist/filter/hue-rotation.js +2 -2
- package/lib/dist/geometry/geometry.js +7 -10
- package/lib/dist/geometry/grid.js +3 -3
- package/lib/dist/geometry/tools/marching-cubes/marching-cubes.d.ts +1 -1
- package/lib/dist/geometry/tools/marching-cubes/marching-cubes.d.ts.map +1 -1
- package/lib/dist/geometry/tools/marching-cubes/marching-cubes.js +2 -10
- package/lib/dist/input/gamepad.js +9 -17
- package/lib/dist/input/pointer.d.ts.map +1 -1
- package/lib/dist/input/pointer.js +53 -22
- package/lib/dist/light/light.js +2 -3
- package/lib/dist/loader/asset.js +11 -14
- package/lib/dist/loader/binary.js +44 -51
- package/lib/dist/loader/font.d.ts +13 -0
- package/lib/dist/loader/font.d.ts.map +1 -0
- package/lib/dist/loader/font.js +28 -0
- package/lib/dist/loader/image.js +13 -16
- package/lib/dist/loader/index.d.ts +1 -0
- package/lib/dist/loader/index.d.ts.map +1 -1
- package/lib/dist/loader/index.js +2 -1
- package/lib/dist/loader/video.js +13 -16
- package/lib/dist/log.js +2 -3
- package/lib/dist/material/camera-light.d.ts +1 -0
- package/lib/dist/material/camera-light.d.ts.map +1 -1
- package/lib/dist/material/camera-light.js +7 -3
- package/lib/dist/material/diffuse.js +2 -3
- package/lib/dist/material/flat.js +2 -3
- package/lib/dist/material/glass.js +6 -8
- package/lib/dist/material/global.js +6 -8
- package/lib/dist/material/gltf.d.ts +29 -0
- package/lib/dist/material/gltf.d.ts.map +1 -0
- package/lib/dist/material/gltf.js +186 -0
- package/lib/dist/material/hull.js +4 -5
- package/lib/dist/material/index.d.ts +2 -0
- package/lib/dist/material/index.d.ts.map +1 -1
- package/lib/dist/material/index.js +3 -1
- package/lib/dist/material/material.js +5 -2
- package/lib/dist/material/mirror.d.ts +18 -0
- package/lib/dist/material/mirror.d.ts.map +1 -0
- package/lib/dist/material/mirror.js +56 -0
- package/lib/dist/material/solid.js +2 -3
- package/lib/dist/material/toon.js +7 -7
- package/lib/dist/math/mat2.d.ts +1 -1
- package/lib/dist/math/mat2.d.ts.map +1 -1
- package/lib/dist/math/mat2.js +5 -5
- package/lib/dist/math/mat3.d.ts.map +1 -1
- package/lib/dist/math/mat3.js +4 -4
- package/lib/dist/math/mat4.js +3 -4
- package/lib/dist/math/transfo.js +11 -14
- package/lib/dist/math/vec4.d.ts +1 -0
- package/lib/dist/math/vec4.d.ts.map +1 -1
- package/lib/dist/math/vec4.js +18 -14
- package/lib/dist/painter/background/background.js +2 -2
- package/lib/dist/painter/clear.js +5 -6
- package/lib/dist/painter/filter/filter.js +9 -7
- package/lib/dist/painter/fragment-shader/fragment-shader.js +3 -5
- package/lib/dist/painter/framebuffer-msaa.js +5 -2
- package/lib/dist/painter/framebuffer.d.ts +1 -1
- package/lib/dist/painter/framebuffer.d.ts.map +1 -1
- package/lib/dist/painter/framebuffer.js +8 -11
- package/lib/dist/painter/gizmo/gizmo.d.ts.map +1 -1
- package/lib/dist/painter/gizmo/gizmo.js +5 -5
- package/lib/dist/painter/gizmo/painters/normal.js +4 -7
- package/lib/dist/painter/gizmo/painters/tips.d.ts.map +1 -1
- package/lib/dist/painter/gizmo/painters/tips.js +11 -13
- package/lib/dist/painter/group-camera.js +2 -3
- package/lib/dist/painter/group.js +6 -8
- package/lib/dist/painter/icon/icon.js +10 -8
- package/lib/dist/painter/icon/sprite.js +2 -3
- package/lib/dist/painter/lod/lod.js +26 -30
- package/lib/dist/painter/logic.js +2 -3
- package/lib/dist/painter/mesh/gltf/gltf.d.ts +28 -6
- package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/painter/mesh/gltf/gltf.js +99 -53
- package/lib/dist/painter/mesh/mesh/mesh.js +24 -17
- package/lib/dist/painter/mix/mix.js +6 -7
- package/lib/dist/painter/node/node.js +11 -17
- package/lib/dist/painter/overlay/overlay.js +14 -19
- package/lib/dist/painter/painter.js +2 -2
- package/lib/dist/painter/points-cloud/points-cloud-morphing.js +12 -14
- package/lib/dist/painter/points-cloud/points-cloud.d.ts +2 -2
- package/lib/dist/painter/points-cloud/points-cloud.d.ts.map +1 -1
- package/lib/dist/painter/points-cloud/points-cloud.js +20 -21
- package/lib/dist/painter/program.js +24 -11
- package/lib/dist/painter/segments/segments-morphing.js +30 -14
- package/lib/dist/painter/segments/segments.d.ts +1 -1
- package/lib/dist/painter/segments/segments.d.ts.map +1 -1
- package/lib/dist/painter/segments/segments.js +34 -21
- package/lib/dist/painter/skybox/skybox.d.ts +18 -8
- package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
- package/lib/dist/painter/skybox/skybox.js +89 -44
- package/lib/dist/painter/sprites/accessor.js +2 -2
- package/lib/dist/painter/sprites/sprites-hue.js +18 -8
- package/lib/dist/painter/sprites/sprites.d.ts.map +1 -1
- package/lib/dist/painter/sprites/sprites.js +53 -21
- package/lib/dist/painter/state/state.d.ts +1 -1
- package/lib/dist/painter/state/state.d.ts.map +1 -1
- package/lib/dist/painter/state/state.js +6 -11
- package/lib/dist/painter/tubes/geometry.js +3 -4
- package/lib/dist/painter/tubes/tubes.js +3 -4
- package/lib/dist/painter/x-ray/background.js +2 -2
- package/lib/dist/painter/x-ray/x-ray.js +8 -5
- package/lib/dist/parser/gltf/gltf.d.ts +13 -5
- package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/parser/gltf/gltf.js +113 -114
- package/lib/dist/parser/gltf/parser.d.ts.map +1 -1
- package/lib/dist/parser/gltf/parser.js +12 -1
- package/lib/dist/parser/mesh/wavefront.js +3 -5
- package/lib/dist/program/program.d.ts.map +1 -1
- package/lib/dist/program/program.js +6 -7
- package/lib/dist/reference-map.js +3 -5
- package/lib/dist/shader/code.js +2 -2
- package/lib/dist/texture/texture-cube.d.ts +20 -8
- package/lib/dist/texture/texture-cube.d.ts.map +1 -1
- package/lib/dist/texture/texture-cube.js +54 -2
- package/lib/dist/texture/texture2d.d.ts +10 -3
- package/lib/dist/texture/texture2d.d.ts.map +1 -1
- package/lib/dist/texture/texture2d.js +54 -52
- package/lib/dist/time/interval/interval.js +2 -3
- package/lib/dist/types/gltf.d.ts +2 -1
- package/lib/dist/types/gltf.d.ts.map +1 -1
- package/lib/dist/types/gltf.js +10 -4
- package/lib/dist/types/guards.js +2 -3
- package/lib/dist/types/input-pointer.d.ts +5 -0
- package/lib/dist/types/input-pointer.d.ts.map +1 -1
- package/lib/dist/types/texture-cube.d.ts +1 -0
- package/lib/dist/types/texture-cube.d.ts.map +1 -1
- package/lib/dist/uniform/ubo-camera.d.ts +2 -1
- package/lib/dist/uniform/ubo-camera.d.ts.map +1 -1
- package/lib/dist/uniform/ubo-camera.js +9 -2
- package/lib/dist/uniform/uniform-buffer-object.js +2 -2
- package/lib/dist/utils/action/camera.js +3 -4
- package/lib/dist/utils/animation/chain-transfo-interpolations.js +6 -2
- package/lib/dist/utils/animation/chain.js +12 -12
- package/lib/dist/utils/bbox.js +3 -3
- package/lib/dist/utils/canvas.js +3 -3
- package/lib/dist/utils/ensure.d.ts +2 -0
- package/lib/dist/utils/ensure.d.ts.map +1 -1
- package/lib/dist/utils/ensure.js +21 -5
- package/lib/dist/utils/fullscreen.js +31 -38
- package/lib/dist/utils/reference-map.js +3 -5
- package/lib/dist/utils/state/blend.d.ts +1 -1
- package/lib/dist/utils/state/blend.d.ts.map +1 -1
- package/lib/dist/utils/state/blend.js +28 -1
- package/lib/dist/utils/state/stencil.js +2 -2
- package/lib/dist/vao/vao.js +8 -9
- package/lib/dist/version.d.ts +1 -1
- package/lib/dist/version.js +1 -1
- package/lib/dist/wasm/function.js +2 -3
- package/lib/dist/wasm/index.js +16 -19
- package/lib/dist/wasm/wast.js +3 -4
- package/lib/dist/webgl/texture/texture2d.js +2 -3
- package/package.json +1 -1
- package/lib/dist/math/common.test.d.ts +0 -2
- package/lib/dist/math/common.test.d.ts.map +0 -1
- package/lib/dist/math/common.test.js +0 -22
- package/lib/dist/math/mat3.test.d.ts +0 -2
- package/lib/dist/math/mat3.test.d.ts.map +0 -1
- package/lib/dist/math/mat3.test.js +0 -32
- package/lib/dist/math/mat4.test.d.ts +0 -2
- package/lib/dist/math/mat4.test.d.ts.map +0 -1
- package/lib/dist/math/mat4.test.js +0 -57
- package/lib/dist/math/math.test.d.ts +0 -2
- package/lib/dist/math/math.test.d.ts.map +0 -1
- package/lib/dist/math/math.test.js +0 -23
- package/lib/dist/math/quat.test.d.ts +0 -3
- package/lib/dist/math/quat.test.d.ts.map +0 -1
- package/lib/dist/math/quat.test.js +0 -99
- package/lib/dist/math/vec3.test.d.ts +0 -2
- package/lib/dist/math/vec3.test.d.ts.map +0 -1
- package/lib/dist/math/vec3.test.js +0 -36
- package/lib/dist/math/vec4.test.d.ts +0 -2
- package/lib/dist/math/vec4.test.d.ts.map +0 -1
- package/lib/dist/math/vec4.test.js +0 -15
- package/lib/dist/painter/gizmo/painters/axes.1.d.ts +0 -14
- package/lib/dist/painter/gizmo/painters/axes.1.d.ts.map +0 -1
- package/lib/dist/painter/gizmo/painters/axes.1.js +0 -50
- package/lib/dist/painter/skybox/skybox.frag +0 -15
- package/lib/dist/painter/skybox/skybox.vert +0 -13
- package/lib/dist/utils/bbox.test.d.ts +0 -2
- package/lib/dist/utils/bbox.test.d.ts.map +0 -1
- package/lib/dist/utils/bbox.test.js +0 -45
- package/lib/dist/utils/template.test.d.ts +0 -2
- package/lib/dist/utils/template.test.d.ts.map +0 -1
- package/lib/dist/utils/template.test.js +0 -17
|
@@ -5,7 +5,6 @@ import { TgdTexture2D } from "./../texture/index.js";
|
|
|
5
5
|
const DEFAULT_COLOR = new TgdVec4(0.8, 0.6, 0.1, 1);
|
|
6
6
|
export class TgdMaterialCameraLight extends TgdMaterial {
|
|
7
7
|
constructor(options = {}) {
|
|
8
|
-
var _a;
|
|
9
8
|
const vertexShaderCode = ["varNormal = mat3(uniTransfoMatrix) * NORMAL;"];
|
|
10
9
|
const uniforms = {
|
|
11
10
|
uniLight: "vec3",
|
|
@@ -18,7 +17,7 @@ export class TgdMaterialCameraLight extends TgdMaterial {
|
|
|
18
17
|
const varyings = {
|
|
19
18
|
varNormal: "vec3",
|
|
20
19
|
};
|
|
21
|
-
const color = options.color instanceof TgdTexture2D ? options.color : new TgdVec4(
|
|
20
|
+
const color = options.color instanceof TgdTexture2D ? options.color : new TgdVec4(options.color ?? DEFAULT_COLOR);
|
|
22
21
|
const hasTexture = !(color instanceof TgdVec4);
|
|
23
22
|
if (hasTexture) {
|
|
24
23
|
vertexShaderCode.push("varUV = TEXCOORD_0;");
|
|
@@ -55,6 +54,11 @@ export class TgdMaterialCameraLight extends TgdMaterial {
|
|
|
55
54
|
if (texture)
|
|
56
55
|
texture.activate(0, program, "texDiffuse");
|
|
57
56
|
},
|
|
57
|
+
delete: () => {
|
|
58
|
+
if (options.cleanupTexturesOnDelete) {
|
|
59
|
+
this.texture?.delete();
|
|
60
|
+
}
|
|
61
|
+
},
|
|
58
62
|
});
|
|
59
63
|
this.light = new TgdLight();
|
|
60
64
|
this.ambient = new TgdLight({ color: new TgdVec4(0.2, 0.1, 0, 0) });
|
|
@@ -77,4 +81,4 @@ export class TgdMaterialCameraLight extends TgdMaterial {
|
|
|
77
81
|
this.texture = hasTexture ? color : null;
|
|
78
82
|
}
|
|
79
83
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLWxpZ2h0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hdGVyaWFsL2NhbWVyYS1saWdodC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQWEzQyxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUVuRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsV0FBVztJQVVuRCxZQUFZLFVBQWtELEVBQUU7UUFDNUQsTUFBTSxnQkFBZ0IsR0FBZ0IsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFBO1FBQ3RGLE1BQU0sUUFBUSxHQUF5QztZQUNuRCxRQUFRLEVBQUUsTUFBTTtZQUNoQixXQUFXLEVBQUUsTUFBTTtZQUNuQixVQUFVLEVBQUUsTUFBTTtZQUNsQixtQkFBbUIsRUFBRSxPQUFPO1lBQzVCLG9CQUFvQixFQUFFLE9BQU87WUFDN0Isa0JBQWtCLEVBQUUsTUFBTTtTQUM3QixDQUFBO1FBQ0QsTUFBTSxRQUFRLEdBQTJDO1lBQ3JELFNBQVMsRUFBRSxNQUFNO1NBQ3BCLENBQUE7UUFDRCxNQUFNLEtBQUssR0FDUCxPQUFPLENBQUMsS0FBSyxZQUFZLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxhQUFhLENBQUMsQ0FBQTtRQUN2RyxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxZQUFZLE9BQU8sQ0FBQyxDQUFBO1FBQzlD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
|
|
@@ -5,8 +5,7 @@ import { TgdMaterial } from "./material.js";
|
|
|
5
5
|
const DEFAULT_COLOR = new TgdVec4(0.8, 0.6, 0.1, 1);
|
|
6
6
|
export class TgdMaterialDiffuse extends TgdMaterial {
|
|
7
7
|
constructor(options = {}) {
|
|
8
|
-
|
|
9
|
-
const colorOrTexture = options.color instanceof TgdTexture2D ? options.color : new TgdVec4((_a = options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR);
|
|
8
|
+
const colorOrTexture = options.color instanceof TgdTexture2D ? options.color : new TgdVec4(options.color ?? DEFAULT_COLOR);
|
|
10
9
|
const hasTexture = colorOrTexture instanceof TgdTexture2D;
|
|
11
10
|
const uniforms = {
|
|
12
11
|
uniLight: "vec3",
|
|
@@ -89,4 +88,4 @@ export class TgdMaterialDiffuse extends TgdMaterial {
|
|
|
89
88
|
}
|
|
90
89
|
}
|
|
91
90
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZnVzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9kaWZmdXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFHNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBV3hDLE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRW5ELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxXQUFXO0lBWS9DLFlBQVksVUFBcUMsRUFBRTtRQUMvQyxNQUFNLGNBQWMsR0FDaEIsT0FBTyxDQUFDLEtBQUssWUFBWSxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksYUFBYSxDQUFDLENBQUE7UUFDdkcsTUFBTSxVQUFVLEdBQUcsY0FBYyxZQUFZLFlBQVksQ0FBQTtRQUN6RCxNQUFNLFFBQVEsR0FBeUM7WUFDbkQsUUFBUSxFQUFFLE1BQU07WUFDaEIsV0FBVyxFQUFFLE1BQU07WUFDbkIsVUFBVSxFQUFFLE1BQU07WUFDbEIsbUJBQW1CLEVBQUUsT0FBTztZQUM1QixvQkFBb0IsRUFBRSxPQUFPO1lBQzdCLGtCQUFrQixFQUFFLE1BQU07U0FDN0IsQ0FBQTtRQUNELE1BQU0sa0JBQWtCLEdBQWdCO1lBQ3BDLGlCQUFpQixPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxFQUFFLHVCQUF1QjtZQUN2RywrQ0FBK0M7WUFDL0MsT0FBTyxD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
|
|
@@ -3,8 +3,7 @@ import { TgdMaterial } from "./material.js";
|
|
|
3
3
|
const DEFAULT_COLOR = [0, 0, 0, 1];
|
|
4
4
|
export class TgdMaterialFlat extends TgdMaterial {
|
|
5
5
|
constructor(options = {}) {
|
|
6
|
-
|
|
7
|
-
const color = new TgdVec4((_a = options.color) !== null && _a !== void 0 ? _a : DEFAULT_COLOR);
|
|
6
|
+
const color = new TgdVec4(options.color ?? DEFAULT_COLOR);
|
|
8
7
|
super({
|
|
9
8
|
uniforms: {
|
|
10
9
|
uniColor: "vec4",
|
|
@@ -13,4 +12,4 @@ export class TgdMaterialFlat extends TgdMaterial {
|
|
|
13
12
|
});
|
|
14
13
|
}
|
|
15
14
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9mbGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQU14QyxNQUFNLGFBQWEsR0FBaUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUVoRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBQzVDLFlBQVksVUFBa0MsRUFBRTtRQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQyxDQUFBO1FBRXpELEtBQUssQ0FBQztZQUNGLFFBQVEsRUFBRTtnQkFDTixRQUFRLEVBQUUsTUFBTTthQUNuQjtZQUNELGtCQUFrQixFQUFFLENBQUMsZUFBZSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDNUQsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKIn0=
|
|
@@ -44,22 +44,20 @@ export class TgdMaterialGlass extends TgdMaterial {
|
|
|
44
44
|
depth: webglPresetDepth.writeOnly,
|
|
45
45
|
},
|
|
46
46
|
delete: () => {
|
|
47
|
-
var _a, _b;
|
|
48
47
|
if (this.mustDeleteTextureAmbient)
|
|
49
|
-
|
|
48
|
+
this.textureAmbient?.delete();
|
|
50
49
|
if (this.mustDeleteTextureColor)
|
|
51
|
-
|
|
50
|
+
this.textureColor?.delete();
|
|
52
51
|
},
|
|
53
52
|
uniforms,
|
|
54
53
|
varyings,
|
|
55
54
|
vertexShaderCode,
|
|
56
55
|
fragmentShaderCode,
|
|
57
56
|
setUniforms: ({ context, program }) => {
|
|
58
|
-
var _a, _b;
|
|
59
57
|
if (!this.textureColor) {
|
|
60
58
|
// Lazy creation of a texture from an unique color.
|
|
61
59
|
this.textureColor = new TgdTexture2D(context);
|
|
62
|
-
const color =
|
|
60
|
+
const color = this.options.color ?? DEFAULT_COLOR;
|
|
63
61
|
if (!(color instanceof TgdTexture2D)) {
|
|
64
62
|
this.textureColor.loadBitmap(tgdCanvasCreateFill(1, 1, color));
|
|
65
63
|
}
|
|
@@ -67,9 +65,9 @@ export class TgdMaterialGlass extends TgdMaterial {
|
|
|
67
65
|
}
|
|
68
66
|
if (!this.textureAmbient) {
|
|
69
67
|
// Lazy creation of a texture from an unique color.
|
|
70
|
-
const color =
|
|
68
|
+
const color = this.options.ambientColor ?? DEFAULT_AMBIENT;
|
|
71
69
|
const canvas = tgdCanvasCreateFill(1, 1, color instanceof TgdTextureCube ? DEFAULT_AMBIENT : color);
|
|
72
|
-
this.textureAmbient = new TgdTextureCube(
|
|
70
|
+
this.textureAmbient = new TgdTextureCube(context, {
|
|
73
71
|
imagePosX: canvas,
|
|
74
72
|
imagePosY: canvas,
|
|
75
73
|
imagePosZ: canvas,
|
|
@@ -111,4 +109,4 @@ export class TgdMaterialGlass extends TgdMaterial {
|
|
|
111
109
|
}
|
|
112
110
|
}
|
|
113
111
|
}
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvZ2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFvQixnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUEyQixNQUFNLFlBQVksQ0FBQTtBQVlqRSxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNuRCxNQUFNLGVBQWUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBRWxELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBVzdDLFlBQTZCLFVBQW1DLEVBQUU7UUFDOUQsTUFBTSxRQUFRLEdBQXlDO1lBQ25ELGdCQUFnQixFQUFFLE1BQU07WUFDeEIsbUJBQW1CLEVBQUUsT0FBTztZQUM1QixvQkFBb0IsRUFBRSxPQUFPO1lBQzdCLGNBQWMsRUFBRSxPQUFPO1lBQ3ZCLGdCQUFnQixFQUFFLE9BQU87WUFDekIsUUFBUSxFQUFFLFdBQVc7WUFDckIsVUFBVSxFQUFFLGFBQWE7WUFDekIsaUJBQWlCLEVBQUUsTUFBTTtTQUM1QixDQUFBO1FBQ0QsTUFBTSxrQkFBa0IsR0FBZ0I7WUFDcEMsZ0NBQWdDO1lBQ2hDLDBEQUEwRDtZQUMxRCx5QkFBeUI7WUFDekIsMENBQTBDO1lBQzFDLGdEQUFnRDtZQUNoRCxnQ0FBZ0M7WUFDaEMsdUdBQXVHO1NBQzFHLENBQUE7UUFDRCxNQUFNLFFBQVEsR0FBMkM7WUFDckQsS0FBSyxFQUFFLE1BQU07WUFDYixTQUFTLEVBQUUsTUFBTTtZQUNqQixXQUFXLEVBQUUsTUFBTTtTQUN0QixDQUFBO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEdBQWdCO2dCQUN0QixXQUFXLElBQUksQ0FBQyxLQUFLLEdBQUc7Z0JBQ3hCLHdDQUF3QyxJQUFJLENBQUMsU0FBUyxHQUFHO2dCQUN6RCxvQ0FBb0MsSUFBSSxDQUFDLFdBQVcsR0FBRzthQUMxRCxDQUFBO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDZixDQUFDLENBQUE7UUFFRCxLQUFLLENBQUM7WUFDRixLQUFLLEVBQUU7Z0JBQ0gsS0FBSyxFQUFFLE9BQU87Z0JBQ2QsS0FBSyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7YUFDcEM7WUFDRCxNQUFNLEVBQUUsR0FBRyxFQUFFO2dCQUNULElBQUksSUFBSSxDQUFDLHdCQUF3QjtvQkFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFBO2dCQUNoRSxJQUFJLElBQUksQ0FBQyxzQkFBc0I7b0JBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQTtZQUNoRSxDQUFDO1lBQ0QsUUFBUTtZQUNSLFFBQVE7WUFDUixnQkFBZ0I7WUFDaEIsa0JBQWtCO1lBQ2xCLFdBQVcsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBc0IsRUFBRSxFQUFFO2dCQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUNyQixtREFBbUQ7b0JBQ25ELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUE7b0JBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQTtvQkFDakQsSUFBSSxDQUFDLENBQUMsS0FBSyxZQUFZLFlBQVksQ0FBQyxFQUFFLENBQUM7d0JBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQTtvQkFDbEUsQ0FBQztvQkFDRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFBO2dCQUN0QyxDQUFDO2dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLG1EQUFtRDtvQkFDbkQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksZUFBZSxDQUFBO29CQUMxRCxNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssWUFBWSxjQUFjLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7b0JBQ25HLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsT0FBTyxFQUFFO3dCQUM5QyxTQUFTLEVBQUUsTUFBTTt3QkFDakIsU0FBUyxFQUFFLE1BQU07d0JBQ2pCLFNBQVMsRUFBRSxNQUFNO3dCQUNqQixTQUFTLEVBQUUsTUFBTTt3QkFDakIsU0FBUyxFQUFFLE1BQU07d0JBQ2pCLFNBQVMsRUFBRSxNQUFNO3FCQUNwQixDQUFDLENBQUE7b0JBQ0YsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQTtnQkFDeEMsQ0FBQztnQkFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFBO2dCQUNsRCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFBO2dCQUN0RCxPQUFPLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFBO2dCQUM5RSxPQUFPLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO2dCQUMvRCxPQUFPLENBQUMsU0FBUyxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO2dCQUNqRSxPQUFPLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtnQkFDcEQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUM1RSxDQUFDO1NBQ0osQ0FBQyxDQUFBO1FBL0V1QixZQUFPLEdBQVAsT0FBTyxDQUE4QjtRQVYzRCxxQkFBZ0IsR0FBRyxHQUFHLENBQUE7UUFDdEIsc0JBQWlCLEdBQUcsQ0FBQyxDQUFBO1FBQ3JCLGVBQVUsR0FBRyxDQUFDLENBQUE7UUFDZCxlQUFVLEdBQUcsSUFBSSxDQUFBO1FBRWhCLGlCQUFZLEdBQXdCLElBQUksQ0FBQTtRQUN4QywyQkFBc0IsR0FBRyxLQUFLLENBQUE7UUFDOUIsbUJBQWMsR0FBMEIsSUFBSSxDQUFBO1FBQzVDLDZCQUF3QixHQUFHLEtBQUssQ0FBQTtRQW1GcEMsSUFBSSxPQUFPLE9BQU8sQ0FBQyxnQkFBZ0IsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFBO1FBQ3BELENBQUM7UUFDRCxJQUFJLE9BQU8sT0FBTyxDQUFDLGlCQUFpQixLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUE7UUFDdEQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLEtBQUssWUFBWSxZQUFZLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUE7UUFDckMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFlBQVksWUFBWSxjQUFjLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUE7UUFDOUMsQ0FBQztJQUNMLENBQUM7Q0FDSiJ9
|
|
@@ -38,22 +38,20 @@ export class TgdMaterialGlobal extends TgdMaterial {
|
|
|
38
38
|
};
|
|
39
39
|
super({
|
|
40
40
|
delete: () => {
|
|
41
|
-
var _a, _b;
|
|
42
41
|
if (this.mustDeleteTextureAmbient)
|
|
43
|
-
|
|
42
|
+
this.textureAmbient?.delete();
|
|
44
43
|
if (this.mustDeleteTextureColor)
|
|
45
|
-
|
|
44
|
+
this.textureColor?.delete();
|
|
46
45
|
},
|
|
47
46
|
uniforms,
|
|
48
47
|
varyings,
|
|
49
48
|
vertexShaderCode,
|
|
50
49
|
fragmentShaderCode,
|
|
51
50
|
setUniforms: ({ program, context }) => {
|
|
52
|
-
var _a, _b;
|
|
53
51
|
if (!this.textureColor) {
|
|
54
52
|
// Lazy creation of a texture from an unique color.
|
|
55
53
|
this.textureColor = new TgdTexture2D(context);
|
|
56
|
-
const color =
|
|
54
|
+
const color = this.options.color ?? DEFAULT_COLOR;
|
|
57
55
|
if (!(color instanceof TgdTexture2D)) {
|
|
58
56
|
this.textureColor.loadBitmap(tgdCanvasCreateFill(1, 1, color));
|
|
59
57
|
}
|
|
@@ -61,9 +59,9 @@ export class TgdMaterialGlobal extends TgdMaterial {
|
|
|
61
59
|
}
|
|
62
60
|
if (!this.textureAmbient) {
|
|
63
61
|
// Lazy creation of a texture from an unique color.
|
|
64
|
-
const color =
|
|
62
|
+
const color = this.options.ambientColor ?? DEFAULT_AMBIENT;
|
|
65
63
|
const canvas = tgdCanvasCreateFill(1, 1, color instanceof TgdTextureCube ? DEFAULT_AMBIENT : color);
|
|
66
|
-
this.textureAmbient = new TgdTextureCube(
|
|
64
|
+
this.textureAmbient = new TgdTextureCube(context, {
|
|
67
65
|
imagePosX: canvas,
|
|
68
66
|
imagePosY: canvas,
|
|
69
67
|
imagePosZ: canvas,
|
|
@@ -107,4 +105,4 @@ export class TgdMaterialGlobal extends TgdMaterial {
|
|
|
107
105
|
}
|
|
108
106
|
}
|
|
109
107
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hdGVyaWFsL2dsb2JhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUU1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBMkIsTUFBTSxZQUFZLENBQUE7QUFZakUsTUFBTSxhQUFhLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDbkQsTUFBTSxlQUFlLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUVsRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQVM5QyxZQUE2QixVQUFvQyxFQUFFO1FBQy9ELE1BQU0sUUFBUSxHQUF5QztZQUNuRCxnQkFBZ0IsRUFBRSxNQUFNO1lBQ3hCLG1CQUFtQixFQUFFLE9BQU87WUFDNUIsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixRQUFRLEVBQUUsV0FBVztZQUNyQixVQUFVLEVBQUUsYUFBYTtZQUN6QixpQkFBaUIsRUFBRSxNQUFNO1NBQzVCLENBQUE7UUFDRCxNQUFNLGtCQUFrQixHQUFnQjtZQUNwQyxnQ0FBZ0M7WUFDaEMsMERBQTBEO1lBQzFELHlCQUF5QjtZQUN6QiwwQ0FBMEM7WUFDMUMsZ0RBQWdEO1lBQ2hELGdDQUFnQztZQUNoQyxtREFBbUQ7U0FDdEQsQ0FBQTtRQUNELE1BQU0sUUFBUSxHQUEyQztZQUNyRCxLQUFLLEVBQUUsTUFBTTtZQUNiLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLFdBQVcsRUFBRSxNQUFNO1NBQ3RCLENBQUE7UUFDRCxN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
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TgdMaterial } from "./material";
|
|
2
|
+
import { TgdLight } from "../light";
|
|
3
|
+
import { TgdTexture2D, TgdTextureCube } from "../texture";
|
|
4
|
+
export type TgdMaterialGltfOptions = {
|
|
5
|
+
textures: {
|
|
6
|
+
normal: TgdTexture2D;
|
|
7
|
+
albedo: TgdTexture2D;
|
|
8
|
+
emission: TgdTexture2D;
|
|
9
|
+
occlusion?: TgdTexture2D;
|
|
10
|
+
metallicRoughness: TgdTexture2D;
|
|
11
|
+
skybox: TgdTextureCube;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export declare class TgdMaterialGltf extends TgdMaterial {
|
|
15
|
+
light: TgdLight;
|
|
16
|
+
ambient: TgdLight;
|
|
17
|
+
specularExponent: number;
|
|
18
|
+
specularIntensity: number;
|
|
19
|
+
private readonly textureNormal;
|
|
20
|
+
private readonly textureAlbedo;
|
|
21
|
+
private readonly textureEmission;
|
|
22
|
+
private readonly textureOcclusion;
|
|
23
|
+
private readonly textureMetallicRoughness;
|
|
24
|
+
private readonly textureSkybox;
|
|
25
|
+
constructor(options: Partial<TgdMaterialGltfOptions> & {
|
|
26
|
+
textures: TgdMaterialGltfOptions["textures"];
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=gltf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gltf.d.ts","sourceRoot":"","sources":["../../src/material/gltf.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAsB,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAG3D,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,EAAE;QACN,MAAM,EAAE,YAAY,CAAA;QACpB,MAAM,EAAE,YAAY,CAAA;QACpB,QAAQ,EAAE,YAAY,CAAA;QACtB,SAAS,CAAC,EAAE,YAAY,CAAA;QACxB,iBAAiB,EAAE,YAAY,CAAA;QAC/B,MAAM,EAAE,cAAc,CAAA;KACzB,CAAA;CACJ,CAAA;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACrC,KAAK,WAAiB;IACtB,OAAO,WAAuD;IAC9D,gBAAgB,SAAK;IACrB,iBAAiB,SAAM;IAE9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA0B;IAC3D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAc;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAElC,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG;QAAE,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAA;KAAE;CAuL1G"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { TgdVec4 } from "./../math/index.js";
|
|
2
|
+
import { TgdMaterial } from "./material.js";
|
|
3
|
+
import { TgdLight } from "./../light/index.js";
|
|
4
|
+
import { tgdCodeConstants } from "./../code/index.js";
|
|
5
|
+
export class TgdMaterialGltf extends TgdMaterial {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
const uniforms = {
|
|
8
|
+
uniLight: "vec3",
|
|
9
|
+
uniLightDir: "vec3",
|
|
10
|
+
uniAmbient: "vec3",
|
|
11
|
+
uniSpecularExponent: "float",
|
|
12
|
+
uniSpecularIntensity: "float",
|
|
13
|
+
uniModelViewMatrix: "mat4",
|
|
14
|
+
uniCameraPosition: "vec3",
|
|
15
|
+
texNormal: "sampler2D",
|
|
16
|
+
texAlbedo: "sampler2D",
|
|
17
|
+
texEmission: "sampler2D",
|
|
18
|
+
texMetallicRoughness: "sampler2D",
|
|
19
|
+
texSkybox: "samplerCube",
|
|
20
|
+
};
|
|
21
|
+
if (options.textures.occlusion) {
|
|
22
|
+
uniforms["texOcclusion"] = "sampler2D";
|
|
23
|
+
}
|
|
24
|
+
const varyings = {
|
|
25
|
+
varPosition: "vec4",
|
|
26
|
+
varNormal: "vec3",
|
|
27
|
+
varUV: "vec2",
|
|
28
|
+
};
|
|
29
|
+
super({
|
|
30
|
+
uniforms,
|
|
31
|
+
varyings,
|
|
32
|
+
vertexShaderCode: () => [
|
|
33
|
+
`varUV = ${this.attUV};`,
|
|
34
|
+
`varNormal = mat3(uniTransfoMatrix) * ${this.attNormal};`,
|
|
35
|
+
`varPosition = uniTransfoMatrix * ${this.attPosition};`,
|
|
36
|
+
],
|
|
37
|
+
extraFragmentShaderFunctions: {
|
|
38
|
+
...tgdCodeConstants("PI"),
|
|
39
|
+
DistributionGGX: [
|
|
40
|
+
"float DistributionGGX(vec3 N, vec3 H, float roughness) {",
|
|
41
|
+
[
|
|
42
|
+
"float a = roughness * roughness;",
|
|
43
|
+
"float a2 = a * a;",
|
|
44
|
+
"float NdotH = max(dot(N, H), 0.0);",
|
|
45
|
+
"float NdotH2 = NdotH * NdotH;",
|
|
46
|
+
"float nom = a2;",
|
|
47
|
+
"float denom = (NdotH2 * (a2 - 1.0) + 1.0);",
|
|
48
|
+
"denom = PI * denom * denom;",
|
|
49
|
+
"return nom / max(denom, 0.001);",
|
|
50
|
+
],
|
|
51
|
+
"}",
|
|
52
|
+
],
|
|
53
|
+
GeometrySchlickGGX: [
|
|
54
|
+
"float GeometrySchlickGGX(float NdotV, float roughness) {",
|
|
55
|
+
[
|
|
56
|
+
"float r = (roughness + 1.0);",
|
|
57
|
+
"float k = (r * r) / 8.0;",
|
|
58
|
+
"return NdotV / (NdotV * (1.0 - k) + k);",
|
|
59
|
+
],
|
|
60
|
+
"}",
|
|
61
|
+
],
|
|
62
|
+
GeometrySmith: [
|
|
63
|
+
"float GeometrySmith(vec3 N, vec3 V, vec3 L, float roughness) {",
|
|
64
|
+
[
|
|
65
|
+
"float NdotV = max(dot(N, V), 0.0);",
|
|
66
|
+
"float NdotL = max(dot(N, L), 0.0);",
|
|
67
|
+
"return GeometrySchlickGGX(NdotV, roughness) * GeometrySchlickGGX(NdotL, roughness);",
|
|
68
|
+
],
|
|
69
|
+
"}",
|
|
70
|
+
],
|
|
71
|
+
fresnelSchlick: [
|
|
72
|
+
"vec3 fresnelSchlick(float cosTheta, vec3 F0) {",
|
|
73
|
+
["return F0 + (1.0 - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0);"],
|
|
74
|
+
"}",
|
|
75
|
+
],
|
|
76
|
+
fresnelSchlickRoughness: [
|
|
77
|
+
"// Roughness-dependent Fresnel for IBL",
|
|
78
|
+
"vec3 fresnelSchlickRoughness(float cosTheta, vec3 F0, float roughness) {",
|
|
79
|
+
["return F0 + (max(vec3(1.0 - roughness), F0) - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0);"],
|
|
80
|
+
"}",
|
|
81
|
+
],
|
|
82
|
+
getNormalFromMap: [
|
|
83
|
+
"// --- TBN Generation (Screen-space derivatives) ---",
|
|
84
|
+
"vec3 getNormalFromMap() {",
|
|
85
|
+
[
|
|
86
|
+
"vec3 tangentNormal = texture(texNormal, varUV).xyz * 2.0 - 1.0;",
|
|
87
|
+
"",
|
|
88
|
+
"vec3 Q1 = dFdx(varPosition.xyz);",
|
|
89
|
+
"vec3 Q2 = dFdy(varPosition.xyz);",
|
|
90
|
+
"vec2 st1 = dFdx(varUV);",
|
|
91
|
+
"vec2 st2 = dFdy(varUV);",
|
|
92
|
+
"",
|
|
93
|
+
"vec3 N = normalize(varNormal);",
|
|
94
|
+
"vec3 T = normalize(Q1 * st2.t - Q2 * st1.t);",
|
|
95
|
+
"vec3 B = -normalize(cross(N, T));",
|
|
96
|
+
"mat3 TBN = mat3(T, B, N);",
|
|
97
|
+
"",
|
|
98
|
+
"return normalize(TBN * tangentNormal);",
|
|
99
|
+
],
|
|
100
|
+
"}",
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
fragmentShaderCode: [
|
|
104
|
+
"// 1. Fetch Material Properties",
|
|
105
|
+
"vec3 albedo = texture(texAlbedo, varUV).rgb;",
|
|
106
|
+
"albedo = pow(albedo, vec3(2.2)); // Convert to Linear",
|
|
107
|
+
"float roughness = texture(texMetallicRoughness, varUV).g;",
|
|
108
|
+
"float metallic = texture(texMetallicRoughness, varUV).b;",
|
|
109
|
+
options.textures.occlusion
|
|
110
|
+
? "float ao = texture(texOcclusion, varUV).r;"
|
|
111
|
+
: "// No ambient occlusion texture",
|
|
112
|
+
"vec3 emission = texture(texEmission, varUV).rgb;",
|
|
113
|
+
"",
|
|
114
|
+
"// 2. Setup Vectors",
|
|
115
|
+
"vec3 N = getNormalFromMap();",
|
|
116
|
+
"vec3 V = normalize(uniCameraPosition - varPosition.xyz);",
|
|
117
|
+
"vec3 R = reflect(-V, N); ",
|
|
118
|
+
"",
|
|
119
|
+
"// 3. Fresnel Reflectance at Zero Incidence (F0)",
|
|
120
|
+
"vec3 F0 = vec3(0.04); ",
|
|
121
|
+
"F0 = mix(F0, albedo, metallic);",
|
|
122
|
+
"",
|
|
123
|
+
"// 4. Lighting Calculation (Using Skybox as a Simple Light Source)",
|
|
124
|
+
"// For a full PBR, you'd iterate over point lights here. ",
|
|
125
|
+
"// Below is the Ambient/IBL contribution which defines the look.",
|
|
126
|
+
"",
|
|
127
|
+
"vec3 F = fresnelSchlickRoughness(max(dot(N, V), 0.0), F0, roughness);",
|
|
128
|
+
"",
|
|
129
|
+
"vec3 kS = F;",
|
|
130
|
+
"vec3 kD = (1.0 - kS) * (1.0 - metallic);",
|
|
131
|
+
"",
|
|
132
|
+
"// Simple IBL Diffuse",
|
|
133
|
+
"vec3 irradiance = texture(texSkybox, N).rgb;",
|
|
134
|
+
"vec3 diffuse = irradiance * albedo;",
|
|
135
|
+
"",
|
|
136
|
+
"// Simple IBL Specular (Sampling skybox based on roughness)",
|
|
137
|
+
"// Note: In a real engine, you'd use a pre-filtered mipmapped radiance map",
|
|
138
|
+
"vec3 prefilteredColor = textureLod(texSkybox, R, roughness * 7.0).rgb; ",
|
|
139
|
+
"vec3 specular = prefilteredColor * F;",
|
|
140
|
+
"",
|
|
141
|
+
"// 5. Combine and Apply AO/Emission",
|
|
142
|
+
options.textures.occlusion
|
|
143
|
+
? "vec3 ambient = (kD * diffuse + specular) * ao;"
|
|
144
|
+
: "vec3 ambient = (kD * diffuse + specular);",
|
|
145
|
+
"vec3 color = ambient + emission;",
|
|
146
|
+
"",
|
|
147
|
+
"// 6. Tonemapping and Gamma Correction",
|
|
148
|
+
"color = color / (color + vec3(1.0)); // Reinhard",
|
|
149
|
+
"color = pow(color, vec3(1.0/2.2));",
|
|
150
|
+
"",
|
|
151
|
+
"return vec4(color, 1.0);",
|
|
152
|
+
],
|
|
153
|
+
setUniforms: ({ program, context }) => {
|
|
154
|
+
program.uniform3fv("uniCameraPosition", context.camera.transfo.actualPosition);
|
|
155
|
+
const { textureNormal, textureAlbedo, textureEmission, textureOcclusion, textureMetallicRoughness, textureSkybox, } = this;
|
|
156
|
+
let unit = 0;
|
|
157
|
+
textureNormal.activate(unit++, program, "texNormal");
|
|
158
|
+
textureAlbedo.activate(unit++, program, "texAlbedo");
|
|
159
|
+
textureEmission.activate(unit++, program, "texEmission");
|
|
160
|
+
if (textureOcclusion)
|
|
161
|
+
textureOcclusion.activate(unit++, program, "texOcclusion");
|
|
162
|
+
textureMetallicRoughness.activate(unit++, program, "texMetallicRoughness");
|
|
163
|
+
textureSkybox.activate(unit++, program, "texSkybox");
|
|
164
|
+
},
|
|
165
|
+
delete: () => {
|
|
166
|
+
this.textureNormal.delete();
|
|
167
|
+
this.textureAlbedo.delete();
|
|
168
|
+
this.textureEmission.delete();
|
|
169
|
+
this.textureOcclusion?.delete();
|
|
170
|
+
this.textureMetallicRoughness.delete();
|
|
171
|
+
this.textureSkybox.delete();
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
this.light = new TgdLight();
|
|
175
|
+
this.ambient = new TgdLight({ color: new TgdVec4(0.2, 0.1, 0, 0) });
|
|
176
|
+
this.specularExponent = 32;
|
|
177
|
+
this.specularIntensity = 0.8;
|
|
178
|
+
this.textureNormal = options.textures.normal;
|
|
179
|
+
this.textureAlbedo = options.textures.albedo;
|
|
180
|
+
this.textureEmission = options.textures.emission;
|
|
181
|
+
this.textureOcclusion = options.textures.occlusion;
|
|
182
|
+
this.textureMetallicRoughness = options.textures.metallicRoughness;
|
|
183
|
+
this.textureSkybox = options.textures.skybox;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9nbHRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTSxZQUFZLENBQUE7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFhNUMsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQWE1QyxZQUFZLE9BQTJGO1FBQ25HLE1BQU0sUUFBUSxHQUF5QztZQUNuRCxRQUFRLEVBQUUsTUFBTTtZQUNoQixXQUFXLEVBQUUsTUFBTTtZQUNuQixVQUFVLEVBQUUsTUFBTTtZQUNsQixtQkFBbUIsRUFBRSxPQUFPO1lBQzVCLG9CQUFvQixFQUFFLE9BQU87WUFDN0Isa0JBQWtCLEVBQUUsTUFBTTtZQUMxQixpQkFBaUIsRUFBRSxNQUFNO1lBQ3pCLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLG9CQUFvQixFQUFFLFdBQVc7WUFDakMsU0FBUyxFQUFFLGFBQWE7U0FDM0IsQ0FBQTtRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3QixRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsV0FBVyxDQUFBO1FBQzFDLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBMkM7WUFDckQsV0FBVyxFQUFFLE1BQU07WUFDbkIsU0FBUyxFQUFFLE1BQU07WUFDakIsS0FBSyxFQUFFLE1BQU07U0FDaEIsQ0FBQTtRQUVELEtBQUssQ0FBQztZQUNGLFFBQVE7WUFDUixRQUFRO1lBQ1IsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLFdBQVcsSUFBSSxDQUFD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
|
|
@@ -4,7 +4,6 @@ import { TgdMaterial } from "./material.js";
|
|
|
4
4
|
const DEFAULT_COLOR = [0.111, 0.333, 0.999, 1];
|
|
5
5
|
export class TgdMaterialHull extends TgdMaterial {
|
|
6
6
|
constructor(options = {}) {
|
|
7
|
-
var _a, _b, _c;
|
|
8
7
|
super({
|
|
9
8
|
uniforms: {
|
|
10
9
|
uniColor: "vec4",
|
|
@@ -28,9 +27,9 @@ export class TgdMaterialHull extends TgdMaterial {
|
|
|
28
27
|
});
|
|
29
28
|
this.thickness = 1;
|
|
30
29
|
this.zShift = 0.01;
|
|
31
|
-
this.color = new TgdVec4(
|
|
32
|
-
this.thickness =
|
|
33
|
-
this.zShift =
|
|
30
|
+
this.color = new TgdVec4(options.color ?? DEFAULT_COLOR);
|
|
31
|
+
this.thickness = options.expansion ?? 1;
|
|
32
|
+
this.zShift = options.zShift ?? 0.01;
|
|
34
33
|
}
|
|
35
34
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9odWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBcUJ4QyxNQUFNLGFBQWEsR0FBaUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUU1RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBSzVDLFlBQVksVUFBa0MsRUFBRTtRQUM1QyxLQUFLLENBQUM7WUFDRixRQUFRLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLE1BQU07Z0JBQ2hCLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsT0FBTzthQUNoQjtZQUNELGtCQUFrQixFQUFFLENBQUMsa0JBQWtCLENBQUM7WUFDeEMsZ0JBQWdCLEVBQUU7Z0JBQ2Qsc0VBQXNFO2dCQUN0RSw0Q0FBNEM7Z0JBQzVDLFlBQVk7Z0JBQ1oseUJBQXlCO2dCQUN6QiwrQkFBK0I7YUFDbEM7WUFDRCxXQUFXLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBMkIsRUFBUSxFQUFFO2dCQUN4RCxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQzFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUE7Z0JBQ3hELE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUMxQyxDQUFDO1lBQ0QsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxLQUFLLEVBQUU7U0FDekMsQ0FBQyxDQUFBO1FBeEJDLGNBQVMsR0FBRyxDQUFDLENBQUE7UUFDYixXQUFNLEdBQUcsSUFBSSxDQUFBO1FBeUJoQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksYUFBYSxDQUFDLENBQUE7UUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFBO0lBQ3hDLENBQUM7Q0FDSiJ9
|
|
@@ -6,9 +6,11 @@ export * from "./flat-texture";
|
|
|
6
6
|
export * from "./ghost";
|
|
7
7
|
export * from "./glass";
|
|
8
8
|
export * from "./global";
|
|
9
|
+
export * from "./gltf";
|
|
9
10
|
export * from "./hull";
|
|
10
11
|
export * from "./mask";
|
|
11
12
|
export * from "./material";
|
|
13
|
+
export * from "./mirror";
|
|
12
14
|
export * from "./normal-map";
|
|
13
15
|
export * from "./normals";
|
|
14
16
|
export * from "./solid";
|
|
@@ -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,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA"}
|
|
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,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA"}
|
|
@@ -6,11 +6,13 @@ export * from "./flat-texture.js";
|
|
|
6
6
|
export * from "./ghost.js";
|
|
7
7
|
export * from "./glass.js";
|
|
8
8
|
export * from "./global.js";
|
|
9
|
+
export * from "./gltf.js";
|
|
9
10
|
export * from "./hull.js";
|
|
10
11
|
export * from "./mask.js";
|
|
11
12
|
export * from "./material.js";
|
|
13
|
+
export * from "./mirror.js";
|
|
12
14
|
export * from "./normal-map.js";
|
|
13
15
|
export * from "./normals.js";
|
|
14
16
|
export * from "./solid.js";
|
|
15
17
|
export * from "./toon.js";
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsUUFBUSxDQUFBO0FBQ3RCLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsY0FBYyxDQUFBO0FBQzVCLGNBQWMsV0FBVyxDQUFBO0FBQ3pCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsUUFBUSxDQUFBIn0=
|
|
@@ -44,7 +44,10 @@ export class TgdMaterial {
|
|
|
44
44
|
return this._vertexShaderCodeForGetPosition;
|
|
45
45
|
}
|
|
46
46
|
applyState(context, action) {
|
|
47
|
-
TgdPainterState.do(context,
|
|
47
|
+
TgdPainterState.do(context, {
|
|
48
|
+
...this.state,
|
|
49
|
+
action,
|
|
50
|
+
});
|
|
48
51
|
}
|
|
49
52
|
constructor({ attPosition = "POSITION", attNormal = "NORMAL", attTangent = "CUSTOM_ATTRIBUTE_3", attUV = "TEXCOORD_0", varyings = {}, uniforms = {}, fragmentShaderCode = ["return vec4(1, .666, .1, 1);"], fragmentShaderHeader = [], extraFragmentShaderFunctions = {}, vertexShaderCode = [], extraVertexShaderFunctions = {}, vertexShaderCodeForGetPosition = "return pos;", setUniforms, state = {}, debug = false, delete: deleteFunction = () => { }, }) {
|
|
50
53
|
this.debug = false;
|
|
@@ -66,4 +69,4 @@ export class TgdMaterial {
|
|
|
66
69
|
this.state = state;
|
|
67
70
|
}
|
|
68
71
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0ZXJpYWwvbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUVILGVBQWUsR0FJbEIsTUFBTSxJQUFJLENBQUE7QUF1RVgsTUFBTSxPQUFPLFdBQVc7SUF3QnBCOztPQUVHO0lBQ0gsSUFBSSxrQkFBa0I7UUFDbEIsSUFBSSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxVQUFVO1lBQUUsT0FBTyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtRQUNyRixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDcEIsSUFBSSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxVQUFVO1lBQUUsT0FBTyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtRQUN6RixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQTtJQUNyQyxDQUFDO0lBSUQsSUFBSSw0QkFBNEI7UUFDNUIsSUFBSSxPQUFPLElBQUksQ0FBQyw2QkFBNkIsS0FBSyxVQUFVO1lBQUUsT0FBTyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQTtRQUN6RyxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQTtJQUM3QyxDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUFJLGdCQUFnQjtRQUNoQixJQUFJLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixLQUFLLFVBQVU7WUFBRSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQ2pGLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFBO0lBQ2pDLENBQUM7SUFJRCxJQUFJLDBCQUEwQjtRQUMxQixJQUFJLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixLQUFLLFVBQVU7WUFBRSxPQUFPLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFBO1FBQ3JHLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFBO0lBQzNDLENBQUM7SUFJRDs7Ozs7O09BTUc7SUFDSCxJQUFJLDhCQUE4QjtRQUM5QixJQUFJLE9BQU8sSUFBSSxDQUFDLCtCQUErQixLQUFLLFVBQVU7WUFBRSxPQUFPLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFBO1FBQzdHLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFBO0lBQy9DLENBQUM7SUFNTSxVQUFVLENBQUMsT0FBaUUsRUFBRSxNQUFrQjtRQUNuRyxlQUFlLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRTtZQUN4QixHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsTUFBTTtTQUNULENBQUMsQ0FBQTtJQUNOLENBQUM7SUFJRCxZQUFZLEVBQ1IsV0FBVyxHQUFHLFVBQVUsRUFDeEIsU0FBUyxHQUFHLFFBQVEsRUFDcEIsVUFBVSxHQUFHLG9CQUFvQixFQUNqQyxLQUFLLEdBQUcsWUFBWSxFQUNwQixRQUFRLEdBQUcsRUFBRSxFQUNiLFFBQVEsR0FBRyxFQUFFLEVBQ2Isa0JBQWtCLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxFQUNyRCxvQkFBb0IsR0FBRyxFQUFFLEVBQ3pCLDRCQUE0QixHQUFHLEVBQUUsRUFDakMsZ0JBQWdCLEdBQUcsRUFBRSxFQUNyQiwwQkFBMEIsR0FBRyxFQUFFLEVBQy9CLDhCQUE4QixHQUFHLGFBQWEsRUFDOUMsV0FBVyxFQUNYLEtBQUssR0FBRyxFQUFFLEVBQ1YsS0FBSyxHQUFHLEtBQUssRUFDYixNQUFNLEVBQUUsY0FBYyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsR0FDUDtRQXhHdkIsVUFBSyxHQUFHLEtBQUssQ0FBQTtRQXlHaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUE7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUE7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGtCQUFrQixDQUFBO1FBQzdDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxvQkFBb0IsQ0FBQTtRQUNqRCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsNEJBQTRCLENBQUE7UUFDakUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFBO1FBQ3pDLElBQUksQ0FBQywyQkFBMkIsR0FBRywwQkFBMEIsQ0FBQTtRQUM3RCxJQUFJLENBQUMsK0JBQStCLEdBQUcsOEJBQThCLENBQUE7UUFDckUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDdEIsQ0FBQztDQUNKIn0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TgdVec4 } from "../math";
|
|
2
|
+
import { TgdTextureCube } from "../texture";
|
|
3
|
+
import type { ArrayNumber4 } from "../types";
|
|
4
|
+
import { TgdMaterial } from "./material";
|
|
5
|
+
import { TgdColor } from "../color";
|
|
6
|
+
export type TgdMaterialMirrorOptions = {
|
|
7
|
+
skybox: TgdTextureCube;
|
|
8
|
+
tint?: TgdVec4 | ArrayNumber4 | TgdColor | string;
|
|
9
|
+
roughness?: number;
|
|
10
|
+
};
|
|
11
|
+
export declare class TgdMaterialMirror extends TgdMaterial {
|
|
12
|
+
private readonly options;
|
|
13
|
+
readonly skybox: TgdTextureCube;
|
|
14
|
+
roughness: number;
|
|
15
|
+
readonly tint: TgdColor;
|
|
16
|
+
constructor(options: TgdMaterialMirrorOptions);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=mirror.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mirror.d.ts","sourceRoot":"","sources":["../../src/material/mirror.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAwC,MAAM,YAAY,CAAA;AACpF,OAAO,EAAE,WAAW,EAA2B,MAAM,YAAY,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,MAAM,wBAAwB,GAAG;IACnC,MAAM,EAAE,cAAc,CAAA;IACtB,IAAI,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAA;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAID,qBAAa,iBAAkB,SAAQ,WAAW;IAKlC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,SAAgB,MAAM,EAAE,cAAc,CAAA;IAC/B,SAAS,SAAI;IACpB,SAAgB,IAAI,EAAE,QAAQ,CAAA;gBAED,OAAO,EAAE,wBAAwB;CAiDjE"}
|