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.
Files changed (265) hide show
  1. package/README.md +9 -9
  2. package/build/index.mjs +1 -1
  3. package/build/index.mjs.map +1 -1
  4. package/build/index.module.js +2 -0
  5. package/build/index.module.js.map +1 -0
  6. package/package.json +64 -63
  7. package/src/.vscode/settings.json +2 -2
  8. package/src/BaseApplication.js +40 -40
  9. package/src/Browser.js +119 -119
  10. package/src/CameraManager.js +37 -37
  11. package/src/Capabilities.js +13 -13
  12. package/src/CustomBezierCurve.js +58 -58
  13. package/src/Debug.js +359 -359
  14. package/src/Graphics.js +507 -507
  15. package/src/Initializer.js +56 -56
  16. package/src/KeyboardInput.js +177 -177
  17. package/src/OS.js +59 -59
  18. package/src/OScreen.js +90 -90
  19. package/src/OrthographicCamera.js +36 -36
  20. package/src/PerspectiveCamera.js +34 -34
  21. package/src/ReflectionPlaneContext.js +22 -22
  22. package/src/RenderLayers.js +30 -30
  23. package/src/RenderLoop.js +125 -122
  24. package/src/RenderOrder.js +40 -40
  25. package/src/ResourceContainer.js +57 -57
  26. package/src/SceneManager.js +55 -55
  27. package/src/Screen.js +71 -71
  28. package/src/Time.js +99 -98
  29. package/src/UI.js +106 -106
  30. package/src/action_sequencer/ActionEvent.js +22 -22
  31. package/src/action_sequencer/ActionInterpolator.js +39 -39
  32. package/src/action_sequencer/ActionSequencer.js +338 -338
  33. package/src/action_sequencer/NumberInterpolator.js +42 -42
  34. package/src/action_sequencer/VectorInterpolator.js +34 -34
  35. package/src/blitter_index.js +14 -14
  36. package/src/canvas_drawer/CanvasDrawer.js +146 -146
  37. package/src/canvas_drawer/MultiLineTextDrawer.js +58 -58
  38. package/src/canvas_drawer/SimpleTextDrawer.js +55 -55
  39. package/src/components/AudioClip.js +67 -67
  40. package/src/components/AxisHelper.js +60 -60
  41. package/src/components/BaseObject.js +50 -50
  42. package/src/components/EdgeMesh.js +172 -172
  43. package/src/components/GeometryEdgeVisualizer.js +57 -57
  44. package/src/components/Grid.js +40 -40
  45. package/src/components/Line.js +225 -225
  46. package/src/components/MultiLinePath.js +25 -25
  47. package/src/components/MultiLineText2D.js +75 -75
  48. package/src/components/ObjectAxis.js +27 -27
  49. package/src/components/ObjectOrientedBoundingBox.js +228 -228
  50. package/src/components/PlaneHelper.js +38 -38
  51. package/src/components/Shape2D.js +52 -52
  52. package/src/components/Shape3D.js +46 -46
  53. package/src/components/Text2D.js +49 -49
  54. package/src/components/UIElement.js +246 -246
  55. package/src/components/UpdatableMaterialMesh.js +26 -26
  56. package/src/components/WorldImage.js +101 -101
  57. package/src/components/mouse_interactors/ObjectRotator.js +64 -64
  58. package/src/components/sdf_text/SDFText.js +156 -156
  59. package/src/components/sdf_text/SDFTextBatch.js +195 -195
  60. package/src/components/sdf_text/TextGlyph.js +17 -17
  61. package/src/data_textures/CustomDataTexture.js +53 -53
  62. package/src/data_textures/RGBADataTexture.js +14 -14
  63. package/src/data_textures/RGBAFloatDataTexture.js +14 -14
  64. package/src/data_textures/RGBDataTexture.js +14 -14
  65. package/src/data_textures/RGBFloatDataTexture.js +13 -13
  66. package/src/editor/ManipulatorHandle.js +73 -73
  67. package/src/editor/ObjectEditor.js +68 -68
  68. package/src/editor/ObjectManipulator.js +112 -112
  69. package/src/editor/ObjectPicker.js +77 -77
  70. package/src/editor/shaders/object_picker.frag +5 -5
  71. package/src/editor/shaders/object_picker.vert +7 -7
  72. package/src/gpu_particles/GPUParticleSystem.js +111 -111
  73. package/src/gpu_particles/ParticleAttribute.js +89 -89
  74. package/src/gpu_particles/ParticlePositionAttribute.js +42 -42
  75. package/src/html_utilities/CSSAnimator.js +66 -66
  76. package/src/html_utilities/css_animator_states/Animating.js +46 -46
  77. package/src/html_utilities/css_animator_states/Idle.js +27 -27
  78. package/src/index.js +134 -134
  79. package/src/loaders/AsyncAbstractLoader.js +160 -160
  80. package/src/loaders/AsyncAudiosLoader.js +34 -34
  81. package/src/loaders/AsyncObjectsLoader.js +44 -44
  82. package/src/loaders/AsyncTexturesLoader.js +81 -70
  83. package/src/loaders/assets_loader/AsyncAssetsLoaderWorker.js +69 -69
  84. package/src/loaders/assets_loader/ResourceContainer.js +37 -37
  85. package/src/loaders/assets_loader/ResourceLoaderChecker.js +39 -39
  86. package/src/materials/AddMaterial.js +20 -20
  87. package/src/materials/AlphaFilterMaterial.js +23 -23
  88. package/src/materials/BaseShaderMaterial.js +21 -21
  89. package/src/materials/BlitMaterial.js +30 -30
  90. package/src/materials/BloomComposeMaterial.js +24 -24
  91. package/src/materials/BoxBlurMaterial.js +16 -16
  92. package/src/materials/ClearAlphaMaterial.js +15 -15
  93. package/src/materials/ClearColorMaterial.js +33 -33
  94. package/src/materials/ClearDepthNormalMaterial.js +16 -16
  95. package/src/materials/DeferredRendererComposeMaterial.js +35 -35
  96. package/src/materials/DepthNormalMaterial.js +30 -30
  97. package/src/materials/DisplayNormalTextureMaterial.js +18 -18
  98. package/src/materials/DualFilteringBlurMaterial.js +14 -14
  99. package/src/materials/FXAAMaterial.js +12 -12
  100. package/src/materials/GaussianBlurMaterial.js +40 -40
  101. package/src/materials/LuminosityHighPassMaterial.js +26 -26
  102. package/src/materials/MedianFilterMaterial.js +45 -45
  103. package/src/materials/NormalMaterial.js +19 -19
  104. package/src/materials/SDFScreenTextMaterial.js +34 -34
  105. package/src/materials/SDFTextMaterial.js +41 -41
  106. package/src/materials/SSAOComposeMaterial.js +14 -14
  107. package/src/materials/SSAOMaterial.js +65 -65
  108. package/src/materials/ScreenSpaceTextureMaterial.js +67 -67
  109. package/src/materials/UIElementMaterial.js +30 -30
  110. package/src/materials/UnrealBloomComposeMaterial.js +100 -100
  111. package/src/materials/UnrealBlurMaterial.js +20 -20
  112. package/src/materials/UnrealComposeMaterial.js +27 -27
  113. package/src/materials/ViewPositionMaterial.js +19 -19
  114. package/src/materials/deferred/DeferredPointLightMaterial.js +42 -42
  115. package/src/materials/gpu_particles/AttributeUpdateMaterial.js +37 -37
  116. package/src/materials/gpu_particles/BasicParticleMaterial.js +25 -25
  117. package/src/materials/gpu_particles/ParticleStorageMaterial.js +37 -37
  118. package/src/materials/gpu_particles/PositionStorageMaterial.js +26 -26
  119. package/src/object_pool/Pool.js +75 -75
  120. package/src/primitives/Arrow.js +62 -62
  121. package/src/primitives/Cube.js +24 -24
  122. package/src/primitives/HorizontalPlane.js +27 -27
  123. package/src/primitives/Sphere.js +22 -22
  124. package/src/primitives/VerticalPlane.js +26 -26
  125. package/src/raycast/GroupRaycaster.js +43 -43
  126. package/src/raycast/PlaneDragResolver.js +92 -92
  127. package/src/raycast/PlaneRaycastResolver.js +24 -24
  128. package/src/raycast/PlaneRaycaster.js +25 -25
  129. package/src/raycast/RaycastResolver.js +24 -24
  130. package/src/raycast/SurfaceDragResolver.js +80 -80
  131. package/src/raycast/states/BaseState.js +18 -18
  132. package/src/raycast/states/IdleState.js +19 -19
  133. package/src/raycast/states/OnRaycastEnter.js +17 -17
  134. package/src/raycast/states/OnRaycastExit.js +18 -18
  135. package/src/raycast/states/OnRaycastHover.js +27 -27
  136. package/src/render_mode/BaseRender.js +34 -34
  137. package/src/render_mode/BloomRender.js +63 -63
  138. package/src/render_mode/DebugNormalsRender.js +22 -22
  139. package/src/render_mode/DeferredRender.js +110 -110
  140. package/src/render_mode/NormalAORender.js +72 -72
  141. package/src/render_mode/NormalRender.js +38 -38
  142. package/src/render_mode/OutlineRender.js +157 -157
  143. package/src/render_mode/PlanarReflectionsRender.js +121 -121
  144. package/src/render_mode/UnrealBloomRender.js +123 -123
  145. package/src/render_mode/VRRender.js +71 -71
  146. package/src/render_utilities/Blitter.js +101 -101
  147. package/src/render_utilities/Blurrer.js +31 -31
  148. package/src/render_utilities/DepthAndNormalsRenderer.js +47 -47
  149. package/src/render_utilities/DualFilteringBlurrer.js +58 -58
  150. package/src/render_utilities/GaussianBlurrer.js +167 -167
  151. package/src/render_utilities/MedianFilter.js +68 -68
  152. package/src/render_utilities/ViewPositionRenderer.js +50 -50
  153. package/src/resource_loader/BasisLoader.js +51 -51
  154. package/src/resource_loader/FontLoader.js +48 -48
  155. package/src/resource_loader/JSONLoader.js +35 -35
  156. package/src/resource_loader/OBJLoader.js +48 -48
  157. package/src/resource_loader/PointArrayLoader.js +72 -72
  158. package/src/resource_loader/RGBETextureLoader.js +48 -48
  159. package/src/resource_loader/VideoLoader.js +32 -32
  160. package/src/scenes/AbstractScene.js +175 -175
  161. package/src/scenes/loading_states/CompilatorManager.js +41 -41
  162. package/src/scenes/loading_states/HighQualityLoadingState.js +28 -28
  163. package/src/scenes/loading_states/LoadingState.js +117 -117
  164. package/src/scenes/loading_states/RegularLoadingState.js +41 -41
  165. package/src/shaders/add/add.frag +27 -27
  166. package/src/shaders/anti_aliasing/fxaa.frag +72 -72
  167. package/src/shaders/basic_color/basic_color.frag +5 -5
  168. package/src/shaders/basic_color/basic_color.vert +9 -9
  169. package/src/shaders/basic_line/basic_line.frag +36 -36
  170. package/src/shaders/basic_line/basic_line.vert +37 -37
  171. package/src/shaders/basic_texture/basic_texture.frag +9 -9
  172. package/src/shaders/basic_texture/basic_texture.vert +16 -16
  173. package/src/shaders/bloom/bloom_compose_frag.glsl +22 -22
  174. package/src/shaders/bloom/cheap_bloom_compose_frag.glsl +13 -13
  175. package/src/shaders/box_blur/box_blur.frag +24 -24
  176. package/src/shaders/box_blur/compose.frag +31 -31
  177. package/src/shaders/clear/clear_depth_normal.frag +24 -24
  178. package/src/shaders/copy/copy.frag +6 -6
  179. package/src/shaders/copy/copy.vert +5 -5
  180. package/src/shaders/deferred/blit_copy.vert +11 -11
  181. package/src/shaders/deferred/deferred_compose.frag +59 -59
  182. package/src/shaders/deferred/point_light.frag +66 -66
  183. package/src/shaders/deferred/point_light.vert +13 -13
  184. package/src/shaders/depth_normals/debug_normals.frag +47 -47
  185. package/src/shaders/depth_normals/depth_normals.frag +30 -30
  186. package/src/shaders/depth_normals/depth_normals.vert +12 -12
  187. package/src/shaders/dual_filter_blur/alpha_filter.frag +14 -14
  188. package/src/shaders/dual_filter_blur/downsample.frag +21 -21
  189. package/src/shaders/dual_filter_blur/upsample.frag +24 -24
  190. package/src/shaders/edge_visualizer/edge_visualizer.frag +17 -17
  191. package/src/shaders/edge_visualizer/edge_visualizer.vert +15 -15
  192. package/src/shaders/edges/corners.frag +10 -10
  193. package/src/shaders/edges/corners.vert +30 -30
  194. package/src/shaders/edges/edges.frag +6 -6
  195. package/src/shaders/edges/edges.vert +27 -27
  196. package/src/shaders/gaussian_blur/gaussian_blur.frag +43 -43
  197. package/src/shaders/gaussian_blur/unreal_bloom_compose.frag +36 -36
  198. package/src/shaders/gpu_particles/common_utils.glsl +12 -12
  199. package/src/shaders/gpu_particles/generic_storage.frag +6 -6
  200. package/src/shaders/gpu_particles/store/store_position.vert +14 -14
  201. package/src/shaders/gpu_particles/update/basic_update.frag +20 -20
  202. package/src/shaders/gpu_particles/visualize/visualize.frag +10 -10
  203. package/src/shaders/gpu_particles/visualize/visualize.vert +12 -12
  204. package/src/shaders/grid/grid.frag +16 -16
  205. package/src/shaders/grid/grid.vert +9 -9
  206. package/src/shaders/luminosity_high_pass/luminosity_high_pass.frag +37 -37
  207. package/src/shaders/median_filter/median_filter.frag +134 -134
  208. package/src/shaders/normal/normal.frag +6 -6
  209. package/src/shaders/normal/normal.vert +6 -6
  210. package/src/shaders/sdf_text/sdf_screen_text.frag +51 -51
  211. package/src/shaders/sdf_text/sdf_screen_text.vert +41 -41
  212. package/src/shaders/sdf_text/sdf_text.frag +53 -53
  213. package/src/shaders/sdf_text/sdf_text.vert +41 -41
  214. package/src/shaders/ssao/hbao.frag +264 -264
  215. package/src/shaders/ssao/ssao.frag +95 -95
  216. package/src/shaders/ssao/ssao.vert +10 -10
  217. package/src/shaders/ssao/ssao_compose.frag +14 -14
  218. package/src/shaders/transparent_mix/copy.frag +6 -6
  219. package/src/shaders/transparent_mix/transparent_mix.frag +18 -18
  220. package/src/shaders/transparent_mix/transparent_mix.vert +7 -7
  221. package/src/shaders/ui/ss_texture.frag +10 -10
  222. package/src/shaders/ui/ss_texture.vert +31 -31
  223. package/src/shaders/ui/ws_texture.vert +38 -38
  224. package/src/shaders/ui_element/ui_element.frag +11 -11
  225. package/src/shaders/ui_element/ui_element.vert +32 -32
  226. package/src/shaders/unreal_blur/unreal_blur.frag +24 -24
  227. package/src/shaders/unreal_blur/unreal_compose.frag +23 -23
  228. package/src/shaders/write_view_position/write_view_position.frag +6 -6
  229. package/src/shaders/write_view_position/write_view_position.vert +8 -8
  230. package/src/static_batcher/BatchedMesh.js +56 -56
  231. package/src/static_batcher/GeometryBatch.js +308 -308
  232. package/src/static_batcher/GeometryBatcher.js +64 -64
  233. package/src/static_batcher/MeshBatcher.js +58 -58
  234. package/src/ui/ui_element_position/ScreenSpacePosition.js +16 -16
  235. package/src/ui/ui_element_position/WorldSpacePosition.js +23 -23
  236. package/src/ui/ui_element_state/OnIdle.js +24 -24
  237. package/src/ui/ui_element_state/OnMouseEnter.js +39 -39
  238. package/src/ui/ui_element_state/OnMouseExit.js +22 -22
  239. package/src/ui/ui_element_state/OnMouseHover.js +46 -46
  240. package/src/ui/ui_element_state/UIElementState.js +34 -34
  241. package/src/utilities/ArrayUtilities.js +57 -57
  242. package/src/utilities/CameraUtilities.js +283 -283
  243. package/src/utilities/EasingFunctions.js +231 -231
  244. package/src/utilities/FrustumPointFitter.js +257 -257
  245. package/src/utilities/GeometryUtilities.js +76 -76
  246. package/src/utilities/HTMLUtilities.js +76 -76
  247. package/src/utilities/ImageUtilities.js +28 -28
  248. package/src/utilities/MeshSampler.js +206 -206
  249. package/src/utilities/ModelUtilities.js +162 -162
  250. package/src/utilities/OMath.js +158 -158
  251. package/src/utilities/OrthographicFrustumPointFitter.js +49 -49
  252. package/src/utilities/PerspectiveFrustumPointFitter.js +254 -254
  253. package/src/utilities/StringUtilities.js +43 -43
  254. package/src/utilities/TimeUtilities.js +24 -24
  255. package/src/utilities/Validation.js +36 -36
  256. package/src/view_components/ApplicationView.js +73 -73
  257. package/src/view_components/TransitionManager.js +75 -75
  258. package/src/view_components/ViewComponent.js +61 -61
  259. package/src/view_components/ViewComponentManager.js +69 -69
  260. package/src/view_components/ViewManager.js +145 -145
  261. package/src/view_components/ViewState.js +49 -49
  262. package/src/view_components/transition/ActionSequencerBuilder.js +124 -124
  263. package/src/view_components/transition/DrawIOAnimationSheet.js +92 -92
  264. package/src/view_components/transition/TransitionTable.js +54 -54
  265. 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
  }