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.
- package/dist/bg2e-js.js +356 -326
- package/dist/bg2e-js.js.map +1 -1
- package/package.json +56 -56
- package/src/app/AppController.ts +39 -39
- package/src/app/Bg2KeyboardEvent.ts +54 -54
- package/src/app/Bg2MouseEvent.ts +82 -82
- package/src/app/Bg2TouchEvent.ts +18 -18
- package/src/app/Canvas.ts +108 -108
- package/src/app/EventBase.ts +10 -10
- package/src/app/MainLoop.ts +273 -273
- package/src/app/index.ts +24 -24
- package/src/base/Color.ts +134 -134
- package/src/base/Environment.ts +183 -183
- package/src/base/Light.ts +192 -192
- package/src/base/Material.ts +620 -620
- package/src/base/PolyList.ts +365 -365
- package/src/base/Texture.ts +620 -620
- package/src/base/index.ts +81 -81
- package/src/db/Bg2LoaderPlugin.ts +143 -143
- package/src/db/DBPluginApi.ts +48 -48
- package/src/db/Loader.ts +116 -116
- package/src/db/LoaderPlugin.ts +34 -34
- package/src/db/MtlParser.ts +7 -7
- package/src/db/ObjLoaderPlugin.ts +54 -54
- package/src/db/ObjParser.ts +252 -252
- package/src/db/ObjWriterPlugin.ts +18 -18
- package/src/db/VitscnjLoaderPlugin.ts +112 -112
- package/src/db/Writer.ts +52 -52
- package/src/db/WriterPlugin.ts +22 -22
- package/src/db/index.ts +44 -44
- package/src/debug/DebugRenderer.ts +173 -173
- package/src/debug/WebGLTextureViewer.ts +75 -75
- package/src/debug/index.ts +6 -6
- package/src/index.html +11 -11
- package/src/index.ts +33 -33
- package/src/manipulation/SelectionBuffer.ts +81 -81
- package/src/manipulation/SelectionHighlight.ts +105 -84
- package/src/manipulation/SelectionIdAssignVisitor.ts +96 -96
- package/src/manipulation/SelectionManager.ts +196 -188
- package/src/manipulation/SelectionMode.ts +6 -6
- package/src/math/Mat3.ts +259 -259
- package/src/math/Mat4.ts +710 -710
- package/src/math/MatrixStrategy.ts +25 -25
- package/src/math/Quat.ts +65 -65
- package/src/math/Vec.ts +753 -753
- package/src/math/constants.ts +46 -46
- package/src/math/functions.ts +103 -103
- package/src/math/index.ts +74 -74
- package/src/phsics/joint.ts +137 -137
- package/src/primitives/arrow.ts +57 -57
- package/src/primitives/cone.ts +138 -138
- package/src/primitives/cube.ts +60 -60
- package/src/primitives/cylinder.ts +216 -216
- package/src/primitives/index.ts +13 -13
- package/src/primitives/plane.ts +31 -31
- package/src/primitives/sphere.ts +809 -809
- package/src/react/useBg2e.ts +69 -69
- package/src/render/BRDFIntegrationMap.ts +4 -4
- package/src/render/Environment.ts +135 -135
- package/src/render/FrameBuffer.ts +35 -35
- package/src/render/MaterialRenderer.ts +34 -34
- package/src/render/Pipeline.ts +108 -108
- package/src/render/PolyListRenderer.ts +47 -47
- package/src/render/RenderBuffer.ts +197 -197
- package/src/render/RenderQueue.ts +198 -198
- package/src/render/RenderState.ts +116 -116
- package/src/render/Renderer.ts +248 -248
- package/src/render/SceneAppController.ts +250 -250
- package/src/render/SceneRenderer.ts +387 -387
- package/src/render/Shader.ts +32 -32
- package/src/render/ShadowRenderer.ts +176 -176
- package/src/render/SkyCube.ts +105 -105
- package/src/render/SkySphere.ts +117 -117
- package/src/render/TextureMergerRenderer.ts +70 -70
- package/src/render/TextureRenderer.ts +34 -34
- package/src/render/index.ts +67 -67
- package/src/render/webgl/FrameBuffer.ts +9 -9
- package/src/render/webgl/MaterialRenderer.ts +112 -112
- package/src/render/webgl/Pipeline.ts +88 -88
- package/src/render/webgl/PolyListRenderer.ts +260 -260
- package/src/render/webgl/RenderBuffer.ts +226 -226
- package/src/render/webgl/Renderer.ts +262 -262
- package/src/render/webgl/SceneRenderer.ts +67 -67
- package/src/render/webgl/ShaderProgram.ts +424 -424
- package/src/render/webgl/ShadowRenderer.ts +6 -6
- package/src/render/webgl/SkyCube.ts +15 -15
- package/src/render/webgl/SkySphere.ts +15 -15
- package/src/render/webgl/State.ts +152 -152
- package/src/render/webgl/TextureRenderer.ts +167 -167
- package/src/render/webgl/VertexBuffer.ts +137 -137
- package/src/render/webgl/index.ts +35 -35
- package/src/scene/Camera.ts +458 -458
- package/src/scene/Chain.ts +44 -44
- package/src/scene/ChainJoint.ts +58 -58
- package/src/scene/Component.ts +177 -177
- package/src/scene/ComponentMap.ts +106 -106
- package/src/scene/Drawable.ts +154 -154
- package/src/scene/EnvironmentComponent.ts +141 -141
- package/src/scene/FindNodeVisitor.ts +59 -59
- package/src/scene/LightComponent.ts +154 -154
- package/src/scene/MatrixState.ts +46 -46
- package/src/scene/Node.ts +328 -328
- package/src/scene/NodeVisitor.ts +15 -15
- package/src/scene/OrbitCameraController.ts +450 -450
- package/src/scene/SmoothOrbitCameraController.ts +99 -99
- package/src/scene/Transform.ts +73 -73
- package/src/scene/index.ts +60 -60
- package/src/shaders/BasicDiffuseColorShader.ts +111 -111
- package/src/shaders/BasicPBRLightShader.ts +276 -276
- package/src/shaders/DebugRenderShader.ts +97 -97
- package/src/shaders/DepthRenderShader.ts +127 -127
- package/src/shaders/IrradianceMapCubeShader.ts +115 -115
- package/src/shaders/PBRLightIBLShader.ts +486 -486
- package/src/shaders/PickSelectionShader.ts +101 -101
- package/src/shaders/PresentDebugFramebufferShader.ts +118 -118
- package/src/shaders/PresentTextureShader.ts +99 -99
- package/src/shaders/SelectionHighlightShader.ts +143 -127
- package/src/shaders/ShaderFunction.ts +318 -318
- package/src/shaders/SkyCubeShader.ts +93 -93
- package/src/shaders/SkySphereShader.ts +102 -102
- package/src/shaders/SpecularMapCubeShader.ts +164 -164
- package/src/shaders/TextureMergerShader.ts +171 -171
- package/src/shaders/index.ts +36 -36
- package/src/shaders/webgl/color_correction.glsl +47 -47
- package/src/shaders/webgl/constants.glsl +6 -6
- package/src/shaders/webgl/index.ts +70 -70
- package/src/shaders/webgl/normal_map.glsl +9 -9
- package/src/shaders/webgl/pbr.glsl +173 -173
- package/src/shaders/webgl/uniforms.glsl +91 -91
- package/src/shaders/webgl_shader_lib.ts +213 -213
- package/src/tools/BinaryResourceProvider.ts +14 -14
- package/src/tools/ImageResourceProvider.ts +66 -66
- package/src/tools/MaterialModifier.ts +446 -446
- package/src/tools/Resource.ts +203 -203
- package/src/tools/ResourceProvider.ts +69 -69
- package/src/tools/TextResourceProvider.ts +24 -24
- package/src/tools/TextureCache.ts +51 -51
- package/src/tools/TextureResourceDatabase.ts +100 -100
- package/src/tools/UserAgent.ts +362 -362
- package/src/tools/VideoResourceProvider.ts +50 -50
- package/src/tools/WriteStrategy.ts +22 -22
- package/src/tools/base64.ts +11 -11
- package/src/tools/crypto.ts +19 -19
- package/src/tools/endiantess.ts +13 -13
- package/src/tools/image.ts +18 -18
- package/src/tools/index.ts +41 -41
- package/src/tools/processType.ts +39 -39
- package/src/vite-env.d.ts +12 -12
package/src/shaders/index.ts
CHANGED
|
@@ -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
|
+
|