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.
- package/README.md +9 -9
- package/build/index.mjs +1 -1
- package/build/index.mjs.map +1 -1
- package/build/index.module.js +2 -0
- package/build/index.module.js.map +1 -0
- package/package.json +64 -63
- package/src/.vscode/settings.json +2 -2
- package/src/BaseApplication.js +40 -40
- package/src/Browser.js +119 -119
- package/src/CameraManager.js +37 -37
- package/src/Capabilities.js +13 -13
- package/src/CustomBezierCurve.js +58 -58
- package/src/Debug.js +359 -359
- package/src/Graphics.js +507 -507
- package/src/Initializer.js +56 -56
- package/src/KeyboardInput.js +177 -177
- package/src/OS.js +59 -59
- package/src/OScreen.js +90 -90
- package/src/OrthographicCamera.js +36 -36
- package/src/PerspectiveCamera.js +34 -34
- package/src/ReflectionPlaneContext.js +22 -22
- package/src/RenderLayers.js +30 -30
- package/src/RenderLoop.js +125 -122
- package/src/RenderOrder.js +40 -40
- package/src/ResourceContainer.js +57 -57
- package/src/SceneManager.js +55 -55
- package/src/Screen.js +71 -71
- package/src/Time.js +99 -98
- package/src/UI.js +106 -106
- package/src/action_sequencer/ActionEvent.js +22 -22
- package/src/action_sequencer/ActionInterpolator.js +39 -39
- package/src/action_sequencer/ActionSequencer.js +338 -338
- package/src/action_sequencer/NumberInterpolator.js +42 -42
- package/src/action_sequencer/VectorInterpolator.js +34 -34
- package/src/blitter_index.js +14 -14
- package/src/canvas_drawer/CanvasDrawer.js +146 -146
- package/src/canvas_drawer/MultiLineTextDrawer.js +58 -58
- package/src/canvas_drawer/SimpleTextDrawer.js +55 -55
- package/src/components/AudioClip.js +67 -67
- package/src/components/AxisHelper.js +60 -60
- package/src/components/BaseObject.js +50 -50
- package/src/components/EdgeMesh.js +172 -172
- package/src/components/GeometryEdgeVisualizer.js +57 -57
- package/src/components/Grid.js +40 -40
- package/src/components/Line.js +225 -225
- package/src/components/MultiLinePath.js +25 -25
- package/src/components/MultiLineText2D.js +75 -75
- package/src/components/ObjectAxis.js +27 -27
- package/src/components/ObjectOrientedBoundingBox.js +228 -228
- package/src/components/PlaneHelper.js +38 -38
- package/src/components/Shape2D.js +52 -52
- package/src/components/Shape3D.js +46 -46
- package/src/components/Text2D.js +49 -49
- package/src/components/UIElement.js +246 -246
- package/src/components/UpdatableMaterialMesh.js +26 -26
- package/src/components/WorldImage.js +101 -101
- package/src/components/mouse_interactors/ObjectRotator.js +64 -64
- package/src/components/sdf_text/SDFText.js +156 -156
- package/src/components/sdf_text/SDFTextBatch.js +195 -195
- package/src/components/sdf_text/TextGlyph.js +17 -17
- package/src/data_textures/CustomDataTexture.js +53 -53
- package/src/data_textures/RGBADataTexture.js +14 -14
- package/src/data_textures/RGBAFloatDataTexture.js +14 -14
- package/src/data_textures/RGBDataTexture.js +14 -14
- package/src/data_textures/RGBFloatDataTexture.js +13 -13
- package/src/editor/ManipulatorHandle.js +73 -73
- package/src/editor/ObjectEditor.js +68 -68
- package/src/editor/ObjectManipulator.js +112 -112
- package/src/editor/ObjectPicker.js +77 -77
- package/src/editor/shaders/object_picker.frag +5 -5
- package/src/editor/shaders/object_picker.vert +7 -7
- package/src/gpu_particles/GPUParticleSystem.js +111 -111
- package/src/gpu_particles/ParticleAttribute.js +89 -89
- package/src/gpu_particles/ParticlePositionAttribute.js +42 -42
- package/src/html_utilities/CSSAnimator.js +66 -66
- package/src/html_utilities/css_animator_states/Animating.js +46 -46
- package/src/html_utilities/css_animator_states/Idle.js +27 -27
- package/src/index.js +134 -134
- package/src/loaders/AsyncAbstractLoader.js +160 -160
- package/src/loaders/AsyncAudiosLoader.js +34 -34
- package/src/loaders/AsyncObjectsLoader.js +44 -44
- package/src/loaders/AsyncTexturesLoader.js +81 -70
- package/src/loaders/assets_loader/AsyncAssetsLoaderWorker.js +69 -69
- package/src/loaders/assets_loader/ResourceContainer.js +37 -37
- package/src/loaders/assets_loader/ResourceLoaderChecker.js +39 -39
- package/src/materials/AddMaterial.js +20 -20
- package/src/materials/AlphaFilterMaterial.js +23 -23
- package/src/materials/BaseShaderMaterial.js +21 -21
- package/src/materials/BlitMaterial.js +30 -30
- package/src/materials/BloomComposeMaterial.js +24 -24
- package/src/materials/BoxBlurMaterial.js +16 -16
- package/src/materials/ClearAlphaMaterial.js +15 -15
- package/src/materials/ClearColorMaterial.js +33 -33
- package/src/materials/ClearDepthNormalMaterial.js +16 -16
- package/src/materials/DeferredRendererComposeMaterial.js +35 -35
- package/src/materials/DepthNormalMaterial.js +30 -30
- package/src/materials/DisplayNormalTextureMaterial.js +18 -18
- package/src/materials/DualFilteringBlurMaterial.js +14 -14
- package/src/materials/FXAAMaterial.js +12 -12
- package/src/materials/GaussianBlurMaterial.js +40 -40
- package/src/materials/LuminosityHighPassMaterial.js +26 -26
- package/src/materials/MedianFilterMaterial.js +45 -45
- package/src/materials/NormalMaterial.js +19 -19
- package/src/materials/SDFScreenTextMaterial.js +34 -34
- package/src/materials/SDFTextMaterial.js +41 -41
- package/src/materials/SSAOComposeMaterial.js +14 -14
- package/src/materials/SSAOMaterial.js +65 -65
- package/src/materials/ScreenSpaceTextureMaterial.js +67 -67
- package/src/materials/UIElementMaterial.js +30 -30
- package/src/materials/UnrealBloomComposeMaterial.js +100 -100
- package/src/materials/UnrealBlurMaterial.js +20 -20
- package/src/materials/UnrealComposeMaterial.js +27 -27
- package/src/materials/ViewPositionMaterial.js +19 -19
- package/src/materials/deferred/DeferredPointLightMaterial.js +42 -42
- package/src/materials/gpu_particles/AttributeUpdateMaterial.js +37 -37
- package/src/materials/gpu_particles/BasicParticleMaterial.js +25 -25
- package/src/materials/gpu_particles/ParticleStorageMaterial.js +37 -37
- package/src/materials/gpu_particles/PositionStorageMaterial.js +26 -26
- package/src/object_pool/Pool.js +75 -75
- package/src/primitives/Arrow.js +62 -62
- package/src/primitives/Cube.js +24 -24
- package/src/primitives/HorizontalPlane.js +27 -27
- package/src/primitives/Sphere.js +22 -22
- package/src/primitives/VerticalPlane.js +26 -26
- package/src/raycast/GroupRaycaster.js +43 -43
- package/src/raycast/PlaneDragResolver.js +92 -92
- package/src/raycast/PlaneRaycastResolver.js +24 -24
- package/src/raycast/PlaneRaycaster.js +25 -25
- package/src/raycast/RaycastResolver.js +24 -24
- package/src/raycast/SurfaceDragResolver.js +80 -80
- package/src/raycast/states/BaseState.js +18 -18
- package/src/raycast/states/IdleState.js +19 -19
- package/src/raycast/states/OnRaycastEnter.js +17 -17
- package/src/raycast/states/OnRaycastExit.js +18 -18
- package/src/raycast/states/OnRaycastHover.js +27 -27
- package/src/render_mode/BaseRender.js +34 -34
- package/src/render_mode/BloomRender.js +63 -63
- package/src/render_mode/DebugNormalsRender.js +22 -22
- package/src/render_mode/DeferredRender.js +110 -110
- package/src/render_mode/NormalAORender.js +72 -72
- package/src/render_mode/NormalRender.js +38 -38
- package/src/render_mode/OutlineRender.js +157 -157
- package/src/render_mode/PlanarReflectionsRender.js +121 -121
- package/src/render_mode/UnrealBloomRender.js +123 -123
- package/src/render_mode/VRRender.js +71 -71
- package/src/render_utilities/Blitter.js +101 -101
- package/src/render_utilities/Blurrer.js +31 -31
- package/src/render_utilities/DepthAndNormalsRenderer.js +47 -47
- package/src/render_utilities/DualFilteringBlurrer.js +58 -58
- package/src/render_utilities/GaussianBlurrer.js +167 -167
- package/src/render_utilities/MedianFilter.js +68 -68
- package/src/render_utilities/ViewPositionRenderer.js +50 -50
- package/src/resource_loader/BasisLoader.js +51 -51
- package/src/resource_loader/FontLoader.js +48 -48
- package/src/resource_loader/JSONLoader.js +35 -35
- package/src/resource_loader/OBJLoader.js +48 -48
- package/src/resource_loader/PointArrayLoader.js +72 -72
- package/src/resource_loader/RGBETextureLoader.js +48 -48
- package/src/resource_loader/VideoLoader.js +32 -32
- package/src/scenes/AbstractScene.js +175 -175
- package/src/scenes/loading_states/CompilatorManager.js +41 -41
- package/src/scenes/loading_states/HighQualityLoadingState.js +28 -28
- package/src/scenes/loading_states/LoadingState.js +117 -117
- package/src/scenes/loading_states/RegularLoadingState.js +41 -41
- package/src/shaders/add/add.frag +27 -27
- package/src/shaders/anti_aliasing/fxaa.frag +72 -72
- package/src/shaders/basic_color/basic_color.frag +5 -5
- package/src/shaders/basic_color/basic_color.vert +9 -9
- package/src/shaders/basic_line/basic_line.frag +36 -36
- package/src/shaders/basic_line/basic_line.vert +37 -37
- package/src/shaders/basic_texture/basic_texture.frag +9 -9
- package/src/shaders/basic_texture/basic_texture.vert +16 -16
- package/src/shaders/bloom/bloom_compose_frag.glsl +22 -22
- package/src/shaders/bloom/cheap_bloom_compose_frag.glsl +13 -13
- package/src/shaders/box_blur/box_blur.frag +24 -24
- package/src/shaders/box_blur/compose.frag +31 -31
- package/src/shaders/clear/clear_depth_normal.frag +24 -24
- package/src/shaders/copy/copy.frag +6 -6
- package/src/shaders/copy/copy.vert +5 -5
- package/src/shaders/deferred/blit_copy.vert +11 -11
- package/src/shaders/deferred/deferred_compose.frag +59 -59
- package/src/shaders/deferred/point_light.frag +66 -66
- package/src/shaders/deferred/point_light.vert +13 -13
- package/src/shaders/depth_normals/debug_normals.frag +47 -47
- package/src/shaders/depth_normals/depth_normals.frag +30 -30
- package/src/shaders/depth_normals/depth_normals.vert +12 -12
- package/src/shaders/dual_filter_blur/alpha_filter.frag +14 -14
- package/src/shaders/dual_filter_blur/downsample.frag +21 -21
- package/src/shaders/dual_filter_blur/upsample.frag +24 -24
- package/src/shaders/edge_visualizer/edge_visualizer.frag +17 -17
- package/src/shaders/edge_visualizer/edge_visualizer.vert +15 -15
- package/src/shaders/edges/corners.frag +10 -10
- package/src/shaders/edges/corners.vert +30 -30
- package/src/shaders/edges/edges.frag +6 -6
- package/src/shaders/edges/edges.vert +27 -27
- package/src/shaders/gaussian_blur/gaussian_blur.frag +43 -43
- package/src/shaders/gaussian_blur/unreal_bloom_compose.frag +36 -36
- package/src/shaders/gpu_particles/common_utils.glsl +12 -12
- package/src/shaders/gpu_particles/generic_storage.frag +6 -6
- package/src/shaders/gpu_particles/store/store_position.vert +14 -14
- package/src/shaders/gpu_particles/update/basic_update.frag +20 -20
- package/src/shaders/gpu_particles/visualize/visualize.frag +10 -10
- package/src/shaders/gpu_particles/visualize/visualize.vert +12 -12
- package/src/shaders/grid/grid.frag +16 -16
- package/src/shaders/grid/grid.vert +9 -9
- package/src/shaders/luminosity_high_pass/luminosity_high_pass.frag +37 -37
- package/src/shaders/median_filter/median_filter.frag +134 -134
- package/src/shaders/normal/normal.frag +6 -6
- package/src/shaders/normal/normal.vert +6 -6
- package/src/shaders/sdf_text/sdf_screen_text.frag +51 -51
- package/src/shaders/sdf_text/sdf_screen_text.vert +41 -41
- package/src/shaders/sdf_text/sdf_text.frag +53 -53
- package/src/shaders/sdf_text/sdf_text.vert +41 -41
- package/src/shaders/ssao/hbao.frag +264 -264
- package/src/shaders/ssao/ssao.frag +95 -95
- package/src/shaders/ssao/ssao.vert +10 -10
- package/src/shaders/ssao/ssao_compose.frag +14 -14
- package/src/shaders/transparent_mix/copy.frag +6 -6
- package/src/shaders/transparent_mix/transparent_mix.frag +18 -18
- package/src/shaders/transparent_mix/transparent_mix.vert +7 -7
- package/src/shaders/ui/ss_texture.frag +10 -10
- package/src/shaders/ui/ss_texture.vert +31 -31
- package/src/shaders/ui/ws_texture.vert +38 -38
- package/src/shaders/ui_element/ui_element.frag +11 -11
- package/src/shaders/ui_element/ui_element.vert +32 -32
- package/src/shaders/unreal_blur/unreal_blur.frag +24 -24
- package/src/shaders/unreal_blur/unreal_compose.frag +23 -23
- package/src/shaders/write_view_position/write_view_position.frag +6 -6
- package/src/shaders/write_view_position/write_view_position.vert +8 -8
- package/src/static_batcher/BatchedMesh.js +56 -56
- package/src/static_batcher/GeometryBatch.js +308 -308
- package/src/static_batcher/GeometryBatcher.js +64 -64
- package/src/static_batcher/MeshBatcher.js +58 -58
- package/src/ui/ui_element_position/ScreenSpacePosition.js +16 -16
- package/src/ui/ui_element_position/WorldSpacePosition.js +23 -23
- package/src/ui/ui_element_state/OnIdle.js +24 -24
- package/src/ui/ui_element_state/OnMouseEnter.js +39 -39
- package/src/ui/ui_element_state/OnMouseExit.js +22 -22
- package/src/ui/ui_element_state/OnMouseHover.js +46 -46
- package/src/ui/ui_element_state/UIElementState.js +34 -34
- package/src/utilities/ArrayUtilities.js +57 -57
- package/src/utilities/CameraUtilities.js +283 -283
- package/src/utilities/EasingFunctions.js +231 -231
- package/src/utilities/FrustumPointFitter.js +257 -257
- package/src/utilities/GeometryUtilities.js +76 -76
- package/src/utilities/HTMLUtilities.js +76 -76
- package/src/utilities/ImageUtilities.js +28 -28
- package/src/utilities/MeshSampler.js +206 -206
- package/src/utilities/ModelUtilities.js +162 -162
- package/src/utilities/OMath.js +158 -158
- package/src/utilities/OrthographicFrustumPointFitter.js +49 -49
- package/src/utilities/PerspectiveFrustumPointFitter.js +254 -254
- package/src/utilities/StringUtilities.js +43 -43
- package/src/utilities/TimeUtilities.js +24 -24
- package/src/utilities/Validation.js +36 -36
- package/src/view_components/ApplicationView.js +73 -73
- package/src/view_components/TransitionManager.js +75 -75
- package/src/view_components/ViewComponent.js +61 -61
- package/src/view_components/ViewComponentManager.js +69 -69
- package/src/view_components/ViewManager.js +145 -145
- package/src/view_components/ViewState.js +49 -49
- package/src/view_components/transition/ActionSequencerBuilder.js +124 -124
- package/src/view_components/transition/DrawIOAnimationSheet.js +92 -92
- package/src/view_components/transition/TransitionTable.js +54 -54
- package/src/view_components/transition/ViewStateTransitionHandler.js +106 -106
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
import { ResourceContainer } from 'ohzi-core';
|
|
2
|
-
|
|
3
|
-
import { AsyncAudiosLoader } from '../../loaders/AsyncAudiosLoader';
|
|
4
|
-
import { AsyncObjectsLoader } from '../../loaders/AsyncObjectsLoader';
|
|
5
|
-
import { AsyncTexturesLoader } from '../../loaders/AsyncTexturesLoader';
|
|
6
|
-
import { CompilatorManager } from './CompilatorManager';
|
|
7
|
-
|
|
8
|
-
export class LoadingState
|
|
9
|
-
{
|
|
10
|
-
constructor(scene, { SceneCompilator, TexturesCompilator, AudiosCompilator })
|
|
11
|
-
{
|
|
12
|
-
this.scene = scene;
|
|
13
|
-
|
|
14
|
-
this.SceneCompilator = SceneCompilator;
|
|
15
|
-
this.TexturesCompilator = TexturesCompilator;
|
|
16
|
-
this.AudiosCompilator = AudiosCompilator;
|
|
17
|
-
|
|
18
|
-
this.loaders = [];
|
|
19
|
-
this.compilators = [];
|
|
20
|
-
|
|
21
|
-
this.callback_called = false;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
set_assets(scene_objects, scene_textures, scene_sounds, custom_loaders = [], custom_compilators = [], custom_data = [])
|
|
25
|
-
{
|
|
26
|
-
this.scene_objects = scene_objects;
|
|
27
|
-
this.scene_textures = scene_textures;
|
|
28
|
-
this.scene_sounds = scene_sounds;
|
|
29
|
-
|
|
30
|
-
this.custom_loaders = custom_loaders;
|
|
31
|
-
this.custom_compilators = custom_compilators;
|
|
32
|
-
this.custom_data = custom_data;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
get loading_progress()
|
|
36
|
-
{
|
|
37
|
-
let progress = 0;
|
|
38
|
-
|
|
39
|
-
for (let i = 0; i < this.loaders.length; i++)
|
|
40
|
-
{
|
|
41
|
-
const loader = this.loaders[i];
|
|
42
|
-
progress += loader.get_progress();
|
|
43
|
-
}
|
|
44
|
-
return progress / this.loaders.length;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
load()
|
|
48
|
-
{
|
|
49
|
-
this.setup_loader();
|
|
50
|
-
|
|
51
|
-
// TODO: improve this.
|
|
52
|
-
// We call load method to one of the 3 loaders because they share the same worker.
|
|
53
|
-
this.loaders[0].load();
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
on_enter()
|
|
57
|
-
{
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
on_exit()
|
|
61
|
-
{
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
update()
|
|
65
|
-
{
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
setup_loader()
|
|
70
|
-
{
|
|
71
|
-
const compilators = [];
|
|
72
|
-
|
|
73
|
-
const assets_worker = ResourceContainer.get('assets_worker');
|
|
74
|
-
assets_worker.postMessage({ type: 'reset', loader_name: this.scene.name });
|
|
75
|
-
|
|
76
|
-
const object_loader = new AsyncObjectsLoader(this.scene.name, this.scene_objects, assets_worker);
|
|
77
|
-
this.loaders.push(object_loader);
|
|
78
|
-
compilators.push(new this.SceneCompilator(this.scene));
|
|
79
|
-
|
|
80
|
-
const textures_loader = new AsyncTexturesLoader(this.scene.name, this.scene_textures, assets_worker);
|
|
81
|
-
this.loaders.push(textures_loader);
|
|
82
|
-
compilators.push(new this.TexturesCompilator(textures_loader.get_assets_names()));
|
|
83
|
-
|
|
84
|
-
const audios_loader = new AsyncAudiosLoader(this.scene.name, this.scene_sounds, assets_worker);
|
|
85
|
-
this.loaders.push(audios_loader);
|
|
86
|
-
compilators.push(new this.AudiosCompilator(audios_loader.get_assets_names()));
|
|
87
|
-
|
|
88
|
-
for (let i = 0; i < this.custom_loaders.length; i++)
|
|
89
|
-
{
|
|
90
|
-
const loader = new this.custom_loaders[i](this.scene.name, this.custom_data[i], assets_worker);
|
|
91
|
-
this.loaders.push(loader);
|
|
92
|
-
compilators.push(new this.custom_compilators[i](loader.get_assets_names()));
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
this.compilator_manager = new CompilatorManager(compilators);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
is_loaded()
|
|
99
|
-
{
|
|
100
|
-
let loaded = true;
|
|
101
|
-
|
|
102
|
-
for (let i = 0; i < this.loaders.length; i++)
|
|
103
|
-
{
|
|
104
|
-
const loader = this.loaders[i];
|
|
105
|
-
|
|
106
|
-
loaded = loaded && loader.is_loaded();
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
return loaded;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
is_compiled()
|
|
113
|
-
{
|
|
114
|
-
this.compilator_manager.update();
|
|
115
|
-
return this.compilator_manager.is_finished();
|
|
116
|
-
}
|
|
117
|
-
}
|
|
1
|
+
import { ResourceContainer } from 'ohzi-core';
|
|
2
|
+
|
|
3
|
+
import { AsyncAudiosLoader } from '../../loaders/AsyncAudiosLoader';
|
|
4
|
+
import { AsyncObjectsLoader } from '../../loaders/AsyncObjectsLoader';
|
|
5
|
+
import { AsyncTexturesLoader } from '../../loaders/AsyncTexturesLoader';
|
|
6
|
+
import { CompilatorManager } from './CompilatorManager';
|
|
7
|
+
|
|
8
|
+
export class LoadingState
|
|
9
|
+
{
|
|
10
|
+
constructor(scene, { SceneCompilator, TexturesCompilator, AudiosCompilator })
|
|
11
|
+
{
|
|
12
|
+
this.scene = scene;
|
|
13
|
+
|
|
14
|
+
this.SceneCompilator = SceneCompilator;
|
|
15
|
+
this.TexturesCompilator = TexturesCompilator;
|
|
16
|
+
this.AudiosCompilator = AudiosCompilator;
|
|
17
|
+
|
|
18
|
+
this.loaders = [];
|
|
19
|
+
this.compilators = [];
|
|
20
|
+
|
|
21
|
+
this.callback_called = false;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
set_assets(scene_objects, scene_textures, scene_sounds, custom_loaders = [], custom_compilators = [], custom_data = [])
|
|
25
|
+
{
|
|
26
|
+
this.scene_objects = scene_objects;
|
|
27
|
+
this.scene_textures = scene_textures;
|
|
28
|
+
this.scene_sounds = scene_sounds;
|
|
29
|
+
|
|
30
|
+
this.custom_loaders = custom_loaders;
|
|
31
|
+
this.custom_compilators = custom_compilators;
|
|
32
|
+
this.custom_data = custom_data;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
get loading_progress()
|
|
36
|
+
{
|
|
37
|
+
let progress = 0;
|
|
38
|
+
|
|
39
|
+
for (let i = 0; i < this.loaders.length; i++)
|
|
40
|
+
{
|
|
41
|
+
const loader = this.loaders[i];
|
|
42
|
+
progress += loader.get_progress();
|
|
43
|
+
}
|
|
44
|
+
return progress / this.loaders.length;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
load()
|
|
48
|
+
{
|
|
49
|
+
this.setup_loader();
|
|
50
|
+
|
|
51
|
+
// TODO: improve this.
|
|
52
|
+
// We call load method to one of the 3 loaders because they share the same worker.
|
|
53
|
+
this.loaders[0].load();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
on_enter()
|
|
57
|
+
{
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
on_exit()
|
|
61
|
+
{
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
update()
|
|
65
|
+
{
|
|
66
|
+
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
setup_loader()
|
|
70
|
+
{
|
|
71
|
+
const compilators = [];
|
|
72
|
+
|
|
73
|
+
const assets_worker = ResourceContainer.get('assets_worker');
|
|
74
|
+
assets_worker.postMessage({ type: 'reset', loader_name: this.scene.name });
|
|
75
|
+
|
|
76
|
+
const object_loader = new AsyncObjectsLoader(this.scene.name, this.scene_objects, assets_worker);
|
|
77
|
+
this.loaders.push(object_loader);
|
|
78
|
+
compilators.push(new this.SceneCompilator(this.scene));
|
|
79
|
+
|
|
80
|
+
const textures_loader = new AsyncTexturesLoader(this.scene.name, this.scene_textures, assets_worker);
|
|
81
|
+
this.loaders.push(textures_loader);
|
|
82
|
+
compilators.push(new this.TexturesCompilator(textures_loader.get_assets_names()));
|
|
83
|
+
|
|
84
|
+
const audios_loader = new AsyncAudiosLoader(this.scene.name, this.scene_sounds, assets_worker);
|
|
85
|
+
this.loaders.push(audios_loader);
|
|
86
|
+
compilators.push(new this.AudiosCompilator(audios_loader.get_assets_names()));
|
|
87
|
+
|
|
88
|
+
for (let i = 0; i < this.custom_loaders.length; i++)
|
|
89
|
+
{
|
|
90
|
+
const loader = new this.custom_loaders[i](this.scene.name, this.custom_data[i], assets_worker);
|
|
91
|
+
this.loaders.push(loader);
|
|
92
|
+
compilators.push(new this.custom_compilators[i](loader.get_assets_names()));
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
this.compilator_manager = new CompilatorManager(compilators);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
is_loaded()
|
|
99
|
+
{
|
|
100
|
+
let loaded = true;
|
|
101
|
+
|
|
102
|
+
for (let i = 0; i < this.loaders.length; i++)
|
|
103
|
+
{
|
|
104
|
+
const loader = this.loaders[i];
|
|
105
|
+
|
|
106
|
+
loaded = loaded && loader.is_loaded();
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return loaded;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
is_compiled()
|
|
113
|
+
{
|
|
114
|
+
this.compilator_manager.update();
|
|
115
|
+
return this.compilator_manager.is_finished();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
import { LoadingState } from './LoadingState';
|
|
2
|
-
|
|
3
|
-
export class RegularLoadingState extends LoadingState
|
|
4
|
-
{
|
|
5
|
-
constructor(scene, compilators)
|
|
6
|
-
{
|
|
7
|
-
super(scene, compilators);
|
|
8
|
-
|
|
9
|
-
this.on_assets_ready_called = false;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
on_enter()
|
|
13
|
-
{
|
|
14
|
-
super.on_enter();
|
|
15
|
-
// this.setup_loader();
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
on_exit()
|
|
19
|
-
{
|
|
20
|
-
super.on_exit();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
update()
|
|
24
|
-
{
|
|
25
|
-
super.update();
|
|
26
|
-
|
|
27
|
-
if (this.is_loaded())
|
|
28
|
-
{
|
|
29
|
-
if (!this.on_assets_ready_called)
|
|
30
|
-
{
|
|
31
|
-
this.scene.on_assets_ready();
|
|
32
|
-
this.on_assets_ready_called = true;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (this.is_compiled())
|
|
36
|
-
{
|
|
37
|
-
this.scene.on_assets_compiled();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
1
|
+
import { LoadingState } from './LoadingState';
|
|
2
|
+
|
|
3
|
+
export class RegularLoadingState extends LoadingState
|
|
4
|
+
{
|
|
5
|
+
constructor(scene, compilators)
|
|
6
|
+
{
|
|
7
|
+
super(scene, compilators);
|
|
8
|
+
|
|
9
|
+
this.on_assets_ready_called = false;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
on_enter()
|
|
13
|
+
{
|
|
14
|
+
super.on_enter();
|
|
15
|
+
// this.setup_loader();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
on_exit()
|
|
19
|
+
{
|
|
20
|
+
super.on_exit();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
update()
|
|
24
|
+
{
|
|
25
|
+
super.update();
|
|
26
|
+
|
|
27
|
+
if (this.is_loaded())
|
|
28
|
+
{
|
|
29
|
+
if (!this.on_assets_ready_called)
|
|
30
|
+
{
|
|
31
|
+
this.scene.on_assets_ready();
|
|
32
|
+
this.on_assets_ready_called = true;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (this.is_compiled())
|
|
36
|
+
{
|
|
37
|
+
this.scene.on_assets_compiled();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
package/src/shaders/add/add.frag
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
uniform sampler2D _MainTex;
|
|
2
|
-
uniform sampler2D _SecondTex;
|
|
3
|
-
|
|
4
|
-
varying vec2 vUv;
|
|
5
|
-
|
|
6
|
-
vec4 sampleTex(sampler2D tex, vec2 uv)
|
|
7
|
-
{
|
|
8
|
-
vec4 col = texture2D( tex, uv);
|
|
9
|
-
|
|
10
|
-
#ifndef USE_LINEAR_COLOR_SPACE
|
|
11
|
-
col.rgb = pow(col.rgb, vec3(2.2));
|
|
12
|
-
#endif
|
|
13
|
-
|
|
14
|
-
return col;
|
|
15
|
-
}
|
|
16
|
-
void main()
|
|
17
|
-
{
|
|
18
|
-
vec4 col0 = sampleTex(_MainTex, vUv);
|
|
19
|
-
vec4 col1 = sampleTex(_SecondTex, vUv);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
gl_FragColor = col0+col1;
|
|
23
|
-
// gl_FragColor = texture2D(_SecondTex, vUv);
|
|
24
|
-
gl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(0.4545));
|
|
25
|
-
|
|
26
|
-
// gl_FragColor = texture2D(_MainTex, vUv)+texture2D(_SecondTex, vUv);
|
|
27
|
-
|
|
1
|
+
uniform sampler2D _MainTex;
|
|
2
|
+
uniform sampler2D _SecondTex;
|
|
3
|
+
|
|
4
|
+
varying vec2 vUv;
|
|
5
|
+
|
|
6
|
+
vec4 sampleTex(sampler2D tex, vec2 uv)
|
|
7
|
+
{
|
|
8
|
+
vec4 col = texture2D( tex, uv);
|
|
9
|
+
|
|
10
|
+
#ifndef USE_LINEAR_COLOR_SPACE
|
|
11
|
+
col.rgb = pow(col.rgb, vec3(2.2));
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
return col;
|
|
15
|
+
}
|
|
16
|
+
void main()
|
|
17
|
+
{
|
|
18
|
+
vec4 col0 = sampleTex(_MainTex, vUv);
|
|
19
|
+
vec4 col1 = sampleTex(_SecondTex, vUv);
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
gl_FragColor = col0+col1;
|
|
23
|
+
// gl_FragColor = texture2D(_SecondTex, vUv);
|
|
24
|
+
gl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(0.4545));
|
|
25
|
+
|
|
26
|
+
// gl_FragColor = texture2D(_MainTex, vUv)+texture2D(_SecondTex, vUv);
|
|
27
|
+
|
|
28
28
|
}
|
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
// FXAA shader, GLSL code adapted from:
|
|
2
|
-
// http://horde3d.org/wiki/index.php5?title=Shading_Technique_-_FXAA
|
|
3
|
-
// Whitepaper describing the technique:
|
|
4
|
-
// http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf
|
|
5
|
-
|
|
6
|
-
// from: https://code.google.com/p/processing/source/browse/trunk/processing/java/libraries/opengl/examples/Shaders/FXAA/data/fxaa.glsl?r=9668
|
|
7
|
-
|
|
8
|
-
uniform sampler2D _MainTex;
|
|
9
|
-
uniform vec2 _Resolution;
|
|
10
|
-
|
|
11
|
-
varying vec2 vUv;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
void main() {
|
|
15
|
-
// The inverse of the texture dimensions along X and Y
|
|
16
|
-
vec2 texcoordOffset = 1. / _Resolution;
|
|
17
|
-
|
|
18
|
-
//varying vec4 vertColor;
|
|
19
|
-
vec4 vertTexcoord = vec4( vUv, 1., 1. );
|
|
20
|
-
|
|
21
|
-
// The parameters are hardcoded for now, but could be
|
|
22
|
-
// made into uniforms to control fromt he program.
|
|
23
|
-
float FXAA_SPAN_MAX = 8.0;
|
|
24
|
-
float FXAA_REDUCE_MUL = 1.0/8.0;
|
|
25
|
-
float FXAA_REDUCE_MIN = (1.0/128.0);
|
|
26
|
-
|
|
27
|
-
vec3 rgbNW = texture2D(_MainTex, vertTexcoord.xy + (vec2(-1.0, -1.0) * texcoordOffset)).xyz;
|
|
28
|
-
vec3 rgbNE = texture2D(_MainTex, vertTexcoord.xy + (vec2(+1.0, -1.0) * texcoordOffset)).xyz;
|
|
29
|
-
vec3 rgbSW = texture2D(_MainTex, vertTexcoord.xy + (vec2(-1.0, +1.0) * texcoordOffset)).xyz;
|
|
30
|
-
vec3 rgbSE = texture2D(_MainTex, vertTexcoord.xy + (vec2(+1.0, +1.0) * texcoordOffset)).xyz;
|
|
31
|
-
vec3 rgbM = texture2D(_MainTex, vertTexcoord.xy).xyz;
|
|
32
|
-
|
|
33
|
-
vec3 luma = vec3(0.299, 0.587, 0.114);
|
|
34
|
-
float lumaNW = dot(rgbNW, luma);
|
|
35
|
-
float lumaNE = dot(rgbNE, luma);
|
|
36
|
-
float lumaSW = dot(rgbSW, luma);
|
|
37
|
-
float lumaSE = dot(rgbSE, luma);
|
|
38
|
-
float lumaM = dot( rgbM, luma);
|
|
39
|
-
|
|
40
|
-
float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
|
|
41
|
-
float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));
|
|
42
|
-
|
|
43
|
-
vec2 dir;
|
|
44
|
-
dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));
|
|
45
|
-
dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));
|
|
46
|
-
|
|
47
|
-
float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);
|
|
48
|
-
|
|
49
|
-
float rcpDirMin = 1.0/(min(abs(dir.x), abs(dir.y)) + dirReduce);
|
|
50
|
-
|
|
51
|
-
dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),
|
|
52
|
-
max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX), dir * rcpDirMin)) * texcoordOffset;
|
|
53
|
-
|
|
54
|
-
vec3 rgbA = (1.0/2.0) * (
|
|
55
|
-
texture2D(_MainTex, vertTexcoord.xy + dir * (1.0/3.0 - 0.5)).xyz +
|
|
56
|
-
texture2D(_MainTex, vertTexcoord.xy + dir * (2.0/3.0 - 0.5)).xyz);
|
|
57
|
-
vec3 rgbB = rgbA * (1.0/2.0) + (1.0/4.0) * (
|
|
58
|
-
texture2D(_MainTex, vertTexcoord.xy + dir * (0.0/3.0 - 0.5)).xyz +
|
|
59
|
-
texture2D(_MainTex, vertTexcoord.xy + dir * (3.0/3.0 - 0.5)).xyz);
|
|
60
|
-
float lumaB = dot(rgbB, luma);
|
|
61
|
-
|
|
62
|
-
if((lumaB < lumaMin) || (lumaB > lumaMax)){
|
|
63
|
-
gl_FragColor.xyz=rgbA;
|
|
64
|
-
} else {
|
|
65
|
-
gl_FragColor.xyz=rgbB;
|
|
66
|
-
}
|
|
67
|
-
gl_FragColor.a = 1.0;
|
|
68
|
-
|
|
69
|
-
// gl_FragColor = vec4(texture2D(_MainTex, vUv).rgb, 1.0);
|
|
70
|
-
// gl_FragColor = vec4(1.0, 0.0, 0.0, 0.0);
|
|
71
|
-
//gl_FragColor *= vertColor;
|
|
72
|
-
}
|
|
1
|
+
// FXAA shader, GLSL code adapted from:
|
|
2
|
+
// http://horde3d.org/wiki/index.php5?title=Shading_Technique_-_FXAA
|
|
3
|
+
// Whitepaper describing the technique:
|
|
4
|
+
// http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf
|
|
5
|
+
|
|
6
|
+
// from: https://code.google.com/p/processing/source/browse/trunk/processing/java/libraries/opengl/examples/Shaders/FXAA/data/fxaa.glsl?r=9668
|
|
7
|
+
|
|
8
|
+
uniform sampler2D _MainTex;
|
|
9
|
+
uniform vec2 _Resolution;
|
|
10
|
+
|
|
11
|
+
varying vec2 vUv;
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
void main() {
|
|
15
|
+
// The inverse of the texture dimensions along X and Y
|
|
16
|
+
vec2 texcoordOffset = 1. / _Resolution;
|
|
17
|
+
|
|
18
|
+
//varying vec4 vertColor;
|
|
19
|
+
vec4 vertTexcoord = vec4( vUv, 1., 1. );
|
|
20
|
+
|
|
21
|
+
// The parameters are hardcoded for now, but could be
|
|
22
|
+
// made into uniforms to control fromt he program.
|
|
23
|
+
float FXAA_SPAN_MAX = 8.0;
|
|
24
|
+
float FXAA_REDUCE_MUL = 1.0/8.0;
|
|
25
|
+
float FXAA_REDUCE_MIN = (1.0/128.0);
|
|
26
|
+
|
|
27
|
+
vec3 rgbNW = texture2D(_MainTex, vertTexcoord.xy + (vec2(-1.0, -1.0) * texcoordOffset)).xyz;
|
|
28
|
+
vec3 rgbNE = texture2D(_MainTex, vertTexcoord.xy + (vec2(+1.0, -1.0) * texcoordOffset)).xyz;
|
|
29
|
+
vec3 rgbSW = texture2D(_MainTex, vertTexcoord.xy + (vec2(-1.0, +1.0) * texcoordOffset)).xyz;
|
|
30
|
+
vec3 rgbSE = texture2D(_MainTex, vertTexcoord.xy + (vec2(+1.0, +1.0) * texcoordOffset)).xyz;
|
|
31
|
+
vec3 rgbM = texture2D(_MainTex, vertTexcoord.xy).xyz;
|
|
32
|
+
|
|
33
|
+
vec3 luma = vec3(0.299, 0.587, 0.114);
|
|
34
|
+
float lumaNW = dot(rgbNW, luma);
|
|
35
|
+
float lumaNE = dot(rgbNE, luma);
|
|
36
|
+
float lumaSW = dot(rgbSW, luma);
|
|
37
|
+
float lumaSE = dot(rgbSE, luma);
|
|
38
|
+
float lumaM = dot( rgbM, luma);
|
|
39
|
+
|
|
40
|
+
float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
|
|
41
|
+
float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));
|
|
42
|
+
|
|
43
|
+
vec2 dir;
|
|
44
|
+
dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));
|
|
45
|
+
dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));
|
|
46
|
+
|
|
47
|
+
float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);
|
|
48
|
+
|
|
49
|
+
float rcpDirMin = 1.0/(min(abs(dir.x), abs(dir.y)) + dirReduce);
|
|
50
|
+
|
|
51
|
+
dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),
|
|
52
|
+
max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX), dir * rcpDirMin)) * texcoordOffset;
|
|
53
|
+
|
|
54
|
+
vec3 rgbA = (1.0/2.0) * (
|
|
55
|
+
texture2D(_MainTex, vertTexcoord.xy + dir * (1.0/3.0 - 0.5)).xyz +
|
|
56
|
+
texture2D(_MainTex, vertTexcoord.xy + dir * (2.0/3.0 - 0.5)).xyz);
|
|
57
|
+
vec3 rgbB = rgbA * (1.0/2.0) + (1.0/4.0) * (
|
|
58
|
+
texture2D(_MainTex, vertTexcoord.xy + dir * (0.0/3.0 - 0.5)).xyz +
|
|
59
|
+
texture2D(_MainTex, vertTexcoord.xy + dir * (3.0/3.0 - 0.5)).xyz);
|
|
60
|
+
float lumaB = dot(rgbB, luma);
|
|
61
|
+
|
|
62
|
+
if((lumaB < lumaMin) || (lumaB > lumaMax)){
|
|
63
|
+
gl_FragColor.xyz=rgbA;
|
|
64
|
+
} else {
|
|
65
|
+
gl_FragColor.xyz=rgbB;
|
|
66
|
+
}
|
|
67
|
+
gl_FragColor.a = 1.0;
|
|
68
|
+
|
|
69
|
+
// gl_FragColor = vec4(texture2D(_MainTex, vUv).rgb, 1.0);
|
|
70
|
+
// gl_FragColor = vec4(1.0, 0.0, 0.0, 0.0);
|
|
71
|
+
//gl_FragColor *= vertColor;
|
|
72
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
uniform vec3 _Color;
|
|
2
|
-
|
|
3
|
-
void main()
|
|
4
|
-
{
|
|
5
|
-
gl_FragColor = vec4(_Color, 1.0);
|
|
1
|
+
uniform vec3 _Color;
|
|
2
|
+
|
|
3
|
+
void main()
|
|
4
|
+
{
|
|
5
|
+
gl_FragColor = vec4(_Color, 1.0);
|
|
6
6
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
varying vec2 vUv;
|
|
2
|
-
|
|
3
|
-
void main()
|
|
4
|
-
{
|
|
5
|
-
vec3 pos = position;
|
|
6
|
-
mat4 MVP = projectionMatrix * modelViewMatrix;
|
|
7
|
-
|
|
8
|
-
gl_Position = MVP * vec4( pos, 1.0 );
|
|
9
|
-
vUv = uv;
|
|
1
|
+
varying vec2 vUv;
|
|
2
|
+
|
|
3
|
+
void main()
|
|
4
|
+
{
|
|
5
|
+
vec3 pos = position;
|
|
6
|
+
mat4 MVP = projectionMatrix * modelViewMatrix;
|
|
7
|
+
|
|
8
|
+
gl_Position = MVP * vec4( pos, 1.0 );
|
|
9
|
+
vUv = uv;
|
|
10
10
|
}
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
uniform float _Length;
|
|
2
|
-
uniform float _ElapsedTime;
|
|
3
|
-
uniform float _Thickness;
|
|
4
|
-
uniform vec3 _Color;
|
|
5
|
-
|
|
6
|
-
varying float line_coverage;
|
|
7
|
-
varying float uv_u;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
float aastep(float threshold, float value) {
|
|
13
|
-
#ifdef GL_OES_standard_derivatives
|
|
14
|
-
float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;
|
|
15
|
-
return smoothstep(threshold-afwidth, threshold+afwidth, value);
|
|
16
|
-
#else
|
|
17
|
-
return step(threshold, value);
|
|
18
|
-
#endif
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
void main()
|
|
22
|
-
{
|
|
23
|
-
|
|
24
|
-
// float y = fract(line_coverage /_Thickness - _TrueElapsedTime) ;
|
|
25
|
-
|
|
26
|
-
// vec2 uv = vec2(uv_u, y);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
// vec4 col = texture2D(_ArrowsTex,uv);
|
|
30
|
-
// col.rgb *= _ForwardColor;
|
|
31
|
-
// col.a = aastep(0.5, col.a);
|
|
32
|
-
// gl_FragColor = col;
|
|
33
|
-
float u = (1.0 - abs(uv_u * 2.0 - 1.0));
|
|
34
|
-
float diffuse = dot(vec2(u, u), vec2(0.0, 1.0)) * 0.5+0.5;
|
|
35
|
-
gl_FragColor = vec4(_Color * diffuse, 1.0);
|
|
36
|
-
|
|
1
|
+
uniform float _Length;
|
|
2
|
+
uniform float _ElapsedTime;
|
|
3
|
+
uniform float _Thickness;
|
|
4
|
+
uniform vec3 _Color;
|
|
5
|
+
|
|
6
|
+
varying float line_coverage;
|
|
7
|
+
varying float uv_u;
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
float aastep(float threshold, float value) {
|
|
13
|
+
#ifdef GL_OES_standard_derivatives
|
|
14
|
+
float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;
|
|
15
|
+
return smoothstep(threshold-afwidth, threshold+afwidth, value);
|
|
16
|
+
#else
|
|
17
|
+
return step(threshold, value);
|
|
18
|
+
#endif
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
void main()
|
|
22
|
+
{
|
|
23
|
+
|
|
24
|
+
// float y = fract(line_coverage /_Thickness - _TrueElapsedTime) ;
|
|
25
|
+
|
|
26
|
+
// vec2 uv = vec2(uv_u, y);
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
// vec4 col = texture2D(_ArrowsTex,uv);
|
|
30
|
+
// col.rgb *= _ForwardColor;
|
|
31
|
+
// col.a = aastep(0.5, col.a);
|
|
32
|
+
// gl_FragColor = col;
|
|
33
|
+
float u = (1.0 - abs(uv_u * 2.0 - 1.0));
|
|
34
|
+
float diffuse = dot(vec2(u, u), vec2(0.0, 1.0)) * 0.5+0.5;
|
|
35
|
+
gl_FragColor = vec4(_Color * diffuse, 1.0);
|
|
36
|
+
|
|
37
37
|
}
|