@3driseai/3drise-core 1.0.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.
- package/dist/constants/index.d.ts +22 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +7 -0
- package/dist/data/allMaterials.d.ts +5 -0
- package/dist/data/allMaterials.d.ts.map +1 -0
- package/dist/data/allMaterials.js +932 -0
- package/dist/data/defaults.d.ts +107 -0
- package/dist/data/defaults.d.ts.map +1 -0
- package/dist/data/defaults.js +99 -0
- package/dist/data/effectsDefaults.d.ts +4 -0
- package/dist/data/effectsDefaults.d.ts.map +1 -0
- package/dist/data/effectsDefaults.js +55 -0
- package/dist/data/images.d.ts +4 -0
- package/dist/data/images.d.ts.map +1 -0
- package/dist/data/images.js +50 -0
- package/dist/data/index.d.ts +10 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +9 -0
- package/dist/data/lightPresets.d.ts +99 -0
- package/dist/data/lightPresets.d.ts.map +1 -0
- package/dist/data/lightPresets.js +48 -0
- package/dist/data/particlesSettings.d.ts +13 -0
- package/dist/data/particlesSettings.d.ts.map +1 -0
- package/dist/data/particlesSettings.js +94 -0
- package/dist/data/paths.d.ts +32 -0
- package/dist/data/paths.d.ts.map +1 -0
- package/dist/data/paths.js +2597 -0
- package/dist/data/shaders.d.ts +12 -0
- package/dist/data/shaders.d.ts.map +1 -0
- package/dist/data/shaders.js +342 -0
- package/dist/data/shapeConfig.d.ts +3 -0
- package/dist/data/shapeConfig.d.ts.map +1 -0
- package/dist/data/shapeConfig.js +29 -0
- package/dist/index.d.ts +72 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +70 -0
- package/dist/presets/cloudsPresets.d.ts +32 -0
- package/dist/presets/cloudsPresets.d.ts.map +1 -0
- package/dist/presets/cloudsPresets.js +257 -0
- package/dist/presets/coronaPresets.d.ts +11 -0
- package/dist/presets/coronaPresets.d.ts.map +1 -0
- package/dist/presets/coronaPresets.js +148 -0
- package/dist/presets/crystalPresets.d.ts +38 -0
- package/dist/presets/crystalPresets.d.ts.map +1 -0
- package/dist/presets/crystalPresets.js +265 -0
- package/dist/presets/effectsPresets.d.ts +32 -0
- package/dist/presets/effectsPresets.d.ts.map +1 -0
- package/dist/presets/effectsPresets.js +438 -0
- package/dist/presets/glassPresets.d.ts +36 -0
- package/dist/presets/glassPresets.d.ts.map +1 -0
- package/dist/presets/glassPresets.js +236 -0
- package/dist/presets/index.d.ts +21 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +52 -0
- package/dist/presets/lavaPresets.d.ts +11 -0
- package/dist/presets/lavaPresets.d.ts.map +1 -0
- package/dist/presets/lavaPresets.js +202 -0
- package/dist/presets/metalPresets.d.ts +33 -0
- package/dist/presets/metalPresets.d.ts.map +1 -0
- package/dist/presets/metalPresets.js +205 -0
- package/dist/presets/oceanPresets.d.ts +37 -0
- package/dist/presets/oceanPresets.d.ts.map +1 -0
- package/dist/presets/oceanPresets.js +120 -0
- package/dist/presets/plasticPresets.d.ts +35 -0
- package/dist/presets/plasticPresets.d.ts.map +1 -0
- package/dist/presets/plasticPresets.js +245 -0
- package/dist/presets/sandPresets.d.ts +11 -0
- package/dist/presets/sandPresets.d.ts.map +1 -0
- package/dist/presets/sandPresets.js +294 -0
- package/dist/presets/skyPresets.d.ts +27 -0
- package/dist/presets/skyPresets.d.ts.map +1 -0
- package/dist/presets/skyPresets.js +93 -0
- package/dist/presets/woodPresets.d.ts +33 -0
- package/dist/presets/woodPresets.d.ts.map +1 -0
- package/dist/presets/woodPresets.js +235 -0
- package/dist/services/AnimationsManager.d.ts +171 -0
- package/dist/services/AnimationsManager.d.ts.map +1 -0
- package/dist/services/AnimationsManager.js +508 -0
- package/dist/services/CubeCameraManager.d.ts +23 -0
- package/dist/services/CubeCameraManager.d.ts.map +1 -0
- package/dist/services/CubeCameraManager.js +84 -0
- package/dist/services/FontManager.d.ts +32 -0
- package/dist/services/FontManager.d.ts.map +1 -0
- package/dist/services/FontManager.js +76 -0
- package/dist/services/MaterialCompiler.d.ts +30 -0
- package/dist/services/MaterialCompiler.d.ts.map +1 -0
- package/dist/services/MaterialCompiler.js +91 -0
- package/dist/services/MaterialRegistry.d.ts +85 -0
- package/dist/services/MaterialRegistry.d.ts.map +1 -0
- package/dist/services/MaterialRegistry.js +362 -0
- package/dist/services/NoiseGenerator.d.ts +93 -0
- package/dist/services/NoiseGenerator.d.ts.map +1 -0
- package/dist/services/NoiseGenerator.js +653 -0
- package/dist/services/ObjectManager.d.ts +71 -0
- package/dist/services/ObjectManager.d.ts.map +1 -0
- package/dist/services/ObjectManager.js +386 -0
- package/dist/services/PositionsCreator.d.ts +26 -0
- package/dist/services/PositionsCreator.d.ts.map +1 -0
- package/dist/services/PositionsCreator.js +263 -0
- package/dist/services/SceneStore.d.ts +20 -0
- package/dist/services/SceneStore.d.ts.map +1 -0
- package/dist/services/SceneStore.js +18 -0
- package/dist/services/ShadersLibrary.d.ts +79 -0
- package/dist/services/ShadersLibrary.d.ts.map +1 -0
- package/dist/services/ShadersLibrary.js +820 -0
- package/dist/services/SkySystemManager.d.ts +57 -0
- package/dist/services/SkySystemManager.d.ts.map +1 -0
- package/dist/services/SkySystemManager.js +190 -0
- package/dist/services/TextureResolver.d.ts +51 -0
- package/dist/services/TextureResolver.d.ts.map +1 -0
- package/dist/services/TextureResolver.js +136 -0
- package/dist/services/TexturesManager.d.ts +17 -0
- package/dist/services/TexturesManager.d.ts.map +1 -0
- package/dist/services/TexturesManager.js +48 -0
- package/dist/services/UniformConverter.d.ts +33 -0
- package/dist/services/UniformConverter.d.ts.map +1 -0
- package/dist/services/UniformConverter.js +252 -0
- package/dist/services/index.d.ts +19 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +14 -0
- package/dist/shaders/BasicSkyMaterial.d.ts +49 -0
- package/dist/shaders/BasicSkyMaterial.d.ts.map +1 -0
- package/dist/shaders/BasicSkyMaterial.js +94 -0
- package/dist/shaders/BasicWaterMaterial.d.ts +41 -0
- package/dist/shaders/BasicWaterMaterial.d.ts.map +1 -0
- package/dist/shaders/BasicWaterMaterial.js +155 -0
- package/dist/shaders/BubblesPointsMaterial.d.ts +52 -0
- package/dist/shaders/BubblesPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/BubblesPointsMaterial.js +95 -0
- package/dist/shaders/CartoonCloudsMaterial.d.ts +36 -0
- package/dist/shaders/CartoonCloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/CartoonCloudsMaterial.js +59 -0
- package/dist/shaders/CartoonCloudsPointsMaterial.d.ts +65 -0
- package/dist/shaders/CartoonCloudsPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/CartoonCloudsPointsMaterial.js +138 -0
- package/dist/shaders/CirrusCloudsMaterial.d.ts +36 -0
- package/dist/shaders/CirrusCloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/CirrusCloudsMaterial.js +55 -0
- package/dist/shaders/CirrusCloudsPointsMaterial.d.ts +69 -0
- package/dist/shaders/CirrusCloudsPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/CirrusCloudsPointsMaterial.js +140 -0
- package/dist/shaders/CloudsMaterial.d.ts +47 -0
- package/dist/shaders/CloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/CloudsMaterial.js +124 -0
- package/dist/shaders/CloudsPointsMaterial.d.ts +82 -0
- package/dist/shaders/CloudsPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/CloudsPointsMaterial.js +200 -0
- package/dist/shaders/CommonNoiseFunctions.d.ts +2 -0
- package/dist/shaders/CommonNoiseFunctions.d.ts.map +1 -0
- package/dist/shaders/CommonNoiseFunctions.js +41 -0
- package/dist/shaders/CoronaMaterial.d.ts +41 -0
- package/dist/shaders/CoronaMaterial.d.ts.map +1 -0
- package/dist/shaders/CoronaMaterial.js +54 -0
- package/dist/shaders/CustomShaderMaterial.d.ts +10 -0
- package/dist/shaders/CustomShaderMaterial.d.ts.map +1 -0
- package/dist/shaders/CustomShaderMaterial.js +10 -0
- package/dist/shaders/EarthAtmosphereMaterial.d.ts +28 -0
- package/dist/shaders/EarthAtmosphereMaterial.d.ts.map +1 -0
- package/dist/shaders/EarthAtmosphereMaterial.js +55 -0
- package/dist/shaders/EarthMaterial.d.ts +40 -0
- package/dist/shaders/EarthMaterial.d.ts.map +1 -0
- package/dist/shaders/EarthMaterial.js +69 -0
- package/dist/shaders/FireMaterial.d.ts +30 -0
- package/dist/shaders/FireMaterial.d.ts.map +1 -0
- package/dist/shaders/FireMaterial.js +154 -0
- package/dist/shaders/FireShellMaterial.d.ts +34 -0
- package/dist/shaders/FireShellMaterial.d.ts.map +1 -0
- package/dist/shaders/FireShellMaterial.js +137 -0
- package/dist/shaders/FlareMaterial.d.ts +79 -0
- package/dist/shaders/FlareMaterial.d.ts.map +1 -0
- package/dist/shaders/FlareMaterial.js +184 -0
- package/dist/shaders/GlowMaterial.d.ts +41 -0
- package/dist/shaders/GlowMaterial.d.ts.map +1 -0
- package/dist/shaders/GlowMaterial.js +54 -0
- package/dist/shaders/GlyphRingMaterial.d.ts +72 -0
- package/dist/shaders/GlyphRingMaterial.d.ts.map +1 -0
- package/dist/shaders/GlyphRingMaterial.js +152 -0
- package/dist/shaders/ImageMaterial.d.ts +294 -0
- package/dist/shaders/ImageMaterial.d.ts.map +1 -0
- package/dist/shaders/ImageMaterial.js +401 -0
- package/dist/shaders/LavaMaterial.d.ts +69 -0
- package/dist/shaders/LavaMaterial.d.ts.map +1 -0
- package/dist/shaders/LavaMaterial.js +127 -0
- package/dist/shaders/LineEffectsMaterials.d.ts +97 -0
- package/dist/shaders/LineEffectsMaterials.d.ts.map +1 -0
- package/dist/shaders/LineEffectsMaterials.js +242 -0
- package/dist/shaders/LineMaterial.d.ts +37 -0
- package/dist/shaders/LineMaterial.d.ts.map +1 -0
- package/dist/shaders/LineMaterial.js +64 -0
- package/dist/shaders/MeshEffectsMaterial.d.ts +278 -0
- package/dist/shaders/MeshEffectsMaterial.d.ts.map +1 -0
- package/dist/shaders/MeshEffectsMaterial.js +312 -0
- package/dist/shaders/MorphingSimulation.d.ts +17 -0
- package/dist/shaders/MorphingSimulation.d.ts.map +1 -0
- package/dist/shaders/MorphingSimulation.js +66 -0
- package/dist/shaders/MyGridMaterial.d.ts +61 -0
- package/dist/shaders/MyGridMaterial.d.ts.map +1 -0
- package/dist/shaders/MyGridMaterial.js +176 -0
- package/dist/shaders/MyParticlesMaterial.d.ts +65 -0
- package/dist/shaders/MyParticlesMaterial.d.ts.map +1 -0
- package/dist/shaders/MyParticlesMaterial.js +126 -0
- package/dist/shaders/NebulaCloudsMaterial.d.ts +44 -0
- package/dist/shaders/NebulaCloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/NebulaCloudsMaterial.js +63 -0
- package/dist/shaders/NebulaPointsMaterial.d.ts +236 -0
- package/dist/shaders/NebulaPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/NebulaPointsMaterial.js +265 -0
- package/dist/shaders/OceanMaterial.d.ts +57 -0
- package/dist/shaders/OceanMaterial.d.ts.map +1 -0
- package/dist/shaders/OceanMaterial.js +240 -0
- package/dist/shaders/PainterlyCloudsMaterial.d.ts +49 -0
- package/dist/shaders/PainterlyCloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/PainterlyCloudsMaterial.js +68 -0
- package/dist/shaders/PainterlyCloudsPointsMaterial.d.ts +69 -0
- package/dist/shaders/PainterlyCloudsPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/PainterlyCloudsPointsMaterial.js +140 -0
- package/dist/shaders/RainMaterial.d.ts +36 -0
- package/dist/shaders/RainMaterial.d.ts.map +1 -0
- package/dist/shaders/RainMaterial.js +79 -0
- package/dist/shaders/ReflectorMaterial.d.ts +62 -0
- package/dist/shaders/ReflectorMaterial.d.ts.map +1 -0
- package/dist/shaders/ReflectorMaterial.js +167 -0
- package/dist/shaders/SandMaterial.d.ts +58 -0
- package/dist/shaders/SandMaterial.d.ts.map +1 -0
- package/dist/shaders/SandMaterial.js +296 -0
- package/dist/shaders/ShaderEffectsMaterial copy.d.ts +280 -0
- package/dist/shaders/ShaderEffectsMaterial copy.d.ts.map +1 -0
- package/dist/shaders/ShaderEffectsMaterial copy.js +354 -0
- package/dist/shaders/ShaderEffectsMaterial.d.ts +5 -0
- package/dist/shaders/ShaderEffectsMaterial.d.ts.map +1 -0
- package/dist/shaders/ShaderEffectsMaterial.js +10 -0
- package/dist/shaders/ShootingStarMaterial.d.ts +9 -0
- package/dist/shaders/ShootingStarMaterial.d.ts.map +1 -0
- package/dist/shaders/ShootingStarMaterial.js +42 -0
- package/dist/shaders/SkyCloudsMaterial.d.ts +76 -0
- package/dist/shaders/SkyCloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/SkyCloudsMaterial.js +212 -0
- package/dist/shaders/SkyMaterial.d.ts +130 -0
- package/dist/shaders/SkyMaterial.d.ts.map +1 -0
- package/dist/shaders/SkyMaterial.js +237 -0
- package/dist/shaders/SkyboxMaterial.d.ts +40 -0
- package/dist/shaders/SkyboxMaterial.d.ts.map +1 -0
- package/dist/shaders/SkyboxMaterial.js +64 -0
- package/dist/shaders/SmokeMaterial.d.ts +48 -0
- package/dist/shaders/SmokeMaterial.d.ts.map +1 -0
- package/dist/shaders/SmokeMaterial.js +159 -0
- package/dist/shaders/SmokeRibbonMaterial.d.ts +48 -0
- package/dist/shaders/SmokeRibbonMaterial.d.ts.map +1 -0
- package/dist/shaders/SmokeRibbonMaterial.js +120 -0
- package/dist/shaders/SparklesBurstMaterial.d.ts +65 -0
- package/dist/shaders/SparklesBurstMaterial.d.ts.map +1 -0
- package/dist/shaders/SparklesBurstMaterial.js +99 -0
- package/dist/shaders/StarsMaterial.d.ts +36 -0
- package/dist/shaders/StarsMaterial.d.ts.map +1 -0
- package/dist/shaders/StarsMaterial.js +74 -0
- package/dist/shaders/StormCloudsMaterial.d.ts +44 -0
- package/dist/shaders/StormCloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/StormCloudsMaterial.js +61 -0
- package/dist/shaders/StormCloudsPointsMaterial.d.ts +303 -0
- package/dist/shaders/StormCloudsPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/StormCloudsPointsMaterial.js +389 -0
- package/dist/shaders/SunCoreMaterial.d.ts +69 -0
- package/dist/shaders/SunCoreMaterial.d.ts.map +1 -0
- package/dist/shaders/SunCoreMaterial.js +127 -0
- package/dist/shaders/VolumetricCloudsMaterial.d.ts +56 -0
- package/dist/shaders/VolumetricCloudsMaterial.d.ts.map +1 -0
- package/dist/shaders/VolumetricCloudsMaterial.js +93 -0
- package/dist/shaders/VolumetricCloudsPointsMaterial.d.ts +73 -0
- package/dist/shaders/VolumetricCloudsPointsMaterial.d.ts.map +1 -0
- package/dist/shaders/VolumetricCloudsPointsMaterial.js +143 -0
- package/dist/shaders/WaterMaterial.d.ts +110 -0
- package/dist/shaders/WaterMaterial.d.ts.map +1 -0
- package/dist/shaders/WaterMaterial.js +228 -0
- package/dist/shaders/effects/EffectsFragmentFunctions.glsl.d.ts +2 -0
- package/dist/shaders/effects/EffectsFragmentFunctions.glsl.d.ts.map +1 -0
- package/dist/shaders/effects/EffectsFragmentFunctions.glsl.js +182 -0
- package/dist/shaders/effects/EffectsUniforms.d.ts +230 -0
- package/dist/shaders/effects/EffectsUniforms.d.ts.map +1 -0
- package/dist/shaders/effects/EffectsUniforms.js +66 -0
- package/dist/shaders/effects/EffectsVertexFunctions.glsl.d.ts +2 -0
- package/dist/shaders/effects/EffectsVertexFunctions.glsl.d.ts.map +1 -0
- package/dist/shaders/effects/EffectsVertexFunctions.glsl.js +167 -0
- package/dist/shaders/effects/baseFragment.glsl.d.ts +2 -0
- package/dist/shaders/effects/baseFragment.glsl.d.ts.map +1 -0
- package/dist/shaders/effects/baseFragment.glsl.js +53 -0
- package/dist/shaders/effects/baseVertex.glsl.d.ts +2 -0
- package/dist/shaders/effects/baseVertex.glsl.d.ts.map +1 -0
- package/dist/shaders/effects/baseVertex.glsl.js +60 -0
- package/dist/shaders/effects/buildShaderEffectsMaterial.d.ts +17 -0
- package/dist/shaders/effects/buildShaderEffectsMaterial.d.ts.map +1 -0
- package/dist/shaders/effects/buildShaderEffectsMaterial.js +156 -0
- package/dist/shaders/effects/defaults.d.ts +4 -0
- package/dist/shaders/effects/defaults.d.ts.map +1 -0
- package/dist/shaders/effects/defaults.js +27 -0
- package/dist/shaders/effects/index.d.ts +7 -0
- package/dist/shaders/effects/index.d.ts.map +1 -0
- package/dist/shaders/effects/index.js +6 -0
- package/dist/shaders/effects/noiseLib.glsl.d.ts +6 -0
- package/dist/shaders/effects/noiseLib.glsl.d.ts.map +1 -0
- package/dist/shaders/effects/noiseLib.glsl.js +214 -0
- package/dist/shaders/effects/presets.d.ts +20 -0
- package/dist/shaders/effects/presets.d.ts.map +1 -0
- package/dist/shaders/effects/presets.js +288 -0
- package/dist/shaders/effects/registry/brightness.d.ts +3 -0
- package/dist/shaders/effects/registry/brightness.d.ts.map +1 -0
- package/dist/shaders/effects/registry/brightness.js +16 -0
- package/dist/shaders/effects/registry/colorShift.d.ts +3 -0
- package/dist/shaders/effects/registry/colorShift.d.ts.map +1 -0
- package/dist/shaders/effects/registry/colorShift.js +21 -0
- package/dist/shaders/effects/registry/depthFade.d.ts +3 -0
- package/dist/shaders/effects/registry/depthFade.d.ts.map +1 -0
- package/dist/shaders/effects/registry/depthFade.js +29 -0
- package/dist/shaders/effects/registry/displacement.d.ts +3 -0
- package/dist/shaders/effects/registry/displacement.d.ts.map +1 -0
- package/dist/shaders/effects/registry/displacement.js +17 -0
- package/dist/shaders/effects/registry/explode.d.ts +3 -0
- package/dist/shaders/effects/registry/explode.d.ts.map +1 -0
- package/dist/shaders/effects/registry/explode.js +43 -0
- package/dist/shaders/effects/registry/flicker.d.ts +3 -0
- package/dist/shaders/effects/registry/flicker.d.ts.map +1 -0
- package/dist/shaders/effects/registry/flicker.js +27 -0
- package/dist/shaders/effects/registry/glow.d.ts +3 -0
- package/dist/shaders/effects/registry/glow.d.ts.map +1 -0
- package/dist/shaders/effects/registry/glow.js +21 -0
- package/dist/shaders/effects/registry/grayscale.d.ts +3 -0
- package/dist/shaders/effects/registry/grayscale.d.ts.map +1 -0
- package/dist/shaders/effects/registry/grayscale.js +105 -0
- package/dist/shaders/effects/registry/hueShift.d.ts +3 -0
- package/dist/shaders/effects/registry/hueShift.d.ts.map +1 -0
- package/dist/shaders/effects/registry/hueShift.js +40 -0
- package/dist/shaders/effects/registry/index.d.ts +9 -0
- package/dist/shaders/effects/registry/index.d.ts.map +1 -0
- package/dist/shaders/effects/registry/index.js +70 -0
- package/dist/shaders/effects/registry/jitter.d.ts +3 -0
- package/dist/shaders/effects/registry/jitter.d.ts.map +1 -0
- package/dist/shaders/effects/registry/jitter.js +31 -0
- package/dist/shaders/effects/registry/magnet.d.ts +3 -0
- package/dist/shaders/effects/registry/magnet.d.ts.map +1 -0
- package/dist/shaders/effects/registry/magnet.js +43 -0
- package/dist/shaders/effects/registry/noise.d.ts +3 -0
- package/dist/shaders/effects/registry/noise.d.ts.map +1 -0
- package/dist/shaders/effects/registry/noise.js +61 -0
- package/dist/shaders/effects/registry/pulse.d.ts +3 -0
- package/dist/shaders/effects/registry/pulse.d.ts.map +1 -0
- package/dist/shaders/effects/registry/pulse.js +24 -0
- package/dist/shaders/effects/registry/rainbow.d.ts +3 -0
- package/dist/shaders/effects/registry/rainbow.d.ts.map +1 -0
- package/dist/shaders/effects/registry/rainbow.js +55 -0
- package/dist/shaders/effects/registry/ripple.d.ts +3 -0
- package/dist/shaders/effects/registry/ripple.d.ts.map +1 -0
- package/dist/shaders/effects/registry/ripple.js +39 -0
- package/dist/shaders/effects/registry/saturation.d.ts +3 -0
- package/dist/shaders/effects/registry/saturation.d.ts.map +1 -0
- package/dist/shaders/effects/registry/saturation.js +19 -0
- package/dist/shaders/effects/registry/scale.d.ts +3 -0
- package/dist/shaders/effects/registry/scale.d.ts.map +1 -0
- package/dist/shaders/effects/registry/scale.js +26 -0
- package/dist/shaders/effects/registry/sparkle.d.ts +3 -0
- package/dist/shaders/effects/registry/sparkle.d.ts.map +1 -0
- package/dist/shaders/effects/registry/sparkle.js +34 -0
- package/dist/shaders/effects/registry/spiral.d.ts +3 -0
- package/dist/shaders/effects/registry/spiral.d.ts.map +1 -0
- package/dist/shaders/effects/registry/spiral.js +46 -0
- package/dist/shaders/effects/registry/twist.d.ts +3 -0
- package/dist/shaders/effects/registry/twist.d.ts.map +1 -0
- package/dist/shaders/effects/registry/twist.js +55 -0
- package/dist/shaders/effects/registry/vortex.d.ts +3 -0
- package/dist/shaders/effects/registry/vortex.d.ts.map +1 -0
- package/dist/shaders/effects/registry/vortex.js +35 -0
- package/dist/shaders/effects/registry/wave.d.ts +3 -0
- package/dist/shaders/effects/registry/wave.d.ts.map +1 -0
- package/dist/shaders/effects/registry/wave.js +44 -0
- package/dist/shaders/effects/types.d.ts +56 -0
- package/dist/shaders/effects/types.d.ts.map +1 -0
- package/dist/shaders/effects/types.js +11 -0
- package/dist/shaders/index.d.ts +51 -0
- package/dist/shaders/index.d.ts.map +1 -0
- package/dist/shaders/index.js +50 -0
- package/dist/shaders/lineShaders/GhostSignalMaterial.d.ts +41 -0
- package/dist/shaders/lineShaders/GhostSignalMaterial.d.ts.map +1 -0
- package/dist/shaders/lineShaders/GhostSignalMaterial.js +88 -0
- package/dist/shaders/lineShaders/LineShaderMaterials.d.ts +180 -0
- package/dist/shaders/lineShaders/LineShaderMaterials.d.ts.map +1 -0
- package/dist/shaders/lineShaders/LineShaderMaterials.js +551 -0
- package/dist/shaders/lineShaders/ParticleEffects.d.ts +39 -0
- package/dist/shaders/lineShaders/ParticleEffects.d.ts.map +1 -0
- package/dist/shaders/lineShaders/ParticleEffects.js +451 -0
- package/dist/shaders/lineShaders/SerpentFlowMaterial.d.ts +37 -0
- package/dist/shaders/lineShaders/SerpentFlowMaterial.d.ts.map +1 -0
- package/dist/shaders/lineShaders/SerpentFlowMaterial.js +91 -0
- package/dist/shaders/lineShaders/SolarFilamentMaterial.d.ts +37 -0
- package/dist/shaders/lineShaders/SolarFilamentMaterial.d.ts.map +1 -0
- package/dist/shaders/lineShaders/SolarFilamentMaterial.js +104 -0
- package/dist/shaders/lineShaders/TeslaArcMaterial.d.ts +37 -0
- package/dist/shaders/lineShaders/TeslaArcMaterial.d.ts.map +1 -0
- package/dist/shaders/lineShaders/TeslaArcMaterial.js +125 -0
- package/dist/shaders/lineShaders/VoidRiftMaterial.d.ts +41 -0
- package/dist/shaders/lineShaders/VoidRiftMaterial.d.ts.map +1 -0
- package/dist/shaders/lineShaders/VoidRiftMaterial.js +118 -0
- package/dist/shaders/lineShaders/index.d.ts +11 -0
- package/dist/shaders/lineShaders/index.d.ts.map +1 -0
- package/dist/shaders/lineShaders/index.js +7 -0
- package/dist/shaders/sunNoise.d.ts +2 -0
- package/dist/shaders/sunNoise.d.ts.map +1 -0
- package/dist/shaders/sunNoise.js +91 -0
- package/dist/three/AnimatedObjectV.d.ts +71 -0
- package/dist/three/AnimatedObjectV.d.ts.map +1 -0
- package/dist/three/AnimatedObjectV.js +169 -0
- package/dist/three/CloudsV.d.ts +24 -0
- package/dist/three/CloudsV.d.ts.map +1 -0
- package/dist/three/CloudsV.js +132 -0
- package/dist/three/EffectsGeneratorV.d.ts +14 -0
- package/dist/three/EffectsGeneratorV.d.ts.map +1 -0
- package/dist/three/EffectsGeneratorV.js +109 -0
- package/dist/three/EnvironmentManagerV.d.ts +35 -0
- package/dist/three/EnvironmentManagerV.d.ts.map +1 -0
- package/dist/three/EnvironmentManagerV.js +140 -0
- package/dist/three/FrameV.d.ts +24 -0
- package/dist/three/FrameV.d.ts.map +1 -0
- package/dist/three/FrameV.js +43 -0
- package/dist/three/GalaxyV.d.ts +21 -0
- package/dist/three/GalaxyV.d.ts.map +1 -0
- package/dist/three/GalaxyV.js +223 -0
- package/dist/three/GalleryLayoutV.d.ts +20 -0
- package/dist/three/GalleryLayoutV.d.ts.map +1 -0
- package/dist/three/GalleryLayoutV.js +76 -0
- package/dist/three/GridHelperV.d.ts +19 -0
- package/dist/three/GridHelperV.d.ts.map +1 -0
- package/dist/three/GridHelperV.js +28 -0
- package/dist/three/ImageGeometryV.d.ts +23 -0
- package/dist/three/ImageGeometryV.d.ts.map +1 -0
- package/dist/three/ImageGeometryV.js +83 -0
- package/dist/three/LensflareV.d.ts +19 -0
- package/dist/three/LensflareV.d.ts.map +1 -0
- package/dist/three/LensflareV.js +79 -0
- package/dist/three/LetterV.d.ts +24 -0
- package/dist/three/LetterV.d.ts.map +1 -0
- package/dist/three/LetterV.js +90 -0
- package/dist/three/LightsManagerV.d.ts +21 -0
- package/dist/three/LightsManagerV.d.ts.map +1 -0
- package/dist/three/LightsManagerV.js +85 -0
- package/dist/three/LinesV.d.ts +22 -0
- package/dist/three/LinesV.d.ts.map +1 -0
- package/dist/three/LinesV.js +43 -0
- package/dist/three/ParticlesV.d.ts +28 -0
- package/dist/three/ParticlesV.d.ts.map +1 -0
- package/dist/three/ParticlesV.js +88 -0
- package/dist/three/PathRendererV.d.ts +29 -0
- package/dist/three/PathRendererV.d.ts.map +1 -0
- package/dist/three/PathRendererV.js +225 -0
- package/dist/three/PathV.d.ts +27 -0
- package/dist/three/PathV.d.ts.map +1 -0
- package/dist/three/PathV.js +81 -0
- package/dist/three/ProjectLoaderV.d.ts +18 -0
- package/dist/three/ProjectLoaderV.d.ts.map +1 -0
- package/dist/three/ProjectLoaderV.js +49 -0
- package/dist/three/RainV.d.ts +21 -0
- package/dist/three/RainV.d.ts.map +1 -0
- package/dist/three/RainV.js +201 -0
- package/dist/three/SceneBuilderV.d.ts +26 -0
- package/dist/three/SceneBuilderV.d.ts.map +1 -0
- package/dist/three/SceneBuilderV.js +263 -0
- package/dist/three/SkyControllerV.d.ts +22 -0
- package/dist/three/SkyControllerV.d.ts.map +1 -0
- package/dist/three/SkyControllerV.js +114 -0
- package/dist/three/SkySystemV.d.ts +40 -0
- package/dist/three/SkySystemV.d.ts.map +1 -0
- package/dist/three/SkySystemV.js +103 -0
- package/dist/three/SkyboxV.d.ts +29 -0
- package/dist/three/SkyboxV.d.ts.map +1 -0
- package/dist/three/SkyboxV.js +160 -0
- package/dist/three/StarsV.d.ts +24 -0
- package/dist/three/StarsV.d.ts.map +1 -0
- package/dist/three/StarsV.js +179 -0
- package/dist/three/SunLightV.d.ts +26 -0
- package/dist/three/SunLightV.d.ts.map +1 -0
- package/dist/three/SunLightV.js +90 -0
- package/dist/three/Text2DV.d.ts +25 -0
- package/dist/three/Text2DV.d.ts.map +1 -0
- package/dist/three/Text2DV.js +66 -0
- package/dist/three/Text3DV.d.ts +22 -0
- package/dist/three/Text3DV.d.ts.map +1 -0
- package/dist/three/Text3DV.js +43 -0
- package/dist/three/effects/AuraEffectV.d.ts +15 -0
- package/dist/three/effects/AuraEffectV.d.ts.map +1 -0
- package/dist/three/effects/AuraEffectV.js +150 -0
- package/dist/three/effects/AuroraEffectV.d.ts +16 -0
- package/dist/three/effects/AuroraEffectV.d.ts.map +1 -0
- package/dist/three/effects/AuroraEffectV.js +129 -0
- package/dist/three/effects/BlackHoleEffectV.d.ts +15 -0
- package/dist/three/effects/BlackHoleEffectV.d.ts.map +1 -0
- package/dist/three/effects/BlackHoleEffectV.js +219 -0
- package/dist/three/effects/ConstellationEffectV.d.ts +17 -0
- package/dist/three/effects/ConstellationEffectV.d.ts.map +1 -0
- package/dist/three/effects/ConstellationEffectV.js +207 -0
- package/dist/three/effects/DataStreamEffectV.d.ts +15 -0
- package/dist/three/effects/DataStreamEffectV.d.ts.map +1 -0
- package/dist/three/effects/DataStreamEffectV.js +151 -0
- package/dist/three/effects/DnaHelixEffectV.d.ts +24 -0
- package/dist/three/effects/DnaHelixEffectV.d.ts.map +1 -0
- package/dist/three/effects/DnaHelixEffectV.js +343 -0
- package/dist/three/effects/FireEffectV.d.ts +17 -0
- package/dist/three/effects/FireEffectV.d.ts.map +1 -0
- package/dist/three/effects/FireEffectV.js +219 -0
- package/dist/three/effects/ForcefieldEffectV.d.ts +17 -0
- package/dist/three/effects/ForcefieldEffectV.d.ts.map +1 -0
- package/dist/three/effects/ForcefieldEffectV.js +150 -0
- package/dist/three/effects/HologramEffectV.d.ts +15 -0
- package/dist/three/effects/HologramEffectV.d.ts.map +1 -0
- package/dist/three/effects/HologramEffectV.js +154 -0
- package/dist/three/effects/IceCrystalsEffectV.d.ts +21 -0
- package/dist/three/effects/IceCrystalsEffectV.d.ts.map +1 -0
- package/dist/three/effects/IceCrystalsEffectV.js +214 -0
- package/dist/three/effects/LightningEffectV.d.ts +27 -0
- package/dist/three/effects/LightningEffectV.d.ts.map +1 -0
- package/dist/three/effects/LightningEffectV.js +255 -0
- package/dist/three/effects/MoleculesEffectV.d.ts +23 -0
- package/dist/three/effects/MoleculesEffectV.d.ts.map +1 -0
- package/dist/three/effects/MoleculesEffectV.js +204 -0
- package/dist/three/effects/NeuralNetworkEffectV.d.ts +23 -0
- package/dist/three/effects/NeuralNetworkEffectV.d.ts.map +1 -0
- package/dist/three/effects/NeuralNetworkEffectV.js +211 -0
- package/dist/three/effects/OrbEffectV.d.ts +17 -0
- package/dist/three/effects/OrbEffectV.d.ts.map +1 -0
- package/dist/three/effects/OrbEffectV.js +307 -0
- package/dist/three/effects/PortalEffectV.d.ts +15 -0
- package/dist/three/effects/PortalEffectV.d.ts.map +1 -0
- package/dist/three/effects/PortalEffectV.js +213 -0
- package/dist/three/effects/ShockwaveEffectV.d.ts +19 -0
- package/dist/three/effects/ShockwaveEffectV.d.ts.map +1 -0
- package/dist/three/effects/ShockwaveEffectV.js +195 -0
- package/dist/three/effects/SmokePlumeEffectV.d.ts +15 -0
- package/dist/three/effects/SmokePlumeEffectV.d.ts.map +1 -0
- package/dist/three/effects/SmokePlumeEffectV.js +152 -0
- package/dist/three/effects/SmokeRingEffectV.d.ts +16 -0
- package/dist/three/effects/SmokeRingEffectV.d.ts.map +1 -0
- package/dist/three/effects/SmokeRingEffectV.js +174 -0
- package/dist/three/effects/VolumetricFogEffectV.d.ts +15 -0
- package/dist/three/effects/VolumetricFogEffectV.d.ts.map +1 -0
- package/dist/three/effects/VolumetricFogEffectV.js +127 -0
- package/dist/types/actions.d.ts +30 -0
- package/dist/types/actions.d.ts.map +1 -0
- package/dist/types/actions.js +5 -0
- package/dist/types/animations.d.ts +109 -0
- package/dist/types/animations.d.ts.map +1 -0
- package/dist/types/animations.js +5 -0
- package/dist/types/common.d.ts +20 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +1 -0
- package/dist/types/cursor.d.ts +142 -0
- package/dist/types/cursor.d.ts.map +1 -0
- package/dist/types/cursor.js +1 -0
- package/dist/types/effects.d.ts +100 -0
- package/dist/types/effects.d.ts.map +1 -0
- package/dist/types/effects.js +1 -0
- package/dist/types/environment.d.ts +265 -0
- package/dist/types/environment.d.ts.map +1 -0
- package/dist/types/environment.js +10 -0
- package/dist/types/gallery.d.ts +74 -0
- package/dist/types/gallery.d.ts.map +1 -0
- package/dist/types/gallery.js +1 -0
- package/dist/types/generativeEffects.d.ts +316 -0
- package/dist/types/generativeEffects.d.ts.map +1 -0
- package/dist/types/generativeEffects.js +5 -0
- package/dist/types/handlerSettings.d.ts +48 -0
- package/dist/types/handlerSettings.d.ts.map +1 -0
- package/dist/types/handlerSettings.js +1 -0
- package/dist/types/index.d.ts +24 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/lights.d.ts +79 -0
- package/dist/types/lights.d.ts.map +1 -0
- package/dist/types/lights.js +1 -0
- package/dist/types/materials.d.ts +194 -0
- package/dist/types/materials.d.ts.map +1 -0
- package/dist/types/materials.js +1 -0
- package/dist/types/mesh.d.ts +200 -0
- package/dist/types/mesh.d.ts.map +1 -0
- package/dist/types/mesh.js +1 -0
- package/dist/types/objectSettings.d.ts +144 -0
- package/dist/types/objectSettings.d.ts.map +1 -0
- package/dist/types/objectSettings.js +25 -0
- package/dist/types/objectsConfigs.d.ts +47 -0
- package/dist/types/objectsConfigs.d.ts.map +1 -0
- package/dist/types/objectsConfigs.js +1 -0
- package/dist/types/particles.d.ts +156 -0
- package/dist/types/particles.d.ts.map +1 -0
- package/dist/types/particles.js +1 -0
- package/dist/types/postprocessing.d.ts +141 -0
- package/dist/types/postprocessing.d.ts.map +1 -0
- package/dist/types/postprocessing.js +1 -0
- package/dist/types/scene3d.d.ts +501 -0
- package/dist/types/scene3d.d.ts.map +1 -0
- package/dist/types/scene3d.js +3 -0
- package/dist/types/shaderEffects.d.ts +61 -0
- package/dist/types/shaderEffects.d.ts.map +1 -0
- package/dist/types/shaderEffects.js +1 -0
- package/dist/types/text.d.ts +74 -0
- package/dist/types/text.d.ts.map +1 -0
- package/dist/types/text.js +1 -0
- package/dist/types/types.d.ts +81 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/types.js +1 -0
- package/dist/types/uiController.d.ts +42 -0
- package/dist/types/uiController.d.ts.map +1 -0
- package/dist/types/uiController.js +1 -0
- package/dist/types/users.d.ts +334 -0
- package/dist/types/users.d.ts.map +1 -0
- package/dist/types/users.js +34 -0
- package/dist/utils/GalleryCreator.d.ts +80 -0
- package/dist/utils/GalleryCreator.d.ts.map +1 -0
- package/dist/utils/GalleryCreator.js +465 -0
- package/dist/utils/GalleryLayouts.d.ts +10 -0
- package/dist/utils/GalleryLayouts.d.ts.map +1 -0
- package/dist/utils/GalleryLayouts.js +43 -0
- package/dist/utils/MaterialCompiler.d.ts +30 -0
- package/dist/utils/MaterialCompiler.d.ts.map +1 -0
- package/dist/utils/MaterialCompiler.js +91 -0
- package/dist/utils/animationsUtils.d.ts +69 -0
- package/dist/utils/animationsUtils.d.ts.map +1 -0
- package/dist/utils/animationsUtils.js +151 -0
- package/dist/utils/createdObjectHandlers.d.ts +32 -0
- package/dist/utils/createdObjectHandlers.d.ts.map +1 -0
- package/dist/utils/createdObjectHandlers.js +35 -0
- package/dist/utils/dataUtils.d.ts +36 -0
- package/dist/utils/dataUtils.d.ts.map +1 -0
- package/dist/utils/dataUtils.js +471 -0
- package/dist/utils/easingUtils.d.ts +5 -0
- package/dist/utils/easingUtils.d.ts.map +1 -0
- package/dist/utils/easingUtils.js +86 -0
- package/dist/utils/edgeUtils.d.ts +37 -0
- package/dist/utils/edgeUtils.d.ts.map +1 -0
- package/dist/utils/edgeUtils.js +128 -0
- package/dist/utils/environmentUtils.d.ts +19 -0
- package/dist/utils/environmentUtils.d.ts.map +1 -0
- package/dist/utils/environmentUtils.js +144 -0
- package/dist/utils/frameAnimations.d.ts +116 -0
- package/dist/utils/frameAnimations.d.ts.map +1 -0
- package/dist/utils/frameAnimations.js +449 -0
- package/dist/utils/galleriesUtils.d.ts +10 -0
- package/dist/utils/galleriesUtils.d.ts.map +1 -0
- package/dist/utils/galleriesUtils.js +162 -0
- package/dist/utils/getAnimatableProperties.d.ts +30 -0
- package/dist/utils/getAnimatableProperties.d.ts.map +1 -0
- package/dist/utils/getAnimatableProperties.js +170 -0
- package/dist/utils/gridUtils.d.ts +8 -0
- package/dist/utils/gridUtils.d.ts.map +1 -0
- package/dist/utils/gridUtils.js +26 -0
- package/dist/utils/handleEdgesAnimations.d.ts +20 -0
- package/dist/utils/handleEdgesAnimations.d.ts.map +1 -0
- package/dist/utils/handleEdgesAnimations.js +125 -0
- package/dist/utils/handleEdgesMouseMove.d.ts +12 -0
- package/dist/utils/handleEdgesMouseMove.d.ts.map +1 -0
- package/dist/utils/handleEdgesMouseMove.js +38 -0
- package/dist/utils/handleGenerativeEffectsAnimations.d.ts +15 -0
- package/dist/utils/handleGenerativeEffectsAnimations.d.ts.map +1 -0
- package/dist/utils/handleGenerativeEffectsAnimations.js +218 -0
- package/dist/utils/handleLightAnimations.d.ts +18 -0
- package/dist/utils/handleLightAnimations.d.ts.map +1 -0
- package/dist/utils/handleLightAnimations.js +123 -0
- package/dist/utils/handleLightMouseMove.d.ts +13 -0
- package/dist/utils/handleLightMouseMove.d.ts.map +1 -0
- package/dist/utils/handleLightMouseMove.js +51 -0
- package/dist/utils/handleMaterialEffects.d.ts +32 -0
- package/dist/utils/handleMaterialEffects.d.ts.map +1 -0
- package/dist/utils/handleMaterialEffects.js +130 -0
- package/dist/utils/handleMaterialMouseMove.d.ts +11 -0
- package/dist/utils/handleMaterialMouseMove.d.ts.map +1 -0
- package/dist/utils/handleMaterialMouseMove.js +20 -0
- package/dist/utils/handleTransformEffects.d.ts +31 -0
- package/dist/utils/handleTransformEffects.d.ts.map +1 -0
- package/dist/utils/handleTransformEffects.js +140 -0
- package/dist/utils/handleTransformMouseMove.d.ts +13 -0
- package/dist/utils/handleTransformMouseMove.d.ts.map +1 -0
- package/dist/utils/handleTransformMouseMove.js +49 -0
- package/dist/utils/idUtils.d.ts +4 -0
- package/dist/utils/idUtils.d.ts.map +1 -0
- package/dist/utils/idUtils.js +10 -0
- package/dist/utils/index.d.ts +34 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +33 -0
- package/dist/utils/loadingManager.d.ts +29 -0
- package/dist/utils/loadingManager.d.ts.map +1 -0
- package/dist/utils/loadingManager.js +103 -0
- package/dist/utils/materialApplicationUtils.d.ts +72 -0
- package/dist/utils/materialApplicationUtils.d.ts.map +1 -0
- package/dist/utils/materialApplicationUtils.js +169 -0
- package/dist/utils/materialUtils.d.ts +79 -0
- package/dist/utils/materialUtils.d.ts.map +1 -0
- package/dist/utils/materialUtils.js +267 -0
- package/dist/utils/meshUtils.d.ts +10 -0
- package/dist/utils/meshUtils.d.ts.map +1 -0
- package/dist/utils/meshUtils.js +473 -0
- package/dist/utils/mouseMoveUtils.d.ts +15 -0
- package/dist/utils/mouseMoveUtils.d.ts.map +1 -0
- package/dist/utils/mouseMoveUtils.js +52 -0
- package/dist/utils/objectTreeUtils.d.ts +39 -0
- package/dist/utils/objectTreeUtils.d.ts.map +1 -0
- package/dist/utils/objectTreeUtils.js +115 -0
- package/dist/utils/optionalProperties.d.ts +36 -0
- package/dist/utils/optionalProperties.d.ts.map +1 -0
- package/dist/utils/optionalProperties.js +487 -0
- package/dist/utils/particleAnimations.d.ts +3 -0
- package/dist/utils/particleAnimations.d.ts.map +1 -0
- package/dist/utils/particleAnimations.js +17 -0
- package/dist/utils/pathUtils.d.ts +19 -0
- package/dist/utils/pathUtils.d.ts.map +1 -0
- package/dist/utils/pathUtils.js +73 -0
- package/dist/utils/positionsCreatorUtils.d.ts +97 -0
- package/dist/utils/positionsCreatorUtils.d.ts.map +1 -0
- package/dist/utils/positionsCreatorUtils.js +644 -0
- package/dist/utils/sceneQuery.d.ts +9 -0
- package/dist/utils/sceneQuery.d.ts.map +1 -0
- package/dist/utils/sceneQuery.js +22 -0
- package/dist/utils/shootingStarHelpers.d.ts +13 -0
- package/dist/utils/shootingStarHelpers.d.ts.map +1 -0
- package/dist/utils/shootingStarHelpers.js +44 -0
- package/dist/utils/sunUtils.d.ts +6 -0
- package/dist/utils/sunUtils.d.ts.map +1 -0
- package/dist/utils/sunUtils.js +9 -0
- package/dist/utils/utils.d.ts +21 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +158 -0
- package/package.json +43 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Vector3 } from "three";
|
|
2
|
+
import { extend } from "@react-three/fiber";
|
|
3
|
+
import { shaderMaterial } from "@react-three/drei";
|
|
4
|
+
// Vertex shader
|
|
5
|
+
const vertexShader = /*glsl*/ `
|
|
6
|
+
varying vec3 vNormal;
|
|
7
|
+
varying vec3 vViewDir;
|
|
8
|
+
void main() {
|
|
9
|
+
vNormal = normalize(normalMatrix * normal);
|
|
10
|
+
vec4 mv = modelViewMatrix * vec4(position, 1.0);
|
|
11
|
+
vViewDir = normalize(-mv.xyz);
|
|
12
|
+
gl_Position = projectionMatrix * mv;
|
|
13
|
+
}
|
|
14
|
+
`;
|
|
15
|
+
// Fragment shader
|
|
16
|
+
const fragmentShader = /*glsl*/ `
|
|
17
|
+
uniform float u_time;
|
|
18
|
+
uniform float u_intensity;
|
|
19
|
+
uniform float u_falloff;
|
|
20
|
+
uniform float u_pulseSpeed;
|
|
21
|
+
uniform float u_pulseAmount;
|
|
22
|
+
uniform float u_shellScale;
|
|
23
|
+
uniform vec3 u_innerColor;
|
|
24
|
+
uniform vec3 u_outerColor;
|
|
25
|
+
varying vec3 vNormal;
|
|
26
|
+
varying vec3 vViewDir;
|
|
27
|
+
void main() {
|
|
28
|
+
// Rendered on a BackSide shell: visible fragments face AWAY from the
|
|
29
|
+
// camera, so the dot is negative. -dot is 0 at the outer silhouette and
|
|
30
|
+
// maximal at the core limb. The max depends on the shell scale, so it is
|
|
31
|
+
// derived from u_shellScale: sqrt(1 - 1/scale^2).
|
|
32
|
+
float facing = -dot(normalize(vNormal), normalize(vViewDir));
|
|
33
|
+
float maxFacing = sqrt(max(1.0 - 1.0 / (u_shellScale * u_shellScale), 0.05));
|
|
34
|
+
float t2 = clamp(facing / maxFacing, 0.0, 1.0);
|
|
35
|
+
float intensity = pow(t2, u_falloff);
|
|
36
|
+
intensity *= (1.0 - u_pulseAmount) + u_pulseAmount * (0.5 + 0.5 * sin(u_time * u_pulseSpeed));
|
|
37
|
+
vec3 col = mix(u_innerColor, u_outerColor, t2);
|
|
38
|
+
gl_FragColor = vec4(col * intensity * u_intensity, intensity);
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
// Create the shader material with uniforms
|
|
42
|
+
const CoronaMaterial = shaderMaterial({
|
|
43
|
+
u_time: 0,
|
|
44
|
+
u_intensity: 1.5,
|
|
45
|
+
u_falloff: 1.8,
|
|
46
|
+
u_pulseSpeed: 0.7,
|
|
47
|
+
u_pulseAmount: 0.3,
|
|
48
|
+
u_shellScale: 1.25,
|
|
49
|
+
u_innerColor: new Vector3(1.0, 0.3, 0.03),
|
|
50
|
+
u_outerColor: new Vector3(1.0, 0.62, 0.22)
|
|
51
|
+
}, vertexShader, fragmentShader);
|
|
52
|
+
// Extend the material for use in React Three Fiber
|
|
53
|
+
extend({ CoronaMaterial });
|
|
54
|
+
export { CoronaMaterial };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ShaderMaterial } from "three";
|
|
2
|
+
export interface CustomShaderMaterialProps {
|
|
3
|
+
uniforms: {
|
|
4
|
+
[uniform: string]: any;
|
|
5
|
+
};
|
|
6
|
+
vertexShader: string;
|
|
7
|
+
fragmentShader: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function createCustomShaderMaterial({ uniforms, vertexShader, fragmentShader }: CustomShaderMaterialProps): typeof ShaderMaterial;
|
|
10
|
+
//# sourceMappingURL=CustomShaderMaterial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomShaderMaterial.d.ts","sourceRoot":"","sources":["../../src/shaders/CustomShaderMaterial.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,MAAM,WAAW,yBAAyB;IACtC,QAAQ,EAAE;QACN,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC;KAC1B,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAGD,wBAAgB,0BAA0B,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,yBAAyB,GAAG,OAAO,cAAc,CAOvI"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { shaderMaterial } from "@react-three/drei";
|
|
2
|
+
export function createCustomShaderMaterial({ uniforms, vertexShader, fragmentShader }) {
|
|
3
|
+
// Create the shader material using drei's shaderMaterial helper
|
|
4
|
+
const CustomMaterial = shaderMaterial(uniforms, vertexShader, fragmentShader);
|
|
5
|
+
// console.log({CustomMaterial})
|
|
6
|
+
// Extend the material for use in React Three Fiber
|
|
7
|
+
// extend({ CustomMaterial });
|
|
8
|
+
return CustomMaterial;
|
|
9
|
+
}
|
|
10
|
+
// export { createCustomShaderMaterial as CustomShaderMaterial };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
export interface EarthAtmosphereMaterialUniforms {
|
|
3
|
+
uSunDirection: {
|
|
4
|
+
value: THREE.Vector3;
|
|
5
|
+
};
|
|
6
|
+
uAtmosphereDayColor: {
|
|
7
|
+
value: THREE.Color;
|
|
8
|
+
};
|
|
9
|
+
uAtmosphereTwilightColor: {
|
|
10
|
+
value: THREE.Color;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
declare global {
|
|
14
|
+
namespace JSX {
|
|
15
|
+
interface IntrinsicElements {
|
|
16
|
+
earthAtmosphereMaterial: any;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
declare const EarthAtmosphereMaterial: import("@react-three/fiber").ConstructorRepresentation<THREE.ShaderMaterial & {
|
|
21
|
+
uSunDirection: THREE.Vector3;
|
|
22
|
+
uAtmosphereDayColor: THREE.Color;
|
|
23
|
+
uAtmosphereTwilightColor: THREE.Color;
|
|
24
|
+
}> & {
|
|
25
|
+
key: string;
|
|
26
|
+
};
|
|
27
|
+
export { EarthAtmosphereMaterial };
|
|
28
|
+
//# sourceMappingURL=EarthAtmosphereMaterial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EarthAtmosphereMaterial.d.ts","sourceRoot":"","sources":["../../src/shaders/EarthAtmosphereMaterial.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,MAAM,WAAW,+BAA+B;IAC5C,aAAa,EAAE;QACX,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;KACxB,CAAC;IACF,mBAAmB,EAAE;QACjB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;KACtB,CAAC;IACF,wBAAwB,EAAE;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;KACtB,CAAC;CACL;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,GAAG,CAAC;QACV,UAAU,iBAAiB;YACvB,uBAAuB,EAAE,GAAG,CAAC;SAChC;KACJ;CACJ;AA+CD,QAAA,MAAM,uBAAuB;;;;;;CAIG,CAAC;AAEjC,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { extend } from "@react-three/fiber";
|
|
2
|
+
import { shaderMaterial } from "@react-three/drei";
|
|
3
|
+
import * as THREE from "three";
|
|
4
|
+
const vertexShader = /*glsl*/ `
|
|
5
|
+
varying vec3 vWorldNormal;
|
|
6
|
+
varying vec3 vWorldPosition;
|
|
7
|
+
|
|
8
|
+
void main() {
|
|
9
|
+
vWorldNormal = normalize(mat3(modelMatrix) * normal);
|
|
10
|
+
vec4 worldPos = modelMatrix * vec4(position, 1.0);
|
|
11
|
+
vWorldPosition = worldPos.xyz;
|
|
12
|
+
gl_Position = projectionMatrix * viewMatrix * worldPos;
|
|
13
|
+
}
|
|
14
|
+
`;
|
|
15
|
+
const fragmentShader = /*glsl*/ `
|
|
16
|
+
uniform vec3 uSunDirection;
|
|
17
|
+
uniform vec3 uAtmosphereDayColor;
|
|
18
|
+
uniform vec3 uAtmosphereTwilightColor;
|
|
19
|
+
|
|
20
|
+
varying vec3 vWorldNormal;
|
|
21
|
+
varying vec3 vWorldPosition;
|
|
22
|
+
|
|
23
|
+
float remap(float v, float inMin, float inMax, float outMin, float outMax) {
|
|
24
|
+
float t = clamp((v - inMin) / (inMax - inMin), 0.0, 1.0);
|
|
25
|
+
return mix(outMin, outMax, t);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
void main() {
|
|
29
|
+
vec3 normal = normalize(vWorldNormal);
|
|
30
|
+
vec3 sunDir = normalize(uSunDirection);
|
|
31
|
+
|
|
32
|
+
vec3 viewDir = normalize(vWorldPosition - cameraPosition);
|
|
33
|
+
float fresnel = 1.0 - abs(dot(viewDir, normal));
|
|
34
|
+
|
|
35
|
+
float sunOrientation = dot(normal, sunDir);
|
|
36
|
+
|
|
37
|
+
vec3 color = mix(
|
|
38
|
+
uAtmosphereTwilightColor,
|
|
39
|
+
uAtmosphereDayColor,
|
|
40
|
+
smoothstep(-0.25, 0.75, sunOrientation)
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
float alpha = pow(remap(fresnel, 0.73, 1.0, 1.0, 0.0), 3.0);
|
|
44
|
+
alpha *= smoothstep(-0.5, 1.0, sunOrientation);
|
|
45
|
+
|
|
46
|
+
gl_FragColor = vec4(color, alpha);
|
|
47
|
+
}
|
|
48
|
+
`;
|
|
49
|
+
const EarthAtmosphereMaterial = shaderMaterial({
|
|
50
|
+
uSunDirection: new THREE.Vector3(0, 0, 1),
|
|
51
|
+
uAtmosphereDayColor: new THREE.Color('#4db2ff'),
|
|
52
|
+
uAtmosphereTwilightColor: new THREE.Color('#bc490b'),
|
|
53
|
+
}, vertexShader, fragmentShader);
|
|
54
|
+
extend({ EarthAtmosphereMaterial });
|
|
55
|
+
export { EarthAtmosphereMaterial };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
export interface EarthMaterialUniforms {
|
|
3
|
+
uDayMap: {
|
|
4
|
+
value: THREE.Texture | null;
|
|
5
|
+
};
|
|
6
|
+
uNightMap: {
|
|
7
|
+
value: THREE.Texture | null;
|
|
8
|
+
};
|
|
9
|
+
uBumpRoughnessClouds: {
|
|
10
|
+
value: THREE.Texture | null;
|
|
11
|
+
};
|
|
12
|
+
uSunDirection: {
|
|
13
|
+
value: THREE.Vector3;
|
|
14
|
+
};
|
|
15
|
+
uAtmosphereDayColor: {
|
|
16
|
+
value: THREE.Color;
|
|
17
|
+
};
|
|
18
|
+
uAtmosphereTwilightColor: {
|
|
19
|
+
value: THREE.Color;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
declare global {
|
|
23
|
+
namespace JSX {
|
|
24
|
+
interface IntrinsicElements {
|
|
25
|
+
earthMaterial: any;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
declare const EarthMaterial: import("@react-three/fiber").ConstructorRepresentation<THREE.ShaderMaterial & {
|
|
30
|
+
uDayMap: any;
|
|
31
|
+
uNightMap: any;
|
|
32
|
+
uBumpRoughnessClouds: any;
|
|
33
|
+
uSunDirection: THREE.Vector3;
|
|
34
|
+
uAtmosphereDayColor: THREE.Color;
|
|
35
|
+
uAtmosphereTwilightColor: THREE.Color;
|
|
36
|
+
}> & {
|
|
37
|
+
key: string;
|
|
38
|
+
};
|
|
39
|
+
export { EarthMaterial };
|
|
40
|
+
//# sourceMappingURL=EarthMaterial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EarthMaterial.d.ts","sourceRoot":"","sources":["../../src/shaders/EarthMaterial.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE;QACL,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;KAC/B,CAAC;IACF,SAAS,EAAE;QACP,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;KAC/B,CAAC;IACF,oBAAoB,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;KAC/B,CAAC;IACF,aAAa,EAAE;QACX,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;KACxB,CAAC;IACF,mBAAmB,EAAE;QACjB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;KACtB,CAAC;IACF,wBAAwB,EAAE;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;KACtB,CAAC;CACL;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,GAAG,CAAC;QACV,UAAU,iBAAiB;YACvB,aAAa,EAAE,GAAG,CAAC;SACtB;KACJ;CACJ;AA0DD,QAAA,MAAM,aAAa;;;;;;;;;CAOa,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { extend } from "@react-three/fiber";
|
|
2
|
+
import { shaderMaterial } from "@react-three/drei";
|
|
3
|
+
import * as THREE from "three";
|
|
4
|
+
const vertexShader = /*glsl*/ `
|
|
5
|
+
varying vec2 vUv;
|
|
6
|
+
varying vec3 vWorldNormal;
|
|
7
|
+
varying vec3 vWorldPosition;
|
|
8
|
+
|
|
9
|
+
void main() {
|
|
10
|
+
vUv = uv;
|
|
11
|
+
vWorldNormal = normalize(mat3(modelMatrix) * normal);
|
|
12
|
+
vec4 worldPos = modelMatrix * vec4(position, 1.0);
|
|
13
|
+
vWorldPosition = worldPos.xyz;
|
|
14
|
+
gl_Position = projectionMatrix * viewMatrix * worldPos;
|
|
15
|
+
}
|
|
16
|
+
`;
|
|
17
|
+
const fragmentShader = /*glsl*/ `
|
|
18
|
+
uniform sampler2D uDayMap;
|
|
19
|
+
uniform sampler2D uNightMap;
|
|
20
|
+
uniform sampler2D uBumpRoughnessClouds;
|
|
21
|
+
uniform vec3 uSunDirection;
|
|
22
|
+
uniform vec3 uAtmosphereDayColor;
|
|
23
|
+
uniform vec3 uAtmosphereTwilightColor;
|
|
24
|
+
|
|
25
|
+
varying vec2 vUv;
|
|
26
|
+
varying vec3 vWorldNormal;
|
|
27
|
+
varying vec3 vWorldPosition;
|
|
28
|
+
|
|
29
|
+
void main() {
|
|
30
|
+
vec3 normal = normalize(vWorldNormal);
|
|
31
|
+
vec3 sunDir = normalize(uSunDirection);
|
|
32
|
+
|
|
33
|
+
vec3 dayTex = texture2D(uDayMap, vUv).rgb;
|
|
34
|
+
vec3 nightTex = texture2D(uNightMap, vUv).rgb;
|
|
35
|
+
vec3 brc = texture2D(uBumpRoughnessClouds, vUv).rgb;
|
|
36
|
+
|
|
37
|
+
float cloudsStrength = smoothstep(0.2, 1.0, brc.b);
|
|
38
|
+
vec3 dayColor = mix(dayTex, vec3(1.0), clamp(cloudsStrength * 2.0, 0.0, 1.0));
|
|
39
|
+
|
|
40
|
+
float sunOrientation = dot(normal, sunDir);
|
|
41
|
+
float dayStrength = smoothstep(-0.25, 0.5, sunOrientation);
|
|
42
|
+
|
|
43
|
+
vec3 viewDir = normalize(vWorldPosition - cameraPosition);
|
|
44
|
+
float fresnel = 1.0 - abs(dot(viewDir, normal));
|
|
45
|
+
|
|
46
|
+
vec3 atmosphereColor = mix(
|
|
47
|
+
uAtmosphereTwilightColor,
|
|
48
|
+
uAtmosphereDayColor,
|
|
49
|
+
smoothstep(-0.25, 0.75, sunOrientation)
|
|
50
|
+
);
|
|
51
|
+
float atmosphereDayStrength = smoothstep(-0.5, 1.0, sunOrientation);
|
|
52
|
+
float atmosphereMix = clamp(atmosphereDayStrength * pow(fresnel, 2.0), 0.0, 1.0);
|
|
53
|
+
|
|
54
|
+
vec3 finalColor = mix(nightTex, dayColor, dayStrength);
|
|
55
|
+
finalColor = mix(finalColor, atmosphereColor, atmosphereMix);
|
|
56
|
+
|
|
57
|
+
gl_FragColor = vec4(finalColor, 1.0);
|
|
58
|
+
}
|
|
59
|
+
`;
|
|
60
|
+
const EarthMaterial = shaderMaterial({
|
|
61
|
+
uDayMap: null,
|
|
62
|
+
uNightMap: null,
|
|
63
|
+
uBumpRoughnessClouds: null,
|
|
64
|
+
uSunDirection: new THREE.Vector3(0, 0, 1),
|
|
65
|
+
uAtmosphereDayColor: new THREE.Color('#4db2ff'),
|
|
66
|
+
uAtmosphereTwilightColor: new THREE.Color('#bc490b'),
|
|
67
|
+
}, vertexShader, fragmentShader);
|
|
68
|
+
extend({ EarthMaterial });
|
|
69
|
+
export { EarthMaterial };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
export interface FireUniforms {
|
|
3
|
+
u_time: number;
|
|
4
|
+
u_intensity: number;
|
|
5
|
+
u_speed: number;
|
|
6
|
+
u_turbulence: number;
|
|
7
|
+
u_sway: number;
|
|
8
|
+
u_radius: number;
|
|
9
|
+
u_height: number;
|
|
10
|
+
u_tint: THREE.Color;
|
|
11
|
+
}
|
|
12
|
+
export type FireMaterialImpl = THREE.ShaderMaterial & FireUniforms;
|
|
13
|
+
declare module '@react-three/fiber' {
|
|
14
|
+
interface ThreeElements {
|
|
15
|
+
fireMaterial: ThreeElements['shaderMaterial'] & Partial<FireUniforms>;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export declare const FireMaterial: import("@react-three/fiber").ConstructorRepresentation<THREE.ShaderMaterial & {
|
|
19
|
+
u_tint: THREE.Color;
|
|
20
|
+
u_time: number;
|
|
21
|
+
u_intensity: number;
|
|
22
|
+
u_speed: number;
|
|
23
|
+
u_turbulence: number;
|
|
24
|
+
u_sway: number;
|
|
25
|
+
u_radius: number;
|
|
26
|
+
u_height: number;
|
|
27
|
+
}> & {
|
|
28
|
+
key: string;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=FireMaterial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FireMaterial.d.ts","sourceRoot":"","sources":["../../src/shaders/FireMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC;AAEnE,OAAO,QAAQ,oBAAoB,CAAC;IAChC,UAAU,aAAa;QACnB,YAAY,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;KACzE;CACJ;AAgJD,eAAO,MAAM,YAAY;;;;;;;;;;;CAOvB,CAAC"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import { shaderMaterial } from '@react-three/drei';
|
|
3
|
+
import { extend } from '@react-three/fiber';
|
|
4
|
+
const defaults = {
|
|
5
|
+
u_time: 0,
|
|
6
|
+
u_intensity: 1.0,
|
|
7
|
+
u_speed: 1.0,
|
|
8
|
+
u_turbulence: 1.5,
|
|
9
|
+
u_sway: 1.0,
|
|
10
|
+
u_radius: 1.0,
|
|
11
|
+
u_height: 2.5,
|
|
12
|
+
u_tint: new THREE.Color(1, 1, 1),
|
|
13
|
+
};
|
|
14
|
+
const vertexShader = /*glsl*/ `
|
|
15
|
+
attribute vec3 a_offset;
|
|
16
|
+
attribute vec2 a_size;
|
|
17
|
+
attribute float a_seed;
|
|
18
|
+
|
|
19
|
+
uniform float u_radius;
|
|
20
|
+
uniform float u_height;
|
|
21
|
+
|
|
22
|
+
varying vec2 vUv;
|
|
23
|
+
varying float vSeed;
|
|
24
|
+
|
|
25
|
+
void main() {
|
|
26
|
+
// x in [-1,1], y in [0,1] — flame-space coordinates, geometry-size independent.
|
|
27
|
+
vUv = vec2(uv.x * 2.0 - 1.0, uv.y);
|
|
28
|
+
vSeed = a_seed;
|
|
29
|
+
|
|
30
|
+
// Cylindrical world-space billboard around this tongue's anchor.
|
|
31
|
+
vec3 center = (modelMatrix * vec4(a_offset, 1.0)).xyz;
|
|
32
|
+
vec3 camRight = vec3(viewMatrix[0][0], viewMatrix[1][0], viewMatrix[2][0]);
|
|
33
|
+
vec3 right = normalize(vec3(camRight.x, 0.0, camRight.z) + vec3(1e-5));
|
|
34
|
+
|
|
35
|
+
vec3 world = center
|
|
36
|
+
+ right * vUv.x * (a_size.x * u_radius)
|
|
37
|
+
+ vec3(0.0, 1.0, 0.0) * vUv.y * (a_size.y * u_height);
|
|
38
|
+
|
|
39
|
+
gl_Position = projectionMatrix * viewMatrix * vec4(world, 1.0);
|
|
40
|
+
}
|
|
41
|
+
`;
|
|
42
|
+
const fragmentShader = /*glsl*/ `
|
|
43
|
+
precision highp float;
|
|
44
|
+
|
|
45
|
+
uniform float u_time;
|
|
46
|
+
uniform float u_intensity;
|
|
47
|
+
uniform float u_speed;
|
|
48
|
+
uniform float u_turbulence;
|
|
49
|
+
uniform float u_sway;
|
|
50
|
+
uniform vec3 u_tint;
|
|
51
|
+
|
|
52
|
+
varying vec2 vUv;
|
|
53
|
+
varying float vSeed;
|
|
54
|
+
|
|
55
|
+
float hash(vec2 p) {
|
|
56
|
+
p = fract(p * vec2(123.34, 456.21));
|
|
57
|
+
p += dot(p, p + 45.32);
|
|
58
|
+
return fract(p.x * p.y);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
float vnoise(vec2 p) {
|
|
62
|
+
vec2 i = floor(p), f = fract(p);
|
|
63
|
+
vec2 u = f * f * (3.0 - 2.0 * f);
|
|
64
|
+
return mix(
|
|
65
|
+
mix(hash(i), hash(i + vec2(1.0, 0.0)), u.x),
|
|
66
|
+
mix(hash(i + vec2(0.0, 1.0)), hash(i + vec2(1.0, 1.0)), u.x),
|
|
67
|
+
u.y
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const mat2 ROT = mat2(0.8, 0.6, -0.6, 0.8);
|
|
72
|
+
|
|
73
|
+
float fbm(vec2 p) {
|
|
74
|
+
float s = 0.0, a = 0.5;
|
|
75
|
+
for (int i = 0; i < 5; i++) {
|
|
76
|
+
s += a * vnoise(p);
|
|
77
|
+
p = ROT * p * 2.03 + vec2(1.7);
|
|
78
|
+
a *= 0.5;
|
|
79
|
+
}
|
|
80
|
+
return s;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Blackbody-style temperature ramp.
|
|
84
|
+
vec3 blackbody(float t) {
|
|
85
|
+
t = clamp(t, 0.0, 1.0);
|
|
86
|
+
vec3 c = mix(vec3(0.015, 0.0, 0.0), vec3(0.85, 0.16, 0.01), smoothstep(0.00, 0.32, t));
|
|
87
|
+
c = mix(c, vec3(1.0, 0.55, 0.06), smoothstep(0.28, 0.62, t));
|
|
88
|
+
c = mix(c, vec3(1.0, 0.93, 0.55), smoothstep(0.58, 0.88, t));
|
|
89
|
+
c = mix(c, vec3(1.0, 1.0, 0.98), smoothstep(0.85, 1.00, t));
|
|
90
|
+
return c;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// One advected, domain-warped flame layer. Returns occupancy in [0,1].
|
|
94
|
+
float flameLayer(vec2 uv, float t, float widthMul, float speedMul, vec2 seed, out float nOut) {
|
|
95
|
+
vec2 p = vec2(uv.x * 2.4, uv.y * 3.2 - t * speedMul) + seed;
|
|
96
|
+
|
|
97
|
+
float q = fbm(p);
|
|
98
|
+
vec2 r = vec2(
|
|
99
|
+
fbm(p + q + vec2(1.7, 9.2) - t * 0.25),
|
|
100
|
+
fbm(p + q + vec2(8.3, 2.8) - t * 0.45)
|
|
101
|
+
);
|
|
102
|
+
float n = fbm(p + u_turbulence * r);
|
|
103
|
+
nOut = n;
|
|
104
|
+
|
|
105
|
+
// Tapered half-width and tip sway that grows with height.
|
|
106
|
+
float w = mix(0.46, 0.05, pow(uv.y, 1.35)) * widthMul;
|
|
107
|
+
float x = uv.x + (n - 0.5) * (0.25 + uv.y * 1.15) * u_sway;
|
|
108
|
+
|
|
109
|
+
float body = 1.0 - smoothstep(0.0, w, abs(x));
|
|
110
|
+
float env = smoothstep(-0.02, 0.12, uv.y)
|
|
111
|
+
* (1.0 - smoothstep(0.30, 0.98, uv.y - (n - 0.5) * 0.85));
|
|
112
|
+
|
|
113
|
+
return clamp(body * env, 0.0, 1.0);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
void main() {
|
|
117
|
+
vec2 uv = vUv;
|
|
118
|
+
|
|
119
|
+
// Decorrelate tongues: each gets its own phase, speed, and noise seed.
|
|
120
|
+
float t = u_time * u_speed * (0.85 + 0.30 * fract(vSeed * 0.137));
|
|
121
|
+
vec2 sd = vec2(fract(vSeed * 0.731) * 19.0, fract(vSeed * 0.317) * 23.0);
|
|
122
|
+
|
|
123
|
+
float nA, nB;
|
|
124
|
+
float outer = flameLayer(uv, t, 1.0, 2.0, sd, nA);
|
|
125
|
+
float core = flameLayer(vec2(uv.x, (uv.y - 0.02) * 1.25), t, 0.42, 2.6, sd + vec2(4.7, 1.3), nB);
|
|
126
|
+
|
|
127
|
+
// Temperature field
|
|
128
|
+
float T = pow(outer, 1.55) * (0.78 + 0.45 * nA);
|
|
129
|
+
T += pow(core, 1.8) * 0.85;
|
|
130
|
+
T *= u_intensity;
|
|
131
|
+
|
|
132
|
+
vec3 col = blackbody(T) * u_tint;
|
|
133
|
+
|
|
134
|
+
// Soft radiant halo around the body
|
|
135
|
+
float halo = (1.0 - smoothstep(0.0, 1.0, length(vec2(uv.x, (uv.y - 0.22) * 1.4)))) * 0.10;
|
|
136
|
+
col += vec3(0.55, 0.16, 0.02) * halo * u_intensity;
|
|
137
|
+
|
|
138
|
+
// Faint premixed-gas blue at the base
|
|
139
|
+
float blue = (1.0 - smoothstep(0.0, 0.16, uv.y)) * smoothstep(0.0, 0.25, outer);
|
|
140
|
+
col += vec3(0.10, 0.25, 0.90) * blue * 0.35 * u_intensity;
|
|
141
|
+
|
|
142
|
+
float alpha = clamp(T * 1.4 + halo, 0.0, 1.0);
|
|
143
|
+
gl_FragColor = vec4(col, alpha);
|
|
144
|
+
}
|
|
145
|
+
`;
|
|
146
|
+
export const FireMaterial = shaderMaterial({ ...defaults, u_tint: defaults.u_tint.clone() }, vertexShader, fragmentShader, (m) => {
|
|
147
|
+
if (!m)
|
|
148
|
+
return;
|
|
149
|
+
m.transparent = true;
|
|
150
|
+
m.blending = THREE.AdditiveBlending;
|
|
151
|
+
m.depthWrite = false;
|
|
152
|
+
m.side = THREE.DoubleSide;
|
|
153
|
+
});
|
|
154
|
+
extend({ FireMaterial });
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
export interface FireShellUniforms {
|
|
3
|
+
u_time: number;
|
|
4
|
+
u_intensity: number;
|
|
5
|
+
u_speed: number;
|
|
6
|
+
u_turbulence: number;
|
|
7
|
+
u_freq: number;
|
|
8
|
+
u_shell: number;
|
|
9
|
+
u_coverage: number;
|
|
10
|
+
u_baseY: number;
|
|
11
|
+
u_spanY: number;
|
|
12
|
+
u_tint: THREE.Color;
|
|
13
|
+
}
|
|
14
|
+
export type FireShellMaterialImpl = THREE.ShaderMaterial & FireShellUniforms;
|
|
15
|
+
declare module '@react-three/fiber' {
|
|
16
|
+
interface ThreeElements {
|
|
17
|
+
fireShellMaterial: ThreeElements['shaderMaterial'] & Partial<FireShellUniforms>;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export declare const FireShellMaterial: import("@react-three/fiber").ConstructorRepresentation<THREE.ShaderMaterial & {
|
|
21
|
+
u_tint: THREE.Color;
|
|
22
|
+
u_time: number;
|
|
23
|
+
u_intensity: number;
|
|
24
|
+
u_speed: number;
|
|
25
|
+
u_turbulence: number;
|
|
26
|
+
u_freq: number;
|
|
27
|
+
u_shell: number;
|
|
28
|
+
u_coverage: number;
|
|
29
|
+
u_baseY: number;
|
|
30
|
+
u_spanY: number;
|
|
31
|
+
}> & {
|
|
32
|
+
key: string;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=FireShellMaterial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FireShellMaterial.d.ts","sourceRoot":"","sources":["../../src/shaders/FireShellMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;CACvB;AAED,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,cAAc,GAAG,iBAAiB,CAAC;AAE7E,OAAO,QAAQ,oBAAoB,CAAC;IAChC,UAAU,aAAa;QACnB,iBAAiB,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;KACnF;CACJ;AA+HD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAO5B,CAAC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import { shaderMaterial } from '@react-three/drei';
|
|
3
|
+
import { extend } from '@react-three/fiber';
|
|
4
|
+
const defaults = {
|
|
5
|
+
u_time: 0,
|
|
6
|
+
u_intensity: 1.0,
|
|
7
|
+
u_speed: 1.0,
|
|
8
|
+
u_turbulence: 1.5,
|
|
9
|
+
u_freq: 2.2,
|
|
10
|
+
u_shell: 0.05,
|
|
11
|
+
u_coverage: 0.8,
|
|
12
|
+
u_baseY: 0,
|
|
13
|
+
u_spanY: 1,
|
|
14
|
+
u_tint: new THREE.Color(1, 1, 1),
|
|
15
|
+
};
|
|
16
|
+
const vertexShader = /*glsl*/ `
|
|
17
|
+
uniform float u_time;
|
|
18
|
+
uniform float u_speed;
|
|
19
|
+
uniform float u_shell;
|
|
20
|
+
|
|
21
|
+
varying vec3 vWorldPos;
|
|
22
|
+
varying vec3 vWorldNormal;
|
|
23
|
+
varying float vWobble;
|
|
24
|
+
|
|
25
|
+
void main() {
|
|
26
|
+
vec3 wn = normalize(mat3(modelMatrix) * normal);
|
|
27
|
+
vec4 wp = modelMatrix * vec4(position, 1.0);
|
|
28
|
+
|
|
29
|
+
// Low-frequency lick: the shell breathes and drags upward.
|
|
30
|
+
float wob = 0.5 + 0.5 * sin(wp.y * 3.1 + u_time * u_speed * 4.0 + wp.x * 2.3 + wp.z * 1.7);
|
|
31
|
+
|
|
32
|
+
vec3 displaced = wp.xyz
|
|
33
|
+
+ wn * u_shell * (0.7 + 0.6 * wob) // inflate along normal
|
|
34
|
+
+ vec3(0.0, u_shell * 1.6 * wob, 0.0); // convective upward drag
|
|
35
|
+
|
|
36
|
+
vWorldPos = displaced;
|
|
37
|
+
vWorldNormal = wn;
|
|
38
|
+
vWobble = wob;
|
|
39
|
+
|
|
40
|
+
gl_Position = projectionMatrix * viewMatrix * vec4(displaced, 1.0);
|
|
41
|
+
}
|
|
42
|
+
`;
|
|
43
|
+
const fragmentShader = /*glsl*/ `
|
|
44
|
+
precision highp float;
|
|
45
|
+
|
|
46
|
+
uniform float u_time;
|
|
47
|
+
uniform float u_intensity;
|
|
48
|
+
uniform float u_speed;
|
|
49
|
+
uniform float u_turbulence;
|
|
50
|
+
uniform float u_freq;
|
|
51
|
+
uniform float u_coverage;
|
|
52
|
+
uniform float u_baseY;
|
|
53
|
+
uniform float u_spanY;
|
|
54
|
+
uniform vec3 u_tint;
|
|
55
|
+
|
|
56
|
+
varying vec3 vWorldPos;
|
|
57
|
+
varying vec3 vWorldNormal;
|
|
58
|
+
varying float vWobble;
|
|
59
|
+
|
|
60
|
+
float hash3(vec3 p) {
|
|
61
|
+
p = fract(p * 0.3183099 + vec3(0.1, 0.17, 0.13));
|
|
62
|
+
p *= 17.0;
|
|
63
|
+
return fract(p.x * p.y * p.z * (p.x + p.y + p.z));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
float noise3(vec3 p) {
|
|
67
|
+
vec3 i = floor(p), f = fract(p);
|
|
68
|
+
vec3 u = f * f * (3.0 - 2.0 * f);
|
|
69
|
+
return mix(
|
|
70
|
+
mix(mix(hash3(i + vec3(0,0,0)), hash3(i + vec3(1,0,0)), u.x),
|
|
71
|
+
mix(hash3(i + vec3(0,1,0)), hash3(i + vec3(1,1,0)), u.x), u.y),
|
|
72
|
+
mix(mix(hash3(i + vec3(0,0,1)), hash3(i + vec3(1,0,1)), u.x),
|
|
73
|
+
mix(hash3(i + vec3(0,1,1)), hash3(i + vec3(1,1,1)), u.x), u.y),
|
|
74
|
+
u.z
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
float fbm3(vec3 p) {
|
|
79
|
+
float s = 0.0, a = 0.5;
|
|
80
|
+
for (int i = 0; i < 4; i++) {
|
|
81
|
+
s += a * noise3(p);
|
|
82
|
+
p = p * 2.04 + vec3(1.7);
|
|
83
|
+
a *= 0.5;
|
|
84
|
+
}
|
|
85
|
+
return s;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
vec3 blackbody(float t) {
|
|
89
|
+
t = clamp(t, 0.0, 1.0);
|
|
90
|
+
vec3 c = mix(vec3(0.015, 0.0, 0.0), vec3(0.85, 0.16, 0.01), smoothstep(0.00, 0.32, t));
|
|
91
|
+
c = mix(c, vec3(1.0, 0.55, 0.06), smoothstep(0.28, 0.62, t));
|
|
92
|
+
c = mix(c, vec3(1.0, 0.93, 0.55), smoothstep(0.58, 0.88, t));
|
|
93
|
+
c = mix(c, vec3(1.0, 1.0, 0.98), smoothstep(0.85, 1.00, t));
|
|
94
|
+
return c;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
void main() {
|
|
98
|
+
// Rising, domain-warped temperature field in world space.
|
|
99
|
+
vec3 p = vWorldPos * u_freq;
|
|
100
|
+
p.y -= u_time * u_speed * 1.6;
|
|
101
|
+
float q = fbm3(p);
|
|
102
|
+
float n = fbm3(p + u_turbulence * vec3(q, q * 0.7, q));
|
|
103
|
+
|
|
104
|
+
// Fresnel: flames live on the silhouette → reads as a volume.
|
|
105
|
+
vec3 V = normalize(cameraPosition - vWorldPos);
|
|
106
|
+
float fres = pow(1.0 - abs(dot(V, normalize(vWorldNormal))), 1.5);
|
|
107
|
+
|
|
108
|
+
// Top-down coverage gate, eaten by noise so the burn line is ragged.
|
|
109
|
+
float hNorm = clamp((vWorldPos.y - u_baseY) / u_spanY, 0.0, 1.0);
|
|
110
|
+
float gate = smoothstep(
|
|
111
|
+
1.0 - u_coverage - 0.25,
|
|
112
|
+
1.0 - u_coverage + 0.25,
|
|
113
|
+
hNorm + (n - 0.5) * 0.7
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
float T = n * (0.35 + 0.65 * fres) * gate;
|
|
117
|
+
T = pow(clamp(T * 1.6, 0.0, 1.0), 1.7);
|
|
118
|
+
T *= u_intensity * (0.8 + 0.4 * vWobble);
|
|
119
|
+
|
|
120
|
+
vec3 col = blackbody(T) * u_tint;
|
|
121
|
+
|
|
122
|
+
// Faint ember glow on the burning region even where flames are thin.
|
|
123
|
+
col += vec3(0.5, 0.08, 0.0) * gate * fres * 0.18 * u_intensity;
|
|
124
|
+
|
|
125
|
+
float alpha = clamp(T * 1.5 + gate * fres * 0.12, 0.0, 1.0);
|
|
126
|
+
gl_FragColor = vec4(col, alpha);
|
|
127
|
+
}
|
|
128
|
+
`;
|
|
129
|
+
export const FireShellMaterial = shaderMaterial({ ...defaults, u_tint: defaults.u_tint.clone() }, vertexShader, fragmentShader, (m) => {
|
|
130
|
+
if (!m)
|
|
131
|
+
return;
|
|
132
|
+
m.transparent = true;
|
|
133
|
+
m.blending = THREE.AdditiveBlending;
|
|
134
|
+
m.depthWrite = false;
|
|
135
|
+
m.side = THREE.FrontSide;
|
|
136
|
+
});
|
|
137
|
+
extend({ FireShellMaterial });
|