@anov/3d-ability 0.0.139 → 0.0.141
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/business/Animation/motion/index.js +35 -56
- package/dist/business/Animation/motion/index.js.map +1 -1
- package/dist/business/Animation/type.js +2 -2
- package/dist/business/Area/Fence/FenceBase.js +146 -187
- package/dist/business/Area/Fence/FenceBase.js.map +1 -1
- package/dist/business/Area/Fence/fence_base_01.js +120 -112
- package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_feeting_01.js +218 -130
- package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_roll_01.js +140 -130
- package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
- package/dist/business/Area/FillArea/FillAreaBase.js +87 -126
- package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
- package/dist/business/Area/FillArea/fillArea_face_01.js +72 -98
- package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
- package/dist/business/Area/FillArea/fillArea_line_01.js +66 -94
- package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
- package/dist/business/Area/index.js +267 -483
- package/dist/business/Area/index.js.map +1 -1
- package/dist/business/Area/tool.js +14 -26
- package/dist/business/Area/tool.js.map +1 -1
- package/dist/business/Base/ObjectLayer.js +21 -46
- package/dist/business/Base/ObjectLayer.js.map +1 -1
- package/dist/business/Batch/index.js +189 -234
- package/dist/business/Batch/index.js.map +1 -1
- package/dist/business/Box/index.js +52 -81
- package/dist/business/Box/index.js.map +1 -1
- package/dist/business/Cylinder/index.js +51 -79
- package/dist/business/Cylinder/index.js.map +1 -1
- package/dist/business/Flyline/bubble/CircleBubble.js +1 -9
- package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
- package/dist/business/Flyline/bubble/index.js +7 -21
- package/dist/business/Flyline/bubble/index.js.map +1 -1
- package/dist/business/Flyline/index.js +96 -162
- package/dist/business/Flyline/index.js.map +1 -1
- package/dist/business/Flyline/line/ArcLine.js +208 -291
- package/dist/business/Flyline/line/ArcLine.js.map +1 -1
- package/dist/business/Flyline/line/index.js +8 -22
- package/dist/business/Flyline/line/index.js.map +1 -1
- package/dist/business/HeatMap/HeatMap.js +380 -467
- package/dist/business/HeatMap/HeatMap.js.map +1 -1
- package/dist/business/HeatMap/core.js +405 -525
- package/dist/business/HeatMap/core.js.map +1 -1
- package/dist/business/HeatMap/shader.js +69 -3
- package/dist/business/HeatMap/shader.js.map +1 -1
- package/dist/business/InfoPanel/index.js +201 -242
- package/dist/business/InfoPanel/index.js.map +1 -1
- package/dist/business/Line/index.js +55 -88
- package/dist/business/Line/index.js.map +1 -1
- package/dist/business/Mark/KeyframeAnimation.js +145 -176
- package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
- package/dist/business/Mark/index.js +196 -294
- package/dist/business/Mark/index.js.map +1 -1
- package/dist/business/Mark/shader/tanhao.js +36 -3
- package/dist/business/Mark/shader/tanhao.js.map +1 -1
- package/dist/business/Mark/type.js +1 -1
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +377 -551
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
- package/dist/business/MaterialSwitch/inject.js +92 -58
- package/dist/business/MaterialSwitch/inject.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/finalFade.js +74 -2
- package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/ground.js +95 -16
- package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/groundBase64.js +9 -3
- package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.js +48 -9
- package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
- package/dist/business/Plane/index.js +51 -78
- package/dist/business/Plane/index.js.map +1 -1
- package/dist/business/Poi/index.d.ts +5 -0
- package/dist/business/Poi/index.js +256 -295
- package/dist/business/Poi/index.js.map +1 -1
- package/dist/business/Poi/link/Cylinder.js +56 -89
- package/dist/business/Poi/link/Cylinder.js.map +1 -1
- package/dist/business/Poi/link/Pyramid.js +104 -165
- package/dist/business/Poi/link/Pyramid.js.map +1 -1
- package/dist/business/Poi/link/index.d.ts +1 -1
- package/dist/business/Poi/link/index.js +54 -114
- package/dist/business/Poi/link/index.js.map +1 -1
- package/dist/business/Poi/panel/index.d.ts +124 -0
- package/dist/business/Poi/panel/index.js +474 -0
- package/dist/business/Poi/panel/index.js.map +1 -0
- package/dist/business/Poi/panel/interfaces.d.ts +67 -0
- package/dist/business/Poi/panel/interfaces.js +2 -0
- package/dist/business/Poi/panel/interfaces.js.map +1 -0
- package/dist/business/Poi/panel/utils.d.ts +72 -0
- package/dist/business/Poi/panel/utils.js +126 -0
- package/dist/business/Poi/panel/utils.js.map +1 -0
- package/dist/business/Poi/particle/DoubleCircle.js +71 -107
- package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
- package/dist/business/Poi/particle/DynamicCircle.js +75 -111
- package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
- package/dist/business/Poi/particle/SingleCircle.js +62 -98
- package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
- package/dist/business/Poi/particle/index.js +49 -117
- package/dist/business/Poi/particle/index.js.map +1 -1
- package/dist/business/Poi/shader/circle.js +31 -3
- package/dist/business/Poi/shader/circle.js.map +1 -1
- package/dist/business/Poi/shader/cylinder.js +37 -3
- package/dist/business/Poi/shader/cylinder.js.map +1 -1
- package/dist/business/Poi/shader/doubleCircle.js +55 -3
- package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
- package/dist/business/Poi/shader/dynamicCircle.js +67 -3
- package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
- package/dist/business/Poi/title/Border.js +7 -27
- package/dist/business/Poi/title/Border.js.map +1 -1
- package/dist/business/Poi/title/Ellipse.js +7 -27
- package/dist/business/Poi/title/Ellipse.js.map +1 -1
- package/dist/business/Poi/title/index.js +208 -292
- package/dist/business/Poi/title/index.js.map +1 -1
- package/dist/business/Poi/tools.js +22 -19
- package/dist/business/Poi/tools.js.map +1 -1
- package/dist/business/Poi/types.d.ts +3 -0
- package/dist/business/Poi/types.js.map +1 -1
- package/dist/business/Sphere/index.js +47 -72
- package/dist/business/Sphere/index.js.map +1 -1
- package/dist/business/Spline/index.js +190 -245
- package/dist/business/Spline/index.js.map +1 -1
- package/dist/business/SplitBuilding/index.js +327 -536
- package/dist/business/SplitBuilding/index.js.map +1 -1
- package/dist/business/SplitBuilding/type.js +2 -2
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +218 -275
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +132 -177
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +51 -1
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +6 -1
- package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
- package/dist/business/TrafficComponents/base.js +32 -55
- package/dist/business/TrafficComponents/base.js.map +1 -1
- package/dist/business/TrafficComponents/utils.js +25 -24
- package/dist/business/TrafficComponents/utils.js.map +1 -1
- package/dist/business/Utils/Curve.js +40 -56
- package/dist/business/Utils/Curve.js.map +1 -1
- package/dist/business/Utils/constant.js +1 -1
- package/dist/business/Utils/constant.js.map +1 -1
- package/dist/business/Utils/defineProps.js +13 -14
- package/dist/business/Utils/defineProps.js.map +1 -1
- package/dist/business/Utils/round-curve.js +127 -153
- package/dist/business/Utils/round-curve.js.map +1 -1
- package/dist/business/VideoPanel/index.js +258 -319
- package/dist/business/VideoPanel/index.js.map +1 -1
- package/dist/business/Water/index.js +78 -108
- package/dist/business/Water/index.js.map +1 -1
- package/dist/business/Water/types.js +1 -1
- package/dist/business/Water/types.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +383 -449
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +107 -142
- package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
- package/dist/core/Controls/FirstViewControl/index.js +84 -96
- package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/action/input.js +77 -98
- package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
- package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/index.js +19 -28
- package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/animation.js +126 -155
- package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/camera.js +47 -63
- package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/control.js +39 -49
- package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player.js +66 -91
- package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
- package/dist/core/Controls/base.js +14 -30
- package/dist/core/Controls/base.js.map +1 -1
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +92 -131
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
- package/dist/core/Debug/PerformanceInfo/Performance.js +22 -47
- package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
- package/dist/core/Light/PointLight/PointLightExt.js +4 -21
- package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
- package/dist/core/Material/FinirMaterial/FinirMaterial.js +37 -57
- package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +116 -153
- package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/shader/fragment.js +95 -1
- package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/shader/vertex.js +26 -1
- package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
- package/dist/core/Material/SurfaceMaterial/index.js +76 -172
- package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
- package/dist/core/Material/decorators.js +6 -11
- package/dist/core/Material/decorators.js.map +1 -1
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +16 -12
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
- package/dist/core/PostEffects/addBrightnessContrastPass.js +17 -13
- package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
- package/dist/core/PostEffects/bloomPass.js +17 -10
- package/dist/core/PostEffects/bloomPass.js.map +1 -1
- package/dist/core/PostEffects/bloomSelect.js +60 -43
- package/dist/core/PostEffects/bloomSelect.js.map +1 -1
- package/dist/core/PostEffects/colorifyPass.js +17 -13
- package/dist/core/PostEffects/colorifyPass.js.map +1 -1
- package/dist/core/PostEffects/index.js +28 -22
- package/dist/core/PostEffects/index.js.map +1 -1
- package/dist/core/PostEffects/outlinePass.js +37 -50
- package/dist/core/PostEffects/outlinePass.js.map +1 -1
- package/dist/core/PostEffects/postprocessing.js +14 -12
- package/dist/core/PostEffects/postprocessing.js.map +1 -1
- package/dist/core/PostEffects/saoPass.js +15 -10
- package/dist/core/PostEffects/saoPass.js.map +1 -1
- package/dist/core/PostEffects/shader/colorify.js +22 -3
- package/dist/core/PostEffects/shader/colorify.js.map +1 -1
- package/dist/core/PostEffects/shader/gammaCorrectionShader.js +27 -3
- package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
- package/dist/core/PostEffects/shader/mapping.js +66 -3
- package/dist/core/PostEffects/shader/mapping.js.map +1 -1
- package/dist/core/PostEffects/shader/thermalMaging.js +28 -3
- package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
- package/dist/core/SceneEffect/grow/grow.js +85 -101
- package/dist/core/SceneEffect/grow/grow.js.map +1 -1
- package/dist/core/SceneEffect/grow/style_down.js +60 -77
- package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
- package/dist/core/SceneEffect/grow/style_up.js +64 -81
- package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
- package/dist/core/SceneEffect/grow/type.js +2 -2
- package/dist/core/SceneEffect/grow/type.js.map +1 -1
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js +51 -76
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
- package/dist/core/WeatherSystem/hdr/index.js +69 -105
- package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
- package/dist/core/WeatherSystem/index.js +77 -124
- package/dist/core/WeatherSystem/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/fog/index.js +52 -80
- package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/index.js +72 -84
- package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/lineRain.js +88 -118
- package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/plane.js +116 -146
- package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/point.js +100 -148
- package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/cloud.js +71 -104
- package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/index.js +66 -84
- package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/outline.js +25 -45
- package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/cloud.js +74 -3
- package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/fog.js +103 -3
- package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/rain.js +206 -7
- package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/sky.js +87 -3
- package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
- package/dist/core/WeatherSystem/sky/index.js +104 -135
- package/dist/core/WeatherSystem/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/utils/constant.js +44 -38
- package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
- package/dist/core/WeatherSystem/utils/math.js +18 -25
- package/dist/core/WeatherSystem/utils/math.js.map +1 -1
- package/dist/core/WeatherSystem/utils/type.js +1 -1
- package/dist/core/WeatherSystem/utils/type.js.map +1 -1
- package/dist/core/WeatherSystem/weather/index.js +96 -141
- package/dist/core/WeatherSystem/weather/index.js.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AdditiveBlending","Color","MeshStandardMaterial","ShaderMaterial","frag","frag_pre","ver","ver_pre","fragFinal","verFinal","ground","SwitchType","finirColor","lowFinirColor","heightTransitionEffect","injectBaseFinir","shader","power","arguments","length","undefined","color","fragmentShader","uniforms","rimColor","value","rimPower","concat","replace","modifyTheMaterial","material","baseOption","shaderOption","transparent","depthTest","depthWrite","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","_baseOption$alphaTest","alphaTest","blending","vertexShader","preVertexShader","preFragmentShader","callback","onBeforeCompile","_objectSpread","needsUpdate","conversionRealFade","type","newMaterial","clone","progress","objSize","maxSize","center","isFadeIn","injectToFrameFade","object","traverse","child","isMesh","userData","originalMaterial","Frame","side","addOpacity","isFrameFadeIn","injectToRealFade","isRealFadeIn","injectToBaseWrite","Pure","isPureFadeIn","injectToFinirMaterial","Fresnel","isFresnelFadeIn","injectToGround","time","isApi","inject","isSweepAway","u_interval","u_slice_height","u_height","height","finirheightTransitionEffect","u_time","u_speed","finirlowEffect"],"sources":["../../../src/business/MaterialSwitch/inject.ts"],"sourcesContent":["import { AdditiveBlending, Color, MeshStandardMaterial, ShaderMaterial, use } from '@anov/3d-core'\nimport type { Material, Mesh, Object3D, Vector3 } from '@anov/3d-core'\nimport { frag, frag_pre, ver, ver_pre } from './shader/realFade'\nimport { frag as fragFinal, ver as verFinal } from './shader/finalFade'\nimport { ground } from './shader/ground'\nimport { SwitchType } from './MaterialSwitchSystem'\n\nconst finirColor = new Color('#2A78D9')\nconst lowFinirColor = new Color('#15407A') // 矮楼finir\n\nconst heightTransitionEffect = /* glsl */`\n float normalDotY = abs(dot(normal, vec3(0.0, 1.0, 0.0)));\n\n if (normalDotY < 0.8) {\n float interval = u_interval;\n float slice_height = u_slice_height;\n float y_pos = vWorldPosition.y + u_height;\n float section = floor(y_pos / interval);\n float section_start = section * interval;\n\n if (y_pos >= section_start && y_pos < section_start + slice_height) {\n float heightDelta = (y_pos - section_start) / slice_height; // 归一化高度 0-1\n vec4 sliceColor = vec4(0.0, 0.2, 0.5, 1.0);\n float mixFactor = smoothstep(0.0, 1.0, heightDelta);\n gl_FragColor = mix(sliceColor, gl_FragColor, mixFactor);\n }\n }\n `\n\nconst injectBaseFinir = (shader, power = 0.7, color = finirColor, fragmentShader = '') => {\n shader.uniforms.rimColor = { value: color }\n shader.uniforms.rimPower = { value: power }\n\n shader.fragmentShader = /* glsl */`\n uniform vec3 rimColor;\n uniform float rimPower;\n uniform float u_height;\n uniform float u_interval;\n uniform float u_slice_height;\n varying vec3 vViewDirection;\n ${shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n `\n #include <dithering_fragment>\n vec3 viewDir = normalize(vViewDirection);\n float dotNV = 1.0-saturate( dot( normal, viewDir ) );\n gl_FragColor.rgb += rimPower*dotNV*rimColor; \n ${fragmentShader}`,\n )}\n `\n}\n\ntype BaseOption = {\n transparent: boolean\n depthTest: boolean\n depthWrite: boolean\n polygonOffset: boolean\n polygonOffsetFactor: number\n polygonOffsetUnits: number\n alphaTest: number\n blending?: number\n}\n\ntype ShaderOption = {\n uniforms: Record<string, { value: any }>\n vertexShader: string\n fragmentShader: string\n preVertexShader: string\n preFragmentShader: string\n callback?: (shader: ShaderMaterial) => void\n}\n\nconst modifyTheMaterial = (material, baseOption: BaseOption, shaderOption: ShaderOption) => {\n const { transparent, depthTest, depthWrite, polygonOffset, polygonOffsetFactor, polygonOffsetUnits, alphaTest = 0.05, blending } = baseOption\n const { uniforms, vertexShader, fragmentShader, preVertexShader, preFragmentShader, callback } = shaderOption\n\n material.transparent = transparent\n material.depthTest = depthTest\n material.depthWrite = depthWrite\n material.polygonOffset = polygonOffset\n material.polygonOffsetFactor = polygonOffsetFactor\n material.polygonOffsetUnits = polygonOffsetUnits\n material.alphaTest = alphaTest\n blending && (material.blending = blending)\n\n material.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n ...uniforms,\n }\n\n shader.vertexShader = preVertexShader + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', vertexShader,\n )\n shader.fragmentShader = preFragmentShader + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', fragmentShader,\n )\n\n callback && callback(shader)\n }\n\n material.needsUpdate = true\n}\n\nconst conversionRealFade = (material: Material, type: 'Fresnel' | 'Frame' | 'Pure', uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isRealFadeIn: { value: boolean } }) => {\n const newMaterial = material.clone()\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 1,\n polygonOffsetUnits: 1,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n center: uniforms.center,\n isFadeIn: uniforms[`is${type}FadeIn`],\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n })\n\n return newMaterial\n}\n\n/**\n * inject to final fade\n * @param object\n * @param maxSize\n * @param uniforms\n */\nexport const injectToFrameFade = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFrameFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n child.material = child.material.clone();\n (child as Mesh).userData.originalMaterial = conversionRealFade(child.material, SwitchType.Frame, uniforms as any)\n child.material.side = 2\n child.material.transparent = true\n child.material.depthTest = true\n child.material.depthWrite = true\n child.material.blending = AdditiveBlending\n child.material.polygonOffset = true\n child.material.polygonOffsetFactor = 0\n child.material.polygonOffsetUnits = 0\n child.material.alphaTest = 0.35\n\n child.material.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n center: uniforms.center,\n addOpacity: { value: 0.7 },\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFrameFadeIn,\n }\n shader.vertexShader = verFinal\n shader.fragmentShader = fragFinal\n }\n\n child.material.needsUpdate = true\n }\n })\n}\n\n/**\n * inject to real fade\n * @param object\n * @param uniforms\n */\nexport const injectToRealFade = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isRealFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n (child as Mesh).userData.originalMaterial = child.material\n const newMaterial = child.material.clone()\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 1,\n polygonOffsetUnits: 1,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isRealFadeIn,\n center: uniforms.center,\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n })\n\n child.material = newMaterial\n }\n })\n}\n\n/**\n * inject to base write\n * @param object\n * @param uniforms\n */\nexport const injectToBaseWrite = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isPureFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n let newMaterial = child.material.clone();\n (child as Mesh).userData.originalMaterial = conversionRealFade(child.material, SwitchType.Pure, uniforms as any)\n newMaterial = new MeshStandardMaterial({ color: new Color('#fff') })\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 2,\n polygonOffsetUnits: 2,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isPureFadeIn,\n center: uniforms.center,\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n callback: (shader) => {\n injectBaseFinir(shader, 0.3, new Color('#fff'))\n },\n })\n\n child.material = newMaterial\n }\n })\n}\n\n/**\n * inject to finir material\n * @param object\n * @param uniforms\n */\nexport const injectToFinirMaterial = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFresnelFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n let newMaterial = child.material.clone();\n (child as Mesh).userData.originalMaterial = conversionRealFade(child.material, SwitchType.Fresnel, uniforms as any)\n newMaterial = new MeshStandardMaterial({ color: new Color('#000') })\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 3,\n polygonOffsetUnits: 3,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFresnelFadeIn,\n center: uniforms.center,\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n callback: (shader) => {\n injectBaseFinir(shader)\n },\n })\n\n child.material = newMaterial\n }\n })\n}\n\nexport const injectToGround = (\n object: Mesh,\n type: 'Real' | 'Fresnel' | 'Frame' | 'Pure',\n uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; time: { value: number }; isApi: { value: boolean } },\n) => {\n object.material = new ShaderMaterial({\n uniforms: {\n ...ground.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms[`is${type}FadeIn`],\n center: uniforms.center,\n time: uniforms.time,\n isApi: uniforms.isApi,\n },\n vertexShader: ground.vertexShader,\n fragmentShader: ground.fragmentShader,\n transparent: true,\n side: 2,\n depthTest: true,\n depthWrite: false,\n polygonOffset: true,\n polygonOffsetFactor: 5,\n polygonOffsetUnits: 5,\n alphaTest: 0.05,\n })\n\n object.material.needsUpdate = true\n}\n\nexport const inject = (\n material: Material,\n type: 'Fresnel' | 'Frame' | 'Pure',\n uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; height: { value: number } },\n isSweepAway = false,\n) => {\n material.transparent = true\n material.depthTest = true\n material.depthWrite = true\n material.alphaTest = 0.05\n\n material.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms[`is${type}FadeIn`],\n center: uniforms.center,\n u_interval: { value: 100.0 },\n u_slice_height: { value: 80.0 },\n }\n\n shader.vertexShader = ver_pre + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', ver,\n )\n shader.fragmentShader = frag_pre + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', frag,\n )\n\n shader.uniforms.u_height = uniforms.height\n\n shader.fragmentShader = /* glsl */`\n uniform float u_height;\n uniform float u_interval;\n uniform float u_slice_height;\n \n ${shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n '#include <dithering_fragment>\\n\\t'\n + `${isSweepAway ? heightTransitionEffect : ''}`,\n )}\n `\n }\n\n material.needsUpdate = true\n\n return material\n}\n\nexport const finirheightTransitionEffect = (material: Material, uniforms: { height: { value: number }; maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFresnelFadeIn: { value: boolean } }) => {\n const newMaterial = material.clone()\n newMaterial.transparent = true\n newMaterial.depthTest = true\n newMaterial.depthWrite = true\n newMaterial.polygonOffset = true\n newMaterial.polygonOffsetFactor = 3\n newMaterial.polygonOffsetUnits = 3\n newMaterial.alphaTest = 0.05\n\n newMaterial.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFresnelFadeIn,\n center: uniforms.center,\n u_interval: { value: 100.0 },\n u_slice_height: { value: 80.0 },\n u_time: { value: 0 },\n u_speed: { value: 0.5 },\n }\n\n shader.vertexShader = ver_pre + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', ver,\n )\n shader.fragmentShader = frag_pre + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', frag,\n )\n\n shader.uniforms.u_height = uniforms.height\n\n injectBaseFinir(shader, 0.7, finirColor, heightTransitionEffect)\n }\n\n newMaterial.needsUpdate = true\n\n return newMaterial\n}\n\nexport const finirlowEffect = (material: Material, uniforms: { height: { value: number }; maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFresnelFadeIn: { value: boolean } }) => {\n const newMaterial = material.clone()\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 3,\n polygonOffsetUnits: 3,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFresnelFadeIn,\n center: uniforms.center,\n u_interval: { value: 100.0 },\n u_slice_height: { value: 80.0 },\n u_time: { value: 0 },\n u_speed: { value: 0.5 },\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n callback: (shader) => {\n injectBaseFinir(shader, 0.7, lowFinirColor)\n },\n })\n\n return newMaterial\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["AdditiveBlending","Color","MeshStandardMaterial","ShaderMaterial","frag","frag_pre","ver","ver_pre","fragFinal","verFinal","ground","SwitchType","finirColor","lowFinirColor","heightTransitionEffect","injectBaseFinir","shader","power","color","fragmentShader","uniforms","rimColor","value","rimPower","replace","modifyTheMaterial","material","baseOption","shaderOption","transparent","depthTest","depthWrite","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","alphaTest","blending","vertexShader","preVertexShader","preFragmentShader","callback","onBeforeCompile","_objectSpread","needsUpdate","conversionRealFade","type","newMaterial","clone","progress","objSize","maxSize","center","isFadeIn","injectToFrameFade","object","traverse","child","isMesh","userData","originalMaterial","Frame","side","addOpacity","isFrameFadeIn","injectToRealFade","isRealFadeIn","injectToBaseWrite","Pure","isPureFadeIn","injectToFinirMaterial","Fresnel","isFresnelFadeIn","injectToGround","time","isApi","inject","isSweepAway","u_interval","u_slice_height","u_height","height","finirheightTransitionEffect","u_time","u_speed","finirlowEffect"],"sources":["../../../src/business/MaterialSwitch/inject.ts"],"sourcesContent":["import { AdditiveBlending, Color, MeshStandardMaterial, ShaderMaterial, use } from '@anov/3d-core'\nimport type { Material, Mesh, Object3D, Vector3 } from '@anov/3d-core'\nimport { frag, frag_pre, ver, ver_pre } from './shader/realFade'\nimport { frag as fragFinal, ver as verFinal } from './shader/finalFade'\nimport { ground } from './shader/ground'\nimport { SwitchType } from './MaterialSwitchSystem'\n\nconst finirColor = new Color('#2A78D9')\nconst lowFinirColor = new Color('#15407A') // 矮楼finir\n\nconst heightTransitionEffect = /* glsl */`\n float normalDotY = abs(dot(normal, vec3(0.0, 1.0, 0.0)));\n\n if (normalDotY < 0.8) {\n float interval = u_interval;\n float slice_height = u_slice_height;\n float y_pos = vWorldPosition.y + u_height;\n float section = floor(y_pos / interval);\n float section_start = section * interval;\n\n if (y_pos >= section_start && y_pos < section_start + slice_height) {\n float heightDelta = (y_pos - section_start) / slice_height; // 归一化高度 0-1\n vec4 sliceColor = vec4(0.0, 0.2, 0.5, 1.0);\n float mixFactor = smoothstep(0.0, 1.0, heightDelta);\n gl_FragColor = mix(sliceColor, gl_FragColor, mixFactor);\n }\n }\n `\n\nconst injectBaseFinir = (shader, power = 0.7, color = finirColor, fragmentShader = '') => {\n shader.uniforms.rimColor = { value: color }\n shader.uniforms.rimPower = { value: power }\n\n shader.fragmentShader = /* glsl */`\n uniform vec3 rimColor;\n uniform float rimPower;\n uniform float u_height;\n uniform float u_interval;\n uniform float u_slice_height;\n varying vec3 vViewDirection;\n ${shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n `\n #include <dithering_fragment>\n vec3 viewDir = normalize(vViewDirection);\n float dotNV = 1.0-saturate( dot( normal, viewDir ) );\n gl_FragColor.rgb += rimPower*dotNV*rimColor; \n ${fragmentShader}`,\n )}\n `\n}\n\ntype BaseOption = {\n transparent: boolean\n depthTest: boolean\n depthWrite: boolean\n polygonOffset: boolean\n polygonOffsetFactor: number\n polygonOffsetUnits: number\n alphaTest: number\n blending?: number\n}\n\ntype ShaderOption = {\n uniforms: Record<string, { value: any }>\n vertexShader: string\n fragmentShader: string\n preVertexShader: string\n preFragmentShader: string\n callback?: (shader: ShaderMaterial) => void\n}\n\nconst modifyTheMaterial = (material, baseOption: BaseOption, shaderOption: ShaderOption) => {\n const { transparent, depthTest, depthWrite, polygonOffset, polygonOffsetFactor, polygonOffsetUnits, alphaTest = 0.05, blending } = baseOption\n const { uniforms, vertexShader, fragmentShader, preVertexShader, preFragmentShader, callback } = shaderOption\n\n material.transparent = transparent\n material.depthTest = depthTest\n material.depthWrite = depthWrite\n material.polygonOffset = polygonOffset\n material.polygonOffsetFactor = polygonOffsetFactor\n material.polygonOffsetUnits = polygonOffsetUnits\n material.alphaTest = alphaTest\n blending && (material.blending = blending)\n\n material.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n ...uniforms,\n }\n\n shader.vertexShader = preVertexShader + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', vertexShader,\n )\n shader.fragmentShader = preFragmentShader + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', fragmentShader,\n )\n\n callback && callback(shader)\n }\n\n material.needsUpdate = true\n}\n\nconst conversionRealFade = (material: Material, type: 'Fresnel' | 'Frame' | 'Pure', uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isRealFadeIn: { value: boolean } }) => {\n const newMaterial = material.clone()\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 1,\n polygonOffsetUnits: 1,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n center: uniforms.center,\n isFadeIn: uniforms[`is${type}FadeIn`],\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n })\n\n return newMaterial\n}\n\n/**\n * inject to final fade\n * @param object\n * @param maxSize\n * @param uniforms\n */\nexport const injectToFrameFade = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFrameFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n child.material = child.material.clone();\n (child as Mesh).userData.originalMaterial = conversionRealFade(child.material, SwitchType.Frame, uniforms as any)\n child.material.side = 2\n child.material.transparent = true\n child.material.depthTest = true\n child.material.depthWrite = true\n child.material.blending = AdditiveBlending\n child.material.polygonOffset = true\n child.material.polygonOffsetFactor = 0\n child.material.polygonOffsetUnits = 0\n child.material.alphaTest = 0.35\n\n child.material.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n center: uniforms.center,\n addOpacity: { value: 0.7 },\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFrameFadeIn,\n }\n shader.vertexShader = verFinal\n shader.fragmentShader = fragFinal\n }\n\n child.material.needsUpdate = true\n }\n })\n}\n\n/**\n * inject to real fade\n * @param object\n * @param uniforms\n */\nexport const injectToRealFade = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isRealFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n (child as Mesh).userData.originalMaterial = child.material\n const newMaterial = child.material.clone()\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 1,\n polygonOffsetUnits: 1,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isRealFadeIn,\n center: uniforms.center,\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n })\n\n child.material = newMaterial\n }\n })\n}\n\n/**\n * inject to base write\n * @param object\n * @param uniforms\n */\nexport const injectToBaseWrite = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isPureFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n let newMaterial = child.material.clone();\n (child as Mesh).userData.originalMaterial = conversionRealFade(child.material, SwitchType.Pure, uniforms as any)\n newMaterial = new MeshStandardMaterial({ color: new Color('#fff') })\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 2,\n polygonOffsetUnits: 2,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isPureFadeIn,\n center: uniforms.center,\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n callback: (shader) => {\n injectBaseFinir(shader, 0.3, new Color('#fff'))\n },\n })\n\n child.material = newMaterial\n }\n })\n}\n\n/**\n * inject to finir material\n * @param object\n * @param uniforms\n */\nexport const injectToFinirMaterial = (object: Object3D, uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFresnelFadeIn: { value: boolean } }) => {\n object.traverse((child: any) => {\n if (child.isMesh) {\n let newMaterial = child.material.clone();\n (child as Mesh).userData.originalMaterial = conversionRealFade(child.material, SwitchType.Fresnel, uniforms as any)\n newMaterial = new MeshStandardMaterial({ color: new Color('#000') })\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 3,\n polygonOffsetUnits: 3,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFresnelFadeIn,\n center: uniforms.center,\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n callback: (shader) => {\n injectBaseFinir(shader)\n },\n })\n\n child.material = newMaterial\n }\n })\n}\n\nexport const injectToGround = (\n object: Mesh,\n type: 'Real' | 'Fresnel' | 'Frame' | 'Pure',\n uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; time: { value: number }; isApi: { value: boolean } },\n) => {\n object.material = new ShaderMaterial({\n uniforms: {\n ...ground.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms[`is${type}FadeIn`],\n center: uniforms.center,\n time: uniforms.time,\n isApi: uniforms.isApi,\n },\n vertexShader: ground.vertexShader,\n fragmentShader: ground.fragmentShader,\n transparent: true,\n side: 2,\n depthTest: true,\n depthWrite: false,\n polygonOffset: true,\n polygonOffsetFactor: 5,\n polygonOffsetUnits: 5,\n alphaTest: 0.05,\n })\n\n object.material.needsUpdate = true\n}\n\nexport const inject = (\n material: Material,\n type: 'Fresnel' | 'Frame' | 'Pure',\n uniforms: { maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; height: { value: number } },\n isSweepAway = false,\n) => {\n material.transparent = true\n material.depthTest = true\n material.depthWrite = true\n material.alphaTest = 0.05\n\n material.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms[`is${type}FadeIn`],\n center: uniforms.center,\n u_interval: { value: 100.0 },\n u_slice_height: { value: 80.0 },\n }\n\n shader.vertexShader = ver_pre + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', ver,\n )\n shader.fragmentShader = frag_pre + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', frag,\n )\n\n shader.uniforms.u_height = uniforms.height\n\n shader.fragmentShader = /* glsl */`\n uniform float u_height;\n uniform float u_interval;\n uniform float u_slice_height;\n \n ${shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n '#include <dithering_fragment>\\n\\t'\n + `${isSweepAway ? heightTransitionEffect : ''}`,\n )}\n `\n }\n\n material.needsUpdate = true\n\n return material\n}\n\nexport const finirheightTransitionEffect = (material: Material, uniforms: { height: { value: number }; maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFresnelFadeIn: { value: boolean } }) => {\n const newMaterial = material.clone()\n newMaterial.transparent = true\n newMaterial.depthTest = true\n newMaterial.depthWrite = true\n newMaterial.polygonOffset = true\n newMaterial.polygonOffsetFactor = 3\n newMaterial.polygonOffsetUnits = 3\n newMaterial.alphaTest = 0.05\n\n newMaterial.onBeforeCompile = (shader) => {\n shader.uniforms = {\n ...shader.uniforms,\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFresnelFadeIn,\n center: uniforms.center,\n u_interval: { value: 100.0 },\n u_slice_height: { value: 80.0 },\n u_time: { value: 0 },\n u_speed: { value: 0.5 },\n }\n\n shader.vertexShader = ver_pre + shader.vertexShader\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>', ver,\n )\n shader.fragmentShader = frag_pre + shader.fragmentShader\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>', frag,\n )\n\n shader.uniforms.u_height = uniforms.height\n\n injectBaseFinir(shader, 0.7, finirColor, heightTransitionEffect)\n }\n\n newMaterial.needsUpdate = true\n\n return newMaterial\n}\n\nexport const finirlowEffect = (material: Material, uniforms: { height: { value: number }; maxSize: { value: number }; center: { value: Vector3 }; progress: { value: number }; isFresnelFadeIn: { value: boolean } }) => {\n const newMaterial = material.clone()\n\n modifyTheMaterial(newMaterial,\n {\n transparent: true,\n depthTest: true,\n depthWrite: true,\n polygonOffset: true,\n polygonOffsetFactor: 3,\n polygonOffsetUnits: 3,\n alphaTest: 0.05,\n },\n {\n uniforms: {\n progress: uniforms.progress,\n objSize: uniforms.maxSize,\n isFadeIn: uniforms.isFresnelFadeIn,\n center: uniforms.center,\n u_interval: { value: 100.0 },\n u_slice_height: { value: 80.0 },\n u_time: { value: 0 },\n u_speed: { value: 0.5 },\n },\n vertexShader: ver,\n fragmentShader: frag,\n preVertexShader: ver_pre,\n preFragmentShader: frag_pre,\n callback: (shader) => {\n injectBaseFinir(shader, 0.7, lowFinirColor)\n },\n })\n\n return newMaterial\n}\n"],"mappings":"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"}
|
|
@@ -1,3 +1,75 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
1
|
+
export const ver = /* glsl */`
|
|
2
|
+
varying highp vec2 vUv;
|
|
3
|
+
varying vec3 vWorldPosition;
|
|
4
|
+
varying vec3 vViewPosition;
|
|
5
|
+
varying vec3 vNormal;
|
|
6
|
+
|
|
7
|
+
#include <common>
|
|
8
|
+
#include <logdepthbuf_pars_vertex>
|
|
9
|
+
|
|
10
|
+
void main() {
|
|
11
|
+
#include <begin_vertex>
|
|
12
|
+
#include <project_vertex>
|
|
13
|
+
#include <logdepthbuf_vertex>
|
|
14
|
+
|
|
15
|
+
vUv = uv;
|
|
16
|
+
vec4 worldPosition = modelMatrix * vec4(position, 1.0);
|
|
17
|
+
vWorldPosition = worldPosition.xyz;
|
|
18
|
+
gl_Position = projectionMatrix * viewMatrix * worldPosition;
|
|
19
|
+
|
|
20
|
+
vNormal = normalize(mat3(transpose(inverse(modelMatrix))) * normal);
|
|
21
|
+
vec3 cameraToVertex = normalize(cameraPosition - vWorldPosition);
|
|
22
|
+
vViewPosition = cameraToVertex;
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
export const frag = /* glsl */`
|
|
26
|
+
#include <logdepthbuf_pars_fragment>
|
|
27
|
+
|
|
28
|
+
uniform float progress;
|
|
29
|
+
uniform float addOpacity;
|
|
30
|
+
uniform float objSize;
|
|
31
|
+
uniform bool isFadeIn;
|
|
32
|
+
uniform vec3 center;
|
|
33
|
+
|
|
34
|
+
varying vec2 vUv;
|
|
35
|
+
varying vec3 vWorldPosition;
|
|
36
|
+
varying vec3 vNormal;
|
|
37
|
+
varying vec3 vViewPosition;
|
|
38
|
+
|
|
39
|
+
void main() {
|
|
40
|
+
#include <logdepthbuf_fragment>
|
|
41
|
+
|
|
42
|
+
if (isFadeIn) {
|
|
43
|
+
vec3 myWorldPosition = vWorldPosition / objSize;
|
|
44
|
+
vec3 viewDirection = normalize(vViewPosition);
|
|
45
|
+
vec3 normal = normalize(vNormal);
|
|
46
|
+
float lightIntensity = 1.0 - pow(dot(normal, viewDirection), 2.0);
|
|
47
|
+
|
|
48
|
+
float circle1 = 0.5 - clamp(distance(center / objSize, myWorldPosition * 0.5), 0.0, 0.55);
|
|
49
|
+
|
|
50
|
+
float circleOut = step(distance(center / objSize, myWorldPosition), progress);
|
|
51
|
+
float circleIn = step(distance(center / objSize, myWorldPosition), progress - 0.002);
|
|
52
|
+
float circleW = circleOut - circleIn;
|
|
53
|
+
|
|
54
|
+
vec4 color = mix(vec4(1.0, 0.43, 0.0, 0.1), vec4(1.0, 0.43, 0.0, 1.0), circle1);
|
|
55
|
+
gl_FragColor = color * lightIntensity * 0.8 + vec4(circleW * 20.0, circleW * 8.6, circleW * 0.0, circleW * 2.0);
|
|
56
|
+
gl_FragColor.w *= circleOut * addOpacity;
|
|
57
|
+
|
|
58
|
+
} else {
|
|
59
|
+
vec3 myWorldPosition = vWorldPosition / objSize;
|
|
60
|
+
vec3 viewDirection = normalize(vViewPosition);
|
|
61
|
+
vec3 normal = normalize(vNormal);
|
|
62
|
+
float lightIntensity = 1.0 - pow(dot(normal, viewDirection), 2.0);
|
|
63
|
+
|
|
64
|
+
float circle1 = 0.5 - clamp(distance(center / objSize, myWorldPosition * 0.5), 0.0, 0.55);
|
|
65
|
+
float circleOut = 1.0 - step(distance(center / objSize, myWorldPosition), progress);
|
|
66
|
+
float circleIn = 1.0 - step(distance(center / objSize, myWorldPosition), progress - 0.002);
|
|
67
|
+
float circleW = circleOut - circleIn;
|
|
68
|
+
|
|
69
|
+
vec4 color = mix(vec4(1.0, 0.43, 0.0, 0.1), vec4(1.0, 0.43, 0.0, 1.0), circle1);
|
|
70
|
+
gl_FragColor = color * lightIntensity * 0.8 + vec4(circleW * 20.0, circleW * 8.6, circleW * 0.0, circleW * 2.0);
|
|
71
|
+
gl_FragColor.w *= circleIn * addOpacity;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
`;
|
|
3
75
|
//# sourceMappingURL=finalFade.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ver","frag"],"sources":["../../../../src/business/MaterialSwitch/shader/finalFade.ts"],"sourcesContent":["export const ver = /* glsl */ `\nvarying highp vec2 vUv;\nvarying vec3 vWorldPosition;\nvarying vec3 vViewPosition;\nvarying vec3 vNormal;\n\n#include <common>\n#include <logdepthbuf_pars_vertex>\n\nvoid main() {\n #include <begin_vertex>\n #include <project_vertex>\n #include <logdepthbuf_vertex>\n \n vUv = uv;\n vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n vWorldPosition = worldPosition.xyz;\n gl_Position = projectionMatrix * viewMatrix * worldPosition;\n \n vNormal = normalize(mat3(transpose(inverse(modelMatrix))) * normal);\n vec3 cameraToVertex = normalize(cameraPosition - vWorldPosition);\n vViewPosition = cameraToVertex;\n}\n`\n\nexport const frag = /* glsl */ `\n#include <logdepthbuf_pars_fragment>\n\nuniform float progress;\nuniform float addOpacity;\nuniform float objSize;\nuniform bool isFadeIn;\nuniform vec3 center;\n\nvarying vec2 vUv;\nvarying vec3 vWorldPosition;\nvarying vec3 vNormal;\nvarying vec3 vViewPosition;\n\nvoid main() {\n #include <logdepthbuf_fragment>\n\n if (isFadeIn) {\n vec3 myWorldPosition = vWorldPosition / objSize;\n vec3 viewDirection = normalize(vViewPosition);\n vec3 normal = normalize(vNormal);\n float lightIntensity = 1.0 - pow(dot(normal, viewDirection), 2.0);\n\n float circle1 = 0.5 - clamp(distance(center / objSize, myWorldPosition * 0.5), 0.0, 0.55);\n\n float circleOut = step(distance(center / objSize, myWorldPosition), progress);\n float circleIn = step(distance(center / objSize, myWorldPosition), progress - 0.002);\n float circleW = circleOut - circleIn;\n\n vec4 color = mix(vec4(1.0, 0.43, 0.0, 0.1), vec4(1.0, 0.43, 0.0, 1.0), circle1);\n gl_FragColor = color * lightIntensity * 0.8 + vec4(circleW * 20.0, circleW * 8.6, circleW * 0.0, circleW * 2.0);\n gl_FragColor.w *= circleOut * addOpacity;\n \n } else {\n vec3 myWorldPosition = vWorldPosition / objSize;\n vec3 viewDirection = normalize(vViewPosition);\n vec3 normal = normalize(vNormal);\n float lightIntensity = 1.0 - pow(dot(normal, viewDirection), 2.0);\n\n float circle1 = 0.5 - clamp(distance(center / objSize, myWorldPosition * 0.5), 0.0, 0.55);\n float circleOut = 1.0 - step(distance(center / objSize, myWorldPosition), progress);\n float circleIn = 1.0 - step(distance(center / objSize, myWorldPosition), progress - 0.002);\n float circleW = circleOut - circleIn;\n\n vec4 color = mix(vec4(1.0, 0.43, 0.0, 0.1), vec4(1.0, 0.43, 0.0, 1.0), circle1);\n gl_FragColor = color * lightIntensity * 0.8 + vec4(circleW * 20.0, circleW * 8.6, circleW * 0.0, circleW * 2.0);\n gl_FragColor.w *= circleIn * addOpacity;\n }\n}\n`\n"],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"names":["ver","frag"],"sources":["../../../../src/business/MaterialSwitch/shader/finalFade.ts"],"sourcesContent":["export const ver = /* glsl */ `\nvarying highp vec2 vUv;\nvarying vec3 vWorldPosition;\nvarying vec3 vViewPosition;\nvarying vec3 vNormal;\n\n#include <common>\n#include <logdepthbuf_pars_vertex>\n\nvoid main() {\n #include <begin_vertex>\n #include <project_vertex>\n #include <logdepthbuf_vertex>\n \n vUv = uv;\n vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n vWorldPosition = worldPosition.xyz;\n gl_Position = projectionMatrix * viewMatrix * worldPosition;\n \n vNormal = normalize(mat3(transpose(inverse(modelMatrix))) * normal);\n vec3 cameraToVertex = normalize(cameraPosition - vWorldPosition);\n vViewPosition = cameraToVertex;\n}\n`\n\nexport const frag = /* glsl */ `\n#include <logdepthbuf_pars_fragment>\n\nuniform float progress;\nuniform float addOpacity;\nuniform float objSize;\nuniform bool isFadeIn;\nuniform vec3 center;\n\nvarying vec2 vUv;\nvarying vec3 vWorldPosition;\nvarying vec3 vNormal;\nvarying vec3 vViewPosition;\n\nvoid main() {\n #include <logdepthbuf_fragment>\n\n if (isFadeIn) {\n vec3 myWorldPosition = vWorldPosition / objSize;\n vec3 viewDirection = normalize(vViewPosition);\n vec3 normal = normalize(vNormal);\n float lightIntensity = 1.0 - pow(dot(normal, viewDirection), 2.0);\n\n float circle1 = 0.5 - clamp(distance(center / objSize, myWorldPosition * 0.5), 0.0, 0.55);\n\n float circleOut = step(distance(center / objSize, myWorldPosition), progress);\n float circleIn = step(distance(center / objSize, myWorldPosition), progress - 0.002);\n float circleW = circleOut - circleIn;\n\n vec4 color = mix(vec4(1.0, 0.43, 0.0, 0.1), vec4(1.0, 0.43, 0.0, 1.0), circle1);\n gl_FragColor = color * lightIntensity * 0.8 + vec4(circleW * 20.0, circleW * 8.6, circleW * 0.0, circleW * 2.0);\n gl_FragColor.w *= circleOut * addOpacity;\n \n } else {\n vec3 myWorldPosition = vWorldPosition / objSize;\n vec3 viewDirection = normalize(vViewPosition);\n vec3 normal = normalize(vNormal);\n float lightIntensity = 1.0 - pow(dot(normal, viewDirection), 2.0);\n\n float circle1 = 0.5 - clamp(distance(center / objSize, myWorldPosition * 0.5), 0.0, 0.55);\n float circleOut = 1.0 - step(distance(center / objSize, myWorldPosition), progress);\n float circleIn = 1.0 - step(distance(center / objSize, myWorldPosition), progress - 0.002);\n float circleW = circleOut - circleIn;\n\n vec4 color = mix(vec4(1.0, 0.43, 0.0, 0.1), vec4(1.0, 0.43, 0.0, 1.0), circle1);\n gl_FragColor = color * lightIntensity * 0.8 + vec4(circleW * 20.0, circleW * 8.6, circleW * 0.0, circleW * 2.0);\n gl_FragColor.w *= circleIn * addOpacity;\n }\n}\n`\n"],"mappings":"AAAA,OAAO,MAAMA,GAAG,GAAG,UAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMC,IAAI,GAAG,UAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Color, RepeatWrapping, ShaderChunk, TextureLoader, Vector4 } from '@anov/3d-core';
|
|
2
2
|
import { demo03, demo04, main } from "./groundBase64";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
const TEXTURE_REPEAT_COUNT = 5000;
|
|
4
|
+
const MASK_TEXTURE_REPEAT = 10;
|
|
5
|
+
const DEFAULT_GROUND_COLOR = '#096ddb';
|
|
6
|
+
const DEFAULT_MASK_COLOR = '#ffffff';
|
|
7
|
+
const textureLoader = new TextureLoader();
|
|
8
|
+
const groundBaseTexture = textureLoader.load(demo03);
|
|
9
|
+
const groundMaskTexture = textureLoader.load(demo04);
|
|
10
|
+
const groundPlaneTexture = textureLoader.load(main);
|
|
11
|
+
const configureTexture = (texture, repeatX, repeatY) => {
|
|
12
12
|
texture.wrapS = RepeatWrapping;
|
|
13
13
|
texture.wrapT = RepeatWrapping;
|
|
14
14
|
texture.repeat.set(repeatX, repeatY);
|
|
@@ -16,7 +16,7 @@ var configureTexture = function configureTexture(texture, repeatX, repeatY) {
|
|
|
16
16
|
configureTexture(groundBaseTexture, TEXTURE_REPEAT_COUNT, TEXTURE_REPEAT_COUNT);
|
|
17
17
|
configureTexture(groundMaskTexture, MASK_TEXTURE_REPEAT, MASK_TEXTURE_REPEAT);
|
|
18
18
|
configureTexture(groundPlaneTexture, TEXTURE_REPEAT_COUNT, TEXTURE_REPEAT_COUNT);
|
|
19
|
-
export
|
|
19
|
+
export const uniforms = {
|
|
20
20
|
_Texture: {
|
|
21
21
|
value: groundBaseTexture
|
|
22
22
|
},
|
|
@@ -56,13 +56,92 @@ export var uniforms = {
|
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
// Vertex shader
|
|
59
|
-
|
|
59
|
+
const vertexShader = /* glsl */`
|
|
60
|
+
${ShaderChunk.logdepthbuf_pars_vertex}
|
|
61
|
+
|
|
62
|
+
bool isPerspectiveMatrix(mat4) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
varying vec2 vUv;
|
|
67
|
+
varying vec3 vPosition;
|
|
68
|
+
|
|
69
|
+
void main() {
|
|
70
|
+
vUv = uv;
|
|
71
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
72
|
+
vec4 worldPosition = modelMatrix * vec4(position, 1.0);
|
|
73
|
+
vPosition = worldPosition.xyz;
|
|
74
|
+
${ShaderChunk.logdepthbuf_vertex}
|
|
75
|
+
}
|
|
76
|
+
`;
|
|
60
77
|
|
|
61
78
|
// Fragment shader
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
79
|
+
const fragmentShader = /* glsl */`
|
|
80
|
+
${ShaderChunk.logdepthbuf_pars_fragment}
|
|
81
|
+
|
|
82
|
+
uniform sampler2D _Texture;
|
|
83
|
+
uniform sampler2D _TexturePlane;
|
|
84
|
+
uniform vec4 _Color;
|
|
85
|
+
uniform float _ColorS;
|
|
86
|
+
uniform sampler2D _TextureMask;
|
|
87
|
+
uniform float _MaskUV;
|
|
88
|
+
uniform vec4 _ColorMask;
|
|
89
|
+
uniform float _ColorMaskS;
|
|
90
|
+
uniform float time;
|
|
91
|
+
uniform float progress;
|
|
92
|
+
uniform float objSize;
|
|
93
|
+
uniform bool isFadeIn;
|
|
94
|
+
uniform vec4 center;
|
|
95
|
+
uniform bool isApi;
|
|
96
|
+
|
|
97
|
+
varying vec2 vUv;
|
|
98
|
+
varying vec3 vPosition;
|
|
99
|
+
|
|
100
|
+
void main() {
|
|
101
|
+
vec4 highlightColor = vec4(0.0, 0.6, 1.0, 1.0);
|
|
102
|
+
vec3 baseColor = vec3(0.2);
|
|
103
|
+
vec4 outputColor = vec4(baseColor, 1.0);
|
|
104
|
+
|
|
105
|
+
// todo 后期需要根据大小自动调整
|
|
106
|
+
//
|
|
107
|
+
vec4 baseTexture = texture2D(_Texture, vUv * 25.0);
|
|
108
|
+
vec4 planeTexture = texture2D(_TexturePlane, vUv * 15.0);
|
|
109
|
+
|
|
110
|
+
vec2 maskScale = vec2(_MaskUV) * 20.0;
|
|
111
|
+
vec2 maskUV = vUv * maskScale;
|
|
112
|
+
vec2 animatedMaskUV = vec2(time, time) + maskUV;
|
|
113
|
+
|
|
114
|
+
outputColor.rgb = (
|
|
115
|
+
(planeTexture * 0.09) +
|
|
116
|
+
(_Color * baseTexture.r * _ColorS) +
|
|
117
|
+
(highlightColor * (baseTexture.r * texture2D(_TextureMask, animatedMaskUV).r) * _ColorMaskS * 10.0)
|
|
118
|
+
).rgb;
|
|
119
|
+
|
|
120
|
+
if (isApi) {
|
|
121
|
+
outputColor.rgb = mix(vec3(0.0), outputColor.rgb, 0.55);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
outputColor.a = 1.0;
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
vec3 myWorldPosition = vPosition / objSize;
|
|
128
|
+
if (isFadeIn) {
|
|
129
|
+
float circle1 = step(distance(center.xyz / objSize, myWorldPosition), progress - 0.002);
|
|
130
|
+
float circle2 = step(distance(center.xyz / objSize, myWorldPosition), progress);
|
|
131
|
+
outputColor.rgb += vec3(circle2 - circle1) * 3.;
|
|
132
|
+
outputColor.a = outputColor.a * circle2;
|
|
133
|
+
} else {
|
|
134
|
+
float circle = step(distance(center.xyz / objSize, myWorldPosition), progress);
|
|
135
|
+
outputColor.a *= step(circle, 0.);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
gl_FragColor = outputColor;
|
|
139
|
+
${ShaderChunk.logdepthbuf_fragment}
|
|
140
|
+
}
|
|
141
|
+
`;
|
|
142
|
+
export const ground = {
|
|
143
|
+
vertexShader,
|
|
144
|
+
fragmentShader,
|
|
145
|
+
uniforms
|
|
67
146
|
};
|
|
68
147
|
//# sourceMappingURL=ground.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Color","RepeatWrapping","ShaderChunk","TextureLoader","Vector4","demo03","demo04","main","TEXTURE_REPEAT_COUNT","MASK_TEXTURE_REPEAT","DEFAULT_GROUND_COLOR","DEFAULT_MASK_COLOR","textureLoader","groundBaseTexture","load","groundMaskTexture","groundPlaneTexture","configureTexture","texture","repeatX","repeatY","wrapS","wrapT","repeat","set","uniforms","_Texture","value","_Texture_ST","_Color","r","g","b","_ColorS","_TextureMask","_TexturePlane","_MaskUV","_ColorMask","_ColorMaskS","_Speed","_OP","time","vertexShader","
|
|
1
|
+
{"version":3,"names":["Color","RepeatWrapping","ShaderChunk","TextureLoader","Vector4","demo03","demo04","main","TEXTURE_REPEAT_COUNT","MASK_TEXTURE_REPEAT","DEFAULT_GROUND_COLOR","DEFAULT_MASK_COLOR","textureLoader","groundBaseTexture","load","groundMaskTexture","groundPlaneTexture","configureTexture","texture","repeatX","repeatY","wrapS","wrapT","repeat","set","uniforms","_Texture","value","_Texture_ST","_Color","r","g","b","_ColorS","_TextureMask","_TexturePlane","_MaskUV","_ColorMask","_ColorMaskS","_Speed","_OP","time","vertexShader","logdepthbuf_pars_vertex","logdepthbuf_vertex","fragmentShader","logdepthbuf_pars_fragment","logdepthbuf_fragment","ground"],"sources":["../../../../src/business/MaterialSwitch/shader/ground.ts"],"sourcesContent":["import type { Texture } from '@anov/3d-core'\nimport { Color, RepeatWrapping, ShaderChunk, TextureLoader, Vector4 } from '@anov/3d-core'\nimport { demo03, demo04, main } from './groundBase64'\n\nconst TEXTURE_REPEAT_COUNT = 5000\nconst MASK_TEXTURE_REPEAT = 10\nconst DEFAULT_GROUND_COLOR = '#096ddb'\nconst DEFAULT_MASK_COLOR = '#ffffff'\n\nconst textureLoader = new TextureLoader()\n\nconst groundBaseTexture = textureLoader.load(demo03)\nconst groundMaskTexture = textureLoader.load(demo04)\nconst groundPlaneTexture = textureLoader.load(main)\n\nconst configureTexture = (texture: Texture, repeatX: number, repeatY: number) => {\n texture.wrapS = RepeatWrapping\n texture.wrapT = RepeatWrapping\n texture.repeat.set(repeatX, repeatY)\n}\n\nconfigureTexture(groundBaseTexture, TEXTURE_REPEAT_COUNT, TEXTURE_REPEAT_COUNT)\nconfigureTexture(groundMaskTexture, MASK_TEXTURE_REPEAT, MASK_TEXTURE_REPEAT)\nconfigureTexture(groundPlaneTexture, TEXTURE_REPEAT_COUNT, TEXTURE_REPEAT_COUNT)\n\nexport const uniforms = {\n _Texture: { value: groundBaseTexture },\n _Texture_ST: { value: new Vector4() },\n _Color: {\n value: new Vector4(\n new Color(DEFAULT_GROUND_COLOR).r,\n new Color(DEFAULT_GROUND_COLOR).g,\n new Color(DEFAULT_GROUND_COLOR).b,\n 0.5,\n ),\n },\n _ColorS: { value: 1 },\n _TextureMask: { value: groundMaskTexture },\n _TexturePlane: { value: groundPlaneTexture },\n _MaskUV: { value: 1 },\n _ColorMask: {\n value: new Vector4(\n new Color(DEFAULT_MASK_COLOR).r,\n new Color(DEFAULT_MASK_COLOR).g,\n new Color(DEFAULT_MASK_COLOR).b,\n 1,\n ),\n },\n _ColorMaskS: { value: 1 },\n _Speed: { value: new Vector4(0.0, 0.2, 0, 0) },\n _OP: { value: 1.0 },\n time: { value: 1.0 },\n}\n\n// Vertex shader\nconst vertexShader = /* glsl */`\n ${ShaderChunk.logdepthbuf_pars_vertex}\n \n bool isPerspectiveMatrix(mat4) {\n return true;\n }\n \n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n vPosition = worldPosition.xyz;\n ${ShaderChunk.logdepthbuf_vertex}\n }\n`\n\n// Fragment shader\nconst fragmentShader = /* glsl */`\n ${ShaderChunk.logdepthbuf_pars_fragment} \n\n uniform sampler2D _Texture;\n uniform sampler2D _TexturePlane;\n uniform vec4 _Color;\n uniform float _ColorS;\n uniform sampler2D _TextureMask;\n uniform float _MaskUV;\n uniform vec4 _ColorMask;\n uniform float _ColorMaskS;\n uniform float time;\n uniform float progress;\n uniform float objSize;\n uniform bool isFadeIn;\n uniform vec4 center;\n uniform bool isApi;\n \n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vec4 highlightColor = vec4(0.0, 0.6, 1.0, 1.0);\n vec3 baseColor = vec3(0.2);\n vec4 outputColor = vec4(baseColor, 1.0);\n \n // todo 后期需要根据大小自动调整\n // \n vec4 baseTexture = texture2D(_Texture, vUv * 25.0);\n vec4 planeTexture = texture2D(_TexturePlane, vUv * 15.0);\n \n vec2 maskScale = vec2(_MaskUV) * 20.0;\n vec2 maskUV = vUv * maskScale;\n vec2 animatedMaskUV = vec2(time, time) + maskUV;\n \n outputColor.rgb = (\n (planeTexture * 0.09) +\n (_Color * baseTexture.r * _ColorS) +\n (highlightColor * (baseTexture.r * texture2D(_TextureMask, animatedMaskUV).r) * _ColorMaskS * 10.0)\n ).rgb;\n\n if (isApi) {\n outputColor.rgb = mix(vec3(0.0), outputColor.rgb, 0.55);\n }\n\n outputColor.a = 1.0;\n\n\n vec3 myWorldPosition = vPosition / objSize;\n if (isFadeIn) {\n float circle1 = step(distance(center.xyz / objSize, myWorldPosition), progress - 0.002);\n float circle2 = step(distance(center.xyz / objSize, myWorldPosition), progress);\n outputColor.rgb += vec3(circle2 - circle1) * 3.;\n outputColor.a = outputColor.a * circle2;\n } else {\n float circle = step(distance(center.xyz / objSize, myWorldPosition), progress);\n outputColor.a *= step(circle, 0.);\n }\n \n gl_FragColor = outputColor;\n ${ShaderChunk.logdepthbuf_fragment}\n }\n`\n\nexport const ground = { vertexShader, fragmentShader, uniforms }"],"mappings":"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"}
|