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,95 +1,95 @@
1
- uniform sampler2D _MainTex;
2
- uniform mat4 _InverseProjMatrix;
3
-
4
- uniform float _Bias;
5
- uniform float _Radius;
6
-
7
- uniform vec2 _Resolution;
8
- uniform float _FarPlane;
9
-
10
-
11
- varying vec2 vUv;
12
- varying vec4 vRay;
13
-
14
-
15
- uniform vec3 _SampleKernel[64];
16
- uniform sampler2D _RandomRotation;
17
- uniform mat4 _ProjectionMatrix;
18
-
19
- vec3 decode_normal (vec4 enc)
20
- {
21
- float scale = 1.7777;
22
- vec3 nn =
23
- enc.xyz*vec3(2.0*scale,2.0*scale,0.0) +
24
- vec3(-scale,-scale,1.0);
25
- float g = 2.0 / dot(nn.xyz,nn.xyz);
26
- vec3 n;
27
- n.xy = g*nn.xy;
28
- n.z = g-1.0;
29
- return n;
30
- }
31
-
32
- float DecodeFloatRG( vec2 enc )
33
- {
34
- vec2 kDecodeDot = vec2(1.0, 1.0/255.0);
35
- return dot( enc, kDecodeDot );
36
- }
37
-
38
- vec3 DecodeNormal(vec2 uv)
39
- {
40
- vec2 encoded_normal = texture2D(_MainTex, uv).zw;
41
- vec3 normalValue = normalize(decode_normal(vec4(encoded_normal, 0., 0.)));
42
- return normalize(normalValue);
43
- }
44
- vec3 DecodeViewPos(vec2 uv)
45
- {
46
- vec2 depth = texture2D(_MainTex, uv).xy;
47
- vec4 inv_proj = _InverseProjMatrix * vec4(vUv * 2.0 - 1.0, 1.0, 1.0);
48
- return DecodeFloatRG(depth) * (vRay.xyz/vRay.w);
49
-
50
- }
51
-
52
-
53
-
54
-
55
- void main()
56
- {
57
-
58
- vec2 noiseScale = vec2(_Resolution.x/4.0,_Resolution.y/4.0); // noise texture 4x4
59
-
60
- vec3 fragPos = DecodeViewPos(vUv);
61
- vec3 normal = DecodeNormal(vUv);
62
- vec3 randomVec = texture2D(_RandomRotation, vUv * noiseScale).xyz;
63
- randomVec = vec3(randomVec.xy * 2.0 - 1.0, 0);
64
- randomVec = normalize(randomVec);
65
-
66
-
67
- vec3 tangent = normalize(randomVec - normal * dot(randomVec, normal));
68
- vec3 bitangent = normalize(cross(normal, tangent));
69
- mat3 TBN = mat3(tangent, bitangent, normal);
70
-
71
-
72
- float occlusion = 0.0;
73
- const int kernelSize = 64;
74
-
75
-
76
- for(int i = 0; i < kernelSize; ++i)
77
- {
78
- // get sample position
79
- vec3 sample = TBN * _SampleKernel[i]; // From tangent to view-space
80
- sample = fragPos + sample * _Radius;
81
- vec4 projPos = _ProjectionMatrix * vec4(sample, 1.0);
82
- vec2 screenPos = projPos.xy / projPos.w;
83
- screenPos = screenPos * 0.5 +0.5;
84
-
85
- float sampled_depth = DecodeViewPos(screenPos).z;
86
- float rangeCheck = smoothstep(0.0, 1.0, _Radius / abs(fragPos.z - sampled_depth));
87
- occlusion += step(sample.z+_Bias, sampled_depth) * rangeCheck;
88
-
89
- }
90
- occlusion = (occlusion / float(kernelSize));
91
- gl_FragColor.rgb = vec3(occlusion,occlusion,occlusion);
92
- gl_FragColor.a = 1.0;
93
-
94
-
95
- }
1
+ uniform sampler2D _MainTex;
2
+ uniform mat4 _InverseProjMatrix;
3
+
4
+ uniform float _Bias;
5
+ uniform float _Radius;
6
+
7
+ uniform vec2 _Resolution;
8
+ uniform float _FarPlane;
9
+
10
+
11
+ varying vec2 vUv;
12
+ varying vec4 vRay;
13
+
14
+
15
+ uniform vec3 _SampleKernel[64];
16
+ uniform sampler2D _RandomRotation;
17
+ uniform mat4 _ProjectionMatrix;
18
+
19
+ vec3 decode_normal (vec4 enc)
20
+ {
21
+ float scale = 1.7777;
22
+ vec3 nn =
23
+ enc.xyz*vec3(2.0*scale,2.0*scale,0.0) +
24
+ vec3(-scale,-scale,1.0);
25
+ float g = 2.0 / dot(nn.xyz,nn.xyz);
26
+ vec3 n;
27
+ n.xy = g*nn.xy;
28
+ n.z = g-1.0;
29
+ return n;
30
+ }
31
+
32
+ float DecodeFloatRG( vec2 enc )
33
+ {
34
+ vec2 kDecodeDot = vec2(1.0, 1.0/255.0);
35
+ return dot( enc, kDecodeDot );
36
+ }
37
+
38
+ vec3 DecodeNormal(vec2 uv)
39
+ {
40
+ vec2 encoded_normal = texture2D(_MainTex, uv).zw;
41
+ vec3 normalValue = normalize(decode_normal(vec4(encoded_normal, 0., 0.)));
42
+ return normalize(normalValue);
43
+ }
44
+ vec3 DecodeViewPos(vec2 uv)
45
+ {
46
+ vec2 depth = texture2D(_MainTex, uv).xy;
47
+ vec4 inv_proj = _InverseProjMatrix * vec4(vUv * 2.0 - 1.0, 1.0, 1.0);
48
+ return DecodeFloatRG(depth) * (vRay.xyz/vRay.w);
49
+
50
+ }
51
+
52
+
53
+
54
+
55
+ void main()
56
+ {
57
+
58
+ vec2 noiseScale = vec2(_Resolution.x/4.0,_Resolution.y/4.0); // noise texture 4x4
59
+
60
+ vec3 fragPos = DecodeViewPos(vUv);
61
+ vec3 normal = DecodeNormal(vUv);
62
+ vec3 randomVec = texture2D(_RandomRotation, vUv * noiseScale).xyz;
63
+ randomVec = vec3(randomVec.xy * 2.0 - 1.0, 0);
64
+ randomVec = normalize(randomVec);
65
+
66
+
67
+ vec3 tangent = normalize(randomVec - normal * dot(randomVec, normal));
68
+ vec3 bitangent = normalize(cross(normal, tangent));
69
+ mat3 TBN = mat3(tangent, bitangent, normal);
70
+
71
+
72
+ float occlusion = 0.0;
73
+ const int kernelSize = 64;
74
+
75
+
76
+ for(int i = 0; i < kernelSize; ++i)
77
+ {
78
+ // get sample position
79
+ vec3 sample = TBN * _SampleKernel[i]; // From tangent to view-space
80
+ sample = fragPos + sample * _Radius;
81
+ vec4 projPos = _ProjectionMatrix * vec4(sample, 1.0);
82
+ vec2 screenPos = projPos.xy / projPos.w;
83
+ screenPos = screenPos * 0.5 +0.5;
84
+
85
+ float sampled_depth = DecodeViewPos(screenPos).z;
86
+ float rangeCheck = smoothstep(0.0, 1.0, _Radius / abs(fragPos.z - sampled_depth));
87
+ occlusion += step(sample.z+_Bias, sampled_depth) * rangeCheck;
88
+
89
+ }
90
+ occlusion = (occlusion / float(kernelSize));
91
+ gl_FragColor.rgb = vec3(occlusion,occlusion,occlusion);
92
+ gl_FragColor.a = 1.0;
93
+
94
+
95
+ }
@@ -1,11 +1,11 @@
1
- varying vec2 vUv;
2
- varying vec4 vRay;
3
-
4
- uniform mat4 _InverseProjMatrix;
5
-
6
- void main()
7
- {
8
- gl_Position = vec4(uv * 2.0 - 1.0, 1.0, 1.0);
9
- vRay = _InverseProjMatrix * vec4(uv * 2.0 - 1.0, 1.0, 1.0);
10
- vUv = uv;
1
+ varying vec2 vUv;
2
+ varying vec4 vRay;
3
+
4
+ uniform mat4 _InverseProjMatrix;
5
+
6
+ void main()
7
+ {
8
+ gl_Position = vec4(uv * 2.0 - 1.0, 1.0, 1.0);
9
+ vRay = _InverseProjMatrix * vec4(uv * 2.0 - 1.0, 1.0, 1.0);
10
+ vUv = uv;
11
11
  }
@@ -1,14 +1,14 @@
1
- uniform sampler2D _MainTex;
2
- uniform sampler2D _AO;
3
- uniform vec2 _Resolution;
4
- uniform vec2 _SampleDir;
5
- varying vec2 vUv;
6
-
7
- void main()
8
- {
9
-
10
-
11
- gl_FragColor.rgb = texture2D(_MainTex, vUv).rgb * (1.0 - texture2D(_AO, vUv).r);
12
- gl_FragColor.a = 1.0;
13
-
14
- }
1
+ uniform sampler2D _MainTex;
2
+ uniform sampler2D _AO;
3
+ uniform vec2 _Resolution;
4
+ uniform vec2 _SampleDir;
5
+ varying vec2 vUv;
6
+
7
+ void main()
8
+ {
9
+
10
+
11
+ gl_FragColor.rgb = texture2D(_MainTex, vUv).rgb * (1.0 - texture2D(_AO, vUv).r);
12
+ gl_FragColor.a = 1.0;
13
+
14
+ }
@@ -1,7 +1,7 @@
1
- uniform sampler2D _MainTex;
2
- varying vec2 vUv;
3
-
4
- void main()
5
- {
6
- gl_FragColor = texture2D( _MainTex, vUv);
1
+ uniform sampler2D _MainTex;
2
+ varying vec2 vUv;
3
+
4
+ void main()
5
+ {
6
+ gl_FragColor = texture2D( _MainTex, vUv);
7
7
  }
@@ -1,19 +1,19 @@
1
- uniform sampler2D _OpaqueTex;
2
- uniform sampler2D _TransparentTex;
3
- uniform vec2 _Resolution;
4
- uniform float _Opacity;
5
- varying vec2 vUv;
6
-
7
- void main()
8
- {
9
- vec4 opaque = texture2D( _OpaqueTex, vUv);
10
- vec4 transparent = texture2D( _TransparentTex, vUv);
11
-
12
- gl_FragColor = vec4(mix(opaque.rgb, transparent.rgb, transparent.a*_Opacity), 1.0);
13
- // if(vUv.x > 0.5)
14
- // gl_FragColor = vec4(opaque.rgb, 1.0);
15
- // else
16
- // gl_FragColor = vec4(transparent.rgb, 1.0);
17
-
18
-
1
+ uniform sampler2D _OpaqueTex;
2
+ uniform sampler2D _TransparentTex;
3
+ uniform vec2 _Resolution;
4
+ uniform float _Opacity;
5
+ varying vec2 vUv;
6
+
7
+ void main()
8
+ {
9
+ vec4 opaque = texture2D( _OpaqueTex, vUv);
10
+ vec4 transparent = texture2D( _TransparentTex, vUv);
11
+
12
+ gl_FragColor = vec4(mix(opaque.rgb, transparent.rgb, transparent.a*_Opacity), 1.0);
13
+ // if(vUv.x > 0.5)
14
+ // gl_FragColor = vec4(opaque.rgb, 1.0);
15
+ // else
16
+ // gl_FragColor = vec4(transparent.rgb, 1.0);
17
+
18
+
19
19
  }
@@ -1,8 +1,8 @@
1
-
2
- varying vec2 vUv;
3
-
4
- void main()
5
- {
6
- gl_Position = vec4(uv * 2.0 - 1.0, 0.0, 1.0);
7
- vUv = uv;
1
+
2
+ varying vec2 vUv;
3
+
4
+ void main()
5
+ {
6
+ gl_Position = vec4(uv * 2.0 - 1.0, 0.0, 1.0);
7
+ vUv = uv;
8
8
  }
@@ -1,11 +1,11 @@
1
- uniform sampler2D _MainTex;
2
- uniform vec2 _ScreenSize;
3
- uniform vec2 _TextureSize;
4
- varying vec2 vUv;
5
-
6
-
7
-
8
- void main()
9
- {
10
- gl_FragColor = texture2D(_MainTex, vUv + vec2(0.5, 0.5)/_TextureSize);
1
+ uniform sampler2D _MainTex;
2
+ uniform vec2 _ScreenSize;
3
+ uniform vec2 _TextureSize;
4
+ varying vec2 vUv;
5
+
6
+
7
+
8
+ void main()
9
+ {
10
+ gl_FragColor = texture2D(_MainTex, vUv + vec2(0.5, 0.5)/_TextureSize);
11
11
  }
@@ -1,32 +1,32 @@
1
- uniform vec2 _ScreenSize;
2
- uniform vec2 _TextureSize;
3
- uniform vec2 _PixelOffset;
4
- uniform vec3 _NDC;
5
- uniform vec2 _PivotPoint;
6
- uniform float _DepthOffset;
7
- varying vec2 vUv;
8
-
9
-
10
- vec2 round_to_ceil(vec2 pos)
11
- {
12
- pos = pos * 0.5 + 0.5;
13
- pos *= _ScreenSize;
14
- pos = ceil(pos)+0.5;
15
- pos /= _ScreenSize;
16
- return pos * 2.0 - 1.0;
17
- }
18
- void main()
19
- {
20
- vec4 projected_pos = projectionMatrix * viewMatrix * vec4(_NDC, 1.0);
21
- projected_pos.zw += _DepthOffset;
22
-
23
- projected_pos.xyz /= projected_pos.w;
24
-
25
- vec2 normalized_size = _TextureSize/_ScreenSize;
26
- vec2 dir = uv * 2.0 - 1.0;
27
- dir -= _PivotPoint;
28
- vec2 pos = projected_pos.xy+ dir * normalized_size;
29
- gl_Position = vec4(round_to_ceil(pos), projected_pos.z, 1.0);
30
- vUv = uv;
31
-
1
+ uniform vec2 _ScreenSize;
2
+ uniform vec2 _TextureSize;
3
+ uniform vec2 _PixelOffset;
4
+ uniform vec3 _NDC;
5
+ uniform vec2 _PivotPoint;
6
+ uniform float _DepthOffset;
7
+ varying vec2 vUv;
8
+
9
+
10
+ vec2 round_to_ceil(vec2 pos)
11
+ {
12
+ pos = pos * 0.5 + 0.5;
13
+ pos *= _ScreenSize;
14
+ pos = ceil(pos)+0.5;
15
+ pos /= _ScreenSize;
16
+ return pos * 2.0 - 1.0;
17
+ }
18
+ void main()
19
+ {
20
+ vec4 projected_pos = projectionMatrix * viewMatrix * vec4(_NDC, 1.0);
21
+ projected_pos.zw += _DepthOffset;
22
+
23
+ projected_pos.xyz /= projected_pos.w;
24
+
25
+ vec2 normalized_size = _TextureSize/_ScreenSize;
26
+ vec2 dir = uv * 2.0 - 1.0;
27
+ dir -= _PivotPoint;
28
+ vec2 pos = projected_pos.xy+ dir * normalized_size;
29
+ gl_Position = vec4(round_to_ceil(pos), projected_pos.z, 1.0);
30
+ vUv = uv;
31
+
32
32
  }
@@ -1,39 +1,39 @@
1
-
2
- uniform vec2 _ScreenSize;
3
- uniform vec2 _TextSize;
4
- uniform vec2 _PixelOffset;
5
- uniform float _DepthOffset;
6
- uniform float _FixedDepth;
7
- uniform float _DepthValue;
8
- uniform float _UseAbsoluteScreenPosition;
9
- uniform vec2 _ScreenPosition;
10
- uniform float _WorldTextSize;
11
- varying vec2 vUv;
12
-
13
-
14
-
15
- void main()
16
- {
17
- vec3 w_pos;
18
- w_pos.x = modelMatrix[0][3];
19
- w_pos.y = modelMatrix[1][3];
20
- w_pos.z = modelMatrix[2][3];
21
-
22
- vec2 dir = uv * 2.0 - 1.0;
23
- dir.x *= (_TextSize.x / _TextSize.y);
24
-
25
- vec4 view_pos = modelViewMatrix * vec4(w_pos, 1.0);
26
- vec3 forward = vec3(0., 0., 1.);
27
- vec3 binormal = normalize(cross(forward, vec3(0.0, -1.0, 0.0)));
28
- vec3 up = cross(forward, binormal);
29
- vec3 normal = (binormal * dir.x + up * dir.y);
30
-
31
- normal = normalize(normal);
32
- view_pos.xyz += normal * _WorldTextSize * 0.5;
33
-
34
- gl_Position = projectionMatrix * view_pos;
35
-
36
-
37
- vUv = uv;
38
-
1
+
2
+ uniform vec2 _ScreenSize;
3
+ uniform vec2 _TextSize;
4
+ uniform vec2 _PixelOffset;
5
+ uniform float _DepthOffset;
6
+ uniform float _FixedDepth;
7
+ uniform float _DepthValue;
8
+ uniform float _UseAbsoluteScreenPosition;
9
+ uniform vec2 _ScreenPosition;
10
+ uniform float _WorldTextSize;
11
+ varying vec2 vUv;
12
+
13
+
14
+
15
+ void main()
16
+ {
17
+ vec3 w_pos;
18
+ w_pos.x = modelMatrix[0][3];
19
+ w_pos.y = modelMatrix[1][3];
20
+ w_pos.z = modelMatrix[2][3];
21
+
22
+ vec2 dir = uv * 2.0 - 1.0;
23
+ dir.x *= (_TextSize.x / _TextSize.y);
24
+
25
+ vec4 view_pos = modelViewMatrix * vec4(w_pos, 1.0);
26
+ vec3 forward = vec3(0., 0., 1.);
27
+ vec3 binormal = normalize(cross(forward, vec3(0.0, -1.0, 0.0)));
28
+ vec3 up = cross(forward, binormal);
29
+ vec3 normal = (binormal * dir.x + up * dir.y);
30
+
31
+ normal = normalize(normal);
32
+ view_pos.xyz += normal * _WorldTextSize * 0.5;
33
+
34
+ gl_Position = projectionMatrix * view_pos;
35
+
36
+
37
+ vUv = uv;
38
+
39
39
  }
@@ -1,11 +1,11 @@
1
- uniform sampler2D _MainTex;
2
- uniform vec2 _ScreenSize;
3
- uniform vec2 _TextureSize;
4
- varying vec2 vUv;
5
-
6
-
7
-
8
- void main()
9
- {
10
- gl_FragColor = texture2D(_MainTex, vUv + vec2(0.5, 0.5)/_TextureSize);
11
- }
1
+ uniform sampler2D _MainTex;
2
+ uniform vec2 _ScreenSize;
3
+ uniform vec2 _TextureSize;
4
+ varying vec2 vUv;
5
+
6
+
7
+
8
+ void main()
9
+ {
10
+ gl_FragColor = texture2D(_MainTex, vUv + vec2(0.5, 0.5)/_TextureSize);
11
+ }
@@ -1,32 +1,32 @@
1
- uniform vec2 _ScreenSize;
2
- uniform vec2 _TextureSize;
3
- uniform vec2 _PixelOffset;
4
- uniform vec3 _NDC;
5
- uniform vec2 _PivotPoint;
6
- uniform float _DepthOffset;
7
- varying vec2 vUv;
8
-
9
-
10
- vec2 add_pixel_offset(vec2 pos)
11
- {
12
- pos = pos * 0.5 + 0.5;
13
- pos *= _ScreenSize;
14
- pos = ceil(pos+_PixelOffset)+0.5;
15
- pos /= _ScreenSize;
16
- return pos * 2.0 - 1.0;
17
- }
18
- void main()
19
- {
20
- vec4 projected_pos = projectionMatrix * viewMatrix * vec4(_NDC, 1.0);
21
- projected_pos.zw += _DepthOffset;
22
-
23
- projected_pos.xyz /= projected_pos.w;
24
-
25
- vec2 normalized_size = _TextureSize/_ScreenSize;
26
- vec2 dir = uv * 2.0 - 1.0;
27
- dir -= _PivotPoint;
28
- vec2 pos = projected_pos.xy+dir * normalized_size;
29
- gl_Position = vec4(add_pixel_offset(pos), projected_pos.z, 1.0);
30
- vUv = uv;
31
-
32
- }
1
+ uniform vec2 _ScreenSize;
2
+ uniform vec2 _TextureSize;
3
+ uniform vec2 _PixelOffset;
4
+ uniform vec3 _NDC;
5
+ uniform vec2 _PivotPoint;
6
+ uniform float _DepthOffset;
7
+ varying vec2 vUv;
8
+
9
+
10
+ vec2 add_pixel_offset(vec2 pos)
11
+ {
12
+ pos = pos * 0.5 + 0.5;
13
+ pos *= _ScreenSize;
14
+ pos = ceil(pos+_PixelOffset)+0.5;
15
+ pos /= _ScreenSize;
16
+ return pos * 2.0 - 1.0;
17
+ }
18
+ void main()
19
+ {
20
+ vec4 projected_pos = projectionMatrix * viewMatrix * vec4(_NDC, 1.0);
21
+ projected_pos.zw += _DepthOffset;
22
+
23
+ projected_pos.xyz /= projected_pos.w;
24
+
25
+ vec2 normalized_size = _TextureSize/_ScreenSize;
26
+ vec2 dir = uv * 2.0 - 1.0;
27
+ dir -= _PivotPoint;
28
+ vec2 pos = projected_pos.xy+dir * normalized_size;
29
+ gl_Position = vec4(add_pixel_offset(pos), projected_pos.z, 1.0);
30
+ vUv = uv;
31
+
32
+ }
@@ -1,25 +1,25 @@
1
- #include <common>
2
- varying vec2 vUv;
3
- uniform sampler2D _MainTex;
4
- uniform vec2 _Resolution;
5
- uniform vec2 _SampleDir;
6
-
7
- float gaussianPdf(in float x, in float sigma) {
8
- return 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;
9
- }
10
- void main() {
11
- vec2 invSize = 1.0 / _Resolution;
12
- float fSigma = float(SIGMA);
13
- float weightSum = gaussianPdf(0.0, fSigma);
14
- vec3 diffuseSum = texture2D( _MainTex, vUv).rgb * weightSum;
15
- for( int i = 1; i < KERNEL_RADIUS; i ++ ) {
16
- float x = float(i);
17
- float w = gaussianPdf(x, fSigma);
18
- vec2 uvOffset = _SampleDir * invSize * x;
19
- vec3 sample1 = texture2D( _MainTex, vUv + uvOffset).rgb;
20
- vec3 sample2 = texture2D( _MainTex, vUv - uvOffset).rgb;
21
- diffuseSum += (sample1 + sample2) * w;
22
- weightSum += 2.0 * w;
23
- }
24
- gl_FragColor = vec4(diffuseSum/weightSum, 1.0);
1
+ #include <common>
2
+ varying vec2 vUv;
3
+ uniform sampler2D _MainTex;
4
+ uniform vec2 _Resolution;
5
+ uniform vec2 _SampleDir;
6
+
7
+ float gaussianPdf(in float x, in float sigma) {
8
+ return 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;
9
+ }
10
+ void main() {
11
+ vec2 invSize = 1.0 / _Resolution;
12
+ float fSigma = float(SIGMA);
13
+ float weightSum = gaussianPdf(0.0, fSigma);
14
+ vec3 diffuseSum = texture2D( _MainTex, vUv).rgb * weightSum;
15
+ for( int i = 1; i < KERNEL_RADIUS; i ++ ) {
16
+ float x = float(i);
17
+ float w = gaussianPdf(x, fSigma);
18
+ vec2 uvOffset = _SampleDir * invSize * x;
19
+ vec3 sample1 = texture2D( _MainTex, vUv + uvOffset).rgb;
20
+ vec3 sample2 = texture2D( _MainTex, vUv - uvOffset).rgb;
21
+ diffuseSum += (sample1 + sample2) * w;
22
+ weightSum += 2.0 * w;
23
+ }
24
+ gl_FragColor = vec4(diffuseSum/weightSum, 1.0);
25
25
  }
@@ -1,24 +1,24 @@
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
- uniform sampler2D dirtTexture;
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
- void main() {
19
- gl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +
20
- lerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +
21
- lerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +
22
- lerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +
23
- lerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );
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
+ uniform sampler2D dirtTexture;
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
+ void main() {
19
+ gl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +
20
+ lerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +
21
+ lerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +
22
+ lerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +
23
+ lerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );
24
24
  }