@anov/3d-ability 0.0.142 → 0.0.143

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/dist/business/Animation/motion/index.js +56 -35
  2. package/dist/business/Animation/motion/index.js.map +1 -1
  3. package/dist/business/Animation/type.js +2 -2
  4. package/dist/business/Area/Fence/FenceBase.js +187 -146
  5. package/dist/business/Area/Fence/FenceBase.js.map +1 -1
  6. package/dist/business/Area/Fence/fence_base_01.js +112 -120
  7. package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
  8. package/dist/business/Area/Fence/fence_feeting_01.js +130 -218
  9. package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
  10. package/dist/business/Area/Fence/fence_roll_01.js +130 -140
  11. package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
  12. package/dist/business/Area/FillArea/FillAreaBase.js +126 -87
  13. package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
  14. package/dist/business/Area/FillArea/fillArea_face_01.js +98 -72
  15. package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
  16. package/dist/business/Area/FillArea/fillArea_line_01.js +94 -66
  17. package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
  18. package/dist/business/Area/index.js +483 -267
  19. package/dist/business/Area/index.js.map +1 -1
  20. package/dist/business/Area/tool.js +26 -14
  21. package/dist/business/Area/tool.js.map +1 -1
  22. package/dist/business/Base/ObjectLayer.js +46 -21
  23. package/dist/business/Base/ObjectLayer.js.map +1 -1
  24. package/dist/business/Batch/index.js +234 -189
  25. package/dist/business/Batch/index.js.map +1 -1
  26. package/dist/business/Box/index.js +81 -52
  27. package/dist/business/Box/index.js.map +1 -1
  28. package/dist/business/Cylinder/index.js +79 -51
  29. package/dist/business/Cylinder/index.js.map +1 -1
  30. package/dist/business/Flyline/bubble/CircleBubble.js +9 -1
  31. package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
  32. package/dist/business/Flyline/bubble/index.js +21 -7
  33. package/dist/business/Flyline/bubble/index.js.map +1 -1
  34. package/dist/business/Flyline/index.js +162 -96
  35. package/dist/business/Flyline/index.js.map +1 -1
  36. package/dist/business/Flyline/line/ArcLine.js +291 -208
  37. package/dist/business/Flyline/line/ArcLine.js.map +1 -1
  38. package/dist/business/Flyline/line/index.js +22 -8
  39. package/dist/business/Flyline/line/index.js.map +1 -1
  40. package/dist/business/HeatMap/HeatMap.js +467 -380
  41. package/dist/business/HeatMap/HeatMap.js.map +1 -1
  42. package/dist/business/HeatMap/core.js +525 -405
  43. package/dist/business/HeatMap/core.js.map +1 -1
  44. package/dist/business/HeatMap/shader.js +3 -69
  45. package/dist/business/HeatMap/shader.js.map +1 -1
  46. package/dist/business/InfoPanel/index.js +242 -201
  47. package/dist/business/InfoPanel/index.js.map +1 -1
  48. package/dist/business/Line/index.js +88 -55
  49. package/dist/business/Line/index.js.map +1 -1
  50. package/dist/business/Mark/KeyframeAnimation.js +176 -145
  51. package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
  52. package/dist/business/Mark/index.js +294 -196
  53. package/dist/business/Mark/index.js.map +1 -1
  54. package/dist/business/Mark/shader/tanhao.js +3 -36
  55. package/dist/business/Mark/shader/tanhao.js.map +1 -1
  56. package/dist/business/Mark/type.js +1 -1
  57. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +551 -377
  58. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
  59. package/dist/business/MaterialSwitch/inject.js +58 -92
  60. package/dist/business/MaterialSwitch/inject.js.map +1 -1
  61. package/dist/business/MaterialSwitch/shader/finalFade.js +2 -74
  62. package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
  63. package/dist/business/MaterialSwitch/shader/ground.js +16 -95
  64. package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
  65. package/dist/business/MaterialSwitch/shader/groundBase64.js +3 -9
  66. package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
  67. package/dist/business/MaterialSwitch/shader/realFade.js +9 -48
  68. package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
  69. package/dist/business/Plane/index.js +78 -51
  70. package/dist/business/Plane/index.js.map +1 -1
  71. package/dist/business/Poi/index.js +336 -248
  72. package/dist/business/Poi/index.js.map +1 -1
  73. package/dist/business/Poi/link/Cylinder.js +89 -56
  74. package/dist/business/Poi/link/Cylinder.js.map +1 -1
  75. package/dist/business/Poi/link/Pyramid.js +165 -104
  76. package/dist/business/Poi/link/Pyramid.js.map +1 -1
  77. package/dist/business/Poi/link/index.js +114 -54
  78. package/dist/business/Poi/link/index.js.map +1 -1
  79. package/dist/business/Poi/panel/index.js +373 -315
  80. package/dist/business/Poi/panel/index.js.map +1 -1
  81. package/dist/business/Poi/panel/utils.js +10 -5
  82. package/dist/business/Poi/panel/utils.js.map +1 -1
  83. package/dist/business/Poi/particle/DoubleCircle.js +107 -71
  84. package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
  85. package/dist/business/Poi/particle/DynamicCircle.js +111 -75
  86. package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
  87. package/dist/business/Poi/particle/SingleCircle.js +98 -62
  88. package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
  89. package/dist/business/Poi/particle/index.js +117 -49
  90. package/dist/business/Poi/particle/index.js.map +1 -1
  91. package/dist/business/Poi/shader/circle.js +3 -31
  92. package/dist/business/Poi/shader/circle.js.map +1 -1
  93. package/dist/business/Poi/shader/cylinder.js +3 -37
  94. package/dist/business/Poi/shader/cylinder.js.map +1 -1
  95. package/dist/business/Poi/shader/doubleCircle.js +3 -55
  96. package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
  97. package/dist/business/Poi/shader/dynamicCircle.js +3 -67
  98. package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
  99. package/dist/business/Poi/title/Border.js +27 -7
  100. package/dist/business/Poi/title/Border.js.map +1 -1
  101. package/dist/business/Poi/title/Ellipse.js +27 -7
  102. package/dist/business/Poi/title/Ellipse.js.map +1 -1
  103. package/dist/business/Poi/title/index.js +292 -208
  104. package/dist/business/Poi/title/index.js.map +1 -1
  105. package/dist/business/Poi/tools.js +17 -18
  106. package/dist/business/Poi/tools.js.map +1 -1
  107. package/dist/business/Sphere/index.js +72 -47
  108. package/dist/business/Sphere/index.js.map +1 -1
  109. package/dist/business/Spline/index.js +245 -190
  110. package/dist/business/Spline/index.js.map +1 -1
  111. package/dist/business/SplitBuilding/index.js +536 -327
  112. package/dist/business/SplitBuilding/index.js.map +1 -1
  113. package/dist/business/SplitBuilding/type.js +2 -2
  114. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +275 -218
  115. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
  116. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +177 -132
  117. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
  118. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +1 -51
  119. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
  120. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +1 -6
  121. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
  122. package/dist/business/TrafficComponents/base.js +55 -32
  123. package/dist/business/TrafficComponents/base.js.map +1 -1
  124. package/dist/business/TrafficComponents/utils.js +24 -25
  125. package/dist/business/TrafficComponents/utils.js.map +1 -1
  126. package/dist/business/Utils/Curve.js +56 -40
  127. package/dist/business/Utils/Curve.js.map +1 -1
  128. package/dist/business/Utils/constant.js +1 -1
  129. package/dist/business/Utils/constant.js.map +1 -1
  130. package/dist/business/Utils/defineProps.js +14 -13
  131. package/dist/business/Utils/defineProps.js.map +1 -1
  132. package/dist/business/Utils/round-curve.js +153 -127
  133. package/dist/business/Utils/round-curve.js.map +1 -1
  134. package/dist/business/VideoPanel/index.js +319 -258
  135. package/dist/business/VideoPanel/index.js.map +1 -1
  136. package/dist/business/Water/index.js +108 -78
  137. package/dist/business/Water/index.js.map +1 -1
  138. package/dist/business/Water/types.js +1 -1
  139. package/dist/business/Water/types.js.map +1 -1
  140. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +449 -383
  141. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
  142. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +142 -107
  143. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
  144. package/dist/core/Controls/FirstViewControl/index.js +96 -84
  145. package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
  146. package/dist/core/Controls/ThirdViewControl/action/input.js +98 -77
  147. package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
  148. package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
  149. package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
  150. package/dist/core/Controls/ThirdViewControl/index.js +28 -19
  151. package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
  152. package/dist/core/Controls/ThirdViewControl/player/animation.js +155 -126
  153. package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
  154. package/dist/core/Controls/ThirdViewControl/player/camera.js +63 -47
  155. package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
  156. package/dist/core/Controls/ThirdViewControl/player/control.js +49 -39
  157. package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
  158. package/dist/core/Controls/ThirdViewControl/player.js +91 -66
  159. package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
  160. package/dist/core/Controls/base.js +30 -14
  161. package/dist/core/Controls/base.js.map +1 -1
  162. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +131 -92
  163. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
  164. package/dist/core/Debug/PerformanceInfo/Performance.js +47 -22
  165. package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
  166. package/dist/core/Light/PointLight/PointLightExt.js +21 -4
  167. package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
  168. package/dist/core/Material/FinirMaterial/FinirMaterial.js +57 -37
  169. package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
  170. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +153 -116
  171. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
  172. package/dist/core/Material/PristineGridMaterial/shader/fragment.js +1 -95
  173. package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
  174. package/dist/core/Material/PristineGridMaterial/shader/vertex.js +1 -26
  175. package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
  176. package/dist/core/Material/SurfaceMaterial/index.js +172 -76
  177. package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
  178. package/dist/core/Material/decorators.js +11 -6
  179. package/dist/core/Material/decorators.js.map +1 -1
  180. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +12 -16
  181. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
  182. package/dist/core/PostEffects/addBrightnessContrastPass.js +13 -17
  183. package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
  184. package/dist/core/PostEffects/bloomPass.js +10 -17
  185. package/dist/core/PostEffects/bloomPass.js.map +1 -1
  186. package/dist/core/PostEffects/bloomSelect.js +43 -60
  187. package/dist/core/PostEffects/bloomSelect.js.map +1 -1
  188. package/dist/core/PostEffects/colorifyPass.js +13 -17
  189. package/dist/core/PostEffects/colorifyPass.js.map +1 -1
  190. package/dist/core/PostEffects/index.js +22 -28
  191. package/dist/core/PostEffects/index.js.map +1 -1
  192. package/dist/core/PostEffects/outlinePass.js +50 -37
  193. package/dist/core/PostEffects/outlinePass.js.map +1 -1
  194. package/dist/core/PostEffects/postprocessing.js +12 -14
  195. package/dist/core/PostEffects/postprocessing.js.map +1 -1
  196. package/dist/core/PostEffects/saoPass.js +10 -15
  197. package/dist/core/PostEffects/saoPass.js.map +1 -1
  198. package/dist/core/PostEffects/shader/colorify.js +3 -22
  199. package/dist/core/PostEffects/shader/colorify.js.map +1 -1
  200. package/dist/core/PostEffects/shader/gammaCorrectionShader.js +3 -27
  201. package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
  202. package/dist/core/PostEffects/shader/mapping.js +3 -66
  203. package/dist/core/PostEffects/shader/mapping.js.map +1 -1
  204. package/dist/core/PostEffects/shader/thermalMaging.js +3 -28
  205. package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
  206. package/dist/core/SceneEffect/grow/grow.js +101 -85
  207. package/dist/core/SceneEffect/grow/grow.js.map +1 -1
  208. package/dist/core/SceneEffect/grow/style_down.js +77 -60
  209. package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
  210. package/dist/core/SceneEffect/grow/style_up.js +81 -64
  211. package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
  212. package/dist/core/SceneEffect/grow/type.js +2 -2
  213. package/dist/core/SceneEffect/grow/type.js.map +1 -1
  214. package/dist/core/WeatherSystem/DynamicWeatherSystem.js +76 -51
  215. package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
  216. package/dist/core/WeatherSystem/hdr/index.js +105 -69
  217. package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
  218. package/dist/core/WeatherSystem/index.js +124 -77
  219. package/dist/core/WeatherSystem/index.js.map +1 -1
  220. package/dist/core/WeatherSystem/objects/fog/index.js +80 -52
  221. package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
  222. package/dist/core/WeatherSystem/objects/rain/index.js +84 -72
  223. package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
  224. package/dist/core/WeatherSystem/objects/rain/lineRain.js +118 -88
  225. package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
  226. package/dist/core/WeatherSystem/objects/rain/plane.js +146 -116
  227. package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
  228. package/dist/core/WeatherSystem/objects/rain/point.js +148 -100
  229. package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
  230. package/dist/core/WeatherSystem/objects/sky/cloud.js +104 -71
  231. package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
  232. package/dist/core/WeatherSystem/objects/sky/index.js +84 -66
  233. package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
  234. package/dist/core/WeatherSystem/objects/sky/outline.js +45 -25
  235. package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
  236. package/dist/core/WeatherSystem/shaders/cloud.js +3 -74
  237. package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
  238. package/dist/core/WeatherSystem/shaders/fog.js +3 -103
  239. package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
  240. package/dist/core/WeatherSystem/shaders/rain.js +7 -206
  241. package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
  242. package/dist/core/WeatherSystem/shaders/sky.js +3 -87
  243. package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
  244. package/dist/core/WeatherSystem/sky/index.js +135 -104
  245. package/dist/core/WeatherSystem/sky/index.js.map +1 -1
  246. package/dist/core/WeatherSystem/utils/constant.js +38 -44
  247. package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
  248. package/dist/core/WeatherSystem/utils/math.js +25 -18
  249. package/dist/core/WeatherSystem/utils/math.js.map +1 -1
  250. package/dist/core/WeatherSystem/utils/type.js +1 -1
  251. package/dist/core/WeatherSystem/utils/type.js.map +1 -1
  252. package/dist/core/WeatherSystem/weather/index.js +141 -96
  253. package/dist/core/WeatherSystem/weather/index.js.map +1 -1
  254. package/dist/utils/index.js +1 -1
  255. package/dist/utils/index.js.map +1 -1
  256. 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","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
+ {"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,75 +1,3 @@
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
- `;
1
+ export var 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";
2
+ export var 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";
75
3
  //# 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,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
+ {"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,IAAMA,GAAG,GAAG,soBAuBlB;AAED,OAAO,IAAMC,IAAI,GAAG,26DAiDnB"}
@@ -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
- 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) => {
3
+ var TEXTURE_REPEAT_COUNT = 5000;
4
+ var MASK_TEXTURE_REPEAT = 10;
5
+ var DEFAULT_GROUND_COLOR = '#096ddb';
6
+ var DEFAULT_MASK_COLOR = '#ffffff';
7
+ var textureLoader = new TextureLoader();
8
+ var groundBaseTexture = textureLoader.load(demo03);
9
+ var groundMaskTexture = textureLoader.load(demo04);
10
+ var groundPlaneTexture = textureLoader.load(main);
11
+ var configureTexture = function 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 @@ const 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 const uniforms = {
19
+ export var uniforms = {
20
20
  _Texture: {
21
21
  value: groundBaseTexture
22
22
  },
@@ -56,92 +56,13 @@ export const uniforms = {
56
56
  };
57
57
 
58
58
  // Vertex shader
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
- `;
59
+ var vertexShader = /* glsl */"\n ".concat(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 ").concat(ShaderChunk.logdepthbuf_vertex, "\n }\n");
77
60
 
78
61
  // Fragment shader
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
62
+ var fragmentShader = /* glsl */"\n ".concat(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 \u540E\u671F\u9700\u8981\u6839\u636E\u5927\u5C0F\u81EA\u52A8\u8C03\u6574\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 ").concat(ShaderChunk.logdepthbuf_fragment, "\n }\n");
63
+ export var ground = {
64
+ vertexShader: vertexShader,
65
+ fragmentShader: fragmentShader,
66
+ uniforms: uniforms
146
67
  };
147
68
  //# 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","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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"}
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","concat","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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"}