ohzi-core 12.5.2 → 12.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -9
- package/build/index.mjs +1 -1
- package/build/index.mjs.map +1 -1
- package/build/index.module.js +2 -0
- package/build/index.module.js.map +1 -0
- package/package.json +64 -63
- package/src/.vscode/settings.json +2 -2
- package/src/BaseApplication.js +40 -40
- package/src/Browser.js +119 -119
- package/src/CameraManager.js +37 -37
- package/src/Capabilities.js +13 -13
- package/src/CustomBezierCurve.js +58 -58
- package/src/Debug.js +359 -359
- package/src/Graphics.js +507 -507
- package/src/Initializer.js +56 -56
- package/src/KeyboardInput.js +177 -177
- package/src/OS.js +59 -59
- package/src/OScreen.js +90 -90
- package/src/OrthographicCamera.js +36 -36
- package/src/PerspectiveCamera.js +34 -34
- package/src/ReflectionPlaneContext.js +22 -22
- package/src/RenderLayers.js +30 -30
- package/src/RenderLoop.js +125 -122
- package/src/RenderOrder.js +40 -40
- package/src/ResourceContainer.js +57 -57
- package/src/SceneManager.js +55 -55
- package/src/Screen.js +71 -71
- package/src/Time.js +99 -98
- package/src/UI.js +106 -106
- package/src/action_sequencer/ActionEvent.js +22 -22
- package/src/action_sequencer/ActionInterpolator.js +39 -39
- package/src/action_sequencer/ActionSequencer.js +338 -338
- package/src/action_sequencer/NumberInterpolator.js +42 -42
- package/src/action_sequencer/VectorInterpolator.js +34 -34
- package/src/blitter_index.js +14 -14
- package/src/canvas_drawer/CanvasDrawer.js +146 -146
- package/src/canvas_drawer/MultiLineTextDrawer.js +58 -58
- package/src/canvas_drawer/SimpleTextDrawer.js +55 -55
- package/src/components/AudioClip.js +67 -67
- package/src/components/AxisHelper.js +60 -60
- package/src/components/BaseObject.js +50 -50
- package/src/components/EdgeMesh.js +172 -172
- package/src/components/GeometryEdgeVisualizer.js +57 -57
- package/src/components/Grid.js +40 -40
- package/src/components/Line.js +225 -225
- package/src/components/MultiLinePath.js +25 -25
- package/src/components/MultiLineText2D.js +75 -75
- package/src/components/ObjectAxis.js +27 -27
- package/src/components/ObjectOrientedBoundingBox.js +228 -228
- package/src/components/PlaneHelper.js +38 -38
- package/src/components/Shape2D.js +52 -52
- package/src/components/Shape3D.js +46 -46
- package/src/components/Text2D.js +49 -49
- package/src/components/UIElement.js +246 -246
- package/src/components/UpdatableMaterialMesh.js +26 -26
- package/src/components/WorldImage.js +101 -101
- package/src/components/mouse_interactors/ObjectRotator.js +64 -64
- package/src/components/sdf_text/SDFText.js +156 -156
- package/src/components/sdf_text/SDFTextBatch.js +195 -195
- package/src/components/sdf_text/TextGlyph.js +17 -17
- package/src/data_textures/CustomDataTexture.js +53 -53
- package/src/data_textures/RGBADataTexture.js +14 -14
- package/src/data_textures/RGBAFloatDataTexture.js +14 -14
- package/src/data_textures/RGBDataTexture.js +14 -14
- package/src/data_textures/RGBFloatDataTexture.js +13 -13
- package/src/editor/ManipulatorHandle.js +73 -73
- package/src/editor/ObjectEditor.js +68 -68
- package/src/editor/ObjectManipulator.js +112 -112
- package/src/editor/ObjectPicker.js +77 -77
- package/src/editor/shaders/object_picker.frag +5 -5
- package/src/editor/shaders/object_picker.vert +7 -7
- package/src/gpu_particles/GPUParticleSystem.js +111 -111
- package/src/gpu_particles/ParticleAttribute.js +89 -89
- package/src/gpu_particles/ParticlePositionAttribute.js +42 -42
- package/src/html_utilities/CSSAnimator.js +66 -66
- package/src/html_utilities/css_animator_states/Animating.js +46 -46
- package/src/html_utilities/css_animator_states/Idle.js +27 -27
- package/src/index.js +134 -134
- package/src/loaders/AsyncAbstractLoader.js +160 -160
- package/src/loaders/AsyncAudiosLoader.js +34 -34
- package/src/loaders/AsyncObjectsLoader.js +44 -44
- package/src/loaders/AsyncTexturesLoader.js +81 -70
- package/src/loaders/assets_loader/AsyncAssetsLoaderWorker.js +69 -69
- package/src/loaders/assets_loader/ResourceContainer.js +37 -37
- package/src/loaders/assets_loader/ResourceLoaderChecker.js +39 -39
- package/src/materials/AddMaterial.js +20 -20
- package/src/materials/AlphaFilterMaterial.js +23 -23
- package/src/materials/BaseShaderMaterial.js +21 -21
- package/src/materials/BlitMaterial.js +30 -30
- package/src/materials/BloomComposeMaterial.js +24 -24
- package/src/materials/BoxBlurMaterial.js +16 -16
- package/src/materials/ClearAlphaMaterial.js +15 -15
- package/src/materials/ClearColorMaterial.js +33 -33
- package/src/materials/ClearDepthNormalMaterial.js +16 -16
- package/src/materials/DeferredRendererComposeMaterial.js +35 -35
- package/src/materials/DepthNormalMaterial.js +30 -30
- package/src/materials/DisplayNormalTextureMaterial.js +18 -18
- package/src/materials/DualFilteringBlurMaterial.js +14 -14
- package/src/materials/FXAAMaterial.js +12 -12
- package/src/materials/GaussianBlurMaterial.js +40 -40
- package/src/materials/LuminosityHighPassMaterial.js +26 -26
- package/src/materials/MedianFilterMaterial.js +45 -45
- package/src/materials/NormalMaterial.js +19 -19
- package/src/materials/SDFScreenTextMaterial.js +34 -34
- package/src/materials/SDFTextMaterial.js +41 -41
- package/src/materials/SSAOComposeMaterial.js +14 -14
- package/src/materials/SSAOMaterial.js +65 -65
- package/src/materials/ScreenSpaceTextureMaterial.js +67 -67
- package/src/materials/UIElementMaterial.js +30 -30
- package/src/materials/UnrealBloomComposeMaterial.js +100 -100
- package/src/materials/UnrealBlurMaterial.js +20 -20
- package/src/materials/UnrealComposeMaterial.js +27 -27
- package/src/materials/ViewPositionMaterial.js +19 -19
- package/src/materials/deferred/DeferredPointLightMaterial.js +42 -42
- package/src/materials/gpu_particles/AttributeUpdateMaterial.js +37 -37
- package/src/materials/gpu_particles/BasicParticleMaterial.js +25 -25
- package/src/materials/gpu_particles/ParticleStorageMaterial.js +37 -37
- package/src/materials/gpu_particles/PositionStorageMaterial.js +26 -26
- package/src/object_pool/Pool.js +75 -75
- package/src/primitives/Arrow.js +62 -62
- package/src/primitives/Cube.js +24 -24
- package/src/primitives/HorizontalPlane.js +27 -27
- package/src/primitives/Sphere.js +22 -22
- package/src/primitives/VerticalPlane.js +26 -26
- package/src/raycast/GroupRaycaster.js +43 -43
- package/src/raycast/PlaneDragResolver.js +92 -92
- package/src/raycast/PlaneRaycastResolver.js +24 -24
- package/src/raycast/PlaneRaycaster.js +25 -25
- package/src/raycast/RaycastResolver.js +24 -24
- package/src/raycast/SurfaceDragResolver.js +80 -80
- package/src/raycast/states/BaseState.js +18 -18
- package/src/raycast/states/IdleState.js +19 -19
- package/src/raycast/states/OnRaycastEnter.js +17 -17
- package/src/raycast/states/OnRaycastExit.js +18 -18
- package/src/raycast/states/OnRaycastHover.js +27 -27
- package/src/render_mode/BaseRender.js +34 -34
- package/src/render_mode/BloomRender.js +63 -63
- package/src/render_mode/DebugNormalsRender.js +22 -22
- package/src/render_mode/DeferredRender.js +110 -110
- package/src/render_mode/NormalAORender.js +72 -72
- package/src/render_mode/NormalRender.js +38 -38
- package/src/render_mode/OutlineRender.js +157 -157
- package/src/render_mode/PlanarReflectionsRender.js +121 -121
- package/src/render_mode/UnrealBloomRender.js +123 -123
- package/src/render_mode/VRRender.js +71 -71
- package/src/render_utilities/Blitter.js +101 -101
- package/src/render_utilities/Blurrer.js +31 -31
- package/src/render_utilities/DepthAndNormalsRenderer.js +47 -47
- package/src/render_utilities/DualFilteringBlurrer.js +58 -58
- package/src/render_utilities/GaussianBlurrer.js +167 -167
- package/src/render_utilities/MedianFilter.js +68 -68
- package/src/render_utilities/ViewPositionRenderer.js +50 -50
- package/src/resource_loader/BasisLoader.js +51 -51
- package/src/resource_loader/FontLoader.js +48 -48
- package/src/resource_loader/JSONLoader.js +35 -35
- package/src/resource_loader/OBJLoader.js +48 -48
- package/src/resource_loader/PointArrayLoader.js +72 -72
- package/src/resource_loader/RGBETextureLoader.js +48 -48
- package/src/resource_loader/VideoLoader.js +32 -32
- package/src/scenes/AbstractScene.js +175 -175
- package/src/scenes/loading_states/CompilatorManager.js +41 -41
- package/src/scenes/loading_states/HighQualityLoadingState.js +28 -28
- package/src/scenes/loading_states/LoadingState.js +117 -117
- package/src/scenes/loading_states/RegularLoadingState.js +41 -41
- package/src/shaders/add/add.frag +27 -27
- package/src/shaders/anti_aliasing/fxaa.frag +72 -72
- package/src/shaders/basic_color/basic_color.frag +5 -5
- package/src/shaders/basic_color/basic_color.vert +9 -9
- package/src/shaders/basic_line/basic_line.frag +36 -36
- package/src/shaders/basic_line/basic_line.vert +37 -37
- package/src/shaders/basic_texture/basic_texture.frag +9 -9
- package/src/shaders/basic_texture/basic_texture.vert +16 -16
- package/src/shaders/bloom/bloom_compose_frag.glsl +22 -22
- package/src/shaders/bloom/cheap_bloom_compose_frag.glsl +13 -13
- package/src/shaders/box_blur/box_blur.frag +24 -24
- package/src/shaders/box_blur/compose.frag +31 -31
- package/src/shaders/clear/clear_depth_normal.frag +24 -24
- package/src/shaders/copy/copy.frag +6 -6
- package/src/shaders/copy/copy.vert +5 -5
- package/src/shaders/deferred/blit_copy.vert +11 -11
- package/src/shaders/deferred/deferred_compose.frag +59 -59
- package/src/shaders/deferred/point_light.frag +66 -66
- package/src/shaders/deferred/point_light.vert +13 -13
- package/src/shaders/depth_normals/debug_normals.frag +47 -47
- package/src/shaders/depth_normals/depth_normals.frag +30 -30
- package/src/shaders/depth_normals/depth_normals.vert +12 -12
- package/src/shaders/dual_filter_blur/alpha_filter.frag +14 -14
- package/src/shaders/dual_filter_blur/downsample.frag +21 -21
- package/src/shaders/dual_filter_blur/upsample.frag +24 -24
- package/src/shaders/edge_visualizer/edge_visualizer.frag +17 -17
- package/src/shaders/edge_visualizer/edge_visualizer.vert +15 -15
- package/src/shaders/edges/corners.frag +10 -10
- package/src/shaders/edges/corners.vert +30 -30
- package/src/shaders/edges/edges.frag +6 -6
- package/src/shaders/edges/edges.vert +27 -27
- package/src/shaders/gaussian_blur/gaussian_blur.frag +43 -43
- package/src/shaders/gaussian_blur/unreal_bloom_compose.frag +36 -36
- package/src/shaders/gpu_particles/common_utils.glsl +12 -12
- package/src/shaders/gpu_particles/generic_storage.frag +6 -6
- package/src/shaders/gpu_particles/store/store_position.vert +14 -14
- package/src/shaders/gpu_particles/update/basic_update.frag +20 -20
- package/src/shaders/gpu_particles/visualize/visualize.frag +10 -10
- package/src/shaders/gpu_particles/visualize/visualize.vert +12 -12
- package/src/shaders/grid/grid.frag +16 -16
- package/src/shaders/grid/grid.vert +9 -9
- package/src/shaders/luminosity_high_pass/luminosity_high_pass.frag +37 -37
- package/src/shaders/median_filter/median_filter.frag +134 -134
- package/src/shaders/normal/normal.frag +6 -6
- package/src/shaders/normal/normal.vert +6 -6
- package/src/shaders/sdf_text/sdf_screen_text.frag +51 -51
- package/src/shaders/sdf_text/sdf_screen_text.vert +41 -41
- package/src/shaders/sdf_text/sdf_text.frag +53 -53
- package/src/shaders/sdf_text/sdf_text.vert +41 -41
- package/src/shaders/ssao/hbao.frag +264 -264
- package/src/shaders/ssao/ssao.frag +95 -95
- package/src/shaders/ssao/ssao.vert +10 -10
- package/src/shaders/ssao/ssao_compose.frag +14 -14
- package/src/shaders/transparent_mix/copy.frag +6 -6
- package/src/shaders/transparent_mix/transparent_mix.frag +18 -18
- package/src/shaders/transparent_mix/transparent_mix.vert +7 -7
- package/src/shaders/ui/ss_texture.frag +10 -10
- package/src/shaders/ui/ss_texture.vert +31 -31
- package/src/shaders/ui/ws_texture.vert +38 -38
- package/src/shaders/ui_element/ui_element.frag +11 -11
- package/src/shaders/ui_element/ui_element.vert +32 -32
- package/src/shaders/unreal_blur/unreal_blur.frag +24 -24
- package/src/shaders/unreal_blur/unreal_compose.frag +23 -23
- package/src/shaders/write_view_position/write_view_position.frag +6 -6
- package/src/shaders/write_view_position/write_view_position.vert +8 -8
- package/src/static_batcher/BatchedMesh.js +56 -56
- package/src/static_batcher/GeometryBatch.js +308 -308
- package/src/static_batcher/GeometryBatcher.js +64 -64
- package/src/static_batcher/MeshBatcher.js +58 -58
- package/src/ui/ui_element_position/ScreenSpacePosition.js +16 -16
- package/src/ui/ui_element_position/WorldSpacePosition.js +23 -23
- package/src/ui/ui_element_state/OnIdle.js +24 -24
- package/src/ui/ui_element_state/OnMouseEnter.js +39 -39
- package/src/ui/ui_element_state/OnMouseExit.js +22 -22
- package/src/ui/ui_element_state/OnMouseHover.js +46 -46
- package/src/ui/ui_element_state/UIElementState.js +34 -34
- package/src/utilities/ArrayUtilities.js +57 -57
- package/src/utilities/CameraUtilities.js +283 -283
- package/src/utilities/EasingFunctions.js +231 -231
- package/src/utilities/FrustumPointFitter.js +257 -257
- package/src/utilities/GeometryUtilities.js +76 -76
- package/src/utilities/HTMLUtilities.js +76 -76
- package/src/utilities/ImageUtilities.js +28 -28
- package/src/utilities/MeshSampler.js +206 -206
- package/src/utilities/ModelUtilities.js +162 -162
- package/src/utilities/OMath.js +158 -158
- package/src/utilities/OrthographicFrustumPointFitter.js +49 -49
- package/src/utilities/PerspectiveFrustumPointFitter.js +254 -254
- package/src/utilities/StringUtilities.js +43 -43
- package/src/utilities/TimeUtilities.js +24 -24
- package/src/utilities/Validation.js +36 -36
- package/src/view_components/ApplicationView.js +73 -73
- package/src/view_components/TransitionManager.js +75 -75
- package/src/view_components/ViewComponent.js +61 -61
- package/src/view_components/ViewComponentManager.js +69 -69
- package/src/view_components/ViewManager.js +145 -145
- package/src/view_components/ViewState.js +49 -49
- package/src/view_components/transition/ActionSequencerBuilder.js +124 -124
- package/src/view_components/transition/DrawIOAnimationSheet.js +92 -92
- package/src/view_components/transition/TransitionTable.js +54 -54
- package/src/view_components/transition/ViewStateTransitionHandler.js +106 -106
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
uniform sampler2D _Texture;
|
|
2
|
-
varying vec2 vUv;
|
|
3
|
-
|
|
4
|
-
uniform vec2 _AtlasSize;
|
|
5
|
-
varying vec4 v_glyph_bounds;
|
|
6
|
-
varying vec4 v_color;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
float median(float r, float g, float b) {
|
|
10
|
-
return max(min(r, g), min(max(r, g), b));
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
void main()
|
|
14
|
-
{
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
float left = v_glyph_bounds.x / _AtlasSize.x;
|
|
19
|
-
float right = v_glyph_bounds.y / _AtlasSize.x;
|
|
20
|
-
|
|
21
|
-
float top = v_glyph_bounds.z / _AtlasSize.y;
|
|
22
|
-
float bottom = v_glyph_bounds.w / _AtlasSize.y;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
float width = abs(right - left);
|
|
26
|
-
float height = abs(top - bottom);
|
|
27
|
-
|
|
28
|
-
vec2 coord = vec2(vUv.x * width + left, vUv.y * height + top - height);
|
|
29
|
-
|
|
30
|
-
vec4 col = texture2D(_Texture, coord);
|
|
31
|
-
|
|
32
|
-
float sig_dist = median(col.r, col.g, col.b);
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
float _Cutoff = 0.5;
|
|
36
|
-
float dist = (_Cutoff - sig_dist);
|
|
37
|
-
|
|
38
|
-
// sdf distance per pixel (gradient vector)
|
|
39
|
-
vec2 ddist = vec2(dFdx(dist), dFdy(dist));
|
|
40
|
-
|
|
41
|
-
// distance to edge in pixels (scalar)
|
|
42
|
-
float pixelDist = dist / length(ddist);
|
|
43
|
-
|
|
44
|
-
float opacity = clamp(0.5 - pixelDist, 0.0, 1.0);
|
|
45
|
-
|
|
46
|
-
// float w = fwidth(sig_dist);
|
|
47
|
-
// opacity = smoothstep(0.5 - w, 0.5 + w, sig_dist);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
gl_FragColor = vec4(v_color.rgb, opacity * v_color.a);
|
|
51
|
-
}
|
|
1
|
+
uniform sampler2D _Texture;
|
|
2
|
+
varying vec2 vUv;
|
|
3
|
+
|
|
4
|
+
uniform vec2 _AtlasSize;
|
|
5
|
+
varying vec4 v_glyph_bounds;
|
|
6
|
+
varying vec4 v_color;
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
float median(float r, float g, float b) {
|
|
10
|
+
return max(min(r, g), min(max(r, g), b));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
void main()
|
|
14
|
+
{
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
float left = v_glyph_bounds.x / _AtlasSize.x;
|
|
19
|
+
float right = v_glyph_bounds.y / _AtlasSize.x;
|
|
20
|
+
|
|
21
|
+
float top = v_glyph_bounds.z / _AtlasSize.y;
|
|
22
|
+
float bottom = v_glyph_bounds.w / _AtlasSize.y;
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
float width = abs(right - left);
|
|
26
|
+
float height = abs(top - bottom);
|
|
27
|
+
|
|
28
|
+
vec2 coord = vec2(vUv.x * width + left, vUv.y * height + top - height);
|
|
29
|
+
|
|
30
|
+
vec4 col = texture2D(_Texture, coord);
|
|
31
|
+
|
|
32
|
+
float sig_dist = median(col.r, col.g, col.b);
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
float _Cutoff = 0.5;
|
|
36
|
+
float dist = (_Cutoff - sig_dist);
|
|
37
|
+
|
|
38
|
+
// sdf distance per pixel (gradient vector)
|
|
39
|
+
vec2 ddist = vec2(dFdx(dist), dFdy(dist));
|
|
40
|
+
|
|
41
|
+
// distance to edge in pixels (scalar)
|
|
42
|
+
float pixelDist = dist / length(ddist);
|
|
43
|
+
|
|
44
|
+
float opacity = clamp(0.5 - pixelDist, 0.0, 1.0);
|
|
45
|
+
|
|
46
|
+
// float w = fwidth(sig_dist);
|
|
47
|
+
// opacity = smoothstep(0.5 - w, 0.5 + w, sig_dist);
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
gl_FragColor = vec4(v_color.rgb, opacity * v_color.a);
|
|
51
|
+
}
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
attribute vec4 transformsCol0;
|
|
3
|
-
attribute vec4 transformsCol1;
|
|
4
|
-
attribute vec4 transformsCol2;
|
|
5
|
-
attribute vec4 transformsCol3;
|
|
6
|
-
|
|
7
|
-
attribute vec4 glyph_bounds;
|
|
8
|
-
attribute vec4 plane_bounds;
|
|
9
|
-
|
|
10
|
-
attribute vec4 color;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
varying vec2 vUv;
|
|
14
|
-
varying vec4 v_glyph_bounds;
|
|
15
|
-
varying vec4 v_color;
|
|
16
|
-
|
|
17
|
-
void main()
|
|
18
|
-
{
|
|
19
|
-
vec4 pos = vec4(position, 1.0);
|
|
20
|
-
pos.x *= plane_bounds.z;
|
|
21
|
-
pos.y *= plane_bounds.w;
|
|
22
|
-
|
|
23
|
-
pos.x += plane_bounds.x;
|
|
24
|
-
pos.y += plane_bounds.y;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
mat4 offset_matrix = mat4(
|
|
28
|
-
transformsCol0,
|
|
29
|
-
transformsCol1,
|
|
30
|
-
transformsCol2,
|
|
31
|
-
transformsCol3
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
gl_Position = projectionMatrix * viewMatrix * offset_matrix * pos;
|
|
39
|
-
vUv = uv;
|
|
40
|
-
v_glyph_bounds = glyph_bounds;
|
|
41
|
-
v_color = color;
|
|
1
|
+
|
|
2
|
+
attribute vec4 transformsCol0;
|
|
3
|
+
attribute vec4 transformsCol1;
|
|
4
|
+
attribute vec4 transformsCol2;
|
|
5
|
+
attribute vec4 transformsCol3;
|
|
6
|
+
|
|
7
|
+
attribute vec4 glyph_bounds;
|
|
8
|
+
attribute vec4 plane_bounds;
|
|
9
|
+
|
|
10
|
+
attribute vec4 color;
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
varying vec2 vUv;
|
|
14
|
+
varying vec4 v_glyph_bounds;
|
|
15
|
+
varying vec4 v_color;
|
|
16
|
+
|
|
17
|
+
void main()
|
|
18
|
+
{
|
|
19
|
+
vec4 pos = vec4(position, 1.0);
|
|
20
|
+
pos.x *= plane_bounds.z;
|
|
21
|
+
pos.y *= plane_bounds.w;
|
|
22
|
+
|
|
23
|
+
pos.x += plane_bounds.x;
|
|
24
|
+
pos.y += plane_bounds.y;
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
mat4 offset_matrix = mat4(
|
|
28
|
+
transformsCol0,
|
|
29
|
+
transformsCol1,
|
|
30
|
+
transformsCol2,
|
|
31
|
+
transformsCol3
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
gl_Position = projectionMatrix * viewMatrix * offset_matrix * pos;
|
|
39
|
+
vUv = uv;
|
|
40
|
+
v_glyph_bounds = glyph_bounds;
|
|
41
|
+
v_color = color;
|
|
42
42
|
}
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
uniform sampler2D _Texture;
|
|
2
|
-
uniform float _Boldness;
|
|
3
|
-
|
|
4
|
-
varying vec2 vUv;
|
|
5
|
-
|
|
6
|
-
uniform vec2 _AtlasSize;
|
|
7
|
-
varying vec4 v_glyph_bounds;
|
|
8
|
-
varying vec4 v_color;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
float median(float r, float g, float b) {
|
|
12
|
-
return max(min(r, g), min(max(r, g), b));
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
void main()
|
|
16
|
-
{
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
float left = v_glyph_bounds.x / _AtlasSize.x;
|
|
21
|
-
float right = v_glyph_bounds.y / _AtlasSize.x;
|
|
22
|
-
|
|
23
|
-
float top = v_glyph_bounds.z / _AtlasSize.y;
|
|
24
|
-
float bottom = v_glyph_bounds.w / _AtlasSize.y;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
float width = abs(right - left);
|
|
28
|
-
float height = abs(top - bottom);
|
|
29
|
-
|
|
30
|
-
vec2 coord = vec2(vUv.x * width + left, vUv.y * height + top - height);
|
|
31
|
-
|
|
32
|
-
vec4 col = texture2D(_Texture, coord);
|
|
33
|
-
|
|
34
|
-
float sig_dist = median(col.r, col.g, col.b);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
float _Cutoff = _Boldness;
|
|
38
|
-
float dist = (_Cutoff - sig_dist);
|
|
39
|
-
|
|
40
|
-
// sdf distance per pixel (gradient vector)
|
|
41
|
-
vec2 ddist = vec2(dFdx(dist), dFdy(dist));
|
|
42
|
-
|
|
43
|
-
// distance to edge in pixels (scalar)
|
|
44
|
-
float pixelDist = dist / length(ddist);
|
|
45
|
-
|
|
46
|
-
float opacity = clamp(0.5 - pixelDist, 0.0, 1.0);
|
|
47
|
-
|
|
48
|
-
// float w = fwidth(sig_dist);
|
|
49
|
-
// opacity = smoothstep(0.5 - w, 0.5 + w, sig_dist);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
gl_FragColor = vec4(v_color.rgb, opacity * v_color.a);
|
|
53
|
-
}
|
|
1
|
+
uniform sampler2D _Texture;
|
|
2
|
+
uniform float _Boldness;
|
|
3
|
+
|
|
4
|
+
varying vec2 vUv;
|
|
5
|
+
|
|
6
|
+
uniform vec2 _AtlasSize;
|
|
7
|
+
varying vec4 v_glyph_bounds;
|
|
8
|
+
varying vec4 v_color;
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
float median(float r, float g, float b) {
|
|
12
|
+
return max(min(r, g), min(max(r, g), b));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
void main()
|
|
16
|
+
{
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
float left = v_glyph_bounds.x / _AtlasSize.x;
|
|
21
|
+
float right = v_glyph_bounds.y / _AtlasSize.x;
|
|
22
|
+
|
|
23
|
+
float top = v_glyph_bounds.z / _AtlasSize.y;
|
|
24
|
+
float bottom = v_glyph_bounds.w / _AtlasSize.y;
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
float width = abs(right - left);
|
|
28
|
+
float height = abs(top - bottom);
|
|
29
|
+
|
|
30
|
+
vec2 coord = vec2(vUv.x * width + left, vUv.y * height + top - height);
|
|
31
|
+
|
|
32
|
+
vec4 col = texture2D(_Texture, coord);
|
|
33
|
+
|
|
34
|
+
float sig_dist = median(col.r, col.g, col.b);
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
float _Cutoff = _Boldness;
|
|
38
|
+
float dist = (_Cutoff - sig_dist);
|
|
39
|
+
|
|
40
|
+
// sdf distance per pixel (gradient vector)
|
|
41
|
+
vec2 ddist = vec2(dFdx(dist), dFdy(dist));
|
|
42
|
+
|
|
43
|
+
// distance to edge in pixels (scalar)
|
|
44
|
+
float pixelDist = dist / length(ddist);
|
|
45
|
+
|
|
46
|
+
float opacity = clamp(0.5 - pixelDist, 0.0, 1.0);
|
|
47
|
+
|
|
48
|
+
// float w = fwidth(sig_dist);
|
|
49
|
+
// opacity = smoothstep(0.5 - w, 0.5 + w, sig_dist);
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
gl_FragColor = vec4(v_color.rgb, opacity * v_color.a);
|
|
53
|
+
}
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
attribute vec4 transformsCol0;
|
|
3
|
-
attribute vec4 transformsCol1;
|
|
4
|
-
attribute vec4 transformsCol2;
|
|
5
|
-
attribute vec4 transformsCol3;
|
|
6
|
-
|
|
7
|
-
attribute vec4 glyph_bounds;
|
|
8
|
-
attribute vec4 plane_bounds;
|
|
9
|
-
|
|
10
|
-
attribute vec4 color;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
varying vec2 vUv;
|
|
14
|
-
varying vec4 v_glyph_bounds;
|
|
15
|
-
varying vec4 v_color;
|
|
16
|
-
|
|
17
|
-
void main()
|
|
18
|
-
{
|
|
19
|
-
vec4 pos = vec4(position, 1.0);
|
|
20
|
-
pos.x *= plane_bounds.z;
|
|
21
|
-
pos.y *= plane_bounds.w;
|
|
22
|
-
|
|
23
|
-
pos.x += plane_bounds.x;
|
|
24
|
-
pos.y += plane_bounds.y;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
mat4 offset_matrix = mat4(
|
|
28
|
-
transformsCol0,
|
|
29
|
-
transformsCol1,
|
|
30
|
-
transformsCol2,
|
|
31
|
-
transformsCol3
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
gl_Position = projectionMatrix * viewMatrix * offset_matrix * pos;
|
|
39
|
-
vUv = uv;
|
|
40
|
-
v_glyph_bounds = glyph_bounds;
|
|
41
|
-
v_color = color;
|
|
1
|
+
|
|
2
|
+
attribute vec4 transformsCol0;
|
|
3
|
+
attribute vec4 transformsCol1;
|
|
4
|
+
attribute vec4 transformsCol2;
|
|
5
|
+
attribute vec4 transformsCol3;
|
|
6
|
+
|
|
7
|
+
attribute vec4 glyph_bounds;
|
|
8
|
+
attribute vec4 plane_bounds;
|
|
9
|
+
|
|
10
|
+
attribute vec4 color;
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
varying vec2 vUv;
|
|
14
|
+
varying vec4 v_glyph_bounds;
|
|
15
|
+
varying vec4 v_color;
|
|
16
|
+
|
|
17
|
+
void main()
|
|
18
|
+
{
|
|
19
|
+
vec4 pos = vec4(position, 1.0);
|
|
20
|
+
pos.x *= plane_bounds.z;
|
|
21
|
+
pos.y *= plane_bounds.w;
|
|
22
|
+
|
|
23
|
+
pos.x += plane_bounds.x;
|
|
24
|
+
pos.y += plane_bounds.y;
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
mat4 offset_matrix = mat4(
|
|
28
|
+
transformsCol0,
|
|
29
|
+
transformsCol1,
|
|
30
|
+
transformsCol2,
|
|
31
|
+
transformsCol3
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
gl_Position = projectionMatrix * viewMatrix * offset_matrix * pos;
|
|
39
|
+
vUv = uv;
|
|
40
|
+
v_glyph_bounds = glyph_bounds;
|
|
41
|
+
v_color = color;
|
|
42
42
|
}
|