ohzi-core 6.16.0 → 7.0.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 (437) hide show
  1. package/README.md +9 -9
  2. package/build/index.module.js +1 -1
  3. package/build/index.module.js.map +1 -1
  4. package/package.json +51 -51
  5. package/src/.vscode/settings.json +2 -2
  6. package/src/BaseApplication.js +23 -23
  7. package/src/Browser.js +79 -79
  8. package/src/CameraManager.js +19 -19
  9. package/src/Capabilities.js +11 -11
  10. package/src/Configuration.js +22 -22
  11. package/src/CustomBezierCurve.js +44 -44
  12. package/src/Debug.js +260 -260
  13. package/src/EventManager.js +150 -150
  14. package/src/Graphics.js +337 -337
  15. package/src/Initializer.js +57 -57
  16. package/src/Input.js +66 -66
  17. package/src/KeyboardInput.js +135 -135
  18. package/src/OS.js +58 -58
  19. package/src/OScreen.js +74 -74
  20. package/src/OrthographicCamera.js +21 -13
  21. package/src/PerspectiveCamera.js +21 -13
  22. package/src/ReflectionPlaneContext.js +17 -17
  23. package/src/RenderLayers.js +28 -28
  24. package/src/RenderLoop.js +97 -97
  25. package/src/RenderOrder.js +38 -38
  26. package/src/ResourceContainer.js +39 -39
  27. package/src/SceneManager.js +44 -44
  28. package/src/Screen.js +54 -54
  29. package/src/Time.js +57 -57
  30. package/src/UI.js +90 -90
  31. package/src/action_sequencer/ActionEvent.js +15 -15
  32. package/src/action_sequencer/ActionInterpolator.js +23 -23
  33. package/src/action_sequencer/ActionSequencer.js +245 -246
  34. package/src/action_sequencer/NumberInterpolator.js +25 -25
  35. package/src/action_sequencer/VectorInterpolator.js +20 -20
  36. package/src/blitter_index.js +13 -13
  37. package/src/canvas_drawer/CanvasDrawer.js +111 -111
  38. package/src/canvas_drawer/MultiLineTextDrawer.js +49 -49
  39. package/src/canvas_drawer/SimpleTextDrawer.js +47 -47
  40. package/src/components/AudioClip.js +55 -55
  41. package/src/components/AxisHelper.js +58 -58
  42. package/src/components/BaseObject.js +45 -45
  43. package/src/components/EdgeMesh.js +151 -151
  44. package/src/components/GeometryEdgeVisualizer.js +45 -45
  45. package/src/components/Grid.js +33 -33
  46. package/src/components/Line.js +199 -199
  47. package/src/components/MultiLinePath.js +19 -19
  48. package/src/components/MultiLineText2D.js +62 -62
  49. package/src/components/ObjectAxis.js +20 -20
  50. package/src/components/ObjectOrientedBoundingBox.js +201 -201
  51. package/src/components/PlaneHelper.js +36 -36
  52. package/src/components/Shape2D.js +42 -42
  53. package/src/components/Shape3D.js +38 -38
  54. package/src/components/Text2D.js +39 -39
  55. package/src/components/UIElement.js +208 -208
  56. package/src/components/UpdatableMaterialMesh.js +16 -16
  57. package/src/components/WorldImage.js +91 -91
  58. package/src/components/mouse_interactors/ObjectRotator.js +61 -61
  59. package/src/components/sdf_text/SDFText.js +154 -154
  60. package/src/components/sdf_text/SDFTextBatch.js +193 -193
  61. package/src/components/sdf_text/TextGlyph.js +15 -15
  62. package/src/data_textures/CustomDataTexture.js +51 -51
  63. package/src/data_textures/RGBADataTexture.js +12 -12
  64. package/src/data_textures/RGBAFloatDataTexture.js +12 -12
  65. package/src/data_textures/RGBDataTexture.js +12 -12
  66. package/src/data_textures/RGBFloatDataTexture.js +12 -12
  67. package/src/editor/ManipulatorHandle.js +70 -70
  68. package/src/editor/ObjectEditor.js +66 -66
  69. package/src/editor/ObjectManipulator.js +118 -118
  70. package/src/editor/ObjectPicker.js +75 -75
  71. package/src/editor/shaders/object_picker.frag +5 -5
  72. package/src/editor/shaders/object_picker.vert +7 -7
  73. package/src/gpu_particles/GPUParticleSystem.js +87 -87
  74. package/src/gpu_particles/ParticleAttribute.js +83 -83
  75. package/src/gpu_particles/ParticlePositionAttribute.js +20 -20
  76. package/src/html_utilities/CSSAnimator.js +64 -64
  77. package/src/html_utilities/css_animator_states/Animating.js +44 -45
  78. package/src/html_utilities/css_animator_states/Idle.js +25 -25
  79. package/src/index.js +217 -217
  80. package/src/materials/AddMaterial.js +17 -17
  81. package/src/materials/AlphaFilterMaterial.js +20 -20
  82. package/src/materials/BaseShaderMaterial.js +19 -19
  83. package/src/materials/BlitMaterial.js +28 -28
  84. package/src/materials/BloomComposeMaterial.js +22 -22
  85. package/src/materials/BoxBlurMaterial.js +13 -13
  86. package/src/materials/ClearAlphaMaterial.js +13 -13
  87. package/src/materials/ClearColorMaterial.js +31 -31
  88. package/src/materials/ClearDepthNormalMaterial.js +13 -13
  89. package/src/materials/DeferredRendererComposeMaterial.js +32 -32
  90. package/src/materials/DepthNormalMaterial.js +28 -28
  91. package/src/materials/DisplayNormalTextureMaterial.js +15 -15
  92. package/src/materials/DualFilteringBlurMaterial.js +11 -11
  93. package/src/materials/FXAAMaterial.js +10 -10
  94. package/src/materials/GaussianBlurMaterial.js +28 -28
  95. package/src/materials/LuminosityHighPassMaterial.js +15 -15
  96. package/src/materials/MedianFilterMaterial.js +42 -42
  97. package/src/materials/NormalMaterial.js +17 -17
  98. package/src/materials/SDFScreenTextMaterial.js +31 -31
  99. package/src/materials/SDFTextMaterial.js +38 -37
  100. package/src/materials/SSAOComposeMaterial.js +11 -11
  101. package/src/materials/SSAOMaterial.js +65 -66
  102. package/src/materials/ScreenSpaceTextureMaterial.js +65 -65
  103. package/src/materials/UIElementMaterial.js +27 -27
  104. package/src/materials/UnrealBloomComposeMaterial.js +95 -95
  105. package/src/materials/UnrealBlurMaterial.js +17 -17
  106. package/src/materials/UnrealComposeMaterial.js +24 -24
  107. package/src/materials/ViewPositionMaterial.js +17 -17
  108. package/src/materials/deferred/DeferredPointLightMaterial.js +39 -39
  109. package/src/materials/gpu_particles/AttributeUpdateMaterial.js +33 -33
  110. package/src/materials/gpu_particles/BasicParticleMaterial.js +23 -23
  111. package/src/materials/gpu_particles/ParticleStorageMaterial.js +27 -27
  112. package/src/materials/gpu_particles/PositionStorageMaterial.js +10 -10
  113. package/src/object_pool/Pool.js +73 -73
  114. package/src/primitives/Arrow.js +57 -57
  115. package/src/primitives/Cube.js +17 -17
  116. package/src/primitives/HorizontalPlane.js +18 -18
  117. package/src/primitives/Sphere.js +15 -15
  118. package/src/primitives/VerticalPlane.js +17 -17
  119. package/src/raycast/GroupRaycaster.js +41 -41
  120. package/src/raycast/PlaneDragResolver.js +89 -89
  121. package/src/raycast/PlaneRaycastResolver.js +22 -22
  122. package/src/raycast/PlaneRaycaster.js +23 -23
  123. package/src/raycast/RaycastResolver.js +22 -22
  124. package/src/raycast/SurfaceDragResolver.js +77 -77
  125. package/src/raycast/states/BaseState.js +16 -16
  126. package/src/raycast/states/IdleState.js +17 -17
  127. package/src/raycast/states/OnRaycastEnter.js +15 -15
  128. package/src/raycast/states/OnRaycastExit.js +16 -16
  129. package/src/raycast/states/OnRaycastHover.js +25 -25
  130. package/src/render_mode/BaseRender.js +32 -32
  131. package/src/render_mode/BloomRender.js +61 -61
  132. package/src/render_mode/DebugNormalsRender.js +20 -20
  133. package/src/render_mode/DeferredRender.js +112 -112
  134. package/src/render_mode/NormalAORender.js +71 -71
  135. package/src/render_mode/NormalRender.js +36 -36
  136. package/src/render_mode/OutlineRender.js +154 -154
  137. package/src/render_mode/PlanarReflectionsRender.js +118 -118
  138. package/src/render_mode/TransparencyMixRender.js +143 -143
  139. package/src/render_mode/UnrealBloomRender.js +109 -109
  140. package/src/render_utilities/Blitter.js +99 -99
  141. package/src/render_utilities/Blurrer.js +29 -29
  142. package/src/render_utilities/DepthAndNormalsRenderer.js +45 -45
  143. package/src/render_utilities/DualFilteringBlurrer.js +56 -56
  144. package/src/render_utilities/GaussianBlurrer.js +146 -146
  145. package/src/render_utilities/MedianFilter.js +66 -66
  146. package/src/render_utilities/ViewPositionRenderer.js +48 -48
  147. package/src/resource_loader/BasisLoader.js +49 -49
  148. package/src/resource_loader/FontLoader.js +46 -46
  149. package/src/resource_loader/JSONLoader.js +30 -30
  150. package/src/resource_loader/OBJLoader.js +46 -46
  151. package/src/resource_loader/PointArrayLoader.js +70 -70
  152. package/src/resource_loader/RGBETextureLoader.js +46 -46
  153. package/src/resource_loader/VideoLoader.js +30 -30
  154. package/src/shaders/add/add.frag +8 -8
  155. package/src/shaders/anti_aliasing/fxaa.frag +71 -71
  156. package/src/shaders/basic_color/basic_color.frag +5 -5
  157. package/src/shaders/basic_color/basic_color.vert +9 -9
  158. package/src/shaders/basic_line/basic_line.frag +36 -36
  159. package/src/shaders/basic_line/basic_line.vert +36 -36
  160. package/src/shaders/basic_texture/basic_texture.frag +9 -9
  161. package/src/shaders/basic_texture/basic_texture.vert +16 -16
  162. package/src/shaders/bloom/bloom_compose_frag.glsl +22 -22
  163. package/src/shaders/bloom/cheap_bloom_compose_frag.glsl +13 -13
  164. package/src/shaders/box_blur/box_blur.frag +24 -24
  165. package/src/shaders/box_blur/compose.frag +31 -31
  166. package/src/shaders/clear/clear_depth_normal.frag +24 -24
  167. package/src/shaders/copy/copy.frag +6 -6
  168. package/src/shaders/copy/copy.vert +5 -5
  169. package/src/shaders/deferred/blit_copy.vert +11 -11
  170. package/src/shaders/deferred/deferred_compose.frag +59 -59
  171. package/src/shaders/deferred/point_light.frag +66 -66
  172. package/src/shaders/deferred/point_light.vert +13 -13
  173. package/src/shaders/depth_normals/debug_normals.frag +47 -47
  174. package/src/shaders/depth_normals/depth_normals.frag +30 -30
  175. package/src/shaders/depth_normals/depth_normals.vert +12 -12
  176. package/src/shaders/dual_filter_blur/alpha_filter.frag +14 -14
  177. package/src/shaders/dual_filter_blur/downsample.frag +21 -21
  178. package/src/shaders/dual_filter_blur/upsample.frag +24 -24
  179. package/src/shaders/edge_visualizer/edge_visualizer.frag +17 -17
  180. package/src/shaders/edge_visualizer/edge_visualizer.vert +15 -15
  181. package/src/shaders/edges/corners.frag +10 -10
  182. package/src/shaders/edges/corners.vert +30 -30
  183. package/src/shaders/edges/edges.frag +6 -6
  184. package/src/shaders/edges/edges.vert +27 -27
  185. package/src/shaders/gaussian_blur/gaussian_blur.frag +24 -24
  186. package/src/shaders/gaussian_blur/unreal_bloom_compose.frag +24 -24
  187. package/src/shaders/gpu_particles/common_utils.glsl +12 -12
  188. package/src/shaders/gpu_particles/generic_storage.frag +7 -7
  189. package/src/shaders/gpu_particles/store/store_position.vert +14 -14
  190. package/src/shaders/gpu_particles/update/basic_update.frag +20 -20
  191. package/src/shaders/gpu_particles/visualize/visualize.frag +10 -10
  192. package/src/shaders/gpu_particles/visualize/visualize.vert +12 -12
  193. package/src/shaders/grid/grid.frag +16 -16
  194. package/src/shaders/grid/grid.vert +9 -9
  195. package/src/shaders/luminosity_high_pass/luminosity_high_pass.frag +22 -22
  196. package/src/shaders/median_filter/median_filter.frag +134 -134
  197. package/src/shaders/normal/normal.frag +6 -6
  198. package/src/shaders/normal/normal.vert +6 -6
  199. package/src/shaders/sdf_text/sdf_screen_text.frag +51 -51
  200. package/src/shaders/sdf_text/sdf_screen_text.vert +41 -41
  201. package/src/shaders/sdf_text/sdf_text.frag +53 -53
  202. package/src/shaders/sdf_text/sdf_text.vert +41 -41
  203. package/src/shaders/ssao/hbao.frag +264 -264
  204. package/src/shaders/ssao/ssao.frag +95 -95
  205. package/src/shaders/ssao/ssao.vert +10 -10
  206. package/src/shaders/ssao/ssao_compose.frag +14 -14
  207. package/src/shaders/transparent_mix/copy.frag +6 -6
  208. package/src/shaders/transparent_mix/transparent_mix.frag +18 -18
  209. package/src/shaders/transparent_mix/transparent_mix.vert +7 -7
  210. package/src/shaders/ui/ss_texture.frag +10 -10
  211. package/src/shaders/ui/ss_texture.vert +31 -31
  212. package/src/shaders/ui/ws_texture.vert +38 -38
  213. package/src/shaders/ui_element/ui_element.frag +11 -11
  214. package/src/shaders/ui_element/ui_element.vert +32 -32
  215. package/src/shaders/unreal_blur/unreal_blur.frag +24 -24
  216. package/src/shaders/unreal_blur/unreal_compose.frag +23 -23
  217. package/src/shaders/write_view_position/write_view_position.frag +6 -6
  218. package/src/shaders/write_view_position/write_view_position.vert +8 -8
  219. package/src/static_batcher/BatchedMesh.js +54 -54
  220. package/src/static_batcher/GeometryBatch.js +312 -312
  221. package/src/static_batcher/GeometryBatcher.js +63 -63
  222. package/src/static_batcher/MeshBatcher.js +56 -56
  223. package/src/ui/ui_element_position/ScreenSpacePosition.js +14 -14
  224. package/src/ui/ui_element_position/WorldSpacePosition.js +21 -21
  225. package/src/ui/ui_element_state/OnIdle.js +17 -17
  226. package/src/ui/ui_element_state/OnMouseEnter.js +26 -26
  227. package/src/ui/ui_element_state/OnMouseExit.js +15 -15
  228. package/src/ui/ui_element_state/OnMouseHover.js +31 -31
  229. package/src/ui/ui_element_state/UIElementState.js +18 -18
  230. package/src/utilities/ArrayUtilities.js +55 -55
  231. package/src/utilities/CameraUtilities.js +210 -210
  232. package/src/utilities/EasingFunctions.js +226 -226
  233. package/src/utilities/FrustumPointFitter.js +255 -255
  234. package/src/utilities/GeometryUtilities.js +74 -74
  235. package/src/utilities/HTMLUtilities.js +44 -44
  236. package/src/utilities/ImageUtilities.js +26 -26
  237. package/src/utilities/MeshSampler.js +205 -205
  238. package/src/utilities/ModelUtilities.js +161 -161
  239. package/src/utilities/OMath.js +154 -155
  240. package/src/utilities/OrthographicFrustumPointFitter.js +47 -47
  241. package/src/utilities/PerspectiveFrustumPointFitter.js +251 -250
  242. package/src/utilities/StringUtilities.js +32 -32
  243. package/src/utilities/TimeUtilities.js +22 -22
  244. package/src/utilities/Validation.js +34 -34
  245. package/src/view_components/ApplicationView.js +75 -75
  246. package/src/view_components/ViewComponent.js +72 -72
  247. package/src/view_components/ViewComponentManager.js +68 -68
  248. package/src/view_components/ViewContext.js +14 -14
  249. package/src/view_components/ViewManager.js +189 -189
  250. package/src/view_components/ViewState.js +54 -54
  251. package/src/view_components/transition/ActionSequencerBuilder.js +106 -106
  252. package/src/view_components/transition/DrawIOAnimationSheet.js +90 -90
  253. package/src/view_components/transition/TransitionTable.js +54 -54
  254. package/src/view_components/transition/ViewStateTransitionHandler.js +96 -96
  255. package/types/BaseApplication.d.ts +8 -8
  256. package/types/Browser.d.ts +12 -12
  257. package/types/CameraManager.d.ts +8 -8
  258. package/types/Capabilities.d.ts +6 -6
  259. package/types/Configuration.d.ts +6 -6
  260. package/types/Debug.d.ts +38 -38
  261. package/types/EventManager.d.ts +42 -42
  262. package/types/Graphics.d.ts +35 -35
  263. package/types/Initializer.d.ts +4 -4
  264. package/types/Input.d.ts +170 -170
  265. package/types/OS.d.ts +18 -18
  266. package/types/OScreen.d.ts +18 -18
  267. package/types/OrthographicCamera.d.ts +5 -5
  268. package/types/PerspectiveCamera.d.ts +5 -5
  269. package/types/ReflectionPlaneContext.d.ts +6 -6
  270. package/types/RenderLayers.d.ts +6 -6
  271. package/types/RenderLoop.d.ts +12 -12
  272. package/types/ResourceContainer.d.ts +8 -8
  273. package/types/SceneManager.d.ts +10 -10
  274. package/types/Screen.d.ts +17 -17
  275. package/types/Time.d.ts +11 -11
  276. package/types/UI.d.ts +15 -15
  277. package/types/action_sequencer/ActionEvent.d.ts +6 -6
  278. package/types/action_sequencer/ActionInterpolator.d.ts +5 -5
  279. package/types/action_sequencer/ActionSequencer.d.ts +30 -30
  280. package/types/action_sequencer/NumberInterpolator.d.ts +8 -8
  281. package/types/action_sequencer/VectorInterpolator.d.ts +7 -7
  282. package/types/canvas_drawer/CanvasDrawer.d.ts +13 -13
  283. package/types/canvas_drawer/MultiLineTextDrawer.d.ts +5 -5
  284. package/types/canvas_drawer/SimpleTextDrawer.d.ts +5 -5
  285. package/types/components/AudioClip.d.ts +12 -12
  286. package/types/components/AxisHelper.d.ts +6 -6
  287. package/types/components/BaseObject.d.ts +5 -5
  288. package/types/components/EdgeMesh.d.ts +13 -13
  289. package/types/components/GeometryEdgeVisualizer.d.ts +4 -4
  290. package/types/components/Grid.d.ts +2 -2
  291. package/types/components/Line.d.ts +16 -16
  292. package/types/components/MultiLinePath.d.ts +4 -4
  293. package/types/components/MultiLineText2D.d.ts +10 -10
  294. package/types/components/ObjectAxis.d.ts +3 -3
  295. package/types/components/ObjectOrientedBoundingBox.d.ts +18 -18
  296. package/types/components/PlaneHelper.d.ts +6 -6
  297. package/types/components/Shape2D.d.ts +4 -4
  298. package/types/components/Shape3D.d.ts +3 -3
  299. package/types/components/Text2D.d.ts +13 -13
  300. package/types/components/UIElement.d.ts +52 -52
  301. package/types/components/UpdatableMaterialMesh.d.ts +4 -4
  302. package/types/components/WorldImage.d.ts +13 -13
  303. package/types/components/sdf_text/SDFText.d.ts +30 -30
  304. package/types/components/sdf_text/SDFTextBatch.d.ts +12 -12
  305. package/types/components/sdf_text/TextGlyph.d.ts +6 -6
  306. package/types/editor/ManipulatorHandle.d.ts +14 -14
  307. package/types/editor/ObjectEditor.d.ts +16 -16
  308. package/types/editor/ObjectManipulator.d.ts +19 -19
  309. package/types/editor/ObjectPicker.d.ts +16 -16
  310. package/types/gpu_particles/GPUParticleSystem.d.ts +12 -12
  311. package/types/gpu_particles/ParticleAttribute.d.ts +15 -15
  312. package/types/gpu_particles/ParticlePositionAttribute.d.ts +4 -4
  313. package/types/html_utilities/CSSAnimator.d.ts +30 -30
  314. package/types/html_utilities/css_animator_states/Animating.d.ts +8 -8
  315. package/types/html_utilities/css_animator_states/Idle.d.ts +6 -6
  316. package/types/index.d.ts +90 -90
  317. package/types/materials/AddMaterial.d.ts +5 -5
  318. package/types/materials/AlphaFilterMaterial.d.ts +6 -6
  319. package/types/materials/BaseShaderMaterial.d.ts +3 -3
  320. package/types/materials/BlitMaterial.d.ts +3 -3
  321. package/types/materials/BloomComposeMaterial.d.ts +7 -7
  322. package/types/materials/BoxBlurMaterial.d.ts +4 -4
  323. package/types/materials/ClearAlphaMaterial.d.ts +3 -3
  324. package/types/materials/ClearColorMaterial.d.ts +7 -7
  325. package/types/materials/ClearDepthNormalMaterial.d.ts +4 -4
  326. package/types/materials/DeferredRendererComposeMaterial.d.ts +7 -7
  327. package/types/materials/DepthNormalMaterial.d.ts +4 -4
  328. package/types/materials/DisplayNormalTextureMaterial.d.ts +4 -4
  329. package/types/materials/DualFilteringBlurMaterial.d.ts +4 -4
  330. package/types/materials/FXAAMaterial.d.ts +3 -3
  331. package/types/materials/GaussianBlurMaterial.d.ts +6 -6
  332. package/types/materials/LuminosityHighPassMaterial.d.ts +4 -4
  333. package/types/materials/MedianFilterMaterial.d.ts +6 -6
  334. package/types/materials/NormalMaterial.d.ts +2 -2
  335. package/types/materials/SDFScreenTextMaterial.d.ts +11 -11
  336. package/types/materials/SDFTextMaterial.d.ts +12 -12
  337. package/types/materials/SSAOComposeMaterial.d.ts +4 -4
  338. package/types/materials/SSAOMaterial.d.ts +6 -6
  339. package/types/materials/ScreenSpaceTextureMaterial.d.ts +7 -7
  340. package/types/materials/UIElementMaterial.d.ts +7 -7
  341. package/types/materials/UnrealBloomComposeMaterial.d.ts +17 -17
  342. package/types/materials/UnrealBlurMaterial.d.ts +4 -4
  343. package/types/materials/UnrealComposeMaterial.d.ts +4 -4
  344. package/types/materials/ViewPositionMaterial.d.ts +3 -3
  345. package/types/materials/deferred/DeferredPointLightMaterial.d.ts +10 -10
  346. package/types/materials/gpu_particles/ParticleStorageMaterial.d.ts +3 -3
  347. package/types/materials/gpu_particles/PositionStorageMaterial.d.ts +4 -4
  348. package/types/object_pool/Pool.d.ts +10 -10
  349. package/types/primitives/Arrow.d.ts +8 -8
  350. package/types/primitives/Cube.d.ts +3 -3
  351. package/types/primitives/HorizontalPlane.d.ts +3 -3
  352. package/types/primitives/Sphere.d.ts +3 -3
  353. package/types/primitives/VerticalPlane.d.ts +3 -3
  354. package/types/raycast/GroupRaycaster.d.ts +13 -13
  355. package/types/raycast/PlaneDragResolver.d.ts +14 -14
  356. package/types/raycast/PlaneRaycastResolver.d.ts +5 -5
  357. package/types/raycast/PlaneRaycaster.d.ts +7 -7
  358. package/types/raycast/RaycastResolver.d.ts +5 -5
  359. package/types/raycast/SurfaceDragResolver.d.ts +13 -13
  360. package/types/raycast/states/BaseState.d.ts +5 -5
  361. package/types/raycast/states/IdleState.d.ts +5 -5
  362. package/types/raycast/states/OnRaycastEnter.d.ts +5 -5
  363. package/types/raycast/states/OnRaycastExit.d.ts +4 -4
  364. package/types/raycast/states/OnRaycastHover.d.ts +4 -4
  365. package/types/render_mode/BaseRender.d.ts +7 -7
  366. package/types/render_mode/BloomRender.d.ts +10 -10
  367. package/types/render_mode/DebugNormalsRender.d.ts +4 -4
  368. package/types/render_mode/DeferredRender.d.ts +9 -9
  369. package/types/render_mode/NormalAORender.d.ts +16 -16
  370. package/types/render_mode/NormalRender.d.ts +4 -4
  371. package/types/render_mode/OutlineRender.d.ts +20 -20
  372. package/types/render_mode/PlanarReflectionsRender.d.ts +13 -13
  373. package/types/render_mode/TransparencyMixRender.d.ts +21 -21
  374. package/types/render_mode/UnrealBloomRender.d.ts +19 -19
  375. package/types/render_utilities/Blitter.d.ts +16 -16
  376. package/types/render_utilities/Blurrer.d.ts +9 -9
  377. package/types/render_utilities/DepthAndNormalsRenderer.d.ts +12 -12
  378. package/types/render_utilities/DualFilteringBlurrer.d.ts +19 -19
  379. package/types/render_utilities/GaussianBlurrer.d.ts +27 -27
  380. package/types/render_utilities/MedianFilter.d.ts +10 -10
  381. package/types/render_utilities/ViewPositionRenderer.d.ts +9 -9
  382. package/types/resource_loader/AbstractLoader.d.ts +18 -18
  383. package/types/resource_loader/AsyncTextureLoader.ts +6 -6
  384. package/types/resource_loader/AudioLoader.d.ts +8 -8
  385. package/types/resource_loader/BasisLoader.d.ts +6 -6
  386. package/types/resource_loader/CubemapLoader.d.ts +7 -7
  387. package/types/resource_loader/DAELoader.d.ts +6 -6
  388. package/types/resource_loader/DDSLoader.d.ts +6 -6
  389. package/types/resource_loader/FileLoader.d.ts +6 -6
  390. package/types/resource_loader/FontLoader.d.ts +6 -6
  391. package/types/resource_loader/GLTFDRACOLoader.d.ts +6 -6
  392. package/types/resource_loader/GLTFLoader.d.ts +5 -5
  393. package/types/resource_loader/HDRCubeTextureLoader.d.ts +7 -7
  394. package/types/resource_loader/JSONLoader.d.ts +6 -6
  395. package/types/resource_loader/OBJLoader.d.ts +6 -6
  396. package/types/resource_loader/PointArrayLoader.d.ts +7 -7
  397. package/types/resource_loader/RGBETextureLoader.d.ts +6 -6
  398. package/types/resource_loader/ResourceBatch.d.ts +13 -13
  399. package/types/resource_loader/SVGLoader.d.ts +6 -6
  400. package/types/resource_loader/TextLoader.d.ts +6 -6
  401. package/types/resource_loader/TextureLoader.d.ts +6 -6
  402. package/types/resource_loader/VideoLoader.d.ts +6 -6
  403. package/types/static_batcher/GeometryBatch.d.ts +37 -37
  404. package/types/static_batcher/GeometryBatcher.d.ts +7 -7
  405. package/types/ui/ui_element_position/ScreenSpacePosition.d.ts +4 -4
  406. package/types/ui/ui_element_position/WorldSpacePosition.d.ts +5 -5
  407. package/types/ui/ui_element_state/OnIdle.d.ts +5 -5
  408. package/types/ui/ui_element_state/OnMouseEnter.d.ts +5 -5
  409. package/types/ui/ui_element_state/OnMouseExit.d.ts +5 -5
  410. package/types/ui/ui_element_state/OnMouseHover.d.ts +5 -5
  411. package/types/ui/ui_element_state/UIElementState.d.ts +5 -5
  412. package/types/utilities/ArrayUtilities.d.ts +7 -7
  413. package/types/utilities/CameraUtilities.d.ts +24 -24
  414. package/types/utilities/EasingFunctions.d.ts +35 -35
  415. package/types/utilities/FrustumPointFitter.d.ts +14 -14
  416. package/types/utilities/GeometryUtilities.d.ts +4 -4
  417. package/types/utilities/HTMLUtilities.d.ts +10 -10
  418. package/types/utilities/ImageUtilities.d.ts +4 -4
  419. package/types/utilities/MeshSampler.d.ts +14 -14
  420. package/types/utilities/ModelUtilities.d.ts +13 -13
  421. package/types/utilities/OMath.d.ts +21 -21
  422. package/types/utilities/ObjectUtilities.d.ts +16 -16
  423. package/types/utilities/OrthographicFrustumPointFitter.d.ts +7 -7
  424. package/types/utilities/PerspectiveFrustumPointFitter.d.ts +12 -12
  425. package/types/utilities/StringUtilities.d.ts +5 -5
  426. package/types/utilities/TimeUtilities.d.ts +3 -3
  427. package/types/utilities/Validation.d.ts +6 -6
  428. package/types/view_components/ApplicationView.d.ts +20 -20
  429. package/types/view_components/ViewComponent.d.ts +15 -15
  430. package/types/view_components/ViewComponentManager.d.ts +10 -10
  431. package/types/view_components/ViewContext.d.ts +6 -6
  432. package/types/view_components/ViewManager.d.ts +24 -24
  433. package/types/view_components/ViewState.d.ts +15 -15
  434. package/types/view_components/transition/ActionSequencerBuilder.d.ts +15 -15
  435. package/types/view_components/transition/DrawIOAnimationSheet.d.ts +17 -17
  436. package/types/view_components/transition/TransitionTable.d.ts +8 -8
  437. package/types/view_components/transition/ViewStateTransitionHandler.d.ts +16 -16
@@ -1,264 +1,264 @@
1
- uniform sampler2D _MainTex;
2
- uniform mat4 _InverseProjMatrix;
3
- uniform mat4 _InverseViewMatrix;
4
-
5
- uniform float _Bias;
6
- uniform float _Radius;
7
-
8
- uniform vec2 _TargetResolution;
9
- uniform float _FarPlane;
10
-
11
-
12
- varying vec2 vUv;
13
- varying vec4 vRay;
14
-
15
-
16
- uniform vec3 _SampleKernel[64];
17
- uniform sampler2D _RandomRotation;
18
- uniform mat4 _ProjectionMatrix;
19
-
20
- vec3 decode_normal (vec4 enc)
21
- {
22
- float scale = 1.7777;
23
- vec3 nn =
24
- enc.xyz*vec3(2.0*scale,2.0*scale,0.0) +
25
- vec3(-scale,-scale,1.0);
26
- float g = 2.0 / dot(nn.xyz,nn.xyz);
27
- vec3 n;
28
- n.xy = g*nn.xy;
29
- n.z = g-1.0;
30
- return n;
31
- }
32
-
33
- float DecodeFloatRG( vec2 enc )
34
- {
35
- vec2 kDecodeDot = vec2(1.0, 1.0/255.0);
36
- return dot( enc, kDecodeDot );
37
- }
38
-
39
- vec3 DecodeNormal(vec2 uv)
40
- {
41
- // vec2 encoded_normal = texture2D(_MainTex, uv).zw;
42
- // vec3 normalValue = normalize(decode_normal(vec4(encoded_normal, 0., 0.)));
43
- // return normalize(normalValue);
44
- return normalize(texture2D(_MainTex, uv).xyz * 2.0 - vec3(1.0));
45
- }
46
-
47
-
48
- vec3 DecodeViewPos(vec2 uv)
49
- {
50
- float depth = texture2D(_MainTex, uv).w;
51
-
52
- float x = uv.x * 2.0 - 1.0;
53
- float y = uv.y * 2.0 - 1.0;
54
- vec4 inv_proj = _InverseProjMatrix * vec4(x,y, 1.0, 1.0);
55
-
56
- return (inv_proj.xyz / inv_proj.w) * depth;
57
- }
58
-
59
- float fast_length(vec3 V)
60
- {
61
- return dot(V,V);
62
- }
63
-
64
- vec3 MinDiff(vec3 P, vec3 Pr, vec3 Pl)
65
- {
66
- vec3 V1 = Pr - P;
67
- vec3 V2 = P - Pl;
68
- return (fast_length(V1) < fast_length(V2)) ? V1 : V2;
69
- }
70
-
71
-
72
-
73
-
74
- #define PI 3.14
75
- #define PI_OVER_2 1.5707963
76
- #define PI_OVER_4 0.785398
77
- #define EPSILON 0.000001
78
-
79
- // Maps a unit square in [-1, 1] to a unit disk in [-1, 1]. Shirley 97 "A Low Distortion Map Between Disk and Square"
80
- // Inputs: cartesian coordinates
81
- // Return: new circle-mapped polar coordinates (radius, angle)
82
- vec2 UnitSquareToUnitDiskPolar(float a, float b) {
83
- float radius, angle;
84
- if (abs(a) > abs(b)) { // First region (left and right quadrants of the disk)
85
- radius = a;
86
- angle = b / (a + EPSILON) * PI_OVER_4;
87
- } else { // Second region (top and botom quadrants of the disk)
88
- radius = b;
89
- angle = PI_OVER_2 - (a / (b + EPSILON) * PI_OVER_4);
90
- }
91
- if (radius < 0.0) { // Always keep radius positive
92
- radius *= -1.0;
93
- angle += PI;
94
- }
95
- return vec2(radius, angle);
96
- }
97
-
98
- // Maps a unit square in [-1, 1] to a unit disk in [-1, 1]
99
- // Inputs: cartesian coordinates
100
- // Return: new circle-mapped cartesian coordinates
101
- vec2 SquareToDiskMapping(float a, float b) {
102
- vec2 PolarCoord = UnitSquareToUnitDiskPolar(a, b);
103
- return vec2(PolarCoord.x * cos(PolarCoord.y), PolarCoord.x * sin(PolarCoord.y));
104
- }
105
-
106
-
107
-
108
-
109
-
110
- // // Retrieves the occlusion factor for a particular sample
111
- // // uv: the centre coordinate of the kernel
112
- // // frustumVector: The frustum vector of the sample point
113
- // // centerViewPos: The view space position of the centre point
114
- // // centerNormal: The normal of the centre point
115
- // // tangent: The tangent vector in the sampling direction at the centre point
116
- // // topOcclusion: The maximum cos(angle) found so far, will be updated when a new occlusion segment has been found
117
- // float GetSampleOcclusion(vec2 uv, vec3 centerViewPos, vec3 centerNormal, vec3 tangent, inout float topOcclusion)
118
- // {
119
- // // reconstruct sample's view space position based on depth buffer and interpolated frustum vector
120
- // vec3 sampleViewPos = DecodeViewPos(uv);
121
-
122
- // // get occlusion factor based on candidate horizon elevation
123
- // vec3 horizonVector = sampleViewPos - centerViewPos;
124
- // float horizonVectorLength = length(horizonVector);
125
-
126
- // float occlusion;
127
-
128
- // // If the horizon vector points away from the tangent, make an estimate
129
- // if (dot(tangent, horizonVector) < 0.0)
130
- // return 0.5;
131
- // else
132
- // occlusion = dot(centerNormal, horizonVector) / horizonVectorLength;
133
-
134
- // // this adds occlusion only if angle of the horizon vector is higher than the previous highest one without branching
135
- // float diff = max(occlusion - topOcclusion, 0.0);
136
- // topOcclusion = max(occlusion, topOcclusion);
137
-
138
- // // attenuate occlusion contribution using distance function 1 - (d/f)^2
139
- // float fallOff = 2.0;
140
- // float distanceFactor = saturate(horizonVectorLength / fallOff);
141
- // distanceFactor = 1.0 - distanceFactor * distanceFactor;
142
- // return diff * distanceFactor;
143
- // }
144
-
145
-
146
- #define MAX_DIRECTIONS 8
147
- #define MAX_DIRECTIONS_F 8.0
148
- #define MAX_STEPS 8
149
- #define MAX_STEPS_F 8.0
150
- #define KERNEL_SIZE 8
151
- #define KERNEL_SIZE_F 8.0
152
- #define MAX_TAPS (KERNEL_SIZE*KERNEL_SIZE)
153
- #define MAX_TAPS_F (KERNEL_SIZE_F*KERNEL_SIZE_F)
154
-
155
- float InvLength(vec2 V)
156
- {
157
- return inversesqrt(dot(V,V));
158
- }
159
- vec2 viewToScreen(vec3 viewPos)
160
- {
161
- vec4 P_screen = _ProjectionMatrix * vec4(viewPos, 1.0);
162
- P_screen.xyz/= P_screen.w;
163
- P_screen.xy = P_screen.xy * 0.5 + vec2(0.5, 0.5);
164
- return P_screen.xy;
165
- }
166
-
167
- float BiasedTangent(vec3 V)
168
- {
169
- return V.z / length(V.xy) + _Bias;
170
- }
171
-
172
- float TanToSin(float x)
173
- {
174
- return x * inversesqrt(x*x + 1.0);
175
- }
176
-
177
- float Tangent(vec3 V)
178
- {
179
- return V.z * InvLength(V.xy);
180
- }
181
-
182
-
183
- float Tangent(vec3 P, vec3 S)
184
- {
185
- return -(P.z - S.z) * InvLength(S.xy - P.xy);
186
- }
187
-
188
- void main()
189
- {
190
- vec2 half_pixel = vec2(0.5/_TargetResolution.x, 0.5/_TargetResolution.y);
191
- vec2 pixel_size = vec2(1.0/_TargetResolution.x, 1.0/_TargetResolution.y);
192
-
193
- vec2 uv = vUv;
194
-
195
- vec3 P = DecodeViewPos(uv);
196
- vec3 normal = DecodeNormal(uv);
197
-
198
-
199
- vec2 P_s = viewToScreen(P);
200
-
201
- // float radius = 0.5;
202
- vec2 P1_s = viewToScreen(P + vec3(0.0, _Radius, 0.0));
203
-
204
- float step_size_px = length(P1_s - P_s);
205
-
206
-
207
-
208
- // vec3 Pt = DecodeViewPos(uv + vec2(0.0, pixel_size.y));
209
- // vec3 Pb = DecodeViewPos(uv + vec2(0.0, -pixel_size.y));
210
-
211
- // vec3 Pl = DecodeViewPos(uv + vec2(-pixel_size.x, 0.0));
212
- // vec3 Pr = DecodeViewPos(uv + vec2(pixel_size.x, 0.0));
213
-
214
- // vec3 dPv = normalize(MinDiff(P, Pt, Pb));
215
- // vec3 dPh = normalize(MinDiff(P, Pr, Pl));
216
-
217
- // gl_FragColor.rgb = normalize(cross(dPh, dPv))* 0.5 + vec3(0.5,0.5,0.5);
218
-
219
- float alpha = (2.0 * PI) / MAX_DIRECTIONS_F;
220
- float accum = 0.0;
221
- for(int i=0; i< MAX_DIRECTIONS; i++)
222
- {
223
- float theta = alpha * float(i);
224
- // Apply noise to the direction
225
- vec2 dir = vec2(cos(theta), sin(theta)) * (step_size_px/MAX_DIRECTIONS_F);
226
- float max_angle = 0.0;
227
-
228
-
229
- for(int j=1; j< MAX_STEPS; j++)
230
- {
231
- vec2 uv_offset = dir * float(j);
232
-
233
- vec3 sample = DecodeViewPos(vUv + uv_offset);
234
-
235
-
236
- vec3 dir = sample - P;
237
- vec3 tangent = cross(normalize(dir), normal);
238
- tangent = cross(normal, tangent);
239
-
240
- float sin_t = TanToSin(BiasedTangent(tangent)); //sin(t)
241
-
242
- float horizon_angle = Tangent(P, sample);
243
- if(length(dir) < _Radius && horizon_angle > max_angle)
244
- {
245
- float sin_h = TanToSin(horizon_angle);
246
- accum += sin_h - sin_t;
247
- max_angle = horizon_angle;
248
- }
249
- }
250
- }
251
-
252
- gl_FragColor.rgb = vec3(accum/MAX_DIRECTIONS_F);
253
-
254
- // gl_FragColor.rgb = vec3(sin(abs(max_angle)));
255
- // gl_FragColor.rgb = normalize(dPv+dPh) * 0.5 + vec3(0.5);
256
- // gl_FragColor.rgb = vec3(sample_length);
257
-
258
- gl_FragColor.a = 1.0;
259
-
260
- }
261
-
262
-
263
-
264
-
1
+ uniform sampler2D _MainTex;
2
+ uniform mat4 _InverseProjMatrix;
3
+ uniform mat4 _InverseViewMatrix;
4
+
5
+ uniform float _Bias;
6
+ uniform float _Radius;
7
+
8
+ uniform vec2 _TargetResolution;
9
+ uniform float _FarPlane;
10
+
11
+
12
+ varying vec2 vUv;
13
+ varying vec4 vRay;
14
+
15
+
16
+ uniform vec3 _SampleKernel[64];
17
+ uniform sampler2D _RandomRotation;
18
+ uniform mat4 _ProjectionMatrix;
19
+
20
+ vec3 decode_normal (vec4 enc)
21
+ {
22
+ float scale = 1.7777;
23
+ vec3 nn =
24
+ enc.xyz*vec3(2.0*scale,2.0*scale,0.0) +
25
+ vec3(-scale,-scale,1.0);
26
+ float g = 2.0 / dot(nn.xyz,nn.xyz);
27
+ vec3 n;
28
+ n.xy = g*nn.xy;
29
+ n.z = g-1.0;
30
+ return n;
31
+ }
32
+
33
+ float DecodeFloatRG( vec2 enc )
34
+ {
35
+ vec2 kDecodeDot = vec2(1.0, 1.0/255.0);
36
+ return dot( enc, kDecodeDot );
37
+ }
38
+
39
+ vec3 DecodeNormal(vec2 uv)
40
+ {
41
+ // vec2 encoded_normal = texture2D(_MainTex, uv).zw;
42
+ // vec3 normalValue = normalize(decode_normal(vec4(encoded_normal, 0., 0.)));
43
+ // return normalize(normalValue);
44
+ return normalize(texture2D(_MainTex, uv).xyz * 2.0 - vec3(1.0));
45
+ }
46
+
47
+
48
+ vec3 DecodeViewPos(vec2 uv)
49
+ {
50
+ float depth = texture2D(_MainTex, uv).w;
51
+
52
+ float x = uv.x * 2.0 - 1.0;
53
+ float y = uv.y * 2.0 - 1.0;
54
+ vec4 inv_proj = _InverseProjMatrix * vec4(x,y, 1.0, 1.0);
55
+
56
+ return (inv_proj.xyz / inv_proj.w) * depth;
57
+ }
58
+
59
+ float fast_length(vec3 V)
60
+ {
61
+ return dot(V,V);
62
+ }
63
+
64
+ vec3 MinDiff(vec3 P, vec3 Pr, vec3 Pl)
65
+ {
66
+ vec3 V1 = Pr - P;
67
+ vec3 V2 = P - Pl;
68
+ return (fast_length(V1) < fast_length(V2)) ? V1 : V2;
69
+ }
70
+
71
+
72
+
73
+
74
+ #define PI 3.14
75
+ #define PI_OVER_2 1.5707963
76
+ #define PI_OVER_4 0.785398
77
+ #define EPSILON 0.000001
78
+
79
+ // Maps a unit square in [-1, 1] to a unit disk in [-1, 1]. Shirley 97 "A Low Distortion Map Between Disk and Square"
80
+ // Inputs: cartesian coordinates
81
+ // Return: new circle-mapped polar coordinates (radius, angle)
82
+ vec2 UnitSquareToUnitDiskPolar(float a, float b) {
83
+ float radius, angle;
84
+ if (abs(a) > abs(b)) { // First region (left and right quadrants of the disk)
85
+ radius = a;
86
+ angle = b / (a + EPSILON) * PI_OVER_4;
87
+ } else { // Second region (top and botom quadrants of the disk)
88
+ radius = b;
89
+ angle = PI_OVER_2 - (a / (b + EPSILON) * PI_OVER_4);
90
+ }
91
+ if (radius < 0.0) { // Always keep radius positive
92
+ radius *= -1.0;
93
+ angle += PI;
94
+ }
95
+ return vec2(radius, angle);
96
+ }
97
+
98
+ // Maps a unit square in [-1, 1] to a unit disk in [-1, 1]
99
+ // Inputs: cartesian coordinates
100
+ // Return: new circle-mapped cartesian coordinates
101
+ vec2 SquareToDiskMapping(float a, float b) {
102
+ vec2 PolarCoord = UnitSquareToUnitDiskPolar(a, b);
103
+ return vec2(PolarCoord.x * cos(PolarCoord.y), PolarCoord.x * sin(PolarCoord.y));
104
+ }
105
+
106
+
107
+
108
+
109
+
110
+ // // Retrieves the occlusion factor for a particular sample
111
+ // // uv: the centre coordinate of the kernel
112
+ // // frustumVector: The frustum vector of the sample point
113
+ // // centerViewPos: The view space position of the centre point
114
+ // // centerNormal: The normal of the centre point
115
+ // // tangent: The tangent vector in the sampling direction at the centre point
116
+ // // topOcclusion: The maximum cos(angle) found so far, will be updated when a new occlusion segment has been found
117
+ // float GetSampleOcclusion(vec2 uv, vec3 centerViewPos, vec3 centerNormal, vec3 tangent, inout float topOcclusion)
118
+ // {
119
+ // // reconstruct sample's view space position based on depth buffer and interpolated frustum vector
120
+ // vec3 sampleViewPos = DecodeViewPos(uv);
121
+
122
+ // // get occlusion factor based on candidate horizon elevation
123
+ // vec3 horizonVector = sampleViewPos - centerViewPos;
124
+ // float horizonVectorLength = length(horizonVector);
125
+
126
+ // float occlusion;
127
+
128
+ // // If the horizon vector points away from the tangent, make an estimate
129
+ // if (dot(tangent, horizonVector) < 0.0)
130
+ // return 0.5;
131
+ // else
132
+ // occlusion = dot(centerNormal, horizonVector) / horizonVectorLength;
133
+
134
+ // // this adds occlusion only if angle of the horizon vector is higher than the previous highest one without branching
135
+ // float diff = max(occlusion - topOcclusion, 0.0);
136
+ // topOcclusion = max(occlusion, topOcclusion);
137
+
138
+ // // attenuate occlusion contribution using distance function 1 - (d/f)^2
139
+ // float fallOff = 2.0;
140
+ // float distanceFactor = saturate(horizonVectorLength / fallOff);
141
+ // distanceFactor = 1.0 - distanceFactor * distanceFactor;
142
+ // return diff * distanceFactor;
143
+ // }
144
+
145
+
146
+ #define MAX_DIRECTIONS 8
147
+ #define MAX_DIRECTIONS_F 8.0
148
+ #define MAX_STEPS 8
149
+ #define MAX_STEPS_F 8.0
150
+ #define KERNEL_SIZE 8
151
+ #define KERNEL_SIZE_F 8.0
152
+ #define MAX_TAPS (KERNEL_SIZE*KERNEL_SIZE)
153
+ #define MAX_TAPS_F (KERNEL_SIZE_F*KERNEL_SIZE_F)
154
+
155
+ float InvLength(vec2 V)
156
+ {
157
+ return inversesqrt(dot(V,V));
158
+ }
159
+ vec2 viewToScreen(vec3 viewPos)
160
+ {
161
+ vec4 P_screen = _ProjectionMatrix * vec4(viewPos, 1.0);
162
+ P_screen.xyz/= P_screen.w;
163
+ P_screen.xy = P_screen.xy * 0.5 + vec2(0.5, 0.5);
164
+ return P_screen.xy;
165
+ }
166
+
167
+ float BiasedTangent(vec3 V)
168
+ {
169
+ return V.z / length(V.xy) + _Bias;
170
+ }
171
+
172
+ float TanToSin(float x)
173
+ {
174
+ return x * inversesqrt(x*x + 1.0);
175
+ }
176
+
177
+ float Tangent(vec3 V)
178
+ {
179
+ return V.z * InvLength(V.xy);
180
+ }
181
+
182
+
183
+ float Tangent(vec3 P, vec3 S)
184
+ {
185
+ return -(P.z - S.z) * InvLength(S.xy - P.xy);
186
+ }
187
+
188
+ void main()
189
+ {
190
+ vec2 half_pixel = vec2(0.5/_TargetResolution.x, 0.5/_TargetResolution.y);
191
+ vec2 pixel_size = vec2(1.0/_TargetResolution.x, 1.0/_TargetResolution.y);
192
+
193
+ vec2 uv = vUv;
194
+
195
+ vec3 P = DecodeViewPos(uv);
196
+ vec3 normal = DecodeNormal(uv);
197
+
198
+
199
+ vec2 P_s = viewToScreen(P);
200
+
201
+ // float radius = 0.5;
202
+ vec2 P1_s = viewToScreen(P + vec3(0.0, _Radius, 0.0));
203
+
204
+ float step_size_px = length(P1_s - P_s);
205
+
206
+
207
+
208
+ // vec3 Pt = DecodeViewPos(uv + vec2(0.0, pixel_size.y));
209
+ // vec3 Pb = DecodeViewPos(uv + vec2(0.0, -pixel_size.y));
210
+
211
+ // vec3 Pl = DecodeViewPos(uv + vec2(-pixel_size.x, 0.0));
212
+ // vec3 Pr = DecodeViewPos(uv + vec2(pixel_size.x, 0.0));
213
+
214
+ // vec3 dPv = normalize(MinDiff(P, Pt, Pb));
215
+ // vec3 dPh = normalize(MinDiff(P, Pr, Pl));
216
+
217
+ // gl_FragColor.rgb = normalize(cross(dPh, dPv))* 0.5 + vec3(0.5,0.5,0.5);
218
+
219
+ float alpha = (2.0 * PI) / MAX_DIRECTIONS_F;
220
+ float accum = 0.0;
221
+ for(int i=0; i< MAX_DIRECTIONS; i++)
222
+ {
223
+ float theta = alpha * float(i);
224
+ // Apply noise to the direction
225
+ vec2 dir = vec2(cos(theta), sin(theta)) * (step_size_px/MAX_DIRECTIONS_F);
226
+ float max_angle = 0.0;
227
+
228
+
229
+ for(int j=1; j< MAX_STEPS; j++)
230
+ {
231
+ vec2 uv_offset = dir * float(j);
232
+
233
+ vec3 sample = DecodeViewPos(vUv + uv_offset);
234
+
235
+
236
+ vec3 dir = sample - P;
237
+ vec3 tangent = cross(normalize(dir), normal);
238
+ tangent = cross(normal, tangent);
239
+
240
+ float sin_t = TanToSin(BiasedTangent(tangent)); //sin(t)
241
+
242
+ float horizon_angle = Tangent(P, sample);
243
+ if(length(dir) < _Radius && horizon_angle > max_angle)
244
+ {
245
+ float sin_h = TanToSin(horizon_angle);
246
+ accum += sin_h - sin_t;
247
+ max_angle = horizon_angle;
248
+ }
249
+ }
250
+ }
251
+
252
+ gl_FragColor.rgb = vec3(accum/MAX_DIRECTIONS_F);
253
+
254
+ // gl_FragColor.rgb = vec3(sin(abs(max_angle)));
255
+ // gl_FragColor.rgb = normalize(dPv+dPh) * 0.5 + vec3(0.5);
256
+ // gl_FragColor.rgb = vec3(sample_length);
257
+
258
+ gl_FragColor.a = 1.0;
259
+
260
+ }
261
+
262
+
263
+
264
+