@flighthq/scene3d-gl 0.2.1-next.840.857425c
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/anisotropyPbrGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/anisotropyPbrGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/anisotropyPbrGlMeshMaterialRenderer.js +45 -0
- package/dist/anisotropyPbrGlMeshMaterialRenderer.js.map +1 -0
- package/dist/blinnPhongGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/blinnPhongGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/blinnPhongGlMeshMaterialRenderer.js +102 -0
- package/dist/blinnPhongGlMeshMaterialRenderer.js.map +1 -0
- package/dist/clearcoatPbrGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/clearcoatPbrGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/clearcoatPbrGlMeshMaterialRenderer.js +45 -0
- package/dist/clearcoatPbrGlMeshMaterialRenderer.js.map +1 -0
- package/dist/customShaderGlMeshMaterialRenderer.d.ts +6 -0
- package/dist/customShaderGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/customShaderGlMeshMaterialRenderer.js +136 -0
- package/dist/customShaderGlMeshMaterialRenderer.js.map +1 -0
- package/dist/depthGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/depthGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/depthGlMeshMaterialRenderer.js +36 -0
- package/dist/depthGlMeshMaterialRenderer.js.map +1 -0
- package/dist/drawGlScene3D.d.ts +3 -0
- package/dist/drawGlScene3D.d.ts.map +1 -0
- package/dist/drawGlScene3D.js +251 -0
- package/dist/drawGlScene3D.js.map +1 -0
- package/dist/emissiveGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/emissiveGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/emissiveGlMeshMaterialRenderer.js +49 -0
- package/dist/emissiveGlMeshMaterialRenderer.js.map +1 -0
- package/dist/enableGlScene3DColorSpaceGuards.d.ts +4 -0
- package/dist/enableGlScene3DColorSpaceGuards.d.ts.map +1 -0
- package/dist/enableGlScene3DColorSpaceGuards.js +22 -0
- package/dist/enableGlScene3DColorSpaceGuards.js.map +1 -0
- package/dist/enableGlScene3DCustomShaderGuards.d.ts +4 -0
- package/dist/enableGlScene3DCustomShaderGuards.d.ts.map +1 -0
- package/dist/enableGlScene3DCustomShaderGuards.js +71 -0
- package/dist/enableGlScene3DCustomShaderGuards.js.map +1 -0
- package/dist/enableGlScene3DDeformGuards.d.ts +4 -0
- package/dist/enableGlScene3DDeformGuards.d.ts.map +1 -0
- package/dist/enableGlScene3DDeformGuards.js +42 -0
- package/dist/enableGlScene3DDeformGuards.js.map +1 -0
- package/dist/enableGlScene3DForwardLightSelectionGuards.d.ts +4 -0
- package/dist/enableGlScene3DForwardLightSelectionGuards.d.ts.map +1 -0
- package/dist/enableGlScene3DForwardLightSelectionGuards.js +21 -0
- package/dist/enableGlScene3DForwardLightSelectionGuards.js.map +1 -0
- package/dist/explainGlScene3DForwardLightSelection.d.ts +3 -0
- package/dist/explainGlScene3DForwardLightSelection.d.ts.map +1 -0
- package/dist/explainGlScene3DForwardLightSelection.js +19 -0
- package/dist/explainGlScene3DForwardLightSelection.js.map +1 -0
- package/dist/glClassicPrelude.d.ts +9 -0
- package/dist/glClassicPrelude.d.ts.map +1 -0
- package/dist/glClassicPrelude.js +288 -0
- package/dist/glClassicPrelude.js.map +1 -0
- package/dist/glDebugPrelude.d.ts +9 -0
- package/dist/glDebugPrelude.d.ts.map +1 -0
- package/dist/glDebugPrelude.js +143 -0
- package/dist/glDebugPrelude.js.map +1 -0
- package/dist/glEnvironmentCube.d.ts +5 -0
- package/dist/glEnvironmentCube.d.ts.map +1 -0
- package/dist/glEnvironmentCube.js +65 -0
- package/dist/glEnvironmentCube.js.map +1 -0
- package/dist/glEnvironmentIblBake.d.ts +4 -0
- package/dist/glEnvironmentIblBake.d.ts.map +1 -0
- package/dist/glEnvironmentIblBake.js +365 -0
- package/dist/glEnvironmentIblBake.js.map +1 -0
- package/dist/glEnvironmentSkybox.d.ts +3 -0
- package/dist/glEnvironmentSkybox.d.ts.map +1 -0
- package/dist/glEnvironmentSkybox.js +95 -0
- package/dist/glEnvironmentSkybox.js.map +1 -0
- package/dist/glLitProgram.d.ts +5 -0
- package/dist/glLitProgram.d.ts.map +1 -0
- package/dist/glLitProgram.js +211 -0
- package/dist/glLitProgram.js.map +1 -0
- package/dist/glMatcapPrelude.d.ts +8 -0
- package/dist/glMatcapPrelude.d.ts.map +1 -0
- package/dist/glMatcapPrelude.js +118 -0
- package/dist/glMatcapPrelude.js.map +1 -0
- package/dist/glMeshMaterialRegistry.d.ts +5 -0
- package/dist/glMeshMaterialRegistry.d.ts.map +1 -0
- package/dist/glMeshMaterialRegistry.js +29 -0
- package/dist/glMeshMaterialRegistry.js.map +1 -0
- package/dist/glMeshProgram.d.ts +14 -0
- package/dist/glMeshProgram.d.ts.map +1 -0
- package/dist/glMeshProgram.js +193 -0
- package/dist/glMeshProgram.js.map +1 -0
- package/dist/glMeshUpload.d.ts +4 -0
- package/dist/glMeshUpload.d.ts.map +1 -0
- package/dist/glMeshUpload.js +190 -0
- package/dist/glMeshUpload.js.map +1 -0
- package/dist/glParticleEmitter3D.d.ts +4 -0
- package/dist/glParticleEmitter3D.d.ts.map +1 -0
- package/dist/glParticleEmitter3D.js +342 -0
- package/dist/glParticleEmitter3D.js.map +1 -0
- package/dist/glPbrPrelude.d.ts +8 -0
- package/dist/glPbrPrelude.d.ts.map +1 -0
- package/dist/glPbrPrelude.js +569 -0
- package/dist/glPbrPrelude.js.map +1 -0
- package/dist/glPbrProgramCache.d.ts +4 -0
- package/dist/glPbrProgramCache.d.ts.map +1 -0
- package/dist/glPbrProgramCache.js +63 -0
- package/dist/glPbrProgramCache.js.map +1 -0
- package/dist/glPbrStandardBlock.d.ts +13 -0
- package/dist/glPbrStandardBlock.d.ts.map +1 -0
- package/dist/glPbrStandardBlock.js +107 -0
- package/dist/glPbrStandardBlock.js.map +1 -0
- package/dist/glScene3DRuntime.d.ts +5 -0
- package/dist/glScene3DRuntime.d.ts.map +1 -0
- package/dist/glScene3DRuntime.js +99 -0
- package/dist/glScene3DRuntime.js.map +1 -0
- package/dist/glScene3DTestHelper.d.ts +20 -0
- package/dist/glScene3DTestHelper.d.ts.map +1 -0
- package/dist/glScene3DTestHelper.js +178 -0
- package/dist/glScene3DTestHelper.js.map +1 -0
- package/dist/glScene3DTime.d.ts +4 -0
- package/dist/glScene3DTime.d.ts.map +1 -0
- package/dist/glScene3DTime.js +18 -0
- package/dist/glScene3DTime.js.map +1 -0
- package/dist/glShadedBuiltInModifiers.d.ts +11 -0
- package/dist/glShadedBuiltInModifiers.d.ts.map +1 -0
- package/dist/glShadedBuiltInModifiers.js +386 -0
- package/dist/glShadedBuiltInModifiers.js.map +1 -0
- package/dist/glShadedModifierSnippet.d.ts +4 -0
- package/dist/glShadedModifierSnippet.d.ts.map +1 -0
- package/dist/glShadedModifierSnippet.js +24 -0
- package/dist/glShadedModifierSnippet.js.map +1 -0
- package/dist/glShadedPrelude.d.ts +5 -0
- package/dist/glShadedPrelude.d.ts.map +1 -0
- package/dist/glShadedPrelude.js +393 -0
- package/dist/glShadedPrelude.js.map +1 -0
- package/dist/glShadowMap.d.ts +3 -0
- package/dist/glShadowMap.d.ts.map +1 -0
- package/dist/glShadowMap.js +150 -0
- package/dist/glShadowMap.js.map +1 -0
- package/dist/glToonPrelude.d.ts +7 -0
- package/dist/glToonPrelude.d.ts.map +1 -0
- package/dist/glToonPrelude.js +172 -0
- package/dist/glToonPrelude.js.map +1 -0
- package/dist/glUnlitPrelude.d.ts +9 -0
- package/dist/glUnlitPrelude.d.ts.map +1 -0
- package/dist/glUnlitPrelude.js +160 -0
- package/dist/glUnlitPrelude.js.map +1 -0
- package/dist/glWireframePrelude.d.ts +6 -0
- package/dist/glWireframePrelude.d.ts.map +1 -0
- package/dist/glWireframePrelude.js +56 -0
- package/dist/glWireframePrelude.js.map +1 -0
- package/dist/glWireframeUpload.d.ts +4 -0
- package/dist/glWireframeUpload.d.ts.map +1 -0
- package/dist/glWireframeUpload.js +85 -0
- package/dist/glWireframeUpload.js.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/iridescencePbrGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/iridescencePbrGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/iridescencePbrGlMeshMaterialRenderer.js +54 -0
- package/dist/iridescencePbrGlMeshMaterialRenderer.js.map +1 -0
- package/dist/lambertGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/lambertGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/lambertGlMeshMaterialRenderer.js +70 -0
- package/dist/lambertGlMeshMaterialRenderer.js.map +1 -0
- package/dist/matcapGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/matcapGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/matcapGlMeshMaterialRenderer.js +49 -0
- package/dist/matcapGlMeshMaterialRenderer.js.map +1 -0
- package/dist/normalGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/normalGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/normalGlMeshMaterialRenderer.js +39 -0
- package/dist/normalGlMeshMaterialRenderer.js.map +1 -0
- package/dist/phongGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/phongGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/phongGlMeshMaterialRenderer.js +90 -0
- package/dist/phongGlMeshMaterialRenderer.js.map +1 -0
- package/dist/prepareGlScene3DForwardLights.d.ts +3 -0
- package/dist/prepareGlScene3DForwardLights.d.ts.map +1 -0
- package/dist/prepareGlScene3DForwardLights.js +117 -0
- package/dist/prepareGlScene3DForwardLights.js.map +1 -0
- package/dist/presentGlScene3D.d.ts +3 -0
- package/dist/presentGlScene3D.d.ts.map +1 -0
- package/dist/presentGlScene3D.js +21 -0
- package/dist/presentGlScene3D.js.map +1 -0
- package/dist/registerStandardPbrGlMaterial.d.ts +3 -0
- package/dist/registerStandardPbrGlMaterial.d.ts.map +1 -0
- package/dist/registerStandardPbrGlMaterial.js +11 -0
- package/dist/registerStandardPbrGlMaterial.js.map +1 -0
- package/dist/shadedGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/shadedGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/shadedGlMeshMaterialRenderer.js +135 -0
- package/dist/shadedGlMeshMaterialRenderer.js.map +1 -0
- package/dist/sheenPbrGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/sheenPbrGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/sheenPbrGlMeshMaterialRenderer.js +54 -0
- package/dist/sheenPbrGlMeshMaterialRenderer.js.map +1 -0
- package/dist/specularGlossinessPbrGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/specularGlossinessPbrGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/specularGlossinessPbrGlMeshMaterialRenderer.js +121 -0
- package/dist/specularGlossinessPbrGlMeshMaterialRenderer.js.map +1 -0
- package/dist/specularPbrGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/specularPbrGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/specularPbrGlMeshMaterialRenderer.js +55 -0
- package/dist/specularPbrGlMeshMaterialRenderer.js.map +1 -0
- package/dist/standardPbrGlMeshMaterialRenderer.d.ts +3 -0
- package/dist/standardPbrGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/standardPbrGlMeshMaterialRenderer.js +35 -0
- package/dist/standardPbrGlMeshMaterialRenderer.js.map +1 -0
- package/dist/subsurfacePbrGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/subsurfacePbrGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/subsurfacePbrGlMeshMaterialRenderer.js +57 -0
- package/dist/subsurfacePbrGlMeshMaterialRenderer.js.map +1 -0
- package/dist/toonGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/toonGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/toonGlMeshMaterialRenderer.js +81 -0
- package/dist/toonGlMeshMaterialRenderer.js.map +1 -0
- package/dist/transmissionVolumePbrGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/transmissionVolumePbrGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/transmissionVolumePbrGlMeshMaterialRenderer.js +62 -0
- package/dist/transmissionVolumePbrGlMeshMaterialRenderer.js.map +1 -0
- package/dist/unlitGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/unlitGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/unlitGlMeshMaterialRenderer.js +61 -0
- package/dist/unlitGlMeshMaterialRenderer.js.map +1 -0
- package/dist/vertexColorGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/vertexColorGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/vertexColorGlMeshMaterialRenderer.js +54 -0
- package/dist/vertexColorGlMeshMaterialRenderer.js.map +1 -0
- package/dist/wireframeGlMeshMaterialRenderer.d.ts +4 -0
- package/dist/wireframeGlMeshMaterialRenderer.d.ts.map +1 -0
- package/dist/wireframeGlMeshMaterialRenderer.js +50 -0
- package/dist/wireframeGlMeshMaterialRenderer.js.map +1 -0
- package/package.json +58 -0
- package/src/anisotropyPbrGlMeshMaterialRenderer.test.ts +86 -0
- package/src/blinnPhongGlMeshMaterialRenderer.test.ts +94 -0
- package/src/clearcoatPbrGlMeshMaterialRenderer.test.ts +81 -0
- package/src/customShaderGlMeshMaterialRenderer.test.ts +169 -0
- package/src/depthGlMeshMaterialRenderer.test.ts +69 -0
- package/src/drawGlScene3D.test.ts +304 -0
- package/src/emissiveGlMeshMaterialRenderer.test.ts +60 -0
- package/src/enableGlScene3DColorSpaceGuards.test.ts +63 -0
- package/src/enableGlScene3DCustomShaderGuards.test.ts +85 -0
- package/src/enableGlScene3DDeformGuards.test.ts +98 -0
- package/src/enableGlScene3DForwardLightSelectionGuards.test.ts +84 -0
- package/src/explainGlScene3DForwardLightSelection.test.ts +32 -0
- package/src/glClassicPrelude.test.ts +214 -0
- package/src/glDebugPrelude.test.ts +94 -0
- package/src/glEnvironmentCube.test.ts +71 -0
- package/src/glEnvironmentIblBake.test.ts +31 -0
- package/src/glEnvironmentSkybox.test.ts +24 -0
- package/src/glLitProgram.test.ts +181 -0
- package/src/glMatcapPrelude.test.ts +74 -0
- package/src/glMeshMaterialRegistry.test.ts +52 -0
- package/src/glMeshProgram.test.ts +406 -0
- package/src/glMeshUpload.test.ts +311 -0
- package/src/glParticleEmitter3D.test.ts +280 -0
- package/src/glPbrPrelude.test.ts +178 -0
- package/src/glPbrProgramCache.test.ts +116 -0
- package/src/glPbrStandardBlock.test.ts +85 -0
- package/src/glScene3DRuntime.test.ts +108 -0
- package/src/glScene3DTime.test.ts +31 -0
- package/src/glShadedBuiltInModifiers.test.ts +377 -0
- package/src/glShadedModifierSnippet.test.ts +46 -0
- package/src/glShadedPrelude.test.ts +177 -0
- package/src/glShadowMap.test.ts +219 -0
- package/src/glToonPrelude.test.ts +118 -0
- package/src/glUnlitPrelude.test.ts +156 -0
- package/src/glWireframePrelude.test.ts +46 -0
- package/src/glWireframeUpload.test.ts +50 -0
- package/src/iridescencePbrGlMeshMaterialRenderer.test.ts +86 -0
- package/src/lambertGlMeshMaterialRenderer.test.ts +92 -0
- package/src/matcapGlMeshMaterialRenderer.test.ts +70 -0
- package/src/normalGlMeshMaterialRenderer.test.ts +69 -0
- package/src/phongGlMeshMaterialRenderer.test.ts +94 -0
- package/src/prepareGlScene3DForwardLights.test.ts +106 -0
- package/src/presentGlScene3D.test.ts +98 -0
- package/src/registerStandardPbrGlMaterial.test.ts +14 -0
- package/src/shadedGlMeshMaterialRenderer.test.ts +106 -0
- package/src/sheenPbrGlMeshMaterialRenderer.test.ts +83 -0
- package/src/specularGlossinessPbrGlMeshMaterialRenderer.test.ts +96 -0
- package/src/specularPbrGlMeshMaterialRenderer.test.ts +83 -0
- package/src/standardPbrGlMeshMaterialRenderer.test.ts +88 -0
- package/src/subsurfacePbrGlMeshMaterialRenderer.test.ts +86 -0
- package/src/toonGlMeshMaterialRenderer.test.ts +92 -0
- package/src/transmissionVolumePbrGlMeshMaterialRenderer.test.ts +93 -0
- package/src/unlitGlMeshMaterialRenderer.test.ts +88 -0
- package/src/vertexColorGlMeshMaterialRenderer.test.ts +60 -0
- package/src/wireframeGlMeshMaterialRenderer.test.ts +69 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export * from './anisotropyPbrGlMeshMaterialRenderer';
|
|
2
|
+
export * from './blinnPhongGlMeshMaterialRenderer';
|
|
3
|
+
export * from './clearcoatPbrGlMeshMaterialRenderer';
|
|
4
|
+
export * from './customShaderGlMeshMaterialRenderer';
|
|
5
|
+
export * from './depthGlMeshMaterialRenderer';
|
|
6
|
+
export * from './drawGlScene3D';
|
|
7
|
+
export * from './enableGlScene3DForwardLightSelectionGuards';
|
|
8
|
+
export * from './emissiveGlMeshMaterialRenderer';
|
|
9
|
+
export * from './explainGlScene3DForwardLightSelection';
|
|
10
|
+
export * from './enableGlScene3DColorSpaceGuards';
|
|
11
|
+
export * from './enableGlScene3DCustomShaderGuards';
|
|
12
|
+
export * from './enableGlScene3DDeformGuards';
|
|
13
|
+
export * from './glClassicPrelude';
|
|
14
|
+
export * from './glDebugPrelude';
|
|
15
|
+
export * from './glEnvironmentCube';
|
|
16
|
+
export * from './glEnvironmentIblBake';
|
|
17
|
+
export * from './glEnvironmentSkybox';
|
|
18
|
+
export * from './glLitProgram';
|
|
19
|
+
export * from './glMatcapPrelude';
|
|
20
|
+
export * from './glMeshMaterialRegistry';
|
|
21
|
+
export * from './glParticleEmitter3D';
|
|
22
|
+
export * from './glMeshProgram';
|
|
23
|
+
export * from './glMeshUpload';
|
|
24
|
+
export * from './glPbrPrelude';
|
|
25
|
+
export * from './glPbrProgramCache';
|
|
26
|
+
export * from './glPbrStandardBlock';
|
|
27
|
+
export * from './glScene3DRuntime';
|
|
28
|
+
export * from './glScene3DTime';
|
|
29
|
+
export * from './glShadedBuiltInModifiers';
|
|
30
|
+
export * from './glShadedModifierSnippet';
|
|
31
|
+
export * from './glShadedPrelude';
|
|
32
|
+
export * from './glShadowMap';
|
|
33
|
+
export * from './glToonPrelude';
|
|
34
|
+
export * from './glUnlitPrelude';
|
|
35
|
+
export * from './glWireframePrelude';
|
|
36
|
+
export * from './glWireframeUpload';
|
|
37
|
+
export * from './iridescencePbrGlMeshMaterialRenderer';
|
|
38
|
+
export * from './lambertGlMeshMaterialRenderer';
|
|
39
|
+
export * from './matcapGlMeshMaterialRenderer';
|
|
40
|
+
export * from './normalGlMeshMaterialRenderer';
|
|
41
|
+
export * from './phongGlMeshMaterialRenderer';
|
|
42
|
+
export * from './presentGlScene3D';
|
|
43
|
+
export * from './prepareGlScene3DForwardLights';
|
|
44
|
+
export * from './registerStandardPbrGlMaterial';
|
|
45
|
+
export * from './shadedGlMeshMaterialRenderer';
|
|
46
|
+
export * from './sheenPbrGlMeshMaterialRenderer';
|
|
47
|
+
export * from './specularGlossinessPbrGlMeshMaterialRenderer';
|
|
48
|
+
export * from './specularPbrGlMeshMaterialRenderer';
|
|
49
|
+
export * from './standardPbrGlMeshMaterialRenderer';
|
|
50
|
+
export * from './subsurfacePbrGlMeshMaterialRenderer';
|
|
51
|
+
export * from './toonGlMeshMaterialRenderer';
|
|
52
|
+
export * from './transmissionVolumePbrGlMeshMaterialRenderer';
|
|
53
|
+
export * from './unlitGlMeshMaterialRenderer';
|
|
54
|
+
export * from './vertexColorGlMeshMaterialRenderer';
|
|
55
|
+
export * from './wireframeGlMeshMaterialRenderer';
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC;AAChC,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { GlMeshMaterialRenderer, GlRenderState } from '@flighthq/types';
|
|
2
|
+
export declare const iridescencePbrGlMeshMaterialRenderer: GlMeshMaterialRenderer;
|
|
3
|
+
export declare function registerIridescencePbrGlMaterial(state: GlRenderState): void;
|
|
4
|
+
//# sourceMappingURL=iridescencePbrGlMeshMaterialRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iridescencePbrGlMeshMaterialRenderer.d.ts","sourceRoot":"","sources":["../src/iridescencePbrGlMeshMaterialRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,sBAAsB,EACtB,aAAa,EAMd,MAAM,iBAAiB,CAAC;AAkBzB,eAAO,MAAM,oCAAoC,EAAE,sBAsClD,CAAC;AAIF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAE3E"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { IridescencePbrMaterialKind } from '@flighthq/types';
|
|
2
|
+
import { bindGlMeshLightBlock } from './glLitProgram';
|
|
3
|
+
import { registerGlMeshMaterialRenderer } from './glMeshMaterialRegistry';
|
|
4
|
+
import { beginGlMeshDraw, drawGlMeshSubset, setGlMeshCameraPosition, setGlMeshViewProjection } from './glMeshProgram';
|
|
5
|
+
import { ensureGlPbrProgram } from './glPbrProgramCache';
|
|
6
|
+
import { bindGlPbrStandardBlock, buildGlPbrStandardDefineKey } from './glPbrStandardBlock';
|
|
7
|
+
import { getGlScene3DRuntime } from './glScene3DRuntime';
|
|
8
|
+
// The built-in Iridescence (KHR_materials_iridescence) forward-lit mesh-material renderer.
|
|
9
|
+
// Iridescence models a thin transparent film over the surface whose interference shifts the Fresnel
|
|
10
|
+
// reflectance toward a view- and thickness-dependent hue — soap bubbles, oil slicks, anodized metal.
|
|
11
|
+
// The shader applies a compact sinusoidal thin-film approximation (sample-viewer style) to F0 behind
|
|
12
|
+
// `#define IRIDESCENCE`. bind composes the material's `standard` block through the shared
|
|
13
|
+
// bindGlPbrStandardBlock and uploads the iridescence strength, film IOR, and a single film thickness
|
|
14
|
+
// (the midpoint of the descriptor's min/max nm range; the per-texel thickness map is reserved but not
|
|
15
|
+
// yet sampled). See registerIridescencePbrGlMaterial.
|
|
16
|
+
export const iridescencePbrGlMeshMaterialRenderer = {
|
|
17
|
+
bind(state, material, lights, camera) {
|
|
18
|
+
const gl = state.gl;
|
|
19
|
+
const iridescence = material;
|
|
20
|
+
const standard = iridescence !== null ? iridescence.standard : null;
|
|
21
|
+
const key = buildGlPbrStandardDefineKey(standard, iridescence);
|
|
22
|
+
key.iridescenceEnabled = true;
|
|
23
|
+
const program = ensureGlPbrProgram(state, key);
|
|
24
|
+
beginGlMeshDraw(state, program, iridescence !== null && iridescence.doubleSided);
|
|
25
|
+
setGlMeshViewProjection(gl, program.locViewProjection, camera);
|
|
26
|
+
setGlMeshCameraPosition(gl, program.locCameraPosition, camera);
|
|
27
|
+
bindGlMeshLightBlock(state, program, lights);
|
|
28
|
+
bindGlPbrStandardBlock(state, program, standard);
|
|
29
|
+
gl.uniform1f(program.locAlphaCutoff, iridescence !== null ? iridescence.alphaCutoff : 0.5);
|
|
30
|
+
if (iridescence !== null) {
|
|
31
|
+
const thickness = (iridescence.iridescenceThicknessMin + iridescence.iridescenceThicknessMax) * 0.5;
|
|
32
|
+
gl.uniform1f(program.locIridescence, iridescence.iridescence);
|
|
33
|
+
gl.uniform1f(program.locIridescenceIor, iridescence.iridescenceIor);
|
|
34
|
+
gl.uniform1f(program.locIridescenceThickness, thickness);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
gl.uniform1f(program.locIridescence, 0);
|
|
38
|
+
gl.uniform1f(program.locIridescenceIor, 1.3);
|
|
39
|
+
gl.uniform1f(program.locIridescenceThickness, 250);
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
draw(state, proxy, geometry) {
|
|
43
|
+
const program = getGlScene3DRuntime(state).activeMeshProgram;
|
|
44
|
+
if (program === null)
|
|
45
|
+
return;
|
|
46
|
+
drawGlMeshSubset(state, program, proxy, geometry);
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
// Installs the built-in Iridescence renderer for IridescencePbrMaterialKind on this state. Opt-in
|
|
50
|
+
// (no top-level side effect): drawScene3D only draws Iridescence subsets once this is called.
|
|
51
|
+
export function registerIridescencePbrGlMaterial(state) {
|
|
52
|
+
registerGlMeshMaterialRenderer(state, IridescencePbrMaterialKind, iridescencePbrGlMeshMaterialRenderer);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=iridescencePbrGlMeshMaterialRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iridescencePbrGlMeshMaterialRenderer.js","sourceRoot":"","sources":["../src/iridescencePbrGlMeshMaterialRenderer.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACtH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,2FAA2F;AAC3F,oGAAoG;AACpG,qGAAqG;AACrG,qGAAqG;AACrG,0FAA0F;AAC1F,qGAAqG;AACrG,sGAAsG;AACtG,sDAAsD;AACtD,MAAM,CAAC,MAAM,oCAAoC,GAA2B;IAC1E,IAAI,CACF,KAAoB,EACpB,QAAmC,EACnC,MAAmC,EACnC,MAA0B;QAE1B,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,QAAmD,CAAC;QACxE,MAAM,QAAQ,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,MAAM,GAAG,GAAG,2BAA2B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/D,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC9B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/C,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;QAEjF,uBAAuB,CAAC,EAAE,EAAE,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC/D,uBAAuB,CAAC,EAAE,EAAE,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC/D,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7C,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjD,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAE3F,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,uBAAuB,GAAG,WAAW,CAAC,uBAAuB,CAAC,GAAG,GAAG,CAAC;YACpG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;YAC9D,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;YACpE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACxC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YAC7C,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAoB,EAAE,KAAmC,EAAE,QAAgC;QAC9F,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC;QAC7D,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO;QAC7B,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;CACF,CAAC;AAEF,kGAAkG;AAClG,8FAA8F;AAC9F,MAAM,UAAU,gCAAgC,CAAC,KAAoB;IACnE,8BAA8B,CAAC,KAAK,EAAE,0BAA0B,EAAE,oCAAoC,CAAC,CAAC;AAC1G,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { GlMeshMaterialRenderer, GlRenderState } from '@flighthq/types';
|
|
2
|
+
export declare const lambertGlMeshMaterialRenderer: GlMeshMaterialRenderer;
|
|
3
|
+
export declare function registerLambertGlMaterial(state: GlRenderState): void;
|
|
4
|
+
//# sourceMappingURL=lambertGlMeshMaterialRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambertGlMeshMaterialRenderer.d.ts","sourceRoot":"","sources":["../src/lambertGlMeshMaterialRenderer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,sBAAsB,EACtB,aAAa,EAQd,MAAM,iBAAiB,CAAC;AAqBzB,eAAO,MAAM,6BAA6B,EAAE,sBAsB3C,CAAC;AAIF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEpE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { unpackColorToLinear } from '@flighthq/color';
|
|
2
|
+
import { hasImageResourcePixels } from '@flighthq/image';
|
|
3
|
+
import { bindGlImageResourceTexture } from '@flighthq/render-gl';
|
|
4
|
+
import { LambertMaterialKind } from '@flighthq/types';
|
|
5
|
+
import { ensureGlClassicProgram } from './glClassicPrelude';
|
|
6
|
+
import { bindGlMeshLightBlock } from './glLitProgram';
|
|
7
|
+
import { registerGlMeshMaterialRenderer } from './glMeshMaterialRegistry';
|
|
8
|
+
import { beginGlMeshDraw, bindGlUvTransform, drawGlMeshSubset, hasGlUvTransform, setGlMeshViewProjection, } from './glMeshProgram';
|
|
9
|
+
import { getGlScene3DRuntime } from './glScene3DRuntime';
|
|
10
|
+
// The built-in classic Lambert forward-lit mesh-material renderer (GlMeshMaterialRenderer for
|
|
11
|
+
// LambertMaterialKind). Diffuse-only Lambertian shading: bind selects the classic uber-shader's
|
|
12
|
+
// `lambert` variant for the material's diffuse map / alpha mode, uploads the camera view-projection
|
|
13
|
+
// and the packed light block, and the material's linear diffuse color. draw issues the indexed draw.
|
|
14
|
+
// Lambert has no view-dependent term, so it skips the camera position; the shared classic prelude
|
|
15
|
+
// compiles out the specular branch for the `lambert` model. See registerLambertGlMaterial to install.
|
|
16
|
+
export const lambertGlMeshMaterialRenderer = {
|
|
17
|
+
bind(state, material, lights, camera) {
|
|
18
|
+
const gl = state.gl;
|
|
19
|
+
const lambert = material;
|
|
20
|
+
const program = ensureGlClassicProgram(state, defineKeyForMaterial(lambert));
|
|
21
|
+
beginGlMeshDraw(state, program, lambert !== null && lambert.doubleSided);
|
|
22
|
+
setGlMeshViewProjection(gl, program.locViewProjection, camera);
|
|
23
|
+
bindGlMeshLightBlock(state, program, lights);
|
|
24
|
+
bindGlLambertMaterialUniforms(state, program, lambert);
|
|
25
|
+
},
|
|
26
|
+
draw(state, proxy, geometry) {
|
|
27
|
+
const program = getGlScene3DRuntime(state).activeMeshProgram;
|
|
28
|
+
if (program === null)
|
|
29
|
+
return;
|
|
30
|
+
drawGlMeshSubset(state, program, proxy, geometry);
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
// Registers the built-in Lambert renderer for LambertMaterialKind on this state. Opt-in (no top-level
|
|
34
|
+
// side effect); call once per GlRenderState before drawScene3D so meshes with LambertMaterials draw.
|
|
35
|
+
export function registerLambertGlMaterial(state) {
|
|
36
|
+
registerGlMeshMaterialRenderer(state, LambertMaterialKind, lambertGlMeshMaterialRenderer);
|
|
37
|
+
}
|
|
38
|
+
function bindGlLambertMaterialUniforms(state, program, material) {
|
|
39
|
+
const gl = state.gl;
|
|
40
|
+
if (material === null) {
|
|
41
|
+
gl.uniform4f(program.locDiffuse, 1, 1, 1, 1);
|
|
42
|
+
gl.uniform1f(program.locAlphaCutoff, 0.5);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
unpackColorToLinear(scratchRgba, material.diffuse);
|
|
46
|
+
gl.uniform4f(program.locDiffuse, scratchRgba[0], scratchRgba[1], scratchRgba[2], scratchRgba[3]);
|
|
47
|
+
gl.uniform1f(program.locAlphaCutoff, material.alphaCutoff);
|
|
48
|
+
const diffuseMap = material.diffuseMap;
|
|
49
|
+
if (diffuseMap !== null && diffuseMap.image !== null && hasImageResourcePixels(diffuseMap.image)) {
|
|
50
|
+
gl.activeTexture(gl.TEXTURE0);
|
|
51
|
+
bindGlImageResourceTexture(state, diffuseMap.image, diffuseMap.sampler);
|
|
52
|
+
gl.uniform1i(program.locDiffuseMap, 0);
|
|
53
|
+
}
|
|
54
|
+
bindGlUvTransform(gl, program, diffuseMap);
|
|
55
|
+
}
|
|
56
|
+
// The feature define key for a Lambert material: the fixed `lambert` lighting model plus which optional
|
|
57
|
+
// maps are present and whether alpha-mask cutoff is active. Lambert never has specular or normal maps.
|
|
58
|
+
function defineKeyForMaterial(material) {
|
|
59
|
+
return {
|
|
60
|
+
alphaMaskEnabled: material !== null && material.alphaMode === 'mask',
|
|
61
|
+
hasAlphaMap: false,
|
|
62
|
+
hasDiffuseMap: material !== null && material.diffuseMap !== null && material.diffuseMap.image !== null,
|
|
63
|
+
hasNormalMap: false,
|
|
64
|
+
hasSpecularMap: false,
|
|
65
|
+
hasUvTransform: hasGlUvTransform(material !== null ? material.diffuseMap : null),
|
|
66
|
+
lightingModel: 'lambert',
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
const scratchRgba = [0, 0, 0, 0];
|
|
70
|
+
//# sourceMappingURL=lambertGlMeshMaterialRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambertGlMeshMaterialRenderer.js","sourceRoot":"","sources":["../src/lambertGlMeshMaterialRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { GlMeshMaterialRenderer, GlRenderState } from '@flighthq/types';
|
|
2
|
+
export declare const matcapGlMeshMaterialRenderer: GlMeshMaterialRenderer;
|
|
3
|
+
export declare function registerMatcapGlMaterial(state: GlRenderState): void;
|
|
4
|
+
//# sourceMappingURL=matcapGlMeshMaterialRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matcapGlMeshMaterialRenderer.d.ts","sourceRoot":"","sources":["../src/matcapGlMeshMaterialRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,sBAAsB,EACtB,aAAa,EAOd,MAAM,iBAAiB,CAAC;AAczB,eAAO,MAAM,4BAA4B,EAAE,sBA4B1C,CAAC;AAIF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEnE"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { unpackColorToLinear } from '@flighthq/color';
|
|
2
|
+
import { MatcapMaterialKind } from '@flighthq/types';
|
|
3
|
+
import { bindGlMatcapSurface, ensureGlMatcapProgram } from './glMatcapPrelude';
|
|
4
|
+
import { registerGlMeshMaterialRenderer } from './glMeshMaterialRegistry';
|
|
5
|
+
import { beginGlMeshDraw, drawGlMeshSubset, setGlMeshViewProjection } from './glMeshProgram';
|
|
6
|
+
import { getGlScene3DRuntime } from './glScene3DRuntime';
|
|
7
|
+
// The built-in Matcap forward renderer (GlMeshMaterialRenderer for MatcapMaterialKind). Lighting-
|
|
8
|
+
// independent material-capture shading: bind selects the matcap variant for the material's matcap
|
|
9
|
+
// texture / alpha mode, uploads the camera view-projection plus the camera view matrix (u_view, which
|
|
10
|
+
// the vertex scene2d uses to rotate the world-space normal into view space), and the linear tint; draw
|
|
11
|
+
// issues the indexed draw. Lights are ignored — the matcap texture is the prebaked lighting. See
|
|
12
|
+
// registerMatcapGlMaterial to install it.
|
|
13
|
+
export const matcapGlMeshMaterialRenderer = {
|
|
14
|
+
bind(state, material, _lights, camera) {
|
|
15
|
+
const gl = state.gl;
|
|
16
|
+
const matcap = material;
|
|
17
|
+
const program = ensureGlMatcapProgram(state, defineKeyForMaterial(matcap));
|
|
18
|
+
beginGlMeshDraw(state, program, matcap !== null && matcap.doubleSided);
|
|
19
|
+
setGlMeshViewProjection(gl, program.locViewProjection, camera);
|
|
20
|
+
// u_view rotates the world-space normal into view space for the matcap lookup.
|
|
21
|
+
gl.uniformMatrix4fv(program.locView, false, camera.view.m);
|
|
22
|
+
if (matcap === null) {
|
|
23
|
+
bindGlMatcapSurface(state, program, WHITE, null, 0.5);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
unpackColorToLinear(scratchRgba, matcap.tint);
|
|
27
|
+
bindGlMatcapSurface(state, program, scratchRgba, matcap.matcap, matcap.alphaCutoff);
|
|
28
|
+
},
|
|
29
|
+
draw(state, proxy, geometry) {
|
|
30
|
+
const program = getGlScene3DRuntime(state).activeMeshProgram;
|
|
31
|
+
if (program === null)
|
|
32
|
+
return;
|
|
33
|
+
drawGlMeshSubset(state, program, proxy, geometry);
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
// Registers the built-in Matcap renderer for MatcapMaterialKind on this state. Opt-in (no top-level
|
|
37
|
+
// side effect); call once per GlRenderState before drawScene3D so meshes with MatcapMaterials draw.
|
|
38
|
+
export function registerMatcapGlMaterial(state) {
|
|
39
|
+
registerGlMeshMaterialRenderer(state, MatcapMaterialKind, matcapGlMeshMaterialRenderer);
|
|
40
|
+
}
|
|
41
|
+
function defineKeyForMaterial(material) {
|
|
42
|
+
return {
|
|
43
|
+
alphaMaskEnabled: material !== null && material.alphaMode === 'mask',
|
|
44
|
+
hasMatcap: material !== null && material.matcap !== null && material.matcap.image !== null,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const scratchRgba = [0, 0, 0, 0];
|
|
48
|
+
const WHITE = [1, 1, 1, 1];
|
|
49
|
+
//# sourceMappingURL=matcapGlMeshMaterialRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matcapGlMeshMaterialRenderer.js","sourceRoot":"","sources":["../src/matcapGlMeshMaterialRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAatD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,kGAAkG;AAClG,kGAAkG;AAClG,sGAAsG;AACtG,uGAAuG;AACvG,iGAAiG;AACjG,0CAA0C;AAC1C,MAAM,CAAC,MAAM,4BAA4B,GAA2B;IAClE,IAAI,CACF,KAAoB,EACpB,QAAmC,EACnC,OAAoC,EACpC,MAA0B;QAE1B,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,QAA2C,CAAC;QAC3D,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;QACvE,uBAAuB,CAAC,EAAE,EAAE,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC/D,+EAA+E;QAC/E,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE3D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QACD,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,CAAC,KAAoB,EAAE,KAAmC,EAAE,QAAgC;QAC9F,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC;QAC7D,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO;QAC7B,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;CACF,CAAC;AAEF,oGAAoG;AACpG,oGAAoG;AACpG,MAAM,UAAU,wBAAwB,CAAC,KAAoB;IAC3D,8BAA8B,CAAC,KAAK,EAAE,kBAAkB,EAAE,4BAA4B,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAyC;IACrE,OAAO;QACL,gBAAgB,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,SAAS,KAAK,MAAM;QACpE,SAAS,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;KAC3F,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { GlMeshMaterialRenderer, GlRenderState } from '@flighthq/types';
|
|
2
|
+
export declare const normalGlMeshMaterialRenderer: GlMeshMaterialRenderer;
|
|
3
|
+
export declare function registerNormalGlMaterial(state: GlRenderState): void;
|
|
4
|
+
//# sourceMappingURL=normalGlMeshMaterialRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalGlMeshMaterialRenderer.d.ts","sourceRoot":"","sources":["../src/normalGlMeshMaterialRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,sBAAsB,EACtB,aAAa,EAMd,MAAM,iBAAiB,CAAC;AAezB,eAAO,MAAM,4BAA4B,EAAE,sBA0B1C,CAAC;AAIF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEnE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { NormalMaterialKind } from '@flighthq/types';
|
|
2
|
+
import { bindGlDebugNormalMap, ensureGlDebugProgram } from './glDebugPrelude';
|
|
3
|
+
import { registerGlMeshMaterialRenderer } from './glMeshMaterialRegistry';
|
|
4
|
+
import { beginGlMeshDraw, drawGlMeshSubset, setGlMeshViewProjection } from './glMeshProgram';
|
|
5
|
+
import { getGlScene3DRuntime } from './glScene3DRuntime';
|
|
6
|
+
// The built-in Normal forward renderer (GlMeshMaterialRenderer for NormalMaterialKind). A lighting-
|
|
7
|
+
// independent debug/utility pass material: bind selects the debug program in normal mode (with the
|
|
8
|
+
// normal-map variant when the material binds one), uploads the camera view-projection, and binds the
|
|
9
|
+
// optional tangent-space normal map plus its scale; draw issues the indexed draw. The fragment scene2d
|
|
10
|
+
// transforms the geometric normal by the normal matrix (so the visualized normal is WORLD-space),
|
|
11
|
+
// optionally perturbs it through a TBN-built normal map, and encodes it as `n * 0.5 + 0.5` LINEAR
|
|
12
|
+
// color. Lights are ignored. See registerNormalGlMaterial to install it.
|
|
13
|
+
export const normalGlMeshMaterialRenderer = {
|
|
14
|
+
bind(state, material, _lights, camera) {
|
|
15
|
+
const gl = state.gl;
|
|
16
|
+
const normal = material;
|
|
17
|
+
const hasNormalMap = normal !== null && normal.normalMap !== null && normal.normalMap.image !== null;
|
|
18
|
+
const program = ensureGlDebugProgram(state, { hasNormalMap, mode: 'normal' });
|
|
19
|
+
beginGlMeshDraw(state, program, normal !== null && normal.doubleSided);
|
|
20
|
+
setGlMeshViewProjection(gl, program.locViewProjection, camera);
|
|
21
|
+
if (normal === null) {
|
|
22
|
+
bindGlDebugNormalMap(state, program, null, 1);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
bindGlDebugNormalMap(state, program, normal.normalMap, normal.normalScale);
|
|
26
|
+
},
|
|
27
|
+
draw(state, proxy, geometry) {
|
|
28
|
+
const program = getGlScene3DRuntime(state).activeMeshProgram;
|
|
29
|
+
if (program === null)
|
|
30
|
+
return;
|
|
31
|
+
drawGlMeshSubset(state, program, proxy, geometry);
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
// Registers the built-in Normal renderer for NormalMaterialKind on this state. Opt-in (no top-level
|
|
35
|
+
// side effect); call once per GlRenderState before drawScene3D so meshes with NormalMaterials draw.
|
|
36
|
+
export function registerNormalGlMaterial(state) {
|
|
37
|
+
registerGlMeshMaterialRenderer(state, NormalMaterialKind, normalGlMeshMaterialRenderer);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=normalGlMeshMaterialRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalGlMeshMaterialRenderer.js","sourceRoot":"","sources":["../src/normalGlMeshMaterialRenderer.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,oGAAoG;AACpG,mGAAmG;AACnG,qGAAqG;AACrG,uGAAuG;AACvG,kGAAkG;AAClG,kGAAkG;AAClG,yEAAyE;AACzE,MAAM,CAAC,MAAM,4BAA4B,GAA2B;IAClE,IAAI,CACF,KAAoB,EACpB,QAAmC,EACnC,OAAoC,EACpC,MAA0B;QAE1B,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,QAA2C,CAAC;QAC3D,MAAM,YAAY,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC;QACrG,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9E,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;QACvE,uBAAuB,CAAC,EAAE,EAAE,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAE/D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC,KAAoB,EAAE,KAAmC,EAAE,QAAgC;QAC9F,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC;QAC7D,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO;QAC7B,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;CACF,CAAC;AAEF,oGAAoG;AACpG,oGAAoG;AACpG,MAAM,UAAU,wBAAwB,CAAC,KAAoB;IAC3D,8BAA8B,CAAC,KAAK,EAAE,kBAAkB,EAAE,4BAA4B,CAAC,CAAC;AAC1F,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { GlMeshMaterialRenderer, GlRenderState } from '@flighthq/types';
|
|
2
|
+
export declare const phongGlMeshMaterialRenderer: GlMeshMaterialRenderer;
|
|
3
|
+
export declare function registerPhongGlMaterial(state: GlRenderState): void;
|
|
4
|
+
//# sourceMappingURL=phongGlMeshMaterialRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phongGlMeshMaterialRenderer.d.ts","sourceRoot":"","sources":["../src/phongGlMeshMaterialRenderer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,sBAAsB,EACtB,aAAa,EAQd,MAAM,iBAAiB,CAAC;AAsBzB,eAAO,MAAM,2BAA2B,EAAE,sBAuBzC,CAAC;AAIF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAElE"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { unpackColorToLinear } from '@flighthq/color';
|
|
2
|
+
import { hasImageResourcePixels } from '@flighthq/image';
|
|
3
|
+
import { bindGlImageResourceTexture } from '@flighthq/render-gl';
|
|
4
|
+
import { PhongMaterialKind } from '@flighthq/types';
|
|
5
|
+
import { ensureGlClassicProgram } from './glClassicPrelude';
|
|
6
|
+
import { bindGlMeshLightBlock } from './glLitProgram';
|
|
7
|
+
import { registerGlMeshMaterialRenderer } from './glMeshMaterialRegistry';
|
|
8
|
+
import { beginGlMeshDraw, bindGlUvTransform, drawGlMeshSubset, hasGlUvTransform, setGlMeshCameraPosition, setGlMeshViewProjection, } from './glMeshProgram';
|
|
9
|
+
import { getGlScene3DRuntime } from './glScene3DRuntime';
|
|
10
|
+
// The built-in classic Phong forward-lit mesh-material renderer (GlMeshMaterialRenderer for
|
|
11
|
+
// PhongMaterialKind). Lambert diffuse plus a reflection-vector specular lobe: bind selects the classic
|
|
12
|
+
// uber-shader's `phong` variant for the material's diffuse / specular / normal maps and alpha mode,
|
|
13
|
+
// uploads the camera view-projection AND position (the specular term is view-dependent), the packed
|
|
14
|
+
// light block, and the material's linear diffuse + specular colors, shininess, and maps. draw issues
|
|
15
|
+
// the indexed draw. See registerPhongGlMaterial to install it.
|
|
16
|
+
export const phongGlMeshMaterialRenderer = {
|
|
17
|
+
bind(state, material, lights, camera) {
|
|
18
|
+
const gl = state.gl;
|
|
19
|
+
const phong = material;
|
|
20
|
+
const program = ensureGlClassicProgram(state, defineKeyForMaterial(phong));
|
|
21
|
+
beginGlMeshDraw(state, program, phong !== null && phong.doubleSided);
|
|
22
|
+
setGlMeshViewProjection(gl, program.locViewProjection, camera);
|
|
23
|
+
setGlMeshCameraPosition(gl, program.locCameraPosition, camera);
|
|
24
|
+
bindGlMeshLightBlock(state, program, lights);
|
|
25
|
+
bindGlPhongMaterialUniforms(state, program, phong);
|
|
26
|
+
},
|
|
27
|
+
draw(state, proxy, geometry) {
|
|
28
|
+
const program = getGlScene3DRuntime(state).activeMeshProgram;
|
|
29
|
+
if (program === null)
|
|
30
|
+
return;
|
|
31
|
+
drawGlMeshSubset(state, program, proxy, geometry);
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
// Registers the built-in Phong renderer for PhongMaterialKind on this state. Opt-in (no top-level
|
|
35
|
+
// side effect); call once per GlRenderState before drawScene3D so meshes with PhongMaterials draw.
|
|
36
|
+
export function registerPhongGlMaterial(state) {
|
|
37
|
+
registerGlMeshMaterialRenderer(state, PhongMaterialKind, phongGlMeshMaterialRenderer);
|
|
38
|
+
}
|
|
39
|
+
function bindGlPhongMaterialUniforms(state, program, material) {
|
|
40
|
+
const gl = state.gl;
|
|
41
|
+
if (material === null) {
|
|
42
|
+
gl.uniform4f(program.locDiffuse, 1, 1, 1, 1);
|
|
43
|
+
gl.uniform4f(program.locSpecular, 1, 1, 1, 1);
|
|
44
|
+
gl.uniform1f(program.locShininess, 32);
|
|
45
|
+
gl.uniform1f(program.locNormalScale, 1);
|
|
46
|
+
gl.uniform1f(program.locAlphaCutoff, 0.5);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
unpackColorToLinear(scratchRgba, material.diffuse);
|
|
50
|
+
gl.uniform4f(program.locDiffuse, scratchRgba[0], scratchRgba[1], scratchRgba[2], scratchRgba[3]);
|
|
51
|
+
unpackColorToLinear(scratchRgba, material.specular);
|
|
52
|
+
gl.uniform4f(program.locSpecular, scratchRgba[0], scratchRgba[1], scratchRgba[2], scratchRgba[3]);
|
|
53
|
+
gl.uniform1f(program.locShininess, material.shininess);
|
|
54
|
+
gl.uniform1f(program.locNormalScale, material.normalScale);
|
|
55
|
+
gl.uniform1f(program.locAlphaCutoff, material.alphaCutoff);
|
|
56
|
+
const diffuseMap = material.diffuseMap;
|
|
57
|
+
if (diffuseMap !== null && diffuseMap.image !== null && hasImageResourcePixels(diffuseMap.image)) {
|
|
58
|
+
gl.activeTexture(gl.TEXTURE0);
|
|
59
|
+
bindGlImageResourceTexture(state, diffuseMap.image, diffuseMap.sampler);
|
|
60
|
+
gl.uniform1i(program.locDiffuseMap, 0);
|
|
61
|
+
}
|
|
62
|
+
const specularMap = material.specularMap;
|
|
63
|
+
if (specularMap !== null && specularMap.image !== null && hasImageResourcePixels(specularMap.image)) {
|
|
64
|
+
gl.activeTexture(gl.TEXTURE1);
|
|
65
|
+
bindGlImageResourceTexture(state, specularMap.image, specularMap.sampler);
|
|
66
|
+
gl.uniform1i(program.locSpecularMap, 1);
|
|
67
|
+
}
|
|
68
|
+
const normalMap = material.normalMap;
|
|
69
|
+
if (normalMap !== null && normalMap.image !== null && hasImageResourcePixels(normalMap.image)) {
|
|
70
|
+
gl.activeTexture(gl.TEXTURE2);
|
|
71
|
+
bindGlImageResourceTexture(state, normalMap.image, normalMap.sampler);
|
|
72
|
+
gl.uniform1i(program.locNormalMap, 2);
|
|
73
|
+
}
|
|
74
|
+
bindGlUvTransform(gl, program, diffuseMap);
|
|
75
|
+
}
|
|
76
|
+
// The feature define key for a Phong material: the fixed `phong` lighting model plus which optional
|
|
77
|
+
// maps are present and whether alpha-mask cutoff is active.
|
|
78
|
+
function defineKeyForMaterial(material) {
|
|
79
|
+
return {
|
|
80
|
+
alphaMaskEnabled: material !== null && material.alphaMode === 'mask',
|
|
81
|
+
hasAlphaMap: false,
|
|
82
|
+
hasDiffuseMap: material !== null && material.diffuseMap !== null && material.diffuseMap.image !== null,
|
|
83
|
+
hasNormalMap: material !== null && material.normalMap !== null && material.normalMap.image !== null,
|
|
84
|
+
hasSpecularMap: material !== null && material.specularMap !== null && material.specularMap.image !== null,
|
|
85
|
+
hasUvTransform: hasGlUvTransform(material !== null ? material.diffuseMap : null),
|
|
86
|
+
lightingModel: 'phong',
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
const scratchRgba = [0, 0, 0, 0];
|
|
90
|
+
//# sourceMappingURL=phongGlMeshMaterialRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phongGlMeshMaterialRenderer.js","sourceRoot":"","sources":["../src/phongGlMeshMaterialRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAcjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,4FAA4F;AAC5F,uGAAuG;AACvG,oGAAoG;AACpG,oGAAoG;AACpG,qGAAqG;AACrG,+DAA+D;AAC/D,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IACjE,IAAI,CACF,KAAoB,EACpB,QAAmC,EACnC,MAAmC,EACnC,MAA0B;QAE1B,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,QAA0C,CAAC;QACzD,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3E,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;QAErE,uBAAuB,CAAC,EAAE,EAAE,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC/D,uBAAuB,CAAC,EAAE,EAAE,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC/D,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7C,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,KAAoB,EAAE,KAAmC,EAAE,QAAgC;QAC9F,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC;QAC7D,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO;QAC7B,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;CACF,CAAC;AAEF,kGAAkG;AAClG,mGAAmG;AACnG,MAAM,UAAU,uBAAuB,CAAC,KAAoB;IAC1D,8BAA8B,CAAC,KAAK,EAAE,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,2BAA2B,CAClC,KAAoB,EACpB,OAAmC,EACnC,QAAwC;IAExC,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACvC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACxC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnD,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACjG,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpD,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvD,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC3D,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI,IAAI,sBAAsB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACjG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC9B,0BAA0B,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QACxE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IACzC,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,IAAI,sBAAsB,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACpG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC9B,0BAA0B,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1E,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,IAAI,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9F,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC9B,0BAA0B,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QACtE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAC7C,CAAC;AAED,oGAAoG;AACpG,4DAA4D;AAC5D,SAAS,oBAAoB,CAAC,QAAwC;IACpE,OAAO;QACL,gBAAgB,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,SAAS,KAAK,MAAM;QACpE,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,KAAK,IAAI;QACtG,YAAY,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,KAAK,IAAI;QACnG,cAAc,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,KAAK,IAAI;QACzG,cAAc,EAAE,gBAAgB,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,aAAa,EAAE,OAAO;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { GlRenderState, GlScene3DForwardLightList, Scene3DLightsLike, Scene3DRenderList } from '@flighthq/types';
|
|
2
|
+
export declare function prepareGlScene3DForwardLights(state: GlRenderState, sceneRenderList: Readonly<Scene3DRenderList>, lights: Readonly<Scene3DLightsLike>): GlScene3DForwardLightList;
|
|
3
|
+
//# sourceMappingURL=prepareGlScene3DForwardLights.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepareGlScene3DForwardLights.d.ts","sourceRoot":"","sources":["../src/prepareGlScene3DForwardLights.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,aAAa,EACb,yBAAyB,EAIzB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAYzB,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,aAAa,EACpB,eAAe,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC5C,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAClC,yBAAyB,CA4B3B"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { createAabb, createBoundingSphere, setBoundingSphereFromAabb } from '@flighthq/geometry';
|
|
2
|
+
import { selectScene3DForwardLights } from '@flighthq/lighting';
|
|
3
|
+
import { getNodeWorldMatrix4 } from '@flighthq/node';
|
|
4
|
+
import { packScene3DLightBlock } from '@flighthq/render';
|
|
5
|
+
import { getNode3DWorldBounds } from '@flighthq/scene3d';
|
|
6
|
+
import { SCENE_LIGHT_BLOCK_FLOATS } from '@flighthq/types';
|
|
7
|
+
// Prepares one punctual-light block for each visible mesh after prepareScene3DRender. The selection is
|
|
8
|
+
// opt-in and explicit: scenes within each family's forward budget need not import or run it. Point
|
|
9
|
+
// and spot lights are independently ranked by estimated contribution at each mesh's world bounding
|
|
10
|
+
// sphere; directional, ambient, and hemisphere terms remain scene-global.
|
|
11
|
+
//
|
|
12
|
+
// Identical stable light-index tuples reuse the same packed block, so spatially coherent meshes keep
|
|
13
|
+
// material bind runs. The returned list, packed blocks, and selection arrays are state-owned scratch;
|
|
14
|
+
// the bounds objects at the bottom of this module are transient and never retained. Steady-state
|
|
15
|
+
// calls allocate nothing, and the result must not be retained past the draw.
|
|
16
|
+
export function prepareGlScene3DForwardLights(state, sceneRenderList, lights) {
|
|
17
|
+
const prepared = ensurePreparedGlScene3DForwardLights(state);
|
|
18
|
+
const out = prepared.list;
|
|
19
|
+
prepared.blockCount = 0;
|
|
20
|
+
out.meshLightBlocks.length = sceneRenderList.meshCount;
|
|
21
|
+
out.meshCount = sceneRenderList.meshCount;
|
|
22
|
+
for (let meshIndex = 0; meshIndex < sceneRenderList.meshCount; meshIndex++) {
|
|
23
|
+
const mesh = sceneRenderList.visibleMeshes[meshIndex];
|
|
24
|
+
setMeshWorldBoundingSphere(mesh);
|
|
25
|
+
selectScene3DForwardLights(prepared.selection, lights, scratchWorldSphere);
|
|
26
|
+
let blockIndex = findPreparedBlock(prepared, prepared.selection.indices);
|
|
27
|
+
if (blockIndex < 0) {
|
|
28
|
+
blockIndex = prepared.blockCount++;
|
|
29
|
+
const block = ensurePreparedBlock(prepared, blockIndex);
|
|
30
|
+
copyIndices(block.indices, prepared.selection.indices);
|
|
31
|
+
selectedLights.ambient = lights.ambient;
|
|
32
|
+
selectedLights.directional = lights.directional;
|
|
33
|
+
selectedLights.hemisphere = lights.hemisphere;
|
|
34
|
+
selectedLights.point = prepared.selection.point;
|
|
35
|
+
selectedLights.spot = prepared.selection.spot;
|
|
36
|
+
packScene3DLightBlock(block.lights, selectedLights);
|
|
37
|
+
}
|
|
38
|
+
out.meshLightBlocks[meshIndex] = prepared.blocks[blockIndex].lights;
|
|
39
|
+
}
|
|
40
|
+
return out;
|
|
41
|
+
}
|
|
42
|
+
function copyIndices(out, indices) {
|
|
43
|
+
out.length = indices.length;
|
|
44
|
+
for (let i = 0; i < indices.length; i++)
|
|
45
|
+
out[i] = indices[i];
|
|
46
|
+
}
|
|
47
|
+
function createScene3DLightBlock() {
|
|
48
|
+
return {
|
|
49
|
+
ambientCount: 0,
|
|
50
|
+
data: new Float32Array(SCENE_LIGHT_BLOCK_FLOATS),
|
|
51
|
+
directionalCount: 0,
|
|
52
|
+
hemisphereCount: 0,
|
|
53
|
+
pointCount: 0,
|
|
54
|
+
spotCount: 0,
|
|
55
|
+
version: 0,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function ensurePreparedBlock(prepared, index) {
|
|
59
|
+
let block = prepared.blocks[index];
|
|
60
|
+
if (block === undefined) {
|
|
61
|
+
block = { indices: [], lights: createScene3DLightBlock() };
|
|
62
|
+
prepared.blocks[index] = block;
|
|
63
|
+
}
|
|
64
|
+
return block;
|
|
65
|
+
}
|
|
66
|
+
function ensurePreparedGlScene3DForwardLights(state) {
|
|
67
|
+
let prepared = preparedGlScene3DForwardLights.get(state);
|
|
68
|
+
if (prepared === undefined) {
|
|
69
|
+
prepared = {
|
|
70
|
+
blockCount: 0,
|
|
71
|
+
blocks: [],
|
|
72
|
+
list: { meshCount: 0, meshLightBlocks: [] },
|
|
73
|
+
selection: { indices: [], point: [], spot: [] },
|
|
74
|
+
};
|
|
75
|
+
preparedGlScene3DForwardLights.set(state, prepared);
|
|
76
|
+
}
|
|
77
|
+
return prepared;
|
|
78
|
+
}
|
|
79
|
+
function findPreparedBlock(prepared, indices) {
|
|
80
|
+
for (let blockIndex = 0; blockIndex < prepared.blockCount; blockIndex++) {
|
|
81
|
+
const candidate = prepared.blocks[blockIndex].indices;
|
|
82
|
+
if (candidate.length !== indices.length)
|
|
83
|
+
continue;
|
|
84
|
+
let equal = true;
|
|
85
|
+
for (let i = 0; i < indices.length; i++) {
|
|
86
|
+
if (candidate[i] !== indices[i]) {
|
|
87
|
+
equal = false;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (equal)
|
|
92
|
+
return blockIndex;
|
|
93
|
+
}
|
|
94
|
+
return -1;
|
|
95
|
+
}
|
|
96
|
+
function setMeshWorldBoundingSphere(mesh) {
|
|
97
|
+
getNode3DWorldBounds(scratchWorldBounds, mesh);
|
|
98
|
+
setBoundingSphereFromAabb(scratchWorldSphere, scratchWorldBounds);
|
|
99
|
+
if (scratchWorldSphere.radius < 0) {
|
|
100
|
+
const world = getNodeWorldMatrix4(mesh).m;
|
|
101
|
+
scratchWorldSphere.center.x = world[12];
|
|
102
|
+
scratchWorldSphere.center.y = world[13];
|
|
103
|
+
scratchWorldSphere.center.z = world[14];
|
|
104
|
+
scratchWorldSphere.radius = 0;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const preparedGlScene3DForwardLights = new WeakMap();
|
|
108
|
+
const scratchWorldBounds = createAabb();
|
|
109
|
+
const scratchWorldSphere = createBoundingSphere();
|
|
110
|
+
const selectedLights = {
|
|
111
|
+
ambient: null,
|
|
112
|
+
directional: null,
|
|
113
|
+
hemisphere: [],
|
|
114
|
+
point: [],
|
|
115
|
+
spot: [],
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=prepareGlScene3DForwardLights.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepareGlScene3DForwardLights.js","sourceRoot":"","sources":["../src/prepareGlScene3DForwardLights.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Camera3D, GlRenderState, GlRenderTarget, Scene3DLightsLike, Node3D } from '@flighthq/types';
|
|
2
|
+
export declare function presentGlScene3D(state: GlRenderState, target: GlRenderTarget, scene: Readonly<Node3D>, camera: Readonly<Camera3D>, lights: Readonly<Scene3DLightsLike>): void;
|
|
3
|
+
//# sourceMappingURL=presentGlScene3D.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentGlScene3D.d.ts","sourceRoot":"","sources":["../src/presentGlScene3D.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAgB1G,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EACvB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAC1B,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAClC,IAAI,CAKN"}
|