ohzi-core 6.1.2 → 6.2.1

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 (433) 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 +50 -48
  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 +327 -327
  15. package/src/Initializer.js +57 -57
  16. package/src/Input.js +21 -21
  17. package/src/KeyboardInput.js +128 -128
  18. package/src/OS.js +58 -58
  19. package/src/OrthographicCamera.js +13 -13
  20. package/src/PerspectiveCamera.js +13 -13
  21. package/src/ReflectionPlaneContext.js +17 -17
  22. package/src/RenderLayers.js +28 -28
  23. package/src/RenderLoop.js +97 -97
  24. package/src/RenderOrder.js +38 -38
  25. package/src/ResourceContainer.js +39 -39
  26. package/src/SceneManager.js +44 -44
  27. package/src/Screen.js +69 -69
  28. package/src/Time.js +38 -38
  29. package/src/UI.js +90 -90
  30. package/src/action_sequencer/ActionEvent.js +15 -15
  31. package/src/action_sequencer/ActionInterpolator.js +23 -23
  32. package/src/action_sequencer/ActionSequencer.js +194 -194
  33. package/src/action_sequencer/NumberInterpolator.js +24 -24
  34. package/src/action_sequencer/VectorInterpolator.js +20 -20
  35. package/src/blitter_index.js +13 -13
  36. package/src/canvas_drawer/CanvasDrawer.js +111 -111
  37. package/src/canvas_drawer/MultiLineTextDrawer.js +49 -49
  38. package/src/canvas_drawer/SimpleTextDrawer.js +47 -47
  39. package/src/components/AudioClip.js +55 -55
  40. package/src/components/AxisHelper.js +58 -58
  41. package/src/components/BaseObject.js +45 -45
  42. package/src/components/EdgeMesh.js +151 -151
  43. package/src/components/GeometryEdgeVisualizer.js +45 -45
  44. package/src/components/Grid.js +33 -33
  45. package/src/components/Line.js +199 -199
  46. package/src/components/MultiLinePath.js +19 -19
  47. package/src/components/MultiLineText2D.js +62 -62
  48. package/src/components/ObjectAxis.js +20 -20
  49. package/src/components/ObjectOrientedBoundingBox.js +201 -201
  50. package/src/components/PlaneHelper.js +36 -36
  51. package/src/components/Shape2D.js +42 -42
  52. package/src/components/Shape3D.js +38 -38
  53. package/src/components/Text2D.js +39 -39
  54. package/src/components/UIElement.js +208 -208
  55. package/src/components/UpdatableMaterialMesh.js +16 -16
  56. package/src/components/WorldImage.js +91 -91
  57. package/src/components/mouse_interactors/ObjectRotator.js +61 -61
  58. package/src/components/sdf_text/SDFText.js +154 -154
  59. package/src/components/sdf_text/SDFTextBatch.js +193 -193
  60. package/src/components/sdf_text/TextGlyph.js +15 -15
  61. package/src/data_textures/CustomDataTexture.js +51 -51
  62. package/src/data_textures/RGBADataTexture.js +12 -12
  63. package/src/data_textures/RGBAFloatDataTexture.js +12 -12
  64. package/src/data_textures/RGBDataTexture.js +12 -12
  65. package/src/data_textures/RGBFloatDataTexture.js +12 -12
  66. package/src/editor/ManipulatorHandle.js +70 -70
  67. package/src/editor/ObjectEditor.js +66 -66
  68. package/src/editor/ObjectManipulator.js +118 -118
  69. package/src/editor/ObjectPicker.js +75 -75
  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 +87 -87
  73. package/src/gpu_particles/ParticleAttribute.js +83 -83
  74. package/src/gpu_particles/ParticlePositionAttribute.js +20 -20
  75. package/src/html_utilities/CSSAnimator.js +64 -64
  76. package/src/html_utilities/css_animator_states/Animating.js +45 -45
  77. package/src/html_utilities/css_animator_states/Idle.js +25 -25
  78. package/src/index.js +211 -211
  79. package/src/materials/AddMaterial.js +17 -17
  80. package/src/materials/AlphaFilterMaterial.js +20 -20
  81. package/src/materials/BaseShaderMaterial.js +19 -19
  82. package/src/materials/BlitMaterial.js +28 -28
  83. package/src/materials/BloomComposeMaterial.js +22 -22
  84. package/src/materials/BoxBlurMaterial.js +13 -13
  85. package/src/materials/ClearAlphaMaterial.js +13 -13
  86. package/src/materials/ClearColorMaterial.js +31 -31
  87. package/src/materials/ClearDepthNormalMaterial.js +13 -13
  88. package/src/materials/DeferredRendererComposeMaterial.js +32 -32
  89. package/src/materials/DepthNormalMaterial.js +28 -28
  90. package/src/materials/DisplayNormalTextureMaterial.js +15 -15
  91. package/src/materials/DualFilteringBlurMaterial.js +11 -11
  92. package/src/materials/FXAAMaterial.js +10 -10
  93. package/src/materials/GaussianBlurMaterial.js +28 -28
  94. package/src/materials/LuminosityHighPassMaterial.js +15 -15
  95. package/src/materials/MedianFilterMaterial.js +42 -42
  96. package/src/materials/NormalMaterial.js +17 -17
  97. package/src/materials/SDFScreenTextMaterial.js +31 -31
  98. package/src/materials/SDFTextMaterial.js +37 -37
  99. package/src/materials/SSAOComposeMaterial.js +11 -11
  100. package/src/materials/SSAOMaterial.js +66 -66
  101. package/src/materials/ScreenSpaceTextureMaterial.js +65 -65
  102. package/src/materials/UIElementMaterial.js +25 -25
  103. package/src/materials/UnrealBloomComposeMaterial.js +95 -95
  104. package/src/materials/UnrealBlurMaterial.js +17 -17
  105. package/src/materials/UnrealComposeMaterial.js +24 -24
  106. package/src/materials/ViewPositionMaterial.js +17 -17
  107. package/src/materials/deferred/DeferredPointLightMaterial.js +39 -39
  108. package/src/materials/gpu_particles/AttributeUpdateMaterial.js +33 -33
  109. package/src/materials/gpu_particles/BasicParticleMaterial.js +23 -23
  110. package/src/materials/gpu_particles/ParticleStorageMaterial.js +27 -27
  111. package/src/materials/gpu_particles/PositionStorageMaterial.js +10 -10
  112. package/src/object_pool/Pool.js +73 -73
  113. package/src/primitives/Arrow.js +57 -57
  114. package/src/primitives/Cube.js +17 -17
  115. package/src/primitives/HorizontalPlane.js +18 -18
  116. package/src/primitives/Sphere.js +15 -15
  117. package/src/primitives/VerticalPlane.js +17 -17
  118. package/src/raycast/GroupRaycaster.js +41 -41
  119. package/src/raycast/PlaneDragResolver.js +89 -89
  120. package/src/raycast/PlaneRaycastResolver.js +22 -22
  121. package/src/raycast/PlaneRaycaster.js +23 -23
  122. package/src/raycast/RaycastResolver.js +22 -22
  123. package/src/raycast/SurfaceDragResolver.js +77 -77
  124. package/src/raycast/states/BaseState.js +16 -16
  125. package/src/raycast/states/IdleState.js +17 -17
  126. package/src/raycast/states/OnRaycastEnter.js +15 -15
  127. package/src/raycast/states/OnRaycastExit.js +16 -16
  128. package/src/raycast/states/OnRaycastHover.js +25 -25
  129. package/src/render_mode/BaseRender.js +32 -32
  130. package/src/render_mode/BloomRender.js +60 -60
  131. package/src/render_mode/DebugNormalsRender.js +20 -20
  132. package/src/render_mode/DeferredRender.js +112 -112
  133. package/src/render_mode/NormalAORender.js +71 -71
  134. package/src/render_mode/NormalRender.js +36 -36
  135. package/src/render_mode/OutlineRender.js +154 -154
  136. package/src/render_mode/PlanarReflectionsRender.js +118 -118
  137. package/src/render_mode/TransparencyMixRender.js +143 -143
  138. package/src/render_mode/UnrealBloomRender.js +109 -109
  139. package/src/render_utilities/Blitter.js +99 -99
  140. package/src/render_utilities/Blurrer.js +29 -29
  141. package/src/render_utilities/DepthAndNormalsRenderer.js +45 -45
  142. package/src/render_utilities/DualFilteringBlurrer.js +56 -56
  143. package/src/render_utilities/GaussianBlurrer.js +146 -146
  144. package/src/render_utilities/MedianFilter.js +66 -66
  145. package/src/render_utilities/ViewPositionRenderer.js +48 -48
  146. package/src/resource_loader/BasisLoader.js +50 -50
  147. package/src/resource_loader/FontLoader.js +39 -39
  148. package/src/resource_loader/GLTFDRACOLoader.js +2 -0
  149. package/src/resource_loader/JSONLoader.js +40 -40
  150. package/src/resource_loader/OBJLoader.js +39 -39
  151. package/src/resource_loader/PointArrayLoader.js +63 -63
  152. package/src/resource_loader/RGBETextureLoader.js +42 -42
  153. package/src/resource_loader/VideoLoader.js +20 -20
  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 +215 -215
  233. package/src/utilities/FrustumPointFitter.js +255 -255
  234. package/src/utilities/GeometryUtilities.js +74 -74
  235. package/src/utilities/ImageUtilities.js +26 -26
  236. package/src/utilities/MeshSampler.js +152 -152
  237. package/src/utilities/ModelUtilities.js +161 -161
  238. package/src/utilities/OMath.js +155 -155
  239. package/src/utilities/OrthographicFrustumPointFitter.js +47 -47
  240. package/src/utilities/PerspectiveFrustumPointFitter.js +250 -250
  241. package/src/utilities/StringUtilities.js +32 -32
  242. package/src/utilities/TimeUtilities.js +22 -22
  243. package/src/utilities/Validation.js +34 -34
  244. package/src/view_components/ApplicationView.js +60 -60
  245. package/src/view_components/ViewComponent.js +37 -37
  246. package/src/view_components/ViewComponentManager.js +58 -58
  247. package/src/view_components/ViewContext.js +14 -14
  248. package/src/view_components/ViewManager.js +129 -129
  249. package/src/view_components/ViewState.js +54 -54
  250. package/src/view_components/transition/ActionSequencerBuilder.js +91 -91
  251. package/src/view_components/transition/DrawIOAnimationSheet.js +90 -90
  252. package/src/view_components/transition/TransitionTable.js +44 -44
  253. package/src/view_components/transition/ViewStateTransitionHandler.js +95 -95
  254. package/types/BaseApplication.d.ts +8 -8
  255. package/types/Browser.d.ts +12 -12
  256. package/types/CameraManager.d.ts +8 -8
  257. package/types/Capabilities.d.ts +6 -6
  258. package/types/Configuration.d.ts +6 -6
  259. package/types/Debug.d.ts +38 -38
  260. package/types/EventManager.d.ts +42 -42
  261. package/types/Graphics.d.ts +35 -35
  262. package/types/Initializer.d.ts +4 -4
  263. package/types/Input.d.ts +8 -8
  264. package/types/OS.d.ts +18 -18
  265. package/types/OrthographicCamera.d.ts +5 -5
  266. package/types/PerspectiveCamera.d.ts +5 -5
  267. package/types/ReflectionPlaneContext.d.ts +6 -6
  268. package/types/RenderLayers.d.ts +6 -6
  269. package/types/RenderLoop.d.ts +13 -13
  270. package/types/ResourceContainer.d.ts +8 -8
  271. package/types/SceneManager.d.ts +10 -10
  272. package/types/Screen.d.ts +17 -17
  273. package/types/Time.d.ts +11 -11
  274. package/types/UI.d.ts +15 -15
  275. package/types/action_sequencer/ActionEvent.d.ts +6 -6
  276. package/types/action_sequencer/ActionInterpolator.d.ts +5 -5
  277. package/types/action_sequencer/ActionSequencer.d.ts +28 -28
  278. package/types/action_sequencer/NumberInterpolator.d.ts +8 -8
  279. package/types/action_sequencer/VectorInterpolator.d.ts +7 -7
  280. package/types/canvas_drawer/CanvasDrawer.d.ts +13 -13
  281. package/types/canvas_drawer/MultiLineTextDrawer.d.ts +5 -5
  282. package/types/canvas_drawer/SimpleTextDrawer.d.ts +5 -5
  283. package/types/components/AudioClip.d.ts +12 -12
  284. package/types/components/AxisHelper.d.ts +6 -6
  285. package/types/components/BaseObject.d.ts +5 -5
  286. package/types/components/EdgeMesh.d.ts +13 -13
  287. package/types/components/GeometryEdgeVisualizer.d.ts +4 -4
  288. package/types/components/Grid.d.ts +2 -2
  289. package/types/components/Line.d.ts +16 -16
  290. package/types/components/MultiLinePath.d.ts +4 -4
  291. package/types/components/MultiLineText2D.d.ts +10 -10
  292. package/types/components/ObjectAxis.d.ts +3 -3
  293. package/types/components/ObjectOrientedBoundingBox.d.ts +18 -18
  294. package/types/components/PlaneHelper.d.ts +6 -6
  295. package/types/components/Shape2D.d.ts +4 -4
  296. package/types/components/Shape3D.d.ts +3 -3
  297. package/types/components/Text2D.d.ts +13 -13
  298. package/types/components/UIElement.d.ts +52 -52
  299. package/types/components/UpdatableMaterialMesh.d.ts +4 -4
  300. package/types/components/WorldImage.d.ts +13 -13
  301. package/types/components/sdf_text/SDFText.d.ts +30 -30
  302. package/types/components/sdf_text/SDFTextBatch.d.ts +12 -12
  303. package/types/components/sdf_text/TextGlyph.d.ts +6 -6
  304. package/types/editor/ManipulatorHandle.d.ts +14 -14
  305. package/types/editor/ObjectEditor.d.ts +16 -16
  306. package/types/editor/ObjectManipulator.d.ts +19 -19
  307. package/types/editor/ObjectPicker.d.ts +16 -16
  308. package/types/gpu_particles/GPUParticleSystem.d.ts +12 -12
  309. package/types/gpu_particles/ParticleAttribute.d.ts +15 -15
  310. package/types/gpu_particles/ParticlePositionAttribute.d.ts +4 -4
  311. package/types/html_utilities/CSSAnimator.d.ts +30 -30
  312. package/types/html_utilities/css_animator_states/Animating.d.ts +8 -8
  313. package/types/html_utilities/css_animator_states/Idle.d.ts +6 -6
  314. package/types/index.d.ts +89 -89
  315. package/types/materials/AddMaterial.d.ts +5 -5
  316. package/types/materials/AlphaFilterMaterial.d.ts +6 -6
  317. package/types/materials/BaseShaderMaterial.d.ts +3 -3
  318. package/types/materials/BlitMaterial.d.ts +3 -3
  319. package/types/materials/BloomComposeMaterial.d.ts +7 -7
  320. package/types/materials/BoxBlurMaterial.d.ts +4 -4
  321. package/types/materials/ClearAlphaMaterial.d.ts +3 -3
  322. package/types/materials/ClearColorMaterial.d.ts +7 -7
  323. package/types/materials/ClearDepthNormalMaterial.d.ts +4 -4
  324. package/types/materials/DeferredRendererComposeMaterial.d.ts +7 -7
  325. package/types/materials/DepthNormalMaterial.d.ts +4 -4
  326. package/types/materials/DisplayNormalTextureMaterial.d.ts +4 -4
  327. package/types/materials/DualFilteringBlurMaterial.d.ts +4 -4
  328. package/types/materials/FXAAMaterial.d.ts +3 -3
  329. package/types/materials/GaussianBlurMaterial.d.ts +6 -6
  330. package/types/materials/LuminosityHighPassMaterial.d.ts +4 -4
  331. package/types/materials/MedianFilterMaterial.d.ts +6 -6
  332. package/types/materials/NormalMaterial.d.ts +2 -2
  333. package/types/materials/SDFScreenTextMaterial.d.ts +11 -11
  334. package/types/materials/SDFTextMaterial.d.ts +12 -12
  335. package/types/materials/SSAOComposeMaterial.d.ts +4 -4
  336. package/types/materials/SSAOMaterial.d.ts +6 -6
  337. package/types/materials/ScreenSpaceTextureMaterial.d.ts +7 -7
  338. package/types/materials/UIElementMaterial.d.ts +7 -7
  339. package/types/materials/UnrealBloomComposeMaterial.d.ts +17 -17
  340. package/types/materials/UnrealBlurMaterial.d.ts +4 -4
  341. package/types/materials/UnrealComposeMaterial.d.ts +4 -4
  342. package/types/materials/ViewPositionMaterial.d.ts +3 -3
  343. package/types/materials/deferred/DeferredPointLightMaterial.d.ts +10 -10
  344. package/types/materials/gpu_particles/ParticleStorageMaterial.d.ts +3 -3
  345. package/types/materials/gpu_particles/PositionStorageMaterial.d.ts +4 -4
  346. package/types/object_pool/Pool.d.ts +10 -10
  347. package/types/primitives/Arrow.d.ts +8 -8
  348. package/types/primitives/Cube.d.ts +3 -3
  349. package/types/primitives/HorizontalPlane.d.ts +3 -3
  350. package/types/primitives/Sphere.d.ts +3 -3
  351. package/types/primitives/VerticalPlane.d.ts +3 -3
  352. package/types/raycast/GroupRaycaster.d.ts +13 -13
  353. package/types/raycast/PlaneDragResolver.d.ts +14 -14
  354. package/types/raycast/PlaneRaycastResolver.d.ts +5 -5
  355. package/types/raycast/PlaneRaycaster.d.ts +7 -7
  356. package/types/raycast/RaycastResolver.d.ts +5 -5
  357. package/types/raycast/SurfaceDragResolver.d.ts +13 -13
  358. package/types/raycast/states/BaseState.d.ts +5 -5
  359. package/types/raycast/states/IdleState.d.ts +5 -5
  360. package/types/raycast/states/OnRaycastEnter.d.ts +5 -5
  361. package/types/raycast/states/OnRaycastExit.d.ts +4 -4
  362. package/types/raycast/states/OnRaycastHover.d.ts +4 -4
  363. package/types/render_mode/BaseRender.d.ts +7 -7
  364. package/types/render_mode/BloomRender.d.ts +10 -10
  365. package/types/render_mode/DebugNormalsRender.d.ts +4 -4
  366. package/types/render_mode/DeferredRender.d.ts +9 -9
  367. package/types/render_mode/NormalAORender.d.ts +16 -16
  368. package/types/render_mode/NormalRender.d.ts +4 -4
  369. package/types/render_mode/OutlineRender.d.ts +20 -20
  370. package/types/render_mode/PlanarReflectionsRender.d.ts +13 -13
  371. package/types/render_mode/TransparencyMixRender.d.ts +21 -21
  372. package/types/render_mode/UnrealBloomRender.d.ts +19 -19
  373. package/types/render_utilities/Blitter.d.ts +16 -16
  374. package/types/render_utilities/Blurrer.d.ts +9 -9
  375. package/types/render_utilities/DepthAndNormalsRenderer.d.ts +12 -12
  376. package/types/render_utilities/DualFilteringBlurrer.d.ts +19 -19
  377. package/types/render_utilities/GaussianBlurrer.d.ts +27 -27
  378. package/types/render_utilities/MedianFilter.d.ts +10 -10
  379. package/types/render_utilities/ViewPositionRenderer.d.ts +9 -9
  380. package/types/resource_loader/AbstractLoader.d.ts +18 -18
  381. package/types/resource_loader/AudioLoader.d.ts +8 -8
  382. package/types/resource_loader/BasisLoader.d.ts +6 -6
  383. package/types/resource_loader/CubemapLoader.d.ts +7 -7
  384. package/types/resource_loader/DAELoader.d.ts +6 -6
  385. package/types/resource_loader/DDSLoader.d.ts +6 -6
  386. package/types/resource_loader/FileLoader.d.ts +6 -6
  387. package/types/resource_loader/FontLoader.d.ts +6 -6
  388. package/types/resource_loader/GLTFDRACOLoader.d.ts +7 -7
  389. package/types/resource_loader/GLTFLoader.d.ts +5 -5
  390. package/types/resource_loader/HDRCubeTextureLoader.d.ts +7 -7
  391. package/types/resource_loader/JSONLoader.d.ts +6 -6
  392. package/types/resource_loader/OBJLoader.d.ts +6 -6
  393. package/types/resource_loader/PointArrayLoader.d.ts +7 -7
  394. package/types/resource_loader/RGBETextureLoader.d.ts +6 -6
  395. package/types/resource_loader/ResourceBatch.d.ts +13 -13
  396. package/types/resource_loader/SVGLoader.d.ts +6 -6
  397. package/types/resource_loader/TextLoader.d.ts +6 -6
  398. package/types/resource_loader/TextureLoader.d.ts +6 -6
  399. package/types/resource_loader/VideoLoader.d.ts +6 -6
  400. package/types/static_batcher/GeometryBatch.d.ts +37 -37
  401. package/types/static_batcher/GeometryBatcher.d.ts +7 -7
  402. package/types/ui/ui_element_position/ScreenSpacePosition.d.ts +4 -4
  403. package/types/ui/ui_element_position/WorldSpacePosition.d.ts +5 -5
  404. package/types/ui/ui_element_state/OnIdle.d.ts +5 -5
  405. package/types/ui/ui_element_state/OnMouseEnter.d.ts +5 -5
  406. package/types/ui/ui_element_state/OnMouseExit.d.ts +5 -5
  407. package/types/ui/ui_element_state/OnMouseHover.d.ts +5 -5
  408. package/types/ui/ui_element_state/UIElementState.d.ts +5 -5
  409. package/types/utilities/ArrayUtilities.d.ts +7 -7
  410. package/types/utilities/CameraUtilities.d.ts +24 -24
  411. package/types/utilities/EasingFunctions.d.ts +35 -35
  412. package/types/utilities/FrustumPointFitter.d.ts +14 -14
  413. package/types/utilities/GeometryUtilities.d.ts +4 -4
  414. package/types/utilities/ImageUtilities.d.ts +4 -4
  415. package/types/utilities/MeshSampler.d.ts +14 -14
  416. package/types/utilities/ModelUtilities.d.ts +13 -13
  417. package/types/utilities/OMath.d.ts +21 -21
  418. package/types/utilities/ObjectUtilities.d.ts +5 -5
  419. package/types/utilities/OrthographicFrustumPointFitter.d.ts +7 -7
  420. package/types/utilities/PerspectiveFrustumPointFitter.d.ts +12 -12
  421. package/types/utilities/StringUtilities.d.ts +5 -5
  422. package/types/utilities/TimeUtilities.d.ts +3 -3
  423. package/types/utilities/Validation.d.ts +6 -6
  424. package/types/view_components/ApplicationView.d.ts +11 -11
  425. package/types/view_components/ViewComponent.d.ts +13 -13
  426. package/types/view_components/ViewComponentManager.d.ts +10 -10
  427. package/types/view_components/ViewContext.d.ts +6 -6
  428. package/types/view_components/ViewManager.d.ts +24 -24
  429. package/types/view_components/ViewState.d.ts +15 -15
  430. package/types/view_components/transition/ActionSequencerBuilder.d.ts +15 -15
  431. package/types/view_components/transition/DrawIOAnimationSheet.d.ts +17 -17
  432. package/types/view_components/transition/TransitionTable.d.ts +8 -8
  433. 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
+