@flighthq/materials 0.5.1-edge.1471.4e82419 → 0.5.1-edge.1685.dc0e23a
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/README.md +2 -2
- package/dist/classicMaterials.js +4 -4
- package/dist/classicMaterials.js.map +1 -1
- package/dist/contract.d.ts +1 -1
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +1 -1
- package/dist/contract.js.map +1 -1
- package/dist/customShaderMaterial.js +2 -2
- package/dist/customShaderMaterial.js.map +1 -1
- package/dist/extendedPbrMaterial.js +2 -2
- package/dist/extendedPbrMaterial.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/material3d.d.ts +7 -0
- package/dist/material3d.d.ts.map +1 -0
- package/dist/{surfaceMaterial.js → material3d.js} +8 -8
- package/dist/material3d.js.map +1 -0
- package/dist/pbrMaterials.js +3 -3
- package/dist/pbrMaterials.js.map +1 -1
- package/dist/unlitMaterials.js +9 -9
- package/dist/unlitMaterials.js.map +1 -1
- package/package.json +5 -5
- package/src/material3d.test.ts +79 -0
- package/dist/surfaceMaterial.d.ts +0 -7
- package/dist/surfaceMaterial.d.ts.map +0 -1
- package/dist/surfaceMaterial.js.map +0 -1
- package/src/surfaceMaterial.test.ts +0 -79
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/materials`. The `@fl
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/materials@0.5.1-edge.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/materials@0.5.1-edge.1685.dc0e23a](https://github.com/flighthq/flight/tree/dc0e23a17453ec75c20ccbf07058a57b5ef10c4c/packages/materials)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/dc0e23a17453ec75c20ccbf07058a57b5ef10c4c/LICENSE.md)
|
package/dist/classicMaterials.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BlinnPhongMaterialKind, LambertMaterialKind, PhongMaterialKind } from '@flighthq/types/contract';
|
|
2
|
-
import {
|
|
2
|
+
import { createMaterial3D } from './material3d';
|
|
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 =
|
|
6
|
+
const material = createMaterial3D(BlinnPhongMaterialKind, opts);
|
|
7
7
|
material.alphaMap = opts?.alphaMap ?? null;
|
|
8
8
|
material.diffuse = opts?.diffuse ?? 0xffffffff;
|
|
9
9
|
material.diffuseMap = opts?.diffuseMap ?? null;
|
|
@@ -17,7 +17,7 @@ export function createBlinnPhongMaterial(opts) {
|
|
|
17
17
|
// Classic diffuse-only Lambertian material. `diffuse` defaults to white, `emissive` to opaque
|
|
18
18
|
// black (no self-illumination), both maps to null.
|
|
19
19
|
export function createLambertMaterial(opts) {
|
|
20
|
-
const material =
|
|
20
|
+
const material = createMaterial3D(LambertMaterialKind, opts);
|
|
21
21
|
material.diffuse = opts?.diffuse ?? 0xffffffff;
|
|
22
22
|
material.diffuseMap = opts?.diffuseMap ?? null;
|
|
23
23
|
material.emissive = opts?.emissive ?? 0x000000ff;
|
|
@@ -27,7 +27,7 @@ export function createLambertMaterial(opts) {
|
|
|
27
27
|
// Classic Phong material: diffuse plus a reflection-vector specular lobe. `diffuse`/`specular`
|
|
28
28
|
// default to white, `shininess` to 32, `normalScale` to 1, all maps to null.
|
|
29
29
|
export function createPhongMaterial(opts) {
|
|
30
|
-
const material =
|
|
30
|
+
const material = createMaterial3D(PhongMaterialKind, opts);
|
|
31
31
|
material.diffuse = opts?.diffuse ?? 0xffffffff;
|
|
32
32
|
material.diffuseMap = opts?.diffuseMap ?? null;
|
|
33
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,0BAA0B,CAAC;AAE1G,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"classicMaterials.js","sourceRoot":"","sources":["../src/classicMaterials.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE1G,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,+FAA+F;AAC/F,6EAA6E;AAC7E,MAAM,UAAU,wBAAwB,CAAC,IAA4C;IACnF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,sBAAsB,EAAE,IAAI,CAAuB,CAAC;IACtF,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,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAoB,CAAC;IAChF,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,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAkB,CAAC;IAC5E,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"}
|
package/dist/contract.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export * from './pbrMaterials';
|
|
|
15
15
|
export * from './phongToPbr';
|
|
16
16
|
export * from './sheenPbrExtension';
|
|
17
17
|
export * from './specularPbrExtension';
|
|
18
|
-
export * from './
|
|
18
|
+
export * from './material3d';
|
|
19
19
|
export * from './standardMaterial';
|
|
20
20
|
export * from './transmissionVolumePbrExtension';
|
|
21
21
|
export * from './unlitMaterials';
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,oCAAoC,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,wCAAwC,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/contract.js
CHANGED
|
@@ -15,7 +15,7 @@ export * from './pbrMaterials';
|
|
|
15
15
|
export * from './phongToPbr';
|
|
16
16
|
export * from './sheenPbrExtension';
|
|
17
17
|
export * from './specularPbrExtension';
|
|
18
|
-
export * from './
|
|
18
|
+
export * from './material3d';
|
|
19
19
|
export * from './standardMaterial';
|
|
20
20
|
export * from './transmissionVolumePbrExtension';
|
|
21
21
|
export * from './unlitMaterials';
|
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,oCAAoC,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,wCAAwC,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { CustomShaderMaterialKind } from '@flighthq/types/contract';
|
|
2
|
-
import {
|
|
2
|
+
import { createMaterial3D } from './material3d';
|
|
3
3
|
// User-authored shader material. `shaderKey` references backend-native source registered on the
|
|
4
4
|
// render state (registerGlCustomMaterialShader or registerWgpuCustomMaterialShader); `uniforms`
|
|
5
5
|
// carries flat scalar/vector values and `textures` carries named bindings. All default to their
|
|
6
6
|
// sentinel (empty key, null bags) so a bare material remains structurally valid before registration.
|
|
7
7
|
export function createCustomShaderMaterial(opts) {
|
|
8
|
-
const material =
|
|
8
|
+
const material = createMaterial3D(CustomShaderMaterialKind, opts);
|
|
9
9
|
material.shaderKey = opts?.shaderKey ?? '';
|
|
10
10
|
material.textures = opts?.textures ?? null;
|
|
11
11
|
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,0BAA0B,CAAC;AAEpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"customShaderMaterial.js","sourceRoot":"","sources":["../src/customShaderMaterial.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,gGAAgG;AAChG,gGAAgG;AAChG,gGAAgG;AAChG,qGAAqG;AACrG,MAAM,UAAU,0BAA0B,CAAC,IAA8C;IACvF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,wBAAwB,EAAE,IAAI,CAAyB,CAAC;IAC1F,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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ExtendedPbrMaterialKind } from '@flighthq/types/contract';
|
|
2
|
+
import { createMaterial3D } from './material3d';
|
|
2
3
|
import { createStandardPbrMaterialProperties } from './pbrMaterials';
|
|
3
|
-
import { createSurfaceMaterial } from './surfaceMaterial';
|
|
4
4
|
// Builds the composable PBR material lane. The ordered extension list is retained by reference so its
|
|
5
5
|
// identity and ordering remain an explicit batching/program-selection fact.
|
|
6
6
|
export function createExtendedPbrMaterial(opts) {
|
|
7
|
-
const material =
|
|
7
|
+
const material = createMaterial3D(ExtendedPbrMaterialKind, opts);
|
|
8
8
|
material.extensions = opts?.extensions ?? [];
|
|
9
9
|
material.standard = opts?.standard ?? createStandardPbrMaterialProperties();
|
|
10
10
|
return material;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extendedPbrMaterial.js","sourceRoot":"","sources":["../src/extendedPbrMaterial.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"extendedPbrMaterial.js","sourceRoot":"","sources":["../src/extendedPbrMaterial.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,mCAAmC,EAAE,MAAM,gBAAgB,CAAC;AAErE,sGAAsG;AACtG,4EAA4E;AAC5E,MAAM,UAAU,yBAAyB,CAAC,IAA6C;IACrF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,uBAAuB,EAAE,IAAI,CAAwB,CAAC;IACxF,QAAQ,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;IAC7C,QAAQ,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,mCAAmC,EAAE,CAAC;IAC5E,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { clampStandardPbrMaterialProperties, cloneColorScaleBias, cloneMaterial, concatColorScaleBias, convertPhongToStandardPbrMaterial, convertSpecularGlossinessToStandardPbr, disableMaterialConversionGuards, enableMaterialConversionGuards, explainPhongConversion, explainSpecularGlossinessConversion, copyColorScaleBias, copyColorScaleBiasToArrays, copyMaterial, createAluminumStandardPbrMaterial, createAnisotropyPbrExtension, createBlinnPhongMaterial, createCarbonStandardPbrMaterial, createClearcoatPbrExtension, createColorScaleBias, createCustomShaderMaterial, createDepthMaterial, createEmissiveMaterial, createExtendedPbrMaterial, createGlassExtendedPbrMaterial, createGoldStandardPbrMaterial, createIridescencePbrExtension, createIronStandardPbrMaterial, createLambertMaterial, createMarbleStandardPbrMaterial, createMatcapMaterial, createMaterial, createNormalMaterial, createPhongMaterial, createPlasticStandardPbrMaterial, createRubberStandardPbrMaterial, createSheenPbrExtension, createSilverStandardPbrMaterial, createSkinStandardPbrMaterial, createSpecularPbrExtension, createSpecularGlossinessPbrMaterial, createStandardMaterial, createStandardPbrMaterial, createStandardPbrMaterialProperties,
|
|
1
|
+
export { clampStandardPbrMaterialProperties, cloneColorScaleBias, cloneMaterial, concatColorScaleBias, convertPhongToStandardPbrMaterial, convertSpecularGlossinessToStandardPbr, disableMaterialConversionGuards, enableMaterialConversionGuards, explainPhongConversion, explainSpecularGlossinessConversion, copyColorScaleBias, copyColorScaleBiasToArrays, copyMaterial, createAluminumStandardPbrMaterial, createAnisotropyPbrExtension, createBlinnPhongMaterial, createCarbonStandardPbrMaterial, createClearcoatPbrExtension, createColorScaleBias, createCustomShaderMaterial, createDepthMaterial, createEmissiveMaterial, createExtendedPbrMaterial, createGlassExtendedPbrMaterial, createGoldStandardPbrMaterial, createIridescencePbrExtension, createIronStandardPbrMaterial, createLambertMaterial, createMarbleStandardPbrMaterial, createMatcapMaterial, createMaterial, createNormalMaterial, createPhongMaterial, createPlasticStandardPbrMaterial, createRubberStandardPbrMaterial, createSheenPbrExtension, createSilverStandardPbrMaterial, createSkinStandardPbrMaterial, createSpecularPbrExtension, createSpecularGlossinessPbrMaterial, createStandardMaterial, createStandardPbrMaterial, createStandardPbrMaterialProperties, createMaterial3D, createToonMaterial, createTransmissionVolumePbrExtension, createUnlitMaterial, createVertexColorMaterial, createWireframeMaterial, createWoodStandardPbrMaterial, createWrappedDiffusePbrExtension, equalsColorScaleBias, equalsColorScaleBiasBiases, equalsColorScaleBiasScales, equalsMaterial, getColorScaleBiasBiasRgb, getColorScaleBiasBiasRgba, getMaterialOfKind, getPbrMetallicFromPhongSpecular, getPbrRoughnessFromPhongShininess, getPhongToPbrLightExposure, getMaterial3DAlphaMode, invertColorScaleBias, isIdentityColorScaleBias, isMaterial3DBlended, isMaterial3DMasked, isMaterial3DOpaque, isValidAnisotropyPbrExtension, isValidClearcoatPbrExtension, isValidIridescencePbrExtension, isValidMaterialClearcoat, isValidMaterialIor, isValidMaterialIridescenceThickness, isValidMaterialWeight, isValidPbrUvSet, isValidSheenPbrExtension, isValidSpecularPbrExtension, isValidTransmissionVolumePbrExtension, isValidWrappedDiffusePbrExtension, setColorScaleBias, setColorScaleBiasBiasRgb, setColorScaleBiasBiasRgba, setColorScaleBiasIdentity, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,iCAAiC,EACjC,sCAAsC,EACtC,+BAA+B,EAC/B,8BAA8B,EAC9B,sBAAsB,EACtB,mCAAmC,EACnC,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,iCAAiC,EACjC,4BAA4B,EAC5B,wBAAwB,EACxB,+BAA+B,EAC/B,2BAA2B,EAC3B,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,qBAAqB,EACrB,+BAA+B,EAC/B,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,gCAAgC,EAChC,+BAA+B,EAC/B,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,EAC7B,0BAA0B,EAC1B,mCAAmC,EACnC,sBAAsB,EACtB,yBAAyB,EACzB,mCAAmC,EACnC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,iCAAiC,EACjC,sCAAsC,EACtC,+BAA+B,EAC/B,8BAA8B,EAC9B,sBAAsB,EACtB,mCAAmC,EACnC,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,iCAAiC,EACjC,4BAA4B,EAC5B,wBAAwB,EACxB,+BAA+B,EAC/B,2BAA2B,EAC3B,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,qBAAqB,EACrB,+BAA+B,EAC/B,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,gCAAgC,EAChC,+BAA+B,EAC/B,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,EAC7B,0BAA0B,EAC1B,mCAAmC,EACnC,sBAAsB,EACtB,yBAAyB,EACzB,mCAAmC,EACnC,gBAAgB,EAChB,kBAAkB,EAClB,oCAAoC,EACpC,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,EAC7B,gCAAgC,EAChC,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,cAAc,EACd,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,+BAA+B,EAC/B,iCAAiC,EACjC,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,6BAA6B,EAC7B,4BAA4B,EAC5B,8BAA8B,EAC9B,wBAAwB,EACxB,kBAAkB,EAClB,mCAAmC,EACnC,qBAAqB,EACrB,eAAe,EACf,wBAAwB,EACxB,2BAA2B,EAC3B,qCAAqC,EACrC,iCAAiC,EACjC,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { clampStandardPbrMaterialProperties, cloneColorScaleBias, cloneMaterial, concatColorScaleBias, convertPhongToStandardPbrMaterial, convertSpecularGlossinessToStandardPbr, disableMaterialConversionGuards, enableMaterialConversionGuards, explainPhongConversion, explainSpecularGlossinessConversion, copyColorScaleBias, copyColorScaleBiasToArrays, copyMaterial, createAluminumStandardPbrMaterial, createAnisotropyPbrExtension, createBlinnPhongMaterial, createCarbonStandardPbrMaterial, createClearcoatPbrExtension, createColorScaleBias, createCustomShaderMaterial, createDepthMaterial, createEmissiveMaterial, createExtendedPbrMaterial, createGlassExtendedPbrMaterial, createGoldStandardPbrMaterial, createIridescencePbrExtension, createIronStandardPbrMaterial, createLambertMaterial, createMarbleStandardPbrMaterial, createMatcapMaterial, createMaterial, createNormalMaterial, createPhongMaterial, createPlasticStandardPbrMaterial, createRubberStandardPbrMaterial, createSheenPbrExtension, createSilverStandardPbrMaterial, createSkinStandardPbrMaterial, createSpecularPbrExtension, createSpecularGlossinessPbrMaterial, createStandardMaterial, createStandardPbrMaterial, createStandardPbrMaterialProperties,
|
|
1
|
+
export { clampStandardPbrMaterialProperties, cloneColorScaleBias, cloneMaterial, concatColorScaleBias, convertPhongToStandardPbrMaterial, convertSpecularGlossinessToStandardPbr, disableMaterialConversionGuards, enableMaterialConversionGuards, explainPhongConversion, explainSpecularGlossinessConversion, copyColorScaleBias, copyColorScaleBiasToArrays, copyMaterial, createAluminumStandardPbrMaterial, createAnisotropyPbrExtension, createBlinnPhongMaterial, createCarbonStandardPbrMaterial, createClearcoatPbrExtension, createColorScaleBias, createCustomShaderMaterial, createDepthMaterial, createEmissiveMaterial, createExtendedPbrMaterial, createGlassExtendedPbrMaterial, createGoldStandardPbrMaterial, createIridescencePbrExtension, createIronStandardPbrMaterial, createLambertMaterial, createMarbleStandardPbrMaterial, createMatcapMaterial, createMaterial, createNormalMaterial, createPhongMaterial, createPlasticStandardPbrMaterial, createRubberStandardPbrMaterial, createSheenPbrExtension, createSilverStandardPbrMaterial, createSkinStandardPbrMaterial, createSpecularPbrExtension, createSpecularGlossinessPbrMaterial, createStandardMaterial, createStandardPbrMaterial, createStandardPbrMaterialProperties, createMaterial3D, createToonMaterial, createTransmissionVolumePbrExtension, createUnlitMaterial, createVertexColorMaterial, createWireframeMaterial, createWoodStandardPbrMaterial, createWrappedDiffusePbrExtension, equalsColorScaleBias, equalsColorScaleBiasBiases, equalsColorScaleBiasScales, equalsMaterial, getColorScaleBiasBiasRgb, getColorScaleBiasBiasRgba, getMaterialOfKind, getPbrMetallicFromPhongSpecular, getPbrRoughnessFromPhongShininess, getPhongToPbrLightExposure, getMaterial3DAlphaMode, invertColorScaleBias, isIdentityColorScaleBias, isMaterial3DBlended, isMaterial3DMasked, isMaterial3DOpaque, isValidAnisotropyPbrExtension, isValidClearcoatPbrExtension, isValidIridescencePbrExtension, isValidMaterialClearcoat, isValidMaterialIor, isValidMaterialIridescenceThickness, isValidMaterialWeight, isValidPbrUvSet, isValidSheenPbrExtension, isValidSpecularPbrExtension, isValidTransmissionVolumePbrExtension, isValidWrappedDiffusePbrExtension, setColorScaleBias, setColorScaleBiasBiasRgb, setColorScaleBiasBiasRgba, setColorScaleBiasIdentity, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,iCAAiC,EACjC,sCAAsC,EACtC,+BAA+B,EAC/B,8BAA8B,EAC9B,sBAAsB,EACtB,mCAAmC,EACnC,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,iCAAiC,EACjC,4BAA4B,EAC5B,wBAAwB,EACxB,+BAA+B,EAC/B,2BAA2B,EAC3B,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,qBAAqB,EACrB,+BAA+B,EAC/B,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,gCAAgC,EAChC,+BAA+B,EAC/B,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,EAC7B,0BAA0B,EAC1B,mCAAmC,EACnC,sBAAsB,EACtB,yBAAyB,EACzB,mCAAmC,EACnC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,iCAAiC,EACjC,sCAAsC,EACtC,+BAA+B,EAC/B,8BAA8B,EAC9B,sBAAsB,EACtB,mCAAmC,EACnC,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,iCAAiC,EACjC,4BAA4B,EAC5B,wBAAwB,EACxB,+BAA+B,EAC/B,2BAA2B,EAC3B,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,qBAAqB,EACrB,+BAA+B,EAC/B,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,gCAAgC,EAChC,+BAA+B,EAC/B,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,EAC7B,0BAA0B,EAC1B,mCAAmC,EACnC,sBAAsB,EACtB,yBAAyB,EACzB,mCAAmC,EACnC,gBAAgB,EAChB,kBAAkB,EAClB,oCAAoC,EACpC,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,EAC7B,gCAAgC,EAChC,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,cAAc,EACd,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,+BAA+B,EAC/B,iCAAiC,EACjC,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,6BAA6B,EAC7B,4BAA4B,EAC5B,8BAA8B,EAC9B,wBAAwB,EACxB,kBAAkB,EAClB,mCAAmC,EACnC,qBAAqB,EACrB,eAAe,EACf,wBAAwB,EACxB,2BAA2B,EAC3B,qCAAqC,EACrC,iCAAiC,EACjC,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Kind, MaterialAlphaMode, Material3D, Material3DOptions } from '@flighthq/types/contract';
|
|
2
|
+
export declare function createMaterial3D(kind: Kind, opts?: Readonly<Material3DOptions>): Material3D;
|
|
3
|
+
export declare function getMaterial3DAlphaMode(source: Readonly<Material3D>): MaterialAlphaMode;
|
|
4
|
+
export declare function isMaterial3DBlended(source: Readonly<Material3D>): boolean;
|
|
5
|
+
export declare function isMaterial3DMasked(source: Readonly<Material3D>): boolean;
|
|
6
|
+
export declare function isMaterial3DOpaque(source: Readonly<Material3D>): boolean;
|
|
7
|
+
//# sourceMappingURL=material3d.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"material3d.d.ts","sourceRoot":"","sources":["../src/material3d.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAWvG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAO3F;AAKD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAEtF;AAID,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,CAEzE;AAID,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,CAExE;AAID,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,CAExE"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { BlendMode } from '@flighthq/types/contract';
|
|
2
2
|
import { createMaterial } from './material';
|
|
3
|
-
// Builds a
|
|
4
|
-
// `opts` or falling back to its default: opaque, single-sided,
|
|
3
|
+
// Builds a Material3D carrying `kind` and the shared trailer, taking each trailer field from
|
|
4
|
+
// `opts` or falling back to its default: opaque, single-sided, Normal blend, and a 0.5
|
|
5
5
|
// mask cutoff. Every 3D material constructor starts from this and adds its own maps and scalars;
|
|
6
6
|
// forwarding `opts` here is what lets any constructor set `alphaMode`/`alphaCutoff`/`doubleSided`/
|
|
7
7
|
// `blendMode` (e.g. `alphaMode: 'mask'` for an alpha-mapped cutout). The result is a
|
|
8
8
|
// plain entity; callers mutate the returned object to set their own fields before returning it.
|
|
9
|
-
export function
|
|
9
|
+
export function createMaterial3D(kind, opts) {
|
|
10
10
|
const material = createMaterial(kind);
|
|
11
11
|
material.alphaCutoff = opts?.alphaCutoff ?? DEFAULT_ALPHA_CUTOFF;
|
|
12
12
|
material.alphaMode = opts?.alphaMode ?? DEFAULT_ALPHA_MODE;
|
|
@@ -17,25 +17,25 @@ export function createSurfaceMaterial(kind, opts) {
|
|
|
17
17
|
// Returns the alpha mode of the material. The alpha mode controls how a material resolves
|
|
18
18
|
// coverage: 'opaque' ignores base-color alpha, 'mask' hard-cuts at `alphaCutoff`, 'blend'
|
|
19
19
|
// alpha-blends. Callers typically branch on this to configure blend state.
|
|
20
|
-
export function
|
|
20
|
+
export function getMaterial3DAlphaMode(source) {
|
|
21
21
|
return source.alphaMode;
|
|
22
22
|
}
|
|
23
23
|
// Returns true when the material's alpha mode is 'blend'. Blended materials require a
|
|
24
24
|
// sorted draw order and a GPU blend equation.
|
|
25
|
-
export function
|
|
25
|
+
export function isMaterial3DBlended(source) {
|
|
26
26
|
return source.alphaMode === 'blend';
|
|
27
27
|
}
|
|
28
28
|
// Returns true when the material's alpha mode is 'mask'. Masked materials discard fragments
|
|
29
29
|
// whose alpha is below `alphaCutoff`; no blend state is required.
|
|
30
|
-
export function
|
|
30
|
+
export function isMaterial3DMasked(source) {
|
|
31
31
|
return source.alphaMode === 'mask';
|
|
32
32
|
}
|
|
33
33
|
// Returns true when the material's alpha mode is 'opaque'. Opaque materials ignore the
|
|
34
34
|
// base-color alpha channel; no blend state or discard is required.
|
|
35
|
-
export function
|
|
35
|
+
export function isMaterial3DOpaque(source) {
|
|
36
36
|
return source.alphaMode === 'opaque';
|
|
37
37
|
}
|
|
38
38
|
const DEFAULT_ALPHA_CUTOFF = 0.5;
|
|
39
39
|
const DEFAULT_ALPHA_MODE = 'opaque';
|
|
40
40
|
const DEFAULT_DOUBLE_SIDED = false;
|
|
41
|
-
//# sourceMappingURL=
|
|
41
|
+
//# sourceMappingURL=material3d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"material3d.js","sourceRoot":"","sources":["../src/material3d.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,6FAA6F;AAC7F,uFAAuF;AACvF,iGAAiG;AACjG,mGAAmG;AACnG,qFAAqF;AACrF,gGAAgG;AAChG,MAAM,UAAU,gBAAgB,CAAC,IAAU,EAAE,IAAkC;IAC7E,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAe,CAAC;IACpD,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,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,sBAAsB,CAAC,MAA4B;IACjE,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED,sFAAsF;AACtF,8CAA8C;AAC9C,MAAM,UAAU,mBAAmB,CAAC,MAA4B;IAC9D,OAAO,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC;AACtC,CAAC;AAED,4FAA4F;AAC5F,kEAAkE;AAClE,MAAM,UAAU,kBAAkB,CAAC,MAA4B;IAC7D,OAAO,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC;AACrC,CAAC;AAED,uFAAuF;AACvF,mEAAmE;AACnE,MAAM,UAAU,kBAAkB,CAAC,MAA4B;IAC7D,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC;AACvC,CAAC;AAED,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,kBAAkB,GAAsB,QAAQ,CAAC;AACvD,MAAM,oBAAoB,GAAG,KAAK,CAAC"}
|
package/dist/pbrMaterials.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { unpackColorToLinear } from '@flighthq/color/contract';
|
|
2
2
|
import { SpecularGlossinessPbrMaterialKind, StandardPbrMaterialKind } from '@flighthq/types/contract';
|
|
3
3
|
import { explainSpecularGlossinessConversion } from './explainMaterialConversion';
|
|
4
|
-
import {
|
|
4
|
+
import { createMaterial3D } from './material3d';
|
|
5
5
|
// Converts a legacy specular-glossiness material to a metallic-roughness property block.
|
|
6
6
|
// Writes `out` with the computed base-color, metallic, and roughness values. The conversion
|
|
7
7
|
// is the canonical KHR_materials_pbrSpecularGlossiness → metallic-roughness approximation:
|
|
@@ -79,7 +79,7 @@ export function convertSpecularGlossinessToStandardPbr(out, source) {
|
|
|
79
79
|
// defaults to white, `specular` to white, `glossiness` to 1, `emissive` to opaque black,
|
|
80
80
|
// `emissiveStrength` to 1, `normalScale`/`occlusionStrength` to 1, all maps to null.
|
|
81
81
|
export function createSpecularGlossinessPbrMaterial(opts) {
|
|
82
|
-
const material =
|
|
82
|
+
const material = createMaterial3D(SpecularGlossinessPbrMaterialKind, opts);
|
|
83
83
|
material.diffuse = opts?.diffuse ?? 0xffffffff;
|
|
84
84
|
material.diffuseMap = opts?.diffuseMap ?? null;
|
|
85
85
|
material.emissive = opts?.emissive ?? 0x000000ff;
|
|
@@ -98,7 +98,7 @@ export function createSpecularGlossinessPbrMaterial(opts) {
|
|
|
98
98
|
// (`metallic` 0) and fully rough (`roughness` 1), opaque-black `emissive` at unit strength,
|
|
99
99
|
// unit `normalScale`/`occlusionStrength`, all maps null.
|
|
100
100
|
export function createStandardPbrMaterial(opts) {
|
|
101
|
-
const material =
|
|
101
|
+
const material = createMaterial3D(StandardPbrMaterialKind, opts);
|
|
102
102
|
assignStandardPbrMaterialProperties(material, opts);
|
|
103
103
|
return material;
|
|
104
104
|
}
|
package/dist/pbrMaterials.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbrMaterials.js","sourceRoot":"","sources":["../src/pbrMaterials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAS/D,OAAO,EAAE,iCAAiC,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEtG,OAAO,EAAE,mCAAmC,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pbrMaterials.js","sourceRoot":"","sources":["../src/pbrMaterials.ts"],"names":[],"mappings":"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"}
|
package/dist/unlitMaterials.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { DepthMaterialKind, EmissiveMaterialKind, MatcapMaterialKind, NormalMaterialKind, ToonMaterialKind, UnlitMaterialKind, VertexColorMaterialKind, WireframeMaterialKind, } from '@flighthq/types/contract';
|
|
2
|
-
import {
|
|
2
|
+
import { createMaterial3D } from './material3d';
|
|
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 =
|
|
6
|
+
const material = createMaterial3D(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 =
|
|
14
|
+
const material = createMaterial3D(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 =
|
|
23
|
+
const material = createMaterial3D(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 =
|
|
30
|
+
const material = createMaterial3D(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 =
|
|
38
|
+
const material = createMaterial3D(ToonMaterialKind, opts);
|
|
39
39
|
material.baseColor = opts?.baseColor ?? 0xffffffff;
|
|
40
40
|
material.baseColorMap = opts?.baseColorMap ?? null;
|
|
41
41
|
material.ramp = opts?.ramp ?? null;
|
|
@@ -45,20 +45,20 @@ export function createToonMaterial(opts) {
|
|
|
45
45
|
// Lighting-independent flat-color material. `baseColor` defaults to white and the universal sampled
|
|
46
46
|
// map (still, video, or produced target) defaults to null.
|
|
47
47
|
export function createUnlitMaterial(opts) {
|
|
48
|
-
const material =
|
|
48
|
+
const material = createMaterial3D(UnlitMaterialKind, opts);
|
|
49
49
|
material.baseColor = opts?.baseColor ?? 0xffffffff;
|
|
50
50
|
material.baseColorMap = opts?.baseColorMap ?? null;
|
|
51
51
|
return material;
|
|
52
52
|
}
|
|
53
53
|
// Uses the mesh's `color0` vertex attribute as unlit surface color. `tint` defaults to white.
|
|
54
54
|
export function createVertexColorMaterial(opts) {
|
|
55
|
-
const material =
|
|
55
|
+
const material = createMaterial3D(VertexColorMaterialKind, opts);
|
|
56
56
|
material.tint = opts?.tint ?? 0xffffffff;
|
|
57
57
|
return material;
|
|
58
58
|
}
|
|
59
59
|
// Edge-only debug material. `color` defaults to white, `thickness` to 1 pixel. No maps.
|
|
60
60
|
export function createWireframeMaterial(opts) {
|
|
61
|
-
const material =
|
|
61
|
+
const material = createMaterial3D(WireframeMaterialKind, opts);
|
|
62
62
|
material.color = opts?.color ?? 0xffffffff;
|
|
63
63
|
material.thickness = opts?.thickness ?? 1;
|
|
64
64
|
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,0BAA0B,CAAC;AAElC,OAAO,EAAE,
|
|
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.5.1-edge.
|
|
3
|
+
"version": "0.5.1-edge.1685.dc0e23a",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/color": "0.5.1-edge.
|
|
42
|
-
"@flighthq/entity": "0.5.1-edge.
|
|
43
|
-
"@flighthq/log": "0.5.1-edge.
|
|
44
|
-
"@flighthq/types": "0.5.1-edge.
|
|
41
|
+
"@flighthq/color": "0.5.1-edge.1685.dc0e23a",
|
|
42
|
+
"@flighthq/entity": "0.5.1-edge.1685.dc0e23a",
|
|
43
|
+
"@flighthq/log": "0.5.1-edge.1685.dc0e23a",
|
|
44
|
+
"@flighthq/types": "0.5.1-edge.1685.dc0e23a"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"typescript": "^5.3.0"
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { BlendMode } from '@flighthq/types/contract';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
createMaterial3D,
|
|
5
|
+
getMaterial3DAlphaMode,
|
|
6
|
+
isMaterial3DBlended,
|
|
7
|
+
isMaterial3DMasked,
|
|
8
|
+
isMaterial3DOpaque,
|
|
9
|
+
} from './material3d';
|
|
10
|
+
|
|
11
|
+
const TestMaterial3DKind = 'TestMaterial3D';
|
|
12
|
+
|
|
13
|
+
describe('createMaterial3D', () => {
|
|
14
|
+
it('carries the given kind', () => {
|
|
15
|
+
expect(createMaterial3D(TestMaterial3DKind).kind).toBe(TestMaterial3DKind);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('defaults the shared trailer to an opaque, single-sided surface', () => {
|
|
19
|
+
const material = createMaterial3D(TestMaterial3DKind);
|
|
20
|
+
expect(material.alphaMode).toBe('opaque');
|
|
21
|
+
expect(material.alphaCutoff).toBe(0.5);
|
|
22
|
+
expect(material.blendMode).toBe(BlendMode.Normal);
|
|
23
|
+
expect(material.doubleSided).toBe(false);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('forwards the shared trailer fields from opts', () => {
|
|
27
|
+
const material = createMaterial3D(TestMaterial3DKind, {
|
|
28
|
+
alphaCutoff: 0.25,
|
|
29
|
+
alphaMode: 'mask',
|
|
30
|
+
doubleSided: true,
|
|
31
|
+
});
|
|
32
|
+
expect(material.alphaMode).toBe('mask');
|
|
33
|
+
expect(material.alphaCutoff).toBe(0.25);
|
|
34
|
+
expect(material.doubleSided).toBe(true);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
describe('getMaterial3DAlphaMode', () => {
|
|
39
|
+
it('returns the alphaMode of the material', () => {
|
|
40
|
+
const opaque = createMaterial3D(TestMaterial3DKind);
|
|
41
|
+
expect(getMaterial3DAlphaMode(opaque)).toBe('opaque');
|
|
42
|
+
const blended = createMaterial3D(TestMaterial3DKind);
|
|
43
|
+
blended.alphaMode = 'blend';
|
|
44
|
+
expect(getMaterial3DAlphaMode(blended)).toBe('blend');
|
|
45
|
+
const masked = createMaterial3D(TestMaterial3DKind);
|
|
46
|
+
masked.alphaMode = 'mask';
|
|
47
|
+
expect(getMaterial3DAlphaMode(masked)).toBe('mask');
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
describe('isMaterial3DBlended', () => {
|
|
52
|
+
it('returns true only for blend mode', () => {
|
|
53
|
+
const opaque = createMaterial3D(TestMaterial3DKind);
|
|
54
|
+
expect(isMaterial3DBlended(opaque)).toBe(false);
|
|
55
|
+
const blended = createMaterial3D(TestMaterial3DKind);
|
|
56
|
+
blended.alphaMode = 'blend';
|
|
57
|
+
expect(isMaterial3DBlended(blended)).toBe(true);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
describe('isMaterial3DMasked', () => {
|
|
62
|
+
it('returns true only for mask mode', () => {
|
|
63
|
+
const opaque = createMaterial3D(TestMaterial3DKind);
|
|
64
|
+
expect(isMaterial3DMasked(opaque)).toBe(false);
|
|
65
|
+
const masked = createMaterial3D(TestMaterial3DKind);
|
|
66
|
+
masked.alphaMode = 'mask';
|
|
67
|
+
expect(isMaterial3DMasked(masked)).toBe(true);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
describe('isMaterial3DOpaque', () => {
|
|
72
|
+
it('returns true only for opaque mode', () => {
|
|
73
|
+
const opaque = createMaterial3D(TestMaterial3DKind);
|
|
74
|
+
expect(isMaterial3DOpaque(opaque)).toBe(true);
|
|
75
|
+
const blended = createMaterial3D(TestMaterial3DKind);
|
|
76
|
+
blended.alphaMode = 'blend';
|
|
77
|
+
expect(isMaterial3DOpaque(blended)).toBe(false);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { Kind, MaterialAlphaMode, SurfaceMaterial, SurfaceMaterialOptions } from '@flighthq/types/contract';
|
|
2
|
-
export declare function createSurfaceMaterial(kind: Kind, opts?: Readonly<SurfaceMaterialOptions>): SurfaceMaterial;
|
|
3
|
-
export declare function getSurfaceMaterialAlphaMode(source: Readonly<SurfaceMaterial>): MaterialAlphaMode;
|
|
4
|
-
export declare function isSurfaceMaterialBlended(source: Readonly<SurfaceMaterial>): boolean;
|
|
5
|
-
export declare function isSurfaceMaterialMasked(source: Readonly<SurfaceMaterial>): boolean;
|
|
6
|
-
export declare function isSurfaceMaterialOpaque(source: Readonly<SurfaceMaterial>): boolean;
|
|
7
|
-
//# sourceMappingURL=surfaceMaterial.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"surfaceMaterial.d.ts","sourceRoot":"","sources":["../src/surfaceMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAWjH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,eAAe,CAO1G;AAKD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,iBAAiB,CAEhG;AAID,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAEnF;AAID,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAElF;AAID,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAElF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"surfaceMaterial.js","sourceRoot":"","sources":["../src/surfaceMaterial.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,kGAAkG;AAClG,mGAAmG;AACnG,iGAAiG;AACjG,mGAAmG;AACnG,qFAAqF;AACrF,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,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,2BAA2B,CAAC,MAAiC;IAC3E,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED,sFAAsF;AACtF,8CAA8C;AAC9C,MAAM,UAAU,wBAAwB,CAAC,MAAiC;IACxE,OAAO,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC;AACtC,CAAC;AAED,4FAA4F;AAC5F,kEAAkE;AAClE,MAAM,UAAU,uBAAuB,CAAC,MAAiC;IACvE,OAAO,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC;AACrC,CAAC;AAED,uFAAuF;AACvF,mEAAmE;AACnE,MAAM,UAAU,uBAAuB,CAAC,MAAiC;IACvE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC;AACvC,CAAC;AAED,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,kBAAkB,GAAsB,QAAQ,CAAC;AACvD,MAAM,oBAAoB,GAAG,KAAK,CAAC"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { BlendMode } from '@flighthq/types/contract';
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
createSurfaceMaterial,
|
|
5
|
-
getSurfaceMaterialAlphaMode,
|
|
6
|
-
isSurfaceMaterialBlended,
|
|
7
|
-
isSurfaceMaterialMasked,
|
|
8
|
-
isSurfaceMaterialOpaque,
|
|
9
|
-
} from './surfaceMaterial';
|
|
10
|
-
|
|
11
|
-
const TestSurfaceMaterialKind = 'TestSurfaceMaterial';
|
|
12
|
-
|
|
13
|
-
describe('createSurfaceMaterial', () => {
|
|
14
|
-
it('carries the given kind', () => {
|
|
15
|
-
expect(createSurfaceMaterial(TestSurfaceMaterialKind).kind).toBe(TestSurfaceMaterialKind);
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
it('defaults the shared trailer to an opaque, single-sided surface', () => {
|
|
19
|
-
const material = createSurfaceMaterial(TestSurfaceMaterialKind);
|
|
20
|
-
expect(material.alphaMode).toBe('opaque');
|
|
21
|
-
expect(material.alphaCutoff).toBe(0.5);
|
|
22
|
-
expect(material.blendMode).toBe(BlendMode.Normal);
|
|
23
|
-
expect(material.doubleSided).toBe(false);
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
it('forwards the shared trailer fields from opts', () => {
|
|
27
|
-
const material = createSurfaceMaterial(TestSurfaceMaterialKind, {
|
|
28
|
-
alphaCutoff: 0.25,
|
|
29
|
-
alphaMode: 'mask',
|
|
30
|
-
doubleSided: true,
|
|
31
|
-
});
|
|
32
|
-
expect(material.alphaMode).toBe('mask');
|
|
33
|
-
expect(material.alphaCutoff).toBe(0.25);
|
|
34
|
-
expect(material.doubleSided).toBe(true);
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
describe('getSurfaceMaterialAlphaMode', () => {
|
|
39
|
-
it('returns the alphaMode of the material', () => {
|
|
40
|
-
const opaque = createSurfaceMaterial(TestSurfaceMaterialKind);
|
|
41
|
-
expect(getSurfaceMaterialAlphaMode(opaque)).toBe('opaque');
|
|
42
|
-
const blended = createSurfaceMaterial(TestSurfaceMaterialKind);
|
|
43
|
-
blended.alphaMode = 'blend';
|
|
44
|
-
expect(getSurfaceMaterialAlphaMode(blended)).toBe('blend');
|
|
45
|
-
const masked = createSurfaceMaterial(TestSurfaceMaterialKind);
|
|
46
|
-
masked.alphaMode = 'mask';
|
|
47
|
-
expect(getSurfaceMaterialAlphaMode(masked)).toBe('mask');
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
describe('isSurfaceMaterialBlended', () => {
|
|
52
|
-
it('returns true only for blend mode', () => {
|
|
53
|
-
const opaque = createSurfaceMaterial(TestSurfaceMaterialKind);
|
|
54
|
-
expect(isSurfaceMaterialBlended(opaque)).toBe(false);
|
|
55
|
-
const blended = createSurfaceMaterial(TestSurfaceMaterialKind);
|
|
56
|
-
blended.alphaMode = 'blend';
|
|
57
|
-
expect(isSurfaceMaterialBlended(blended)).toBe(true);
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
describe('isSurfaceMaterialMasked', () => {
|
|
62
|
-
it('returns true only for mask mode', () => {
|
|
63
|
-
const opaque = createSurfaceMaterial(TestSurfaceMaterialKind);
|
|
64
|
-
expect(isSurfaceMaterialMasked(opaque)).toBe(false);
|
|
65
|
-
const masked = createSurfaceMaterial(TestSurfaceMaterialKind);
|
|
66
|
-
masked.alphaMode = 'mask';
|
|
67
|
-
expect(isSurfaceMaterialMasked(masked)).toBe(true);
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
describe('isSurfaceMaterialOpaque', () => {
|
|
72
|
-
it('returns true only for opaque mode', () => {
|
|
73
|
-
const opaque = createSurfaceMaterial(TestSurfaceMaterialKind);
|
|
74
|
-
expect(isSurfaceMaterialOpaque(opaque)).toBe(true);
|
|
75
|
-
const blended = createSurfaceMaterial(TestSurfaceMaterialKind);
|
|
76
|
-
blended.alphaMode = 'blend';
|
|
77
|
-
expect(isSurfaceMaterialOpaque(blended)).toBe(false);
|
|
78
|
-
});
|
|
79
|
-
});
|