bg2e-js 2.3.11 → 2.3.13

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.
Files changed (148) hide show
  1. package/dist/bg2e-js.js +356 -326
  2. package/dist/bg2e-js.js.map +1 -1
  3. package/package.json +56 -56
  4. package/src/app/AppController.ts +39 -39
  5. package/src/app/Bg2KeyboardEvent.ts +54 -54
  6. package/src/app/Bg2MouseEvent.ts +82 -82
  7. package/src/app/Bg2TouchEvent.ts +18 -18
  8. package/src/app/Canvas.ts +108 -108
  9. package/src/app/EventBase.ts +10 -10
  10. package/src/app/MainLoop.ts +273 -273
  11. package/src/app/index.ts +24 -24
  12. package/src/base/Color.ts +134 -134
  13. package/src/base/Environment.ts +183 -183
  14. package/src/base/Light.ts +192 -192
  15. package/src/base/Material.ts +620 -620
  16. package/src/base/PolyList.ts +365 -365
  17. package/src/base/Texture.ts +620 -620
  18. package/src/base/index.ts +81 -81
  19. package/src/db/Bg2LoaderPlugin.ts +143 -143
  20. package/src/db/DBPluginApi.ts +48 -48
  21. package/src/db/Loader.ts +116 -116
  22. package/src/db/LoaderPlugin.ts +34 -34
  23. package/src/db/MtlParser.ts +7 -7
  24. package/src/db/ObjLoaderPlugin.ts +54 -54
  25. package/src/db/ObjParser.ts +252 -252
  26. package/src/db/ObjWriterPlugin.ts +18 -18
  27. package/src/db/VitscnjLoaderPlugin.ts +112 -112
  28. package/src/db/Writer.ts +52 -52
  29. package/src/db/WriterPlugin.ts +22 -22
  30. package/src/db/index.ts +44 -44
  31. package/src/debug/DebugRenderer.ts +173 -173
  32. package/src/debug/WebGLTextureViewer.ts +75 -75
  33. package/src/debug/index.ts +6 -6
  34. package/src/index.html +11 -11
  35. package/src/index.ts +33 -33
  36. package/src/manipulation/SelectionBuffer.ts +81 -81
  37. package/src/manipulation/SelectionHighlight.ts +105 -84
  38. package/src/manipulation/SelectionIdAssignVisitor.ts +96 -96
  39. package/src/manipulation/SelectionManager.ts +196 -188
  40. package/src/manipulation/SelectionMode.ts +6 -6
  41. package/src/math/Mat3.ts +259 -259
  42. package/src/math/Mat4.ts +710 -710
  43. package/src/math/MatrixStrategy.ts +25 -25
  44. package/src/math/Quat.ts +65 -65
  45. package/src/math/Vec.ts +753 -753
  46. package/src/math/constants.ts +46 -46
  47. package/src/math/functions.ts +103 -103
  48. package/src/math/index.ts +74 -74
  49. package/src/phsics/joint.ts +137 -137
  50. package/src/primitives/arrow.ts +57 -57
  51. package/src/primitives/cone.ts +138 -138
  52. package/src/primitives/cube.ts +60 -60
  53. package/src/primitives/cylinder.ts +216 -216
  54. package/src/primitives/index.ts +13 -13
  55. package/src/primitives/plane.ts +31 -31
  56. package/src/primitives/sphere.ts +809 -809
  57. package/src/react/useBg2e.ts +69 -69
  58. package/src/render/BRDFIntegrationMap.ts +4 -4
  59. package/src/render/Environment.ts +135 -135
  60. package/src/render/FrameBuffer.ts +35 -35
  61. package/src/render/MaterialRenderer.ts +34 -34
  62. package/src/render/Pipeline.ts +108 -108
  63. package/src/render/PolyListRenderer.ts +47 -47
  64. package/src/render/RenderBuffer.ts +197 -197
  65. package/src/render/RenderQueue.ts +198 -198
  66. package/src/render/RenderState.ts +116 -116
  67. package/src/render/Renderer.ts +248 -248
  68. package/src/render/SceneAppController.ts +250 -250
  69. package/src/render/SceneRenderer.ts +387 -387
  70. package/src/render/Shader.ts +32 -32
  71. package/src/render/ShadowRenderer.ts +176 -176
  72. package/src/render/SkyCube.ts +105 -105
  73. package/src/render/SkySphere.ts +117 -117
  74. package/src/render/TextureMergerRenderer.ts +70 -70
  75. package/src/render/TextureRenderer.ts +34 -34
  76. package/src/render/index.ts +67 -67
  77. package/src/render/webgl/FrameBuffer.ts +9 -9
  78. package/src/render/webgl/MaterialRenderer.ts +112 -112
  79. package/src/render/webgl/Pipeline.ts +88 -88
  80. package/src/render/webgl/PolyListRenderer.ts +260 -260
  81. package/src/render/webgl/RenderBuffer.ts +226 -226
  82. package/src/render/webgl/Renderer.ts +262 -262
  83. package/src/render/webgl/SceneRenderer.ts +67 -67
  84. package/src/render/webgl/ShaderProgram.ts +424 -424
  85. package/src/render/webgl/ShadowRenderer.ts +6 -6
  86. package/src/render/webgl/SkyCube.ts +15 -15
  87. package/src/render/webgl/SkySphere.ts +15 -15
  88. package/src/render/webgl/State.ts +152 -152
  89. package/src/render/webgl/TextureRenderer.ts +167 -167
  90. package/src/render/webgl/VertexBuffer.ts +137 -137
  91. package/src/render/webgl/index.ts +35 -35
  92. package/src/scene/Camera.ts +458 -458
  93. package/src/scene/Chain.ts +44 -44
  94. package/src/scene/ChainJoint.ts +58 -58
  95. package/src/scene/Component.ts +177 -177
  96. package/src/scene/ComponentMap.ts +106 -106
  97. package/src/scene/Drawable.ts +154 -154
  98. package/src/scene/EnvironmentComponent.ts +141 -141
  99. package/src/scene/FindNodeVisitor.ts +59 -59
  100. package/src/scene/LightComponent.ts +154 -154
  101. package/src/scene/MatrixState.ts +46 -46
  102. package/src/scene/Node.ts +328 -328
  103. package/src/scene/NodeVisitor.ts +15 -15
  104. package/src/scene/OrbitCameraController.ts +450 -450
  105. package/src/scene/SmoothOrbitCameraController.ts +99 -99
  106. package/src/scene/Transform.ts +73 -73
  107. package/src/scene/index.ts +60 -60
  108. package/src/shaders/BasicDiffuseColorShader.ts +111 -111
  109. package/src/shaders/BasicPBRLightShader.ts +276 -276
  110. package/src/shaders/DebugRenderShader.ts +97 -97
  111. package/src/shaders/DepthRenderShader.ts +127 -127
  112. package/src/shaders/IrradianceMapCubeShader.ts +115 -115
  113. package/src/shaders/PBRLightIBLShader.ts +486 -486
  114. package/src/shaders/PickSelectionShader.ts +101 -101
  115. package/src/shaders/PresentDebugFramebufferShader.ts +118 -118
  116. package/src/shaders/PresentTextureShader.ts +99 -99
  117. package/src/shaders/SelectionHighlightShader.ts +143 -127
  118. package/src/shaders/ShaderFunction.ts +318 -318
  119. package/src/shaders/SkyCubeShader.ts +93 -93
  120. package/src/shaders/SkySphereShader.ts +102 -102
  121. package/src/shaders/SpecularMapCubeShader.ts +164 -164
  122. package/src/shaders/TextureMergerShader.ts +171 -171
  123. package/src/shaders/index.ts +36 -36
  124. package/src/shaders/webgl/color_correction.glsl +47 -47
  125. package/src/shaders/webgl/constants.glsl +6 -6
  126. package/src/shaders/webgl/index.ts +70 -70
  127. package/src/shaders/webgl/normal_map.glsl +9 -9
  128. package/src/shaders/webgl/pbr.glsl +173 -173
  129. package/src/shaders/webgl/uniforms.glsl +91 -91
  130. package/src/shaders/webgl_shader_lib.ts +213 -213
  131. package/src/tools/BinaryResourceProvider.ts +14 -14
  132. package/src/tools/ImageResourceProvider.ts +66 -66
  133. package/src/tools/MaterialModifier.ts +446 -446
  134. package/src/tools/Resource.ts +203 -203
  135. package/src/tools/ResourceProvider.ts +69 -69
  136. package/src/tools/TextResourceProvider.ts +24 -24
  137. package/src/tools/TextureCache.ts +51 -51
  138. package/src/tools/TextureResourceDatabase.ts +100 -100
  139. package/src/tools/UserAgent.ts +362 -362
  140. package/src/tools/VideoResourceProvider.ts +50 -50
  141. package/src/tools/WriteStrategy.ts +22 -22
  142. package/src/tools/base64.ts +11 -11
  143. package/src/tools/crypto.ts +19 -19
  144. package/src/tools/endiantess.ts +13 -13
  145. package/src/tools/image.ts +18 -18
  146. package/src/tools/index.ts +41 -41
  147. package/src/tools/processType.ts +39 -39
  148. package/src/vite-env.d.ts +12 -12
@@ -1,37 +1,37 @@
1
- import BasicDiffuseColorShader from "./BasicDiffuseColorShader";
2
- import BasicPBRLightShader from "./BasicPBRLightShader";
3
- import DebugRenderShader from "./DebugRenderShader";
4
- import DepthRenderShader from "./DepthRenderShader";
5
- import IrradianceMapCubeShader from "./IrradianceMapCubeShader";
6
- import PBRLightIBLShader from "./PBRLightIBLShader";
7
- import PickSelectionShader from "./PickSelectionShader";
8
- import PresentDebugFramebufferShader from "./PresentDebugFramebufferShader";
9
- import PresentTextureShader from "./PresentTextureShader";
10
- import SelectionHighlightShader from "./SelectionHighlightShader";
11
- import ShaderFunction from "./ShaderFunction";
12
- import SkyCubeShader from "./SkyCubeShader";
13
- import SkySphereShader from "./SkySphereShader";
14
- import SpecularMapCubeShader from "./SpecularMapCubeShader";
15
- import TextureMergerShader from "./TextureMergerShader";
16
- import * as webgl_shader_lib from "./webgl_shader_lib";
17
-
18
- export default {
19
- BasicDiffuseColorShader,
20
- BasicPBRLightShader,
21
- DebugRenderShader,
22
- DepthRenderShader,
23
- IrradianceMapCubeShader,
24
- PBRLightIBLShader,
25
- PickSelectionShader,
26
- PresentDebugFramebufferShader,
27
- PresentTextureShader,
28
- SelectionHighlightShader,
29
- ShaderFunction,
30
- SkyCubeShader,
31
- SkySphereShader,
32
- SpecularMapCubeShader,
33
- TextureMergerShader,
34
- shaderLib: {
35
- webgl: webgl_shader_lib
36
- }
1
+ import BasicDiffuseColorShader from "./BasicDiffuseColorShader";
2
+ import BasicPBRLightShader from "./BasicPBRLightShader";
3
+ import DebugRenderShader from "./DebugRenderShader";
4
+ import DepthRenderShader from "./DepthRenderShader";
5
+ import IrradianceMapCubeShader from "./IrradianceMapCubeShader";
6
+ import PBRLightIBLShader from "./PBRLightIBLShader";
7
+ import PickSelectionShader from "./PickSelectionShader";
8
+ import PresentDebugFramebufferShader from "./PresentDebugFramebufferShader";
9
+ import PresentTextureShader from "./PresentTextureShader";
10
+ import SelectionHighlightShader from "./SelectionHighlightShader";
11
+ import ShaderFunction from "./ShaderFunction";
12
+ import SkyCubeShader from "./SkyCubeShader";
13
+ import SkySphereShader from "./SkySphereShader";
14
+ import SpecularMapCubeShader from "./SpecularMapCubeShader";
15
+ import TextureMergerShader from "./TextureMergerShader";
16
+ import * as webgl_shader_lib from "./webgl_shader_lib";
17
+
18
+ export default {
19
+ BasicDiffuseColorShader,
20
+ BasicPBRLightShader,
21
+ DebugRenderShader,
22
+ DepthRenderShader,
23
+ IrradianceMapCubeShader,
24
+ PBRLightIBLShader,
25
+ PickSelectionShader,
26
+ PresentDebugFramebufferShader,
27
+ PresentTextureShader,
28
+ SelectionHighlightShader,
29
+ ShaderFunction,
30
+ SkyCubeShader,
31
+ SkySphereShader,
32
+ SpecularMapCubeShader,
33
+ TextureMergerShader,
34
+ shaderLib: {
35
+ webgl: webgl_shader_lib
36
+ }
37
37
  }
@@ -1,47 +1,47 @@
1
- #ifndef COLOR_CORRECTION_GLSL
2
- #define COLOR_CORRECTION_GLSL
3
-
4
- // Convert lineal color to SRGB for shader output
5
- vec4 lineal2SRGB(vec4 color, float gamma)
6
- {
7
- color = color / (color + vec4(1.0));
8
- return vec4(pow(color.rgb, vec3(1.0 / gamma)), color.a);
9
- }
10
-
11
- vec3 lineal2SRGB(vec3 color, float gamma)
12
- {
13
- color = color / (color + vec3(1.0));
14
- return pow(color.rgb, vec3(1.0 / gamma));
15
- }
16
-
17
- // Convert SRGB textures to lineal color
18
- vec4 SRGB2Lineal(vec4 color, float gamma)
19
- {
20
- return vec4(pow(color.rgb, vec3(gamma)), color.a);
21
- }
22
-
23
- vec3 SRGB2lLineal(vec3 color, float gamma)
24
- {
25
- return pow(color, vec3(gamma));
26
- }
27
-
28
- vec4 brightnessContrast(vec4 color, float brightness, float contrast)
29
- {
30
- mat4 brightnessMat = mat4(
31
- 1.0, 0.0, 0.0, 0.0,
32
- 0.0, 1.0, 0.0, 0.0,
33
- 0.0, 0.0, 1.0, 0.0,
34
- brightness, brightness, brightness, 1.0
35
- );
36
- float t = (1.0 - contrast) / 2.0;
37
- mat4 contrastMat = mat4(
38
- contrast, 0.0, 0.0, 0.0,
39
- 0.0, contrast, 0.0, 0.0,
40
- 0.0, 0.0, contrast, 0.0,
41
- t, t, t, 1.0
42
- );
43
- return contrastMat * brightnessMat * color;
44
- }
45
-
46
- #endif // COLOR_CORRECTION_GLSL
47
-
1
+ #ifndef COLOR_CORRECTION_GLSL
2
+ #define COLOR_CORRECTION_GLSL
3
+
4
+ // Convert lineal color to SRGB for shader output
5
+ vec4 lineal2SRGB(vec4 color, float gamma)
6
+ {
7
+ color = color / (color + vec4(1.0));
8
+ return vec4(pow(color.rgb, vec3(1.0 / gamma)), color.a);
9
+ }
10
+
11
+ vec3 lineal2SRGB(vec3 color, float gamma)
12
+ {
13
+ color = color / (color + vec3(1.0));
14
+ return pow(color.rgb, vec3(1.0 / gamma));
15
+ }
16
+
17
+ // Convert SRGB textures to lineal color
18
+ vec4 SRGB2Lineal(vec4 color, float gamma)
19
+ {
20
+ return vec4(pow(color.rgb, vec3(gamma)), color.a);
21
+ }
22
+
23
+ vec3 SRGB2lLineal(vec3 color, float gamma)
24
+ {
25
+ return pow(color, vec3(gamma));
26
+ }
27
+
28
+ vec4 brightnessContrast(vec4 color, float brightness, float contrast)
29
+ {
30
+ mat4 brightnessMat = mat4(
31
+ 1.0, 0.0, 0.0, 0.0,
32
+ 0.0, 1.0, 0.0, 0.0,
33
+ 0.0, 0.0, 1.0, 0.0,
34
+ brightness, brightness, brightness, 1.0
35
+ );
36
+ float t = (1.0 - contrast) / 2.0;
37
+ mat4 contrastMat = mat4(
38
+ contrast, 0.0, 0.0, 0.0,
39
+ 0.0, contrast, 0.0, 0.0,
40
+ 0.0, 0.0, contrast, 0.0,
41
+ t, t, t, 1.0
42
+ );
43
+ return contrastMat * brightnessMat * color;
44
+ }
45
+
46
+ #endif // COLOR_CORRECTION_GLSL
47
+
@@ -1,6 +1,6 @@
1
-
2
- #define PI 3.14159265359
3
- #define LIGHT_TYPE_POINT 5
4
- #define LIGHT_TYPE_DIRECTIONAL 4
5
- #define LIGHT_TYPE_SPOT 1
6
- #define LIGHT_TYPE_DISABLED 10
1
+
2
+ #define PI 3.14159265359
3
+ #define LIGHT_TYPE_POINT 5
4
+ #define LIGHT_TYPE_DIRECTIONAL 4
5
+ #define LIGHT_TYPE_SPOT 1
6
+ #define LIGHT_TYPE_DISABLED 10
@@ -1,70 +1,70 @@
1
- import colorCorrection from "./color_correction.glsl?raw";
2
- import constants from "./constants.glsl?raw";
3
- import normalMap from "./normal_map.glsl?raw";
4
- import pbr from "./pbr.glsl?raw";
5
- import uniforms from "./uniforms.glsl?raw";
6
-
7
- import ShaderFunction, {
8
- generateShaderLibrary,
9
- extractConstants,
10
- processConstants,
11
- type ConstantDefinition,
12
- type DependencyItem
13
- } from "../ShaderFunction";
14
-
15
- let g_constants: ConstantDefinition[] | null = null;
16
-
17
- export function getConstants() {
18
- if (!g_constants) {
19
- // Extract constants all the GLSL files
20
- g_constants = [
21
- ...extractConstants(constants),
22
- ...extractConstants(colorCorrection),
23
- ...extractConstants(normalMap),
24
- ...extractConstants(pbr),
25
- ...extractConstants(uniforms)
26
- ];
27
- }
28
- return g_constants;
29
- }
30
-
31
- let g_colorCorrectionFunctions: DependencyItem[] | null = null;
32
- export function getColorCorrectionFunctions() {
33
- if (!g_colorCorrectionFunctions) {
34
- g_colorCorrectionFunctions = generateShaderLibrary(colorCorrection);
35
- }
36
-
37
- return g_colorCorrectionFunctions;
38
- }
39
-
40
- let g_normalMapFunctions: DependencyItem[] | null = null;
41
- export function getNormalMapFunctions() {
42
- if (!g_normalMapFunctions) {
43
- g_normalMapFunctions = generateShaderLibrary(normalMap);
44
- }
45
-
46
- return g_normalMapFunctions;
47
- }
48
-
49
- let g_pbrFunctions: DependencyItem[] | null = null;
50
- export function getPBRFunctions() {
51
- if (!g_pbrFunctions) {
52
- g_pbrFunctions = generateShaderLibrary(pbr);
53
- }
54
-
55
- return g_pbrFunctions;
56
- }
57
-
58
- let g_uniformsFunctions: DependencyItem[] | null = null;
59
- export function getUniformsFunctions() {
60
- if (!g_uniformsFunctions) {
61
- g_uniformsFunctions = generateShaderLibrary(uniforms);
62
- }
63
-
64
- return g_uniformsFunctions;
65
- }
66
-
67
- export function replaceConstants(shaderCode: string): string {
68
- const constants = getConstants();
69
- return processConstants(shaderCode, constants);
70
- }
1
+ import colorCorrection from "./color_correction.glsl?raw";
2
+ import constants from "./constants.glsl?raw";
3
+ import normalMap from "./normal_map.glsl?raw";
4
+ import pbr from "./pbr.glsl?raw";
5
+ import uniforms from "./uniforms.glsl?raw";
6
+
7
+ import ShaderFunction, {
8
+ generateShaderLibrary,
9
+ extractConstants,
10
+ processConstants,
11
+ type ConstantDefinition,
12
+ type DependencyItem
13
+ } from "../ShaderFunction";
14
+
15
+ let g_constants: ConstantDefinition[] | null = null;
16
+
17
+ export function getConstants() {
18
+ if (!g_constants) {
19
+ // Extract constants all the GLSL files
20
+ g_constants = [
21
+ ...extractConstants(constants),
22
+ ...extractConstants(colorCorrection),
23
+ ...extractConstants(normalMap),
24
+ ...extractConstants(pbr),
25
+ ...extractConstants(uniforms)
26
+ ];
27
+ }
28
+ return g_constants;
29
+ }
30
+
31
+ let g_colorCorrectionFunctions: DependencyItem[] | null = null;
32
+ export function getColorCorrectionFunctions() {
33
+ if (!g_colorCorrectionFunctions) {
34
+ g_colorCorrectionFunctions = generateShaderLibrary(colorCorrection);
35
+ }
36
+
37
+ return g_colorCorrectionFunctions;
38
+ }
39
+
40
+ let g_normalMapFunctions: DependencyItem[] | null = null;
41
+ export function getNormalMapFunctions() {
42
+ if (!g_normalMapFunctions) {
43
+ g_normalMapFunctions = generateShaderLibrary(normalMap);
44
+ }
45
+
46
+ return g_normalMapFunctions;
47
+ }
48
+
49
+ let g_pbrFunctions: DependencyItem[] | null = null;
50
+ export function getPBRFunctions() {
51
+ if (!g_pbrFunctions) {
52
+ g_pbrFunctions = generateShaderLibrary(pbr);
53
+ }
54
+
55
+ return g_pbrFunctions;
56
+ }
57
+
58
+ let g_uniformsFunctions: DependencyItem[] | null = null;
59
+ export function getUniformsFunctions() {
60
+ if (!g_uniformsFunctions) {
61
+ g_uniformsFunctions = generateShaderLibrary(uniforms);
62
+ }
63
+
64
+ return g_uniformsFunctions;
65
+ }
66
+
67
+ export function replaceConstants(shaderCode: string): string {
68
+ const constants = getConstants();
69
+ return processConstants(shaderCode, constants);
70
+ }
@@ -1,9 +1,9 @@
1
-
2
- mat3 TBNMatrix(mat4 model, vec3 normal, vec3 tangent)
3
- {
4
- vec3 T = normalize(vec3(model * vec4(tangent, 0.0)));
5
- vec3 B = normalize(vec3(model * vec4(cross(tangent, normal), 0.0)));
6
- vec3 N = normalize(vec3(model * vec4(normal, 0.0)));
7
- return mat3(T, B, N);
8
- }
9
-
1
+
2
+ mat3 TBNMatrix(mat4 model, vec3 normal, vec3 tangent)
3
+ {
4
+ vec3 T = normalize(vec3(model * vec4(tangent, 0.0)));
5
+ vec3 B = normalize(vec3(model * vec4(cross(tangent, normal), 0.0)));
6
+ vec3 N = normalize(vec3(model * vec4(normal, 0.0)));
7
+ return mat3(T, B, N);
8
+ }
9
+