@flighthq/materials 0.2.1-next.652.c550eaa → 0.2.1-next.666.4af7f8b
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/dist/classicMaterials.d.ts.map +1 -1
- package/dist/classicMaterials.js +4 -3
- package/dist/classicMaterials.js.map +1 -1
- package/dist/customShaderMaterial.js +1 -1
- package/dist/customShaderMaterial.js.map +1 -1
- package/dist/pbrExtensionMaterials.js +7 -7
- package/dist/pbrExtensionMaterials.js.map +1 -1
- package/dist/pbrMaterials.d.ts.map +1 -1
- package/dist/pbrMaterials.js +6 -2
- package/dist/pbrMaterials.js.map +1 -1
- package/dist/surfaceMaterial.d.ts +2 -2
- package/dist/surfaceMaterial.d.ts.map +1 -1
- package/dist/surfaceMaterial.js +12 -10
- package/dist/surfaceMaterial.js.map +1 -1
- package/dist/unlitMaterials.js +8 -8
- package/dist/unlitMaterials.js.map +1 -1
- package/package.json +4 -4
- package/src/classicMaterials.test.ts +7 -0
- package/src/pbrMaterials.test.ts +4 -1
- package/src/surfaceMaterial.test.ts +11 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classicMaterials.d.ts","sourceRoot":"","sources":["../src/classicMaterials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAO1F,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"classicMaterials.d.ts","sourceRoot":"","sources":["../src/classicMaterials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAO1F,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,kBAAkB,CAWzG;AAID,wBAAgB,qBAAqB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,eAAe,CAOhG;AAID,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,aAAa,CAU1F"}
|
package/dist/classicMaterials.js
CHANGED
|
@@ -3,7 +3,8 @@ import { createSurfaceMaterial } from './surfaceMaterial';
|
|
|
3
3
|
// Classic Blinn-Phong material: diffuse plus a half-vector specular lobe. `diffuse`/`specular`
|
|
4
4
|
// default to white, `shininess` to 32, `normalScale` to 1, all maps to null.
|
|
5
5
|
export function createBlinnPhongMaterial(opts) {
|
|
6
|
-
const material = createSurfaceMaterial(BlinnPhongMaterialKind);
|
|
6
|
+
const material = createSurfaceMaterial(BlinnPhongMaterialKind, opts);
|
|
7
|
+
material.alphaMap = opts?.alphaMap ?? null;
|
|
7
8
|
material.diffuse = opts?.diffuse ?? 0xffffffff;
|
|
8
9
|
material.diffuseMap = opts?.diffuseMap ?? null;
|
|
9
10
|
material.normalMap = opts?.normalMap ?? null;
|
|
@@ -16,7 +17,7 @@ export function createBlinnPhongMaterial(opts) {
|
|
|
16
17
|
// Classic diffuse-only Lambertian material. `diffuse` defaults to white, `emissive` to opaque
|
|
17
18
|
// black (no self-illumination), both maps to null.
|
|
18
19
|
export function createLambertMaterial(opts) {
|
|
19
|
-
const material = createSurfaceMaterial(LambertMaterialKind);
|
|
20
|
+
const material = createSurfaceMaterial(LambertMaterialKind, opts);
|
|
20
21
|
material.diffuse = opts?.diffuse ?? 0xffffffff;
|
|
21
22
|
material.diffuseMap = opts?.diffuseMap ?? null;
|
|
22
23
|
material.emissive = opts?.emissive ?? 0x000000ff;
|
|
@@ -26,7 +27,7 @@ export function createLambertMaterial(opts) {
|
|
|
26
27
|
// Classic Phong material: diffuse plus a reflection-vector specular lobe. `diffuse`/`specular`
|
|
27
28
|
// default to white, `shininess` to 32, `normalScale` to 1, all maps to null.
|
|
28
29
|
export function createPhongMaterial(opts) {
|
|
29
|
-
const material = createSurfaceMaterial(PhongMaterialKind);
|
|
30
|
+
const material = createSurfaceMaterial(PhongMaterialKind, opts);
|
|
30
31
|
material.diffuse = opts?.diffuse ?? 0xffffffff;
|
|
31
32
|
material.diffuseMap = opts?.diffuseMap ?? null;
|
|
32
33
|
material.normalMap = opts?.normalMap ?? null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classicMaterials.js","sourceRoot":"","sources":["../src/classicMaterials.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,+FAA+F;AAC/F,6EAA6E;AAC7E,MAAM,UAAU,wBAAwB,CAAC,IAA4C;IACnF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,sBAAsB,CAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"classicMaterials.js","sourceRoot":"","sources":["../src/classicMaterials.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,+FAA+F;AAC/F,6EAA6E;AAC7E,MAAM,UAAU,wBAAwB,CAAC,IAA4C;IACnF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,sBAAsB,EAAE,IAAI,CAAuB,CAAC;IAC3F,QAAQ,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC;IAC3C,QAAQ,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,UAAU,CAAC;IAC/C,QAAQ,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC;IAC/C,QAAQ,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC;IAC7C,QAAQ,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,UAAU,CAAC;IACjD,QAAQ,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC;IACjD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8FAA8F;AAC9F,mDAAmD;AACnD,MAAM,UAAU,qBAAqB,CAAC,IAAyC;IAC7E,MAAM,QAAQ,GAAG,qBAAqB,CAAC,mBAAmB,EAAE,IAAI,CAAoB,CAAC;IACrF,QAAQ,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,UAAU,CAAC;IAC/C,QAAQ,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC;IAC/C,QAAQ,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,UAAU,CAAC;IACjD,QAAQ,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC;IACjD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,+FAA+F;AAC/F,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CAAC,IAAuC;IACzE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,iBAAiB,EAAE,IAAI,CAAkB,CAAC;IACjF,QAAQ,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,UAAU,CAAC;IAC/C,QAAQ,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC;IAC/C,QAAQ,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC;IAC7C,QAAQ,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,UAAU,CAAC;IACjD,QAAQ,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC;IACjD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { createSurfaceMaterial } from './surfaceMaterial';
|
|
|
6
6
|
// null bags) so a bare createCustomShaderMaterial() is structurally valid for tests and
|
|
7
7
|
// serialization even before a shader key is assigned.
|
|
8
8
|
export function createCustomShaderMaterial(opts) {
|
|
9
|
-
const material = createSurfaceMaterial(CustomShaderMaterialKind);
|
|
9
|
+
const material = createSurfaceMaterial(CustomShaderMaterialKind, opts);
|
|
10
10
|
material.shaderKey = opts?.shaderKey ?? '';
|
|
11
11
|
material.textures = opts?.textures ?? null;
|
|
12
12
|
material.uniforms = opts?.uniforms ?? null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customShaderMaterial.js","sourceRoot":"","sources":["../src/customShaderMaterial.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,6FAA6F;AAC7F,2FAA2F;AAC3F,+FAA+F;AAC/F,wFAAwF;AACxF,sDAAsD;AACtD,MAAM,UAAU,0BAA0B,CAAC,IAA8C;IACvF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,wBAAwB,CAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"customShaderMaterial.js","sourceRoot":"","sources":["../src/customShaderMaterial.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,6FAA6F;AAC7F,2FAA2F;AAC3F,+FAA+F;AAC/F,wFAAwF;AACxF,sDAAsD;AACtD,MAAM,UAAU,0BAA0B,CAAC,IAA8C;IACvF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,wBAAwB,EAAE,IAAI,CAAyB,CAAC;IAC/F,QAAQ,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC;IAC3C,QAAQ,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC;IAC3C,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { createSurfaceMaterial } from './surfaceMaterial';
|
|
|
5
5
|
// defaults to 0 (isotropic), `anisotropyRotation` to 0, the map to null. Composes a default
|
|
6
6
|
// `standard` block.
|
|
7
7
|
export function createAnisotropyPbrMaterial(opts) {
|
|
8
|
-
const material = createSurfaceMaterial(AnisotropyPbrMaterialKind);
|
|
8
|
+
const material = createSurfaceMaterial(AnisotropyPbrMaterialKind, opts);
|
|
9
9
|
material.anisotropyMap = opts?.anisotropyMap ?? null;
|
|
10
10
|
material.anisotropyRotation = opts?.anisotropyRotation ?? 0;
|
|
11
11
|
material.anisotropyStrength = opts?.anisotropyStrength ?? 0;
|
|
@@ -16,7 +16,7 @@ export function createAnisotropyPbrMaterial(opts) {
|
|
|
16
16
|
// to 0 (disabled), `clearcoatRoughness` to 0, all maps to null. Composes a default `standard`
|
|
17
17
|
// block.
|
|
18
18
|
export function createClearcoatPbrMaterial(opts) {
|
|
19
|
-
const material = createSurfaceMaterial(ClearcoatPbrMaterialKind);
|
|
19
|
+
const material = createSurfaceMaterial(ClearcoatPbrMaterialKind, opts);
|
|
20
20
|
material.clearcoat = opts?.clearcoat ?? 0;
|
|
21
21
|
material.clearcoatMap = opts?.clearcoatMap ?? null;
|
|
22
22
|
material.clearcoatNormalMap = opts?.clearcoatNormalMap ?? null;
|
|
@@ -29,7 +29,7 @@ export function createClearcoatPbrMaterial(opts) {
|
|
|
29
29
|
// `iridescenceIor` to 1.3, the thickness range to glTF's 100–400 nm, all maps to null.
|
|
30
30
|
// Composes a default `standard` block.
|
|
31
31
|
export function createIridescencePbrMaterial(opts) {
|
|
32
|
-
const material = createSurfaceMaterial(IridescencePbrMaterialKind);
|
|
32
|
+
const material = createSurfaceMaterial(IridescencePbrMaterialKind, opts);
|
|
33
33
|
material.iridescence = opts?.iridescence ?? 0;
|
|
34
34
|
material.iridescenceIor = opts?.iridescenceIor ?? 1.3;
|
|
35
35
|
material.iridescenceMap = opts?.iridescenceMap ?? null;
|
|
@@ -42,7 +42,7 @@ export function createIridescencePbrMaterial(opts) {
|
|
|
42
42
|
// KHR_materials_sheen: a retroreflective cloth/fabric lobe. `sheenColor` defaults to opaque
|
|
43
43
|
// black (disabled), `sheenRoughness` to 0, maps to null. Composes a default `standard` block.
|
|
44
44
|
export function createSheenPbrMaterial(opts) {
|
|
45
|
-
const material = createSurfaceMaterial(SheenPbrMaterialKind);
|
|
45
|
+
const material = createSurfaceMaterial(SheenPbrMaterialKind, opts);
|
|
46
46
|
material.sheenColor = opts?.sheenColor ?? 0x000000ff;
|
|
47
47
|
material.sheenColorMap = opts?.sheenColorMap ?? null;
|
|
48
48
|
material.sheenRoughness = opts?.sheenRoughness ?? 0;
|
|
@@ -53,7 +53,7 @@ export function createSheenPbrMaterial(opts) {
|
|
|
53
53
|
// KHR_materials_specular: independent dielectric specular strength and tint. `specular` defaults
|
|
54
54
|
// to 1 (full), `specularColor` to white, maps to null. Composes a default `standard` block.
|
|
55
55
|
export function createSpecularPbrMaterial(opts) {
|
|
56
|
-
const material = createSurfaceMaterial(SpecularPbrMaterialKind);
|
|
56
|
+
const material = createSurfaceMaterial(SpecularPbrMaterialKind, opts);
|
|
57
57
|
material.specular = opts?.specular ?? 1;
|
|
58
58
|
material.specularColor = opts?.specularColor ?? 0xffffffff;
|
|
59
59
|
material.specularColorMap = opts?.specularColorMap ?? null;
|
|
@@ -65,7 +65,7 @@ export function createSpecularPbrMaterial(opts) {
|
|
|
65
65
|
// to 0 (disabled), `subsurfaceColor` to white, `thickness` to 0, maps to null. Composes a
|
|
66
66
|
// default `standard` block.
|
|
67
67
|
export function createSubsurfacePbrMaterial(opts) {
|
|
68
|
-
const material = createSurfaceMaterial(SubsurfacePbrMaterialKind);
|
|
68
|
+
const material = createSurfaceMaterial(SubsurfacePbrMaterialKind, opts);
|
|
69
69
|
material.standard = opts?.standard ?? createStandardPbrMaterialProperties();
|
|
70
70
|
material.subsurface = opts?.subsurface ?? 0;
|
|
71
71
|
material.subsurfaceColor = opts?.subsurfaceColor ?? 0xffffffff;
|
|
@@ -79,7 +79,7 @@ export function createSubsurfacePbrMaterial(opts) {
|
|
|
79
79
|
// `attenuationDistance` to Infinity (no absorption), `ior` to glTF's 1.5, maps to null.
|
|
80
80
|
// Composes a default `standard` block.
|
|
81
81
|
export function createTransmissionVolumePbrMaterial(opts) {
|
|
82
|
-
const material = createSurfaceMaterial(TransmissionVolumePbrMaterialKind);
|
|
82
|
+
const material = createSurfaceMaterial(TransmissionVolumePbrMaterialKind, opts);
|
|
83
83
|
material.attenuationColor = opts?.attenuationColor ?? 0xffffffff;
|
|
84
84
|
material.attenuationDistance = opts?.attenuationDistance ?? Infinity;
|
|
85
85
|
material.ior = opts?.ior ?? 1.5;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbrExtensionMaterials.js","sourceRoot":"","sources":["../src/pbrExtensionMaterials.ts"],"names":[],"mappings":"AASA,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,iCAAiC,GAClC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mCAAmC,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,0FAA0F;AAC1F,4FAA4F;AAC5F,oBAAoB;AACpB,MAAM,UAAU,2BAA2B,CAAC,IAA+C;IACzF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,yBAAyB,CAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"pbrExtensionMaterials.js","sourceRoot":"","sources":["../src/pbrExtensionMaterials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbrMaterials.d.ts","sourceRoot":"","sources":["../src/pbrMaterials.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,6BAA6B,EAC7B,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,iBAAiB,CAAC;AAmBzB,wBAAgB,sCAAsC,CACpD,GAAG,EAAE,6BAA6B,EAClC,MAAM,EAAE,QAAQ,CAAC,6BAA6B,CAAC,GAC9C,IAAI,
|
|
1
|
+
{"version":3,"file":"pbrMaterials.d.ts","sourceRoot":"","sources":["../src/pbrMaterials.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,6BAA6B,EAC7B,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,iBAAiB,CAAC;AAmBzB,wBAAgB,sCAAsC,CACpD,GAAG,EAAE,6BAA6B,EAClC,MAAM,EAAE,QAAQ,CAAC,6BAA6B,CAAC,GAC9C,IAAI,CAqDN;AAKD,wBAAgB,mCAAmC,CACjD,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GACtD,6BAA6B,CAe/B;AAKD,wBAAgB,yBAAyB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,GAAG,mBAAmB,CAI5G;AAKD,wBAAgB,mCAAmC,CACjD,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GACtD,6BAA6B,CAI/B"}
|
package/dist/pbrMaterials.js
CHANGED
|
@@ -53,6 +53,9 @@ export function convertSpecularGlossinessToStandardPbr(out, source) {
|
|
|
53
53
|
const baseG = diffG * (1 - specLuma * (1 - metallic));
|
|
54
54
|
const baseB = diffB * (1 - specLuma * (1 - metallic));
|
|
55
55
|
const baseColor = packLinear(baseR, baseG, baseB, diffA);
|
|
56
|
+
// Specular-glossiness carries no dedicated coverage map; leave the standard block's alpha map
|
|
57
|
+
// empty so the converted material's alpha comes from baseColor/baseColorMap alone.
|
|
58
|
+
out.alphaMap = null;
|
|
56
59
|
out.baseColor = baseColor;
|
|
57
60
|
out.baseColorMap = diffuseMap;
|
|
58
61
|
out.emissive = emissive;
|
|
@@ -70,7 +73,7 @@ export function convertSpecularGlossinessToStandardPbr(out, source) {
|
|
|
70
73
|
// defaults to white, `specular` to white, `glossiness` to 1, `emissive` to opaque black,
|
|
71
74
|
// `emissiveStrength` to 1, `normalScale`/`occlusionStrength` to 1, all maps to null.
|
|
72
75
|
export function createSpecularGlossinessPbrMaterial(opts) {
|
|
73
|
-
const material = createSurfaceMaterial(SpecularGlossinessPbrMaterialKind);
|
|
76
|
+
const material = createSurfaceMaterial(SpecularGlossinessPbrMaterialKind, opts);
|
|
74
77
|
material.diffuse = opts?.diffuse ?? 0xffffffff;
|
|
75
78
|
material.diffuseMap = opts?.diffuseMap ?? null;
|
|
76
79
|
material.emissive = opts?.emissive ?? 0x000000ff;
|
|
@@ -89,7 +92,7 @@ export function createSpecularGlossinessPbrMaterial(opts) {
|
|
|
89
92
|
// (`metallic` 0) and fully rough (`roughness` 1), opaque-black `emissive` at unit strength,
|
|
90
93
|
// unit `normalScale`/`occlusionStrength`, all maps null.
|
|
91
94
|
export function createStandardPbrMaterial(opts) {
|
|
92
|
-
const material = createSurfaceMaterial(StandardPbrMaterialKind);
|
|
95
|
+
const material = createSurfaceMaterial(StandardPbrMaterialKind, opts);
|
|
93
96
|
assignStandardPbrMaterialProperties(material, opts);
|
|
94
97
|
return material;
|
|
95
98
|
}
|
|
@@ -104,6 +107,7 @@ export function createStandardPbrMaterialProperties(opts) {
|
|
|
104
107
|
// Writes the metallic-roughness property defaults (overridden by `opts`) onto `target`. Shared
|
|
105
108
|
// by the StandardPbrMaterial constructor and the standalone property-block constructor.
|
|
106
109
|
function assignStandardPbrMaterialProperties(target, opts) {
|
|
110
|
+
target.alphaMap = opts?.alphaMap ?? null;
|
|
107
111
|
target.baseColor = opts?.baseColor ?? 0xffffffff;
|
|
108
112
|
target.baseColorMap = opts?.baseColorMap ?? null;
|
|
109
113
|
target.emissive = opts?.emissive ?? 0x000000ff;
|
package/dist/pbrMaterials.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbrMaterials.js","sourceRoot":"","sources":["../src/pbrMaterials.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pbrMaterials.js","sourceRoot":"","sources":["../src/pbrMaterials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Kind, MaterialAlphaMode, SurfaceMaterial } from '@flighthq/types';
|
|
2
|
-
export declare function createSurfaceMaterial(kind: Kind): SurfaceMaterial;
|
|
1
|
+
import type { Kind, MaterialAlphaMode, SurfaceMaterial, SurfaceMaterialOptions } from '@flighthq/types';
|
|
2
|
+
export declare function createSurfaceMaterial(kind: Kind, opts?: Readonly<SurfaceMaterialOptions>): SurfaceMaterial;
|
|
3
3
|
export declare function getMaterialAlphaMode(source: Readonly<SurfaceMaterial>): MaterialAlphaMode;
|
|
4
4
|
export declare function isMaterialBlended(source: Readonly<SurfaceMaterial>): boolean;
|
|
5
5
|
export declare function isMaterialMasked(source: Readonly<SurfaceMaterial>): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surfaceMaterial.d.ts","sourceRoot":"","sources":["../src/surfaceMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"surfaceMaterial.d.ts","sourceRoot":"","sources":["../src/surfaceMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAWnH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,eAAe,CAQ1G;AAKD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,iBAAiB,CAEzF;AAID,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAE5E;AAID,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAE3E;AAID,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAE3E"}
|
package/dist/surfaceMaterial.js
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { BlendMode } from '@flighthq/types';
|
|
2
2
|
import { createMaterial } from './material';
|
|
3
|
-
// Builds a SurfaceMaterial carrying `kind` and the shared trailer
|
|
4
|
-
// single-sided, straight alpha, Normal blend, a 0.5
|
|
5
|
-
// starts from this and adds its own maps and scalars
|
|
6
|
-
//
|
|
7
|
-
|
|
3
|
+
// Builds a SurfaceMaterial carrying `kind` and the shared trailer, taking each trailer field from
|
|
4
|
+
// `opts` or falling back to its default: opaque, single-sided, straight alpha, Normal blend, a 0.5
|
|
5
|
+
// mask cutoff. Every 3D material constructor starts from this and adds its own maps and scalars;
|
|
6
|
+
// forwarding `opts` here is what lets any constructor set `alphaMode`/`alphaCutoff`/`doubleSided`/
|
|
7
|
+
// `blendMode`/`alphaType` (e.g. `alphaMode: 'mask'` for an alpha-mapped cutout). The result is a
|
|
8
|
+
// plain entity; callers mutate the returned object to set their own fields before returning it.
|
|
9
|
+
export function createSurfaceMaterial(kind, opts) {
|
|
8
10
|
const material = createMaterial(kind);
|
|
9
|
-
material.alphaCutoff = DEFAULT_ALPHA_CUTOFF;
|
|
10
|
-
material.alphaMode = DEFAULT_ALPHA_MODE;
|
|
11
|
-
material.alphaType = DEFAULT_ALPHA_TYPE;
|
|
12
|
-
material.blendMode = BlendMode.Normal;
|
|
13
|
-
material.doubleSided = DEFAULT_DOUBLE_SIDED;
|
|
11
|
+
material.alphaCutoff = opts?.alphaCutoff ?? DEFAULT_ALPHA_CUTOFF;
|
|
12
|
+
material.alphaMode = opts?.alphaMode ?? DEFAULT_ALPHA_MODE;
|
|
13
|
+
material.alphaType = opts?.alphaType ?? DEFAULT_ALPHA_TYPE;
|
|
14
|
+
material.blendMode = opts?.blendMode ?? BlendMode.Normal;
|
|
15
|
+
material.doubleSided = opts?.doubleSided ?? DEFAULT_DOUBLE_SIDED;
|
|
14
16
|
return material;
|
|
15
17
|
}
|
|
16
18
|
// Returns the alpha mode of the material. The alpha mode controls how a material resolves
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surfaceMaterial.js","sourceRoot":"","sources":["../src/surfaceMaterial.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,
|
|
1
|
+
{"version":3,"file":"surfaceMaterial.js","sourceRoot":"","sources":["../src/surfaceMaterial.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,kGAAkG;AAClG,mGAAmG;AACnG,iGAAiG;AACjG,mGAAmG;AACnG,iGAAiG;AACjG,gGAAgG;AAChG,MAAM,UAAU,qBAAqB,CAAC,IAAU,EAAE,IAAuC;IACvF,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAoB,CAAC;IACzD,QAAQ,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,oBAAoB,CAAC;IACjE,QAAQ,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,kBAAkB,CAAC;IAC3D,QAAQ,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,kBAAkB,CAAC;IAC3D,QAAQ,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC;IACzD,QAAQ,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,oBAAoB,CAAC;IACjE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,0FAA0F;AAC1F,0FAA0F;AAC1F,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB,CAAC,MAAiC;IACpE,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED,sFAAsF;AACtF,8CAA8C;AAC9C,MAAM,UAAU,iBAAiB,CAAC,MAAiC;IACjE,OAAO,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC;AACtC,CAAC;AAED,4FAA4F;AAC5F,kEAAkE;AAClE,MAAM,UAAU,gBAAgB,CAAC,MAAiC;IAChE,OAAO,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC;AACrC,CAAC;AAED,uFAAuF;AACvF,mEAAmE;AACnE,MAAM,UAAU,gBAAgB,CAAC,MAAiC;IAChE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC;AACvC,CAAC;AAED,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,kBAAkB,GAAsB,QAAQ,CAAC;AACvD,MAAM,kBAAkB,GAAc,UAAU,CAAC;AACjD,MAAM,oBAAoB,GAAG,KAAK,CAAC"}
|
package/dist/unlitMaterials.js
CHANGED
|
@@ -3,7 +3,7 @@ import { createSurfaceMaterial } from './surfaceMaterial';
|
|
|
3
3
|
// Depth-output pass material. `near`/`far` default to a unit range; the depth pass overrides
|
|
4
4
|
// them with the camera's range when used as pass infrastructure.
|
|
5
5
|
export function createDepthMaterial(opts) {
|
|
6
|
-
const material = createSurfaceMaterial(DepthMaterialKind);
|
|
6
|
+
const material = createSurfaceMaterial(DepthMaterialKind, opts);
|
|
7
7
|
material.far = opts?.far ?? 1;
|
|
8
8
|
material.near = opts?.near ?? 0;
|
|
9
9
|
return material;
|
|
@@ -11,7 +11,7 @@ export function createDepthMaterial(opts) {
|
|
|
11
11
|
// Self-illuminating, lighting-independent material. `emissive` defaults to white,
|
|
12
12
|
// `emissiveStrength` to 1 (> 1 drives bloom on GPU backends), the map to null.
|
|
13
13
|
export function createEmissiveMaterial(opts) {
|
|
14
|
-
const material = createSurfaceMaterial(EmissiveMaterialKind);
|
|
14
|
+
const material = createSurfaceMaterial(EmissiveMaterialKind, opts);
|
|
15
15
|
material.emissive = opts?.emissive ?? 0xffffffff;
|
|
16
16
|
material.emissiveMap = opts?.emissiveMap ?? null;
|
|
17
17
|
material.emissiveStrength = opts?.emissiveStrength ?? 1;
|
|
@@ -20,14 +20,14 @@ export function createEmissiveMaterial(opts) {
|
|
|
20
20
|
// Material-capture (matcap) material: a prebaked lit sphere sampled by the view-space normal.
|
|
21
21
|
// `matcap` defaults to null, `tint` to white. Lighting-independent.
|
|
22
22
|
export function createMatcapMaterial(opts) {
|
|
23
|
-
const material = createSurfaceMaterial(MatcapMaterialKind);
|
|
23
|
+
const material = createSurfaceMaterial(MatcapMaterialKind, opts);
|
|
24
24
|
material.matcap = opts?.matcap ?? null;
|
|
25
25
|
material.tint = opts?.tint ?? 0xffffffff;
|
|
26
26
|
return material;
|
|
27
27
|
}
|
|
28
28
|
// Normal-output pass material. `normalMap` defaults to null, `normalScale` to 1.
|
|
29
29
|
export function createNormalMaterial(opts) {
|
|
30
|
-
const material = createSurfaceMaterial(NormalMaterialKind);
|
|
30
|
+
const material = createSurfaceMaterial(NormalMaterialKind, opts);
|
|
31
31
|
material.normalMap = opts?.normalMap ?? null;
|
|
32
32
|
material.normalScale = opts?.normalScale ?? 1;
|
|
33
33
|
return material;
|
|
@@ -35,7 +35,7 @@ export function createNormalMaterial(opts) {
|
|
|
35
35
|
// Cel-shaded material: diffuse N·L quantized through a 1D ramp into stepped bands. `baseColor`
|
|
36
36
|
// defaults to white, maps to null, `steps` to 3 (the band count used when no ramp is bound).
|
|
37
37
|
export function createToonMaterial(opts) {
|
|
38
|
-
const material = createSurfaceMaterial(ToonMaterialKind);
|
|
38
|
+
const material = createSurfaceMaterial(ToonMaterialKind, opts);
|
|
39
39
|
material.baseColor = opts?.baseColor ?? 0xffffffff;
|
|
40
40
|
material.baseColorMap = opts?.baseColorMap ?? null;
|
|
41
41
|
material.ramp = opts?.ramp ?? null;
|
|
@@ -46,7 +46,7 @@ export function createToonMaterial(opts) {
|
|
|
46
46
|
// `baseColorVideoMap` to null. Full fidelity on every backend including Canvas2D; a bound
|
|
47
47
|
// `baseColorVideoMap` (live video stream) is sampled only on the GL backend today.
|
|
48
48
|
export function createUnlitMaterial(opts) {
|
|
49
|
-
const material = createSurfaceMaterial(UnlitMaterialKind);
|
|
49
|
+
const material = createSurfaceMaterial(UnlitMaterialKind, opts);
|
|
50
50
|
material.baseColor = opts?.baseColor ?? 0xffffffff;
|
|
51
51
|
material.baseColorMap = opts?.baseColorMap ?? null;
|
|
52
52
|
material.baseColorVideoMap = opts?.baseColorVideoMap ?? null;
|
|
@@ -54,13 +54,13 @@ export function createUnlitMaterial(opts) {
|
|
|
54
54
|
}
|
|
55
55
|
// Uses the mesh's `color0` vertex attribute as unlit surface color. `tint` defaults to white.
|
|
56
56
|
export function createVertexColorMaterial(opts) {
|
|
57
|
-
const material = createSurfaceMaterial(VertexColorMaterialKind);
|
|
57
|
+
const material = createSurfaceMaterial(VertexColorMaterialKind, opts);
|
|
58
58
|
material.tint = opts?.tint ?? 0xffffffff;
|
|
59
59
|
return material;
|
|
60
60
|
}
|
|
61
61
|
// Edge-only debug material. `color` defaults to white, `thickness` to 1 pixel. No maps.
|
|
62
62
|
export function createWireframeMaterial(opts) {
|
|
63
|
-
const material = createSurfaceMaterial(WireframeMaterialKind);
|
|
63
|
+
const material = createSurfaceMaterial(WireframeMaterialKind, opts);
|
|
64
64
|
material.color = opts?.color ?? 0xffffffff;
|
|
65
65
|
material.thickness = opts?.thickness ?? 1;
|
|
66
66
|
return material;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unlitMaterials.js","sourceRoot":"","sources":["../src/unlitMaterials.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,6FAA6F;AAC7F,iEAAiE;AACjE,MAAM,UAAU,mBAAmB,CAAC,IAAuC;IACzE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,iBAAiB,CAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"unlitMaterials.js","sourceRoot":"","sources":["../src/unlitMaterials.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/materials",
|
|
3
|
-
"version": "0.2.1-next.
|
|
3
|
+
"version": "0.2.1-next.666.4af7f8b",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/flighthq/flight.git",
|
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@flighthq/color": "0.2.1-next.
|
|
36
|
-
"@flighthq/entity": "0.2.1-next.
|
|
37
|
-
"@flighthq/types": "0.2.1-next.
|
|
35
|
+
"@flighthq/color": "0.2.1-next.666.4af7f8b",
|
|
36
|
+
"@flighthq/entity": "0.2.1-next.666.4af7f8b",
|
|
37
|
+
"@flighthq/types": "0.2.1-next.666.4af7f8b"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"typescript": "^5.3.0"
|
|
@@ -10,11 +10,18 @@ describe('createBlinnPhongMaterial', () => {
|
|
|
10
10
|
expect(material.specular).toBe(0xffffffff);
|
|
11
11
|
expect(material.shininess).toBe(32);
|
|
12
12
|
expect(material.normalMap).toBeNull();
|
|
13
|
+
expect(material.alphaMap).toBeNull();
|
|
13
14
|
});
|
|
14
15
|
|
|
15
16
|
it('applies overrides', () => {
|
|
16
17
|
expect(createBlinnPhongMaterial({ shininess: 8 }).shininess).toBe(8);
|
|
17
18
|
});
|
|
19
|
+
|
|
20
|
+
it('forwards the surface trailer so an alpha-mapped cutout is expressible through the constructor', () => {
|
|
21
|
+
const material = createBlinnPhongMaterial({ alphaCutoff: 0.3, alphaMode: 'mask' });
|
|
22
|
+
expect(material.alphaMode).toBe('mask');
|
|
23
|
+
expect(material.alphaCutoff).toBe(0.3);
|
|
24
|
+
});
|
|
18
25
|
});
|
|
19
26
|
|
|
20
27
|
describe('createLambertMaterial', () => {
|
package/src/pbrMaterials.test.ts
CHANGED
|
@@ -38,11 +38,13 @@ describe('convertSpecularGlossinessToStandardPbr', () => {
|
|
|
38
38
|
const packedMap = {} as Texture;
|
|
39
39
|
const previousMap = {} as Texture;
|
|
40
40
|
const source = createSpecularGlossinessPbrMaterial({ specularGlossinessMap: packedMap });
|
|
41
|
-
const out = createStandardPbrMaterialProperties({ metallicRoughnessMap: previousMap });
|
|
41
|
+
const out = createStandardPbrMaterialProperties({ alphaMap: previousMap, metallicRoughnessMap: previousMap });
|
|
42
42
|
|
|
43
43
|
convertSpecularGlossinessToStandardPbr(out, source);
|
|
44
44
|
|
|
45
45
|
expect(out.metallicRoughnessMap).toBeNull();
|
|
46
|
+
// Specular-glossiness carries no coverage map, so any pre-existing alpha map on `out` is cleared.
|
|
47
|
+
expect(out.alphaMap).toBeNull();
|
|
46
48
|
expect(source.specularGlossinessMap).toBe(packedMap);
|
|
47
49
|
});
|
|
48
50
|
it('is alias-safe when out is used as a different object from source', () => {
|
|
@@ -78,6 +80,7 @@ describe('createStandardPbrMaterial', () => {
|
|
|
78
80
|
expect(material.roughness).toBe(1);
|
|
79
81
|
expect(material.emissive).toBe(0x000000ff);
|
|
80
82
|
expect(material.baseColorMap).toBeNull();
|
|
83
|
+
expect(material.alphaMap).toBeNull();
|
|
81
84
|
});
|
|
82
85
|
|
|
83
86
|
it('applies overrides', () => {
|
|
@@ -23,6 +23,17 @@ describe('createSurfaceMaterial', () => {
|
|
|
23
23
|
expect(material.blendMode).toBe(BlendMode.Normal);
|
|
24
24
|
expect(material.doubleSided).toBe(false);
|
|
25
25
|
});
|
|
26
|
+
|
|
27
|
+
it('forwards the shared trailer fields from opts', () => {
|
|
28
|
+
const material = createSurfaceMaterial(TestSurfaceMaterialKind, {
|
|
29
|
+
alphaCutoff: 0.25,
|
|
30
|
+
alphaMode: 'mask',
|
|
31
|
+
doubleSided: true,
|
|
32
|
+
});
|
|
33
|
+
expect(material.alphaMode).toBe('mask');
|
|
34
|
+
expect(material.alphaCutoff).toBe(0.25);
|
|
35
|
+
expect(material.doubleSided).toBe(true);
|
|
36
|
+
});
|
|
26
37
|
});
|
|
27
38
|
|
|
28
39
|
describe('getMaterialAlphaMode', () => {
|