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,36 +1,36 @@
1
- varying vec2 vUv;
2
- uniform sampler2D blurTexture1;
3
- uniform sampler2D blurTexture2;
4
- uniform sampler2D blurTexture3;
5
- uniform sampler2D blurTexture4;
6
- uniform sampler2D blurTexture5;
7
-
8
- uniform float bloomStrength;
9
- uniform float bloomRadius;
10
- uniform float bloomFactors[NUM_MIPS];
11
- uniform vec3 bloomTintColors[NUM_MIPS];
12
-
13
- float lerpBloomFactor(const in float factor) {
14
- float mirrorFactor = 1.2 - factor;
15
- return mix(factor, mirrorFactor, bloomRadius);
16
- }
17
-
18
- vec4 sampleTex(sampler2D tex, vec2 uv)
19
- {
20
- vec4 col = texture2D( tex, uv);
21
- #ifndef USE_LINEAR_COLOR_SPACE
22
- col.rgb = pow(col.rgb, vec3(2.2));
23
- #endif
24
- return col;
25
- }
26
- void main() {
27
- gl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * sampleTex(blurTexture1, vUv) +
28
- lerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * sampleTex(blurTexture2, vUv) +
29
- lerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * sampleTex(blurTexture3, vUv) +
30
- lerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * sampleTex(blurTexture4, vUv) +
31
- lerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * sampleTex(blurTexture5, vUv) );
32
-
33
- #ifndef USE_LINEAR_COLOR_SPACE
34
- gl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(0.4545));
35
- #endif
36
- }
1
+ varying vec2 vUv;
2
+ uniform sampler2D blurTexture1;
3
+ uniform sampler2D blurTexture2;
4
+ uniform sampler2D blurTexture3;
5
+ uniform sampler2D blurTexture4;
6
+ uniform sampler2D blurTexture5;
7
+
8
+ uniform float bloomStrength;
9
+ uniform float bloomRadius;
10
+ uniform float bloomFactors[NUM_MIPS];
11
+ uniform vec3 bloomTintColors[NUM_MIPS];
12
+
13
+ float lerpBloomFactor(const in float factor) {
14
+ float mirrorFactor = 1.2 - factor;
15
+ return mix(factor, mirrorFactor, bloomRadius);
16
+ }
17
+
18
+ vec4 sampleTex(sampler2D tex, vec2 uv)
19
+ {
20
+ vec4 col = texture2D( tex, uv);
21
+ #ifndef USE_LINEAR_COLOR_SPACE
22
+ col.rgb = pow(col.rgb, vec3(2.2));
23
+ #endif
24
+ return col;
25
+ }
26
+ void main() {
27
+ gl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * sampleTex(blurTexture1, vUv) +
28
+ lerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * sampleTex(blurTexture2, vUv) +
29
+ lerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * sampleTex(blurTexture3, vUv) +
30
+ lerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * sampleTex(blurTexture4, vUv) +
31
+ lerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * sampleTex(blurTexture5, vUv) );
32
+
33
+ #ifndef USE_LINEAR_COLOR_SPACE
34
+ gl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(0.4545));
35
+ #endif
36
+ }
@@ -1,13 +1,13 @@
1
- #define range 10.0
2
- vec3 pack_position(vec3 position)
3
- {
4
- vec3 pos = (position/range) * 0.5 + vec3(0.5, 0.5,0.5);
5
- pos.x = clamp(pos.x, 0.0, 1.0);
6
- pos.y = clamp(pos.y, 0.0, 1.0);
7
- pos.z = clamp(pos.z, 0.0, 1.0);
8
- return pos;
9
- }
10
- vec3 unpack_position(vec3 pos)
11
- {
12
- return (pos * 2.0 - vec3(1.0, 1.0, 1.0)) * range;
1
+ #define range 10.0
2
+ vec3 pack_position(vec3 position)
3
+ {
4
+ vec3 pos = (position/range) * 0.5 + vec3(0.5, 0.5,0.5);
5
+ pos.x = clamp(pos.x, 0.0, 1.0);
6
+ pos.y = clamp(pos.y, 0.0, 1.0);
7
+ pos.z = clamp(pos.z, 0.0, 1.0);
8
+ return pos;
9
+ }
10
+ vec3 unpack_position(vec3 pos)
11
+ {
12
+ return (pos * 2.0 - vec3(1.0, 1.0, 1.0)) * range;
13
13
  }
@@ -1,6 +1,6 @@
1
- varying vec4 value;
2
-
3
- void main()
4
- {
5
- gl_FragColor = value;
6
- }
1
+ varying vec4 value;
2
+
3
+ void main()
4
+ {
5
+ gl_FragColor = value;
6
+ }
@@ -1,14 +1,14 @@
1
-
2
-
3
- varying vec4 value;
4
-
5
- attribute vec2 storage_uv;
6
- //#include <gpu_particles_utils>
7
-
8
- void main()
9
- {
10
- gl_Position = vec4(storage_uv * 2.0 - 1.0, 1.0,1.0);
11
- gl_PointSize = 1.0;
12
-
13
- value = vec4(position.xyz, 1.0);
14
- }
1
+
2
+
3
+ varying vec4 value;
4
+
5
+ attribute vec2 storage_uv;
6
+ //#include <gpu_particles_utils>
7
+
8
+ void main()
9
+ {
10
+ gl_Position = vec4(storage_uv * 2.0 - 1.0, 1.0,1.0);
11
+ gl_PointSize = 1.0;
12
+
13
+ value = vec4(position.xyz, 1.0);
14
+ }
@@ -1,21 +1,21 @@
1
- uniform sampler2D _MainTex;
2
- uniform vec2 _Time;
3
- uniform vec2 _Resolution;
4
-
5
- varying vec2 vUv;
6
-
7
- //#include <gpu_particles_utils>
8
-
9
- void main()
10
- {
11
-
12
- gl_FragColor.xyz = texture2D( _MainTex, vUv).xyz;
13
- gl_FragColor.y += 0.001;
14
-
15
- gl_FragColor.xyz = gl_FragColor.xyz;
16
-
17
- gl_FragColor.w = 1.0;
18
-
19
-
20
-
1
+ uniform sampler2D _MainTex;
2
+ uniform vec2 _Time;
3
+ uniform vec2 _Resolution;
4
+
5
+ varying vec2 vUv;
6
+
7
+ //#include <gpu_particles_utils>
8
+
9
+ void main()
10
+ {
11
+
12
+ gl_FragColor.xyz = texture2D( _MainTex, vUv).xyz;
13
+ gl_FragColor.y += 0.001;
14
+
15
+ gl_FragColor.xyz = gl_FragColor.xyz;
16
+
17
+ gl_FragColor.w = 1.0;
18
+
19
+
20
+
21
21
  }
@@ -1,11 +1,11 @@
1
- uniform float _Time;
2
- void main()
3
- {
4
- vec2 uv = vec2(gl_PointCoord.x, 1.0 - gl_PointCoord.y);
5
- float x = length(uv * 2.0 - 1.0);
6
-
7
- float point = (1.0 - pow(x+0.75,10.0));
8
- float halo = pow((1.0-x)*0.6, 2.0);
9
- float alpha = mix(halo, point, point);
10
- gl_FragColor = vec4(1.0, 0.0, 0.0, max(halo,point));
1
+ uniform float _Time;
2
+ void main()
3
+ {
4
+ vec2 uv = vec2(gl_PointCoord.x, 1.0 - gl_PointCoord.y);
5
+ float x = length(uv * 2.0 - 1.0);
6
+
7
+ float point = (1.0 - pow(x+0.75,10.0));
8
+ float halo = pow((1.0-x)*0.6, 2.0);
9
+ float alpha = mix(halo, point, point);
10
+ gl_FragColor = vec4(1.0, 0.0, 0.0, max(halo,point));
11
11
  }
@@ -1,12 +1,12 @@
1
-
2
- uniform sampler2D _Position;
3
- attribute vec2 storage_uv;
4
-
5
- void main()
6
- {
7
- vec3 pos = texture2DLod(_Position, storage_uv, 0.0).xyz;
8
-
9
-
10
- gl_Position = projectionMatrix * modelViewMatrix * vec4(pos ,1.0);
11
- gl_PointSize = 20.0;
12
- }
1
+
2
+ uniform sampler2D _Position;
3
+ attribute vec2 storage_uv;
4
+
5
+ void main()
6
+ {
7
+ vec3 pos = texture2DLod(_Position, storage_uv, 0.0).xyz;
8
+
9
+
10
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(pos ,1.0);
11
+ gl_PointSize = 20.0;
12
+ }
@@ -1,17 +1,17 @@
1
- uniform vec3 _Color;
2
-
3
- varying vec3 vBarycentric;
4
-
5
- float edgeFactor(vec3 baryc ){
6
- vec3 d = fwidth(baryc);
7
- vec3 a3 = smoothstep(vec3(0.0), d*1.5, baryc);
8
- return min(min(a3.x, a3.y), a3.z);
9
- }
10
-
11
- void main()
12
- {
13
- float alpha = edgeFactor(vBarycentric + vec3(1. , 1., 0.));
14
- gl_FragColor.rgb = mix(_Color, vec3(0.), alpha);
15
- gl_FragColor.a = 1.0 - alpha;
16
- gl_FragColor.a *= 0.2;
1
+ uniform vec3 _Color;
2
+
3
+ varying vec3 vBarycentric;
4
+
5
+ float edgeFactor(vec3 baryc ){
6
+ vec3 d = fwidth(baryc);
7
+ vec3 a3 = smoothstep(vec3(0.0), d*1.5, baryc);
8
+ return min(min(a3.x, a3.y), a3.z);
9
+ }
10
+
11
+ void main()
12
+ {
13
+ float alpha = edgeFactor(vBarycentric + vec3(1. , 1., 0.));
14
+ gl_FragColor.rgb = mix(_Color, vec3(0.), alpha);
15
+ gl_FragColor.a = 1.0 - alpha;
16
+ gl_FragColor.a *= 0.2;
17
17
  }
@@ -1,10 +1,10 @@
1
- attribute vec3 barycentric;
2
- varying vec3 vBarycentric;
3
- void main()
4
- {
5
-
6
- mat4 VP = projectionMatrix * viewMatrix;
7
- vec3 pos = (modelMatrix * vec4(position, 1.0)).xyz;
8
- gl_Position = VP * vec4(pos, 1.0);
9
- vBarycentric = barycentric;
1
+ attribute vec3 barycentric;
2
+ varying vec3 vBarycentric;
3
+ void main()
4
+ {
5
+
6
+ mat4 VP = projectionMatrix * viewMatrix;
7
+ vec3 pos = (modelMatrix * vec4(position, 1.0)).xyz;
8
+ gl_Position = VP * vec4(pos, 1.0);
9
+ vBarycentric = barycentric;
10
10
  }
@@ -1,38 +1,38 @@
1
- uniform sampler2D _MainTex;
2
- uniform vec3 defaultColor;
3
- uniform float defaultOpacity;
4
- uniform float luminosityThreshold;
5
- uniform float smoothWidth;
6
-
7
- varying vec2 vUv;
8
-
9
- vec4 sampleTex(sampler2D tex, vec2 uv)
10
- {
11
- vec4 col = texture2D( tex, uv);
12
- #ifndef USE_LINEAR_COLOR_SPACE
13
- col.rgb = pow(col.rgb, vec3(2.2));
14
- #endif
15
- return col;
16
- }
17
- void main() {
18
-
19
- vec4 texel = sampleTex( _MainTex, vUv );
20
-
21
- vec3 luma = vec3( 0.299, 0.587, 0.114 );
22
-
23
- float v = dot( texel.xyz, luma );
24
-
25
- vec4 outputColor = vec4( defaultColor.rgb, defaultOpacity );
26
-
27
- float alpha = smoothstep( luminosityThreshold, luminosityThreshold + smoothWidth, v );
28
-
29
- gl_FragColor = mix( outputColor, texel, alpha );
30
-
31
- // #include <colorspace_fragment>
32
-
33
- #ifndef USE_LINEAR_COLOR_SPACE
34
- gl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(0.4545));
35
- #endif
36
-
37
-
1
+ uniform sampler2D _MainTex;
2
+ uniform vec3 defaultColor;
3
+ uniform float defaultOpacity;
4
+ uniform float luminosityThreshold;
5
+ uniform float smoothWidth;
6
+
7
+ varying vec2 vUv;
8
+
9
+ vec4 sampleTex(sampler2D tex, vec2 uv)
10
+ {
11
+ vec4 col = texture2D( tex, uv);
12
+ #ifndef USE_LINEAR_COLOR_SPACE
13
+ col.rgb = pow(col.rgb, vec3(2.2));
14
+ #endif
15
+ return col;
16
+ }
17
+ void main() {
18
+
19
+ vec4 texel = sampleTex( _MainTex, vUv );
20
+
21
+ vec3 luma = vec3( 0.299, 0.587, 0.114 );
22
+
23
+ float v = dot( texel.xyz, luma );
24
+
25
+ vec4 outputColor = vec4( defaultColor.rgb, defaultOpacity );
26
+
27
+ float alpha = smoothstep( luminosityThreshold, luminosityThreshold + smoothWidth, v );
28
+
29
+ gl_FragColor = mix( outputColor, texel, alpha );
30
+
31
+ // #include <colorspace_fragment>
32
+
33
+ #ifndef USE_LINEAR_COLOR_SPACE
34
+ gl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(0.4545));
35
+ #endif
36
+
37
+
38
38
  }
@@ -1,134 +1,134 @@
1
- /*
2
- 3x3 Median
3
-
4
- GLSL 1.0
5
- Morgan McGuire and Kyle Whitson, 2006
6
- Williams College
7
- http://graphics.cs.williams.edu
8
-
9
- Copyright (c) Morgan McGuire and Williams College, 2006
10
- All rights reserved.
11
-
12
- Redistribution and use in source and binary forms, with or without
13
- modification, are permitted provided that the following conditions are
14
- met:
15
-
16
- Redistributions of source code must retain the above copyright notice,
17
- this list of conditions and the following disclaimer.
18
-
19
- Redistributions in binary form must reproduce the above copyright
20
- notice, this list of conditions and the following disclaimer in the
21
- documentation and/or other materials provided with the distribution.
22
-
23
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27
- HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
- */
35
-
36
- // Input texture
37
- uniform sampler2D _SourceTex;
38
- uniform vec2 _SourceTexSize;
39
- varying vec2 vUv;
40
- // Change these 2 defines to change precision
41
- #define vec vec4
42
- #define toVec(x) x.rgba
43
-
44
- #define s2(a, b) temp = a; a = min(a, b); b = max(temp, b);
45
- #define t2(a, b) s2(v[a], v[b]);
46
- #define t24(a, b, c, d, e, f, g, h) t2(a, b); t2(c, d); t2(e, f); t2(g, h);
47
- #define t25(a, b, c, d, e, f, g, h, i, j) t24(a, b, c, d, e, f, g, h); t2(i, j);
48
-
49
- #define s2(a, b) temp = a; a = min(a, b); b = max(temp, b);
50
- #define mn3(a, b, c) s2(a, b); s2(a, c);
51
- #define mx3(a, b, c) s2(b, c); s2(a, c);
52
-
53
- #define mnmx3(a, b, c) mx3(a, b, c); s2(a, b); // 3 exchanges
54
- #define mnmx4(a, b, c, d) s2(a, b); s2(c, d); s2(a, c); s2(b, d); // 4 exchanges
55
- #define mnmx5(a, b, c, d, e) s2(a, b); s2(c, d); mn3(a, c, e); mx3(b, d, e); // 6 exchanges
56
- #define mnmx6(a, b, c, d, e, f) s2(a, d); s2(b, e); s2(c, f); mn3(a, b, c); mx3(d, e, f); // 7 exchanges
57
-
58
-
59
- void main() {
60
- vec2 inv_size = vec2(1.0/_SourceTexSize.x, 1.0/_SourceTexSize.y);
61
-
62
-
63
- #ifdef kernel5x5
64
- vec v[25];
65
-
66
- // Add the pixels which make up our window to the pixel array.
67
- for(int dX = -2; dX <= 2; ++dX) {
68
- for(int dY = -2; dY <= 2; ++dY) {
69
- vec2 offset = vec2(float(dX), float(dY));
70
-
71
- // If a pixel in the window is located at (x+dX, y+dY), put it at index (dX + R)(2R + 1) + (dY + R) of the
72
- // pixel array. This will fill the pixel array, with the top left pixel of the window at pixel[0] and the
73
- // bottom right pixel of the window at pixel[N-1].
74
- v[(dX + 2) * 5 + (dY + 2)] = toVec(texture2D(_SourceTex, vUv + offset * inv_size));
75
- }
76
- }
77
-
78
- vec temp;
79
-
80
- t25(0, 1, 3, 4, 2, 4, 2, 3, 6, 7);
81
- t25(5, 7, 5, 6, 9, 7, 1, 7, 1, 4);
82
- t25(12, 13, 11, 13, 11, 12, 15, 16, 14, 16);
83
- t25(14, 15, 18, 19, 17, 19, 17, 18, 21, 22);
84
- t25(20, 22, 20, 21, 23, 24, 2, 5, 3, 6);
85
- t25(0, 6, 0, 3, 4, 7, 1, 7, 1, 4);
86
- t25(11, 14, 8, 14, 8, 11, 12, 15, 9, 15);
87
- t25(9, 12, 13, 16, 10, 16, 10, 13, 20, 23);
88
- t25(17, 23, 17, 20, 21, 24, 18, 24, 18, 21);
89
- t25(19, 22, 8, 17, 9, 18, 0, 18, 0, 9);
90
- t25(10, 19, 1, 19, 1, 10, 11, 20, 2, 20);
91
- t25(2, 11, 12, 21, 3, 21, 3, 12, 13, 22);
92
- t25(4, 22, 4, 13, 14, 23, 5, 23, 5, 14);
93
- t25(15, 24, 6, 24, 6, 15, 7, 16, 7, 19);
94
- t25(3, 11, 5, 17, 11, 17, 9, 17, 4, 10);
95
- t25(6, 12, 7, 14, 4, 6, 4, 7, 12, 14);
96
- t25(10, 14, 6, 7, 10, 12, 6, 10, 6, 17);
97
- t25(12, 17, 7, 17, 7, 10, 12, 18, 7, 12);
98
- t24(10, 18, 12, 20, 10, 20, 10, 12);
99
- gl_FragColor = v[12];
100
- #endif
101
-
102
- #ifdef kernel3x3
103
- vec v[9];
104
-
105
- // Add the pixels which make up our window to the pixel array.
106
- for(int dX = -1; dX <= 1; ++dX) {
107
- for(int dY = -1; dY <= 1; ++dY) {
108
- vec2 offset = vec2(float(dX), float(dY));
109
-
110
- // If a pixel in the window is located at (x+dX, y+dY), put it at index (dX + R)(2R + 1) + (dY + R) of the
111
- // pixel array. This will fill the pixel array, with the top left pixel of the window at pixel[0] and the
112
- // bottom right pixel of the window at pixel[N-1].
113
- v[(dX + 1) * 3 + (dY + 1)] = toVec(texture2D(_SourceTex, vUv + offset * inv_size));
114
- }
115
- }
116
-
117
- vec temp;
118
-
119
- // Starting with a subset of size 6, remove the min and max each time
120
- mnmx6(v[0], v[1], v[2], v[3], v[4], v[5]);
121
- mnmx5(v[1], v[2], v[3], v[4], v[6]);
122
- mnmx4(v[2], v[3], v[4], v[7]);
123
- mnmx3(v[3], v[4], v[8]);
124
- toVec(gl_FragColor) = v[4];
125
- #endif
126
-
127
-
128
- // if(vUv.x > 0.5)
129
- // gl_FragColor = vec4(1.0);
130
- // else
131
- // gl_FragColor = vec4(0.0);
132
- }
133
-
134
-
1
+ /*
2
+ 3x3 Median
3
+
4
+ GLSL 1.0
5
+ Morgan McGuire and Kyle Whitson, 2006
6
+ Williams College
7
+ http://graphics.cs.williams.edu
8
+
9
+ Copyright (c) Morgan McGuire and Williams College, 2006
10
+ All rights reserved.
11
+
12
+ Redistribution and use in source and binary forms, with or without
13
+ modification, are permitted provided that the following conditions are
14
+ met:
15
+
16
+ Redistributions of source code must retain the above copyright notice,
17
+ this list of conditions and the following disclaimer.
18
+
19
+ Redistributions in binary form must reproduce the above copyright
20
+ notice, this list of conditions and the following disclaimer in the
21
+ documentation and/or other materials provided with the distribution.
22
+
23
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
+ */
35
+
36
+ // Input texture
37
+ uniform sampler2D _SourceTex;
38
+ uniform vec2 _SourceTexSize;
39
+ varying vec2 vUv;
40
+ // Change these 2 defines to change precision
41
+ #define vec vec4
42
+ #define toVec(x) x.rgba
43
+
44
+ #define s2(a, b) temp = a; a = min(a, b); b = max(temp, b);
45
+ #define t2(a, b) s2(v[a], v[b]);
46
+ #define t24(a, b, c, d, e, f, g, h) t2(a, b); t2(c, d); t2(e, f); t2(g, h);
47
+ #define t25(a, b, c, d, e, f, g, h, i, j) t24(a, b, c, d, e, f, g, h); t2(i, j);
48
+
49
+ #define s2(a, b) temp = a; a = min(a, b); b = max(temp, b);
50
+ #define mn3(a, b, c) s2(a, b); s2(a, c);
51
+ #define mx3(a, b, c) s2(b, c); s2(a, c);
52
+
53
+ #define mnmx3(a, b, c) mx3(a, b, c); s2(a, b); // 3 exchanges
54
+ #define mnmx4(a, b, c, d) s2(a, b); s2(c, d); s2(a, c); s2(b, d); // 4 exchanges
55
+ #define mnmx5(a, b, c, d, e) s2(a, b); s2(c, d); mn3(a, c, e); mx3(b, d, e); // 6 exchanges
56
+ #define mnmx6(a, b, c, d, e, f) s2(a, d); s2(b, e); s2(c, f); mn3(a, b, c); mx3(d, e, f); // 7 exchanges
57
+
58
+
59
+ void main() {
60
+ vec2 inv_size = vec2(1.0/_SourceTexSize.x, 1.0/_SourceTexSize.y);
61
+
62
+
63
+ #ifdef kernel5x5
64
+ vec v[25];
65
+
66
+ // Add the pixels which make up our window to the pixel array.
67
+ for(int dX = -2; dX <= 2; ++dX) {
68
+ for(int dY = -2; dY <= 2; ++dY) {
69
+ vec2 offset = vec2(float(dX), float(dY));
70
+
71
+ // If a pixel in the window is located at (x+dX, y+dY), put it at index (dX + R)(2R + 1) + (dY + R) of the
72
+ // pixel array. This will fill the pixel array, with the top left pixel of the window at pixel[0] and the
73
+ // bottom right pixel of the window at pixel[N-1].
74
+ v[(dX + 2) * 5 + (dY + 2)] = toVec(texture2D(_SourceTex, vUv + offset * inv_size));
75
+ }
76
+ }
77
+
78
+ vec temp;
79
+
80
+ t25(0, 1, 3, 4, 2, 4, 2, 3, 6, 7);
81
+ t25(5, 7, 5, 6, 9, 7, 1, 7, 1, 4);
82
+ t25(12, 13, 11, 13, 11, 12, 15, 16, 14, 16);
83
+ t25(14, 15, 18, 19, 17, 19, 17, 18, 21, 22);
84
+ t25(20, 22, 20, 21, 23, 24, 2, 5, 3, 6);
85
+ t25(0, 6, 0, 3, 4, 7, 1, 7, 1, 4);
86
+ t25(11, 14, 8, 14, 8, 11, 12, 15, 9, 15);
87
+ t25(9, 12, 13, 16, 10, 16, 10, 13, 20, 23);
88
+ t25(17, 23, 17, 20, 21, 24, 18, 24, 18, 21);
89
+ t25(19, 22, 8, 17, 9, 18, 0, 18, 0, 9);
90
+ t25(10, 19, 1, 19, 1, 10, 11, 20, 2, 20);
91
+ t25(2, 11, 12, 21, 3, 21, 3, 12, 13, 22);
92
+ t25(4, 22, 4, 13, 14, 23, 5, 23, 5, 14);
93
+ t25(15, 24, 6, 24, 6, 15, 7, 16, 7, 19);
94
+ t25(3, 11, 5, 17, 11, 17, 9, 17, 4, 10);
95
+ t25(6, 12, 7, 14, 4, 6, 4, 7, 12, 14);
96
+ t25(10, 14, 6, 7, 10, 12, 6, 10, 6, 17);
97
+ t25(12, 17, 7, 17, 7, 10, 12, 18, 7, 12);
98
+ t24(10, 18, 12, 20, 10, 20, 10, 12);
99
+ gl_FragColor = v[12];
100
+ #endif
101
+
102
+ #ifdef kernel3x3
103
+ vec v[9];
104
+
105
+ // Add the pixels which make up our window to the pixel array.
106
+ for(int dX = -1; dX <= 1; ++dX) {
107
+ for(int dY = -1; dY <= 1; ++dY) {
108
+ vec2 offset = vec2(float(dX), float(dY));
109
+
110
+ // If a pixel in the window is located at (x+dX, y+dY), put it at index (dX + R)(2R + 1) + (dY + R) of the
111
+ // pixel array. This will fill the pixel array, with the top left pixel of the window at pixel[0] and the
112
+ // bottom right pixel of the window at pixel[N-1].
113
+ v[(dX + 1) * 3 + (dY + 1)] = toVec(texture2D(_SourceTex, vUv + offset * inv_size));
114
+ }
115
+ }
116
+
117
+ vec temp;
118
+
119
+ // Starting with a subset of size 6, remove the min and max each time
120
+ mnmx6(v[0], v[1], v[2], v[3], v[4], v[5]);
121
+ mnmx5(v[1], v[2], v[3], v[4], v[6]);
122
+ mnmx4(v[2], v[3], v[4], v[7]);
123
+ mnmx3(v[3], v[4], v[8]);
124
+ toVec(gl_FragColor) = v[4];
125
+ #endif
126
+
127
+
128
+ // if(vUv.x > 0.5)
129
+ // gl_FragColor = vec4(1.0);
130
+ // else
131
+ // gl_FragColor = vec4(0.0);
132
+ }
133
+
134
+
@@ -1,6 +1,6 @@
1
- varying vec3 v_normal;
2
-
3
- void main()
4
- {
5
- gl_FragColor = vec4(v_normal * 0.5 + vec3(0.5), 1.0);
6
- }
1
+ varying vec3 v_normal;
2
+
3
+ void main()
4
+ {
5
+ gl_FragColor = vec4(v_normal * 0.5 + vec3(0.5), 1.0);
6
+ }
@@ -1,6 +1,6 @@
1
- varying vec3 v_normal;
2
- void main()
3
- {
4
- gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
5
- v_normal = (modelMatrix * vec4(normal, 0.0)).xyz;
6
- }
1
+ varying vec3 v_normal;
2
+ void main()
3
+ {
4
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
5
+ v_normal = (modelMatrix * vec4(normal, 0.0)).xyz;
6
+ }