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