{"_id":"three-special-effects","_rev":"28-7989cdad6a89be4f6a68251d84a5869a","name":"three-special-effects","dist-tags":{"latest":"2.0.4"},"versions":{"1.0.0":{"name":"three-special-effects","version":"1.0.0","keywords":["test"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.0","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"bin":{"three-special-effects":"index.js"},"dist":{"shasum":"0208adf309fd2f795623c7c960c14c49901dc352","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.0.tgz","fileCount":2,"integrity":"sha512-h+/z685jwRkKyZPs07ZOixzD0bnWgGOl/9ZM7R950WBHiKEqiZUg3i6TOQzqy8JGlrV47sOJZh4MLfgqWPPQ0g==","signatures":[{"sig":"MEUCIQDJ1nC7312v/JobQJY3FXdldqgs0z/6HSDHXDtXNTGxiwIgVE2h7Ug57VPQSLW5J5Ztu1K2A8qDFLPBsd0w3qqViRk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":768},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","_npmVersion":"10.8.2","description":"MY frist threejs special package","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.158.0"},"peerDependencies":{"three":">=0.158.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.0_1764054528771_0.5956770512222742","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"three-special-effects","version":"1.0.1","keywords":["test"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.1","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"bin":{"three-special-effects":"index.js"},"dist":{"shasum":"19063ed437758d86fe6c80d172e94d61cb32cc83","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.1.tgz","fileCount":2,"integrity":"sha512-DWbBkgEydTumaJ7CIzC3n48JmD41KURTuKdgSEPi1YSKhM0gSH7p7gOoa4TgTL6+C+3OfsaNkTGKEb6ZZ5A/mg==","signatures":[{"sig":"MEUCIBMbNPXrrzw6Qh7jXNvdjNVcgthiwH+LOZfiDh8GQ6kzAiEAmXklf4PpsNzfMQFxN1XnEtTB1VwCRhyHP1X+AHRJqj0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":768},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","_npmVersion":"10.8.2","description":"MY frist threejs special package","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.158.0"},"peerDependencies":{"three":">=0.158.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.1_1764054652968_0.5375665875185864","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"three-special-effects","version":"1.0.2","keywords":["test"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.2","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"bin":{"three-special-effects":"index.js"},"dist":{"shasum":"ca04dd8e6c95be5c733e40845a6aa251d7ce1817","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.2.tgz","fileCount":3,"integrity":"sha512-zOL0ULIl05HIwqIYJENb63qh/UEL+48v4qiV97CoaNp3Sj7dBtoI+o5OwKI0IAIpGVXnBn5o9oiXbZKsYWNePg==","signatures":[{"sig":"MEUCIQCdhl2XFM/JlqXhIn+doxY95Gfdl06Gdt1kv3jsEXSpvwIgGK3OrPWMhrogZF7cqEg9PGM7LGdtGVfq1IWkqKxLz1I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":796},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","_npmVersion":"10.8.2","description":"MY frist threejs special package","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.158.0"},"peerDependencies":{"three":">=0.158.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.2_1764054727835_0.4623149568511957","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"three-special-effects","version":"1.0.3","keywords":["test"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.3","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"bin":{"three-special-effects":"index.js"},"dist":{"shasum":"9e6f191d72f673cc2af85d833e87595db2af7d1a","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.3.tgz","fileCount":3,"integrity":"sha512-982P6kAbKqCw1IBlcECn8QblRcV4HIqbSuqjgtOq8O3cSRN/Pe8kMwp6peDirS1g/0yq5bBMNEiUCYe0qkSGUw==","signatures":[{"sig":"MEUCIFAyWpCgBl7bj4vpLrL2PsC+PA1guMHqKnXFkziUP+bzAiEAtF7lM5CBbKHW7wXN/R7FHcM/HlT6u4zlgHZDqNVwy1U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":816},"main":"index.js","type":"module","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","_npmVersion":"10.8.2","description":"MY frist threejs special package","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.3_1764055126215_0.048083269186093736","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"three-special-effects","version":"1.0.4","keywords":["test"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.4","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"bin":{"three-special-effects":"index.js"},"dist":{"shasum":"52005e2f5bfc211fae754455773a81a7f64ea356","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.4.tgz","fileCount":3,"integrity":"sha512-XApcJ6Rq3jj4JaMLmBOVxQg02Jn5rB4uzcHgpO/9W9nb5kyCyDpBzNXfThuh/NF5Dp8AYtjW9ESmTguckTtflg==","signatures":[{"sig":"MEQCIAk9QxhavG2iIA6tq/OVuC5p2XHpssYsi3Hw1VOZih4LAiBTSf4+puS8kjlbSaoIFReCn6iB9XRDq/8lmXvTWxY72Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13484},"main":"index.js","type":"module","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.4_1764060570443_0.3821465672208728","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"three-special-effects","version":"1.0.5","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.5","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"bin":{"three-special-effects":"index.js"},"dist":{"shasum":"d034e662a3944af24df6f5904123f5204d485b9f","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.5.tgz","fileCount":3,"integrity":"sha512-0Ke7ZaR3hY8rR4kA2AMBof1LF2InOIwHezhFwypH4pD6IQYVjCIJFo/VSvZg9V60gFj6Kv7mKLRP5icqv+ygqA==","signatures":[{"sig":"MEQCIFe98VAp4iIAJAOzWGWYKdfHy4PucXtDwhoeIpNJGJbEAiB2AvZ6wmHcCWQAe//MlD8ngEUfP03bN7+iciNt/5eezA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13646},"main":"index.js","type":"module","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.5_1764060831935_0.6790189649670431","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"three-special-effects","version":"1.0.6","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials","3d-materials","webgl","graphics","shaders"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.6","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/your-username/three-special-effects#readme","bugs":{"url":"https://github.com/your-username/three-special-effects/issues"},"bin":{"three-special-effects":"src/index.js"},"dist":{"shasum":"df009fcde164f9512bb6d8b7274d12d5cd16d1e9","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.6.tgz","fileCount":11,"integrity":"sha512-rQJo9+mClxWLNSnFGUay9FrQDFY0/vl76D9Gn6S5IyYgJO2HLwWzaciYolMy4EFui3ob5o187g7aeAumMTQCjQ==","signatures":[{"sig":"MEQCIAXLYKsJkrz8mYITv/Pmh6x2gSEgZVtv+Pj+czzarZpHAiBxySly6Hjp/qTUV4Iu/YdAXOEEpR1/kklEvHxnnxwenw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14914},"main":"./src/index.js","type":"module","module":"./src/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/index.js","require":"./src/index.js"},"./model":{"import":"./src/model/index.js","require":"./src/model/index.js"},"./special":{"import":"./src/special/index.js","require":"./src/special/index.js"},"./material":{"import":"./src/material/index.js","require":"./src/material/index.js"},"./package.json":"./package.json"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/your-username/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.6_1764123749835_0.27264908761419093","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"three-special-effects","version":"1.0.7","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials","3d-materials","webgl","graphics","shaders"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.7","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/your-username/three-special-effects#readme","bugs":{"url":"https://github.com/your-username/three-special-effects/issues"},"bin":{"three-special-effects":"src/index.js"},"dist":{"shasum":"01cb1baeed0a17589fb0a88857ba644ef969030b","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.7.tgz","fileCount":11,"integrity":"sha512-AgBpGK4xSLLxXy13EPutR+D2gbYhdzul76bTK3NB/b+Y1JsQ4mMaHwj3A3l03axRz0cjH1rhagiLmOlxk8bgSg==","signatures":[{"sig":"MEUCICMqUiVzo9k/iOxCAeGkPwuXarcmgKh4V10s2bcoLBePAiEApm9OD7epUQwnKObRzPkByI2pn6XDwU2qR6y/PaGjUvM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14913},"main":"./src/index.js","type":"module","module":"./src/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/index.js","require":"./src/index.js"},"./model":{"import":"./src/model/index.js","require":"./src/model/index.js"},"./special":{"import":"./src/special/index.js","require":"./src/special/index.js"},"./material":{"import":"./src/material/index.js","require":"./src/material/index.js"},"./package.json":"./package.json"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/your-username/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.7_1764123943297_0.13546590909408884","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"three-special-effects","version":"1.0.8","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials","3d-materials","webgl","graphics","shaders"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.8","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/your-username/three-special-effects#readme","bugs":{"url":"https://github.com/your-username/three-special-effects/issues"},"bin":{"three-special-effects":"src/index.js"},"dist":{"shasum":"94b1b59d382bc563d062b2770f8a57c8f6a65dd4","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.8.tgz","fileCount":11,"integrity":"sha512-S1Vn4+/N/ayZsucVNB/dnawodDfN43yzJ/lpK6TdMHUU2+tdV4Zw+CcW1cIpXHxOJM//zR4DP/QAM9wi/9n16A==","signatures":[{"sig":"MEUCIQCkQjQChqq9/Cjhi8io0dwUCKhD6oYrswaFEfxwclFQVAIgVX9NTXbSoWRzPnXfhnrcFqWUgaRqySVz55hyTJ8wLW8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15095},"main":"./src/index.js","type":"module","module":"./src/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/index.js","require":"./src/index.js"},"./model":{"import":"./src/model/index.js","require":"./src/model/index.js"},"./special":{"import":"./src/special/index.js","require":"./src/special/index.js"},"./material":{"import":"./src/material/index.js","require":"./src/material/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"echo '开发模式: 直接使用 src 目录'","test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/your-username/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.8_1764127222083_0.5777007787211985","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"three-special-effects","version":"1.0.9","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials","3d-materials","webgl","graphics","shaders"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.9","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/your-username/three-special-effects#readme","bugs":{"url":"https://github.com/your-username/three-special-effects/issues"},"bin":{"three-special-effects":"src/index.js"},"dist":{"shasum":"54206a2e6c510b14e2917387cc66d06524dab7bc","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.9.tgz","fileCount":12,"integrity":"sha512-XPcPayTV13NyBDncffBj3yce7MYS3zdeVHtZ1BR3ncXm2nRlZjqB5D2X4Qf28i0n3edxUidtcodRUIRMxANi/w==","signatures":[{"sig":"MEUCID1zVeC16h8ZwG42PW+Y4DOHIdG3qGZ8l0RzxK8QFDwrAiEAj0LZQz8P4ElpYGK5gMc439MRe1IWW+/wB/nu5Z3JZI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15235},"main":"./src/index.js","type":"module","module":"./src/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/index.js","require":"./src/index.js"},"./model":{"import":"./src/model/index.js","require":"./src/model/index.js"},"./special":{"import":"./src/special/index.js","require":"./src/special/index.js"},"./material":{"import":"./src/material/index.js","require":"./src/material/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"echo '开发模式: 直接使用 src 目录'","test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/your-username/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.9_1764127360897_0.86572451252458","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"three-special-effects","version":"1.0.10","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials","3d-materials","webgl","graphics","shaders"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.10","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/your-username/three-special-effects#readme","bugs":{"url":"https://github.com/your-username/three-special-effects/issues"},"bin":{"three-special-effects":"src/index.js"},"dist":{"shasum":"2f1da07b8aa91072f86792c6401a39f918949de2","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.10.tgz","fileCount":12,"integrity":"sha512-xpUlRHO9KHe6rAFmCACHJHMYI41CNrtFJMOVmjNQaSU+xtlWqR66v3Z+ed2kV0IebdWOM38UjgksYy/Y49x7VQ==","signatures":[{"sig":"MEUCIEC1+ZukJ7rZgL1aULv4Oc7ksXR7z3h/B5E+uXS5K0bzAiEA9oQU8Grs2DuDZXXhc0f7Hb61Un6cRldMGg/ld7JY6Wo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31697},"main":"./src/index.js","type":"module","module":"./src/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/index.js","require":"./src/index.js"},"./model":{"import":"./src/model/index.js","require":"./src/model/index.js"},"./special":{"import":"./src/special/index.js","require":"./src/special/index.js"},"./material":{"import":"./src/material/index.js","require":"./src/material/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"echo '开发模式: 直接使用 src 目录'","test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/your-username/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.10_1764144555709_0.6323924000427292","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"three-special-effects","version":"1.0.11","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials","3d-materials","webgl","graphics","shaders"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.11","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/your-username/three-special-effects#readme","bugs":{"url":"https://github.com/your-username/three-special-effects/issues"},"bin":{"three-special-effects":"src/index.js"},"dist":{"shasum":"b8578da052b8d076e16cea5499c47c0c47ecbabb","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.11.tgz","fileCount":12,"integrity":"sha512-ftAmItfi95mM3eqeBFSQvAN8Alpi29YP/WFiR+1U/CDGhMtEo5f9u7szxudz4+kblj3ibhLxPqoOLKhsZsnTYw==","signatures":[{"sig":"MEUCIDE5jS2QykomiB03872xtsiUFYEiIlVtcE6zNZh0QbtTAiEA8u310fFFxDu7NOFAAO0qeFQkSYuDOzsLtjMv4Tox0XQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131870},"main":"./src/index.js","type":"module","module":"./src/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/index.js","require":"./src/index.js"},"./model":{"import":"./src/model/index.js","require":"./src/model/index.js"},"./special":{"import":"./src/special/index.js","require":"./src/special/index.js"},"./material":{"import":"./src/material/index.js","require":"./src/material/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"echo '开发模式: 直接使用 src 目录'","test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/your-username/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0","javascript-obfuscator":"^4.1.1"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.11_1764227613545_0.7301106566411983","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"three-special-effects","version":"1.0.12","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials","3d-materials","webgl","graphics","shaders"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.12","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/your-username/three-special-effects#readme","bugs":{"url":"https://github.com/your-username/three-special-effects/issues"},"bin":{"three-special-effects":"src/index.js"},"dist":{"shasum":"79280673c5b2d479e3c4b83e670b0b1c3a3f2d53","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.12.tgz","fileCount":12,"integrity":"sha512-2WgGh49WbDJBclb4Jp3/CVraZu2kqvsGLYOlpfHStwRL1NFeDGcGTL3lJhNIoWSXF+J/ezoWKDwbdbHQERZjgw==","signatures":[{"sig":"MEYCIQC99IIIQGOP9QkUuXsz1e6WBQnVHfuoYhlOzHVztVjCKAIhAKQZJ05T1xa/WGhvUxYi4uWIaIKOX45qw/Q2MNqtaN4Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121889},"main":"./src/index.js","type":"module","module":"./src/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/index.js","require":"./src/index.js"},"./model":{"import":"./src/model/index.js","require":"./src/model/index.js"},"./special":{"import":"./src/special/index.js","require":"./src/special/index.js"},"./material":{"import":"./src/material/index.js","require":"./src/material/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"echo '开发模式: 直接使用 src 目录'","test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/your-username/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0","javascript-obfuscator":"^4.1.1"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.12_1764227921370_0.5385343213502334","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"three-special-effects","version":"1.0.13","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials","3d-materials","webgl","graphics","shaders"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.13","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/your-username/three-special-effects#readme","bugs":{"url":"https://github.com/your-username/three-special-effects/issues"},"bin":{"three-special-effects":"src/index.js"},"dist":{"shasum":"239bf56befe8b95670900feb8bc1515d1d5f13b4","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.13.tgz","fileCount":12,"integrity":"sha512-7DOG1pFzEeR43wxZP5TmMAZpOoyRRCZIfZoqlApW68rnpcVcvTPMpijAw/5Uf0W1dFAPvG72/HZYYkt/gfTYOA==","signatures":[{"sig":"MEYCIQDs0B0E1aAMY7PdNZ35NwIZuH8XRlSV5B7rlFb2NgKC8QIhAJ+L6a+dmB4FxBcF0q7x2nfhWioT70tXXjvpD24V0UJv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53917},"main":"./src/index.js","type":"module","module":"./src/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/index.js","require":"./src/index.js"},"./model":{"import":"./src/model/index.js","require":"./src/model/index.js"},"./special":{"import":"./src/special/index.js","require":"./src/special/index.js"},"./material":{"import":"./src/material/index.js","require":"./src/material/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"echo '开发模式: 直接使用 src 目录'","test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/your-username/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0","javascript-obfuscator":"^4.1.1"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.13_1764228600869_0.6993018237159403","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"three-special-effects","version":"1.0.14","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials","3d-materials","webgl","graphics","shaders"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.14","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/your-username/three-special-effects#readme","bugs":{"url":"https://github.com/your-username/three-special-effects/issues"},"bin":{"three-special-effects":"src/index.js"},"dist":{"shasum":"d8d33dde7575702b03b82ff460c189bf563bdc6b","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.14.tgz","fileCount":12,"integrity":"sha512-q7LlJ1XmRg81q+TDoAfAglgluptYAttzdQza7r1e2lOvaVhLmJC+eQfQK3vs3ywf91/wlUXI9v6rj7Viby6zxA==","signatures":[{"sig":"MEUCIQDguRnsVOMg/O2UHTDQpGc4nmRDNmTI6KVj9orbFuYZigIgbXXAXxbNmqKkg97yGTbAzefqZVKM0xa98CCPgC2QnT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53917},"main":"./src/index.js","type":"module","module":"./src/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/index.js","require":"./src/index.js"},"./model":{"import":"./src/model/index.js","require":"./src/model/index.js"},"./special":{"import":"./src/special/index.js","require":"./src/special/index.js"},"./material":{"import":"./src/material/index.js","require":"./src/material/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"echo '开发模式: 直接使用 src 目录'","test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/your-username/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0","javascript-obfuscator":"^4.1.1"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.14_1764228715471_0.8218497491853556","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"three-special-effects","version":"1.0.15","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials","3d-materials","webgl","graphics","shaders"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.15","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/your-username/three-special-effects#readme","bugs":{"url":"https://github.com/your-username/three-special-effects/issues"},"bin":{"three-special-effects":"src/index.js"},"dist":{"shasum":"8682e13b4a7e2ab41b14ac1bf4f7ef263ba2353f","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.15.tgz","fileCount":12,"integrity":"sha512-XPOswL3C+DqFe0by4UK8qJmTpx0DVS0xFaBkuRtdpB9uIV5f6OrAHj56Zed9PBJ3TXUXj5yE4UgagUssuqI99Q==","signatures":[{"sig":"MEUCIQDm0dR/YhbYFoHCbbOH3CQbfh0yMCMcSlBmwgpRImYzMgIgbIUyEdGPRIeqI/frDVgyCDhTLJURR/66o15vvMsopRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70134},"main":"./src/index.js","type":"module","module":"./src/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/index.js","require":"./src/index.js"},"./model":{"import":"./src/model/index.js","require":"./src/model/index.js"},"./special":{"import":"./src/special/index.js","require":"./src/special/index.js"},"./material":{"import":"./src/material/index.js","require":"./src/material/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"echo '开发模式: 直接使用 src 目录'","test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/your-username/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0","javascript-obfuscator":"^4.1.1"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.15_1764229018700_0.10581675479723551","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"three-special-effects","version":"1.0.16","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials","3d-materials","webgl","graphics","shaders"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.16","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/your-username/three-special-effects#readme","bugs":{"url":"https://github.com/your-username/three-special-effects/issues"},"bin":{"three-special-effects":"src/index.js"},"dist":{"shasum":"1850de71d0e2e9ffb91e87e0ec5cc374814ab68d","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.16.tgz","fileCount":12,"integrity":"sha512-M5UkFuzpVpGJHB9yUL73T1Glr+vkyxtc6MKl0paIspy+PwZrP26KTGwzvNWHAgPPH3JDddKW5gvyh6kzbOfsTg==","signatures":[{"sig":"MEUCIHBi9gJ5IImO1oZFE/L6Z8CpVVSsGiIJMYuNveuPF9FTAiEAmb7xZ6sBEH/KMrY08YB/oaSi9b/TK/5DJdL2RQJhClY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75909},"main":"./src/index.js","type":"module","module":"./src/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/index.js","require":"./src/index.js"},"./model":{"import":"./src/model/index.js","require":"./src/model/index.js"},"./special":{"import":"./src/special/index.js","require":"./src/special/index.js"},"./material":{"import":"./src/material/index.js","require":"./src/material/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"echo '开发模式: 直接使用 src 目录'","test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/your-username/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0","javascript-obfuscator":"^4.1.1"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.16_1764229384445_0.5305429580474028","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"three-special-effects","version":"1.0.17","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials","3d-materials","webgl","graphics","shaders"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.17","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/your-username/three-special-effects#readme","bugs":{"url":"https://github.com/your-username/three-special-effects/issues"},"bin":{"three-special-effects":"src/index.js"},"dist":{"shasum":"4d62a6b4450df1c96e2aaa55dbacd33edf9807b7","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.17.tgz","fileCount":12,"integrity":"sha512-7ANiyFvapwImYU6toS2VQ+UtHuqVAYzGNG3TOUtn68abCCVJ1/QrOoy0DZLV1+eKzYgjEcSewsRhnWTJffz1zw==","signatures":[{"sig":"MEYCIQC9QgPVQmjZmjgYFPlvj9q0A2OdBsyWzHI7HKYvvNqnWAIhAP85axZaIvO/sqPWbfS8/AsRMfX7j65qAl3LeTYKTBLG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75869},"main":"./src/index.js","type":"module","module":"./src/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/index.js","require":"./src/index.js"},"./model":{"import":"./src/model/index.js","require":"./src/model/index.js"},"./special":{"import":"./src/special/index.js","require":"./src/special/index.js"},"./material":{"import":"./src/material/index.js","require":"./src/material/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"echo '开发模式: 直接使用 src 目录'","test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/your-username/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.153.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.17_1764229481227_0.2967098142533777","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"three-special-effects","version":"1.0.18","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.18","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/zhaodataiyang/three-special-effects#readme","bugs":{"url":"https://github.com/zhaodataiyang/three-special-effects/issues"},"bin":{"three-special-effects":"lib/index.js"},"dist":{"shasum":"7284d49ecc74c208633f59e054f2dbd4475f01bf","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.18.tgz","fileCount":11,"integrity":"sha512-QXPEba3z2zNyLIrKvfde1lM0kUkl8Xk5UiOW7aUsP4FDkWZ3cSQWWfeWs9c7x8266tZj/yX22rAI2ftlALshiw==","signatures":[{"sig":"MEYCIQCxVBW6+iQgBR8ls+li1VyKkpE18s/NXy+DXMIOGro8IgIhAIOl0kB9uUblE+ul5rV1yzpSu9TUGerOx3u5PMA/J+yV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75563},"main":"./lib/index.js","type":"module","module":"./lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./model":{"import":"./lib/model/index.js","require":"./lib/model/index.js"},"./special":{"import":"./lib/special/index.js","require":"./lib/special/index.js"},"./material":{"import":"./lib/material/index.js","require":"./lib/material/index.js"},"./package.json":"./package.json"},"scripts":{"test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/zhaodataiyang/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.158.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.18_1764230195888_0.37415467518160606","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"three-special-effects","version":"1.0.19","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.19","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/zhaodataiyang/three-special-effects#readme","bugs":{"url":"https://github.com/zhaodataiyang/three-special-effects/issues"},"bin":{"three-special-effects":"lib/index.js"},"dist":{"shasum":"76251e5a7213fc2903288c5573468b2bfb26badb","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.19.tgz","fileCount":11,"integrity":"sha512-r6zJQ0e4WsIFOiL60XWiR9CxOE0l0DfyoY/5E5rmwFvLpKqBK14oNCAMD2wII7bAQi1KIkJBoKgX+4Pgm+eQeA==","signatures":[{"sig":"MEQCID9KWk9gGAXYDbdzgcXFWqYafF05VAWOD2YVLfCGAfzIAiAelZpfuoA8iEl3eOXKE4ehnY1ia9KcDxepL2bGBSuqkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68836},"main":"./lib/index.js","type":"module","module":"./lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./model":{"import":"./lib/model/index.js","require":"./lib/model/index.js"},"./special":{"import":"./lib/special/index.js","require":"./lib/special/index.js"},"./material":{"import":"./lib/material/index.js","require":"./lib/material/index.js"},"./package.json":"./package.json"},"scripts":{"test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/zhaodataiyang/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.158.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.19_1764231180009_0.4022322928814772","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"three-special-effects","version":"1.0.20","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@1.0.20","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/zhaodataiyang/three-special-effects#readme","bugs":{"url":"https://github.com/zhaodataiyang/three-special-effects/issues"},"bin":{"three-special-effects":"lib/index.js"},"dist":{"shasum":"e1b0dd7d5f1c84430e37cd90f6dfed30dfc05ffb","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-1.0.20.tgz","fileCount":11,"integrity":"sha512-WOgp4lNlcq/2RlnvqeBPzUypc2YVvTATkoTt0hPjuMUg2Wq/TzwlUeAIiBRkerUL1s1vI62jNKesA82JbJS7dQ==","signatures":[{"sig":"MEYCIQDtBcK81boM7WT7CK+QRQhnSikKrlOBp9t4KwYefA+xvwIhAJbFON7jqtD89UJKlZmSAajtAwyPsDZYjAGDQQxusQHV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75563},"main":"./lib/index.js","type":"module","module":"./lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./model":{"import":"./lib/model/index.js","require":"./lib/model/index.js"},"./special":{"import":"./lib/special/index.js","require":"./lib/special/index.js"},"./material":{"import":"./lib/material/index.js","require":"./lib/material/index.js"},"./package.json":"./package.json"},"scripts":{"test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"deprecated":"These versions have performance issues. Please upgrade to 2.0.0+.","repository":{"url":"git+https://github.com/zhaodataiyang/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.158.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_1.0.20_1764231492878_0.36991045206725715","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"three-special-effects","version":"2.0.0","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@2.0.0","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/zhaodataiyang/three-special-effects#readme","bugs":{"url":"https://github.com/zhaodataiyang/three-special-effects/issues"},"bin":{"three-special-effects":"lib/index.js"},"dist":{"shasum":"d688dd267b736d21400e8d28c6139892b4cf4454","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-2.0.0.tgz","fileCount":11,"integrity":"sha512-HzSpF0qsz7IxLGQskBEA6DtGRe4iV6wxN+CKMEDw8AEY80NoY2yA5ENHABBlNygXsbgIekR7oxnwf5mIH8eG6g==","signatures":[{"sig":"MEUCIQCUbjxC6125kj5u2Dc+Q6ndex9vvNHto4a82gRZ7E/RmgIgNCoiYCumP1QO8d7328Zo/46MawaaHoRmmuZUtEheUok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75562},"main":"./lib/index.js","type":"module","module":"./lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./model":{"import":"./lib/model/index.js","require":"./lib/model/index.js"},"./special":{"import":"./lib/special/index.js","require":"./lib/special/index.js"},"./material":{"import":"./lib/material/index.js","require":"./lib/material/index.js"},"./package.json":"./package.json"},"scripts":{"test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"repository":{"url":"git+https://github.com/zhaodataiyang/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.158.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_2.0.0_1764231868127_0.6928906055883179","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"three-special-effects","version":"2.0.1","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@2.0.1","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/zhaodataiyang/three-special-effects#readme","bugs":{"url":"https://github.com/zhaodataiyang/three-special-effects/issues"},"bin":{"three-special-effects":"lib/index.js"},"dist":{"shasum":"ccf5e7dc5d7d75d0ce30a3d9f8f77433e24b04bf","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-2.0.1.tgz","fileCount":11,"integrity":"sha512-8OosS4r6BYTi83altQh5TGRlE67UAX5KCeMyyySnUiO63wMGPh1ES2smEooeD0bVOq0Ttz7jtx8uE18qM5NsMQ==","signatures":[{"sig":"MEYCIQDS58EMEg20d7CQjLjxhA8bITSPsnsEhkGPOw+IMzI82QIhAJLPVHcWVsxZOIU/RwT0XrTA5+exT85BuMDn0fmRme+1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75562},"main":"./lib/index.js","type":"module","module":"./lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./model":{"import":"./lib/model/index.js","require":"./lib/model/index.js"},"./special":{"import":"./lib/special/index.js","require":"./lib/special/index.js"},"./material":{"import":"./lib/material/index.js","require":"./lib/material/index.js"},"./package.json":"./package.json"},"scripts":{"test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"repository":{"url":"git+https://github.com/zhaodataiyang/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.158.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_2.0.1_1764232156324_0.7745069757483098","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"three-special-effects","version":"2.0.2","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@2.0.2","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/zhaodataiyang/three-special-effects#readme","bugs":{"url":"https://github.com/zhaodataiyang/three-special-effects/issues"},"bin":{"three-special-effects":"lib/index.js"},"dist":{"shasum":"a7e2a064dcc0ae69cca111f318175299a918021c","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-2.0.2.tgz","fileCount":11,"integrity":"sha512-1uxpvpnkeLQG/rycmt28M9Hj/iiWj2wtbVFnoizYZUPeZHt4Da8dKr0IhoacN8lhs0MFpByjgfFbqYiB3s8NDQ==","signatures":[{"sig":"MEUCIQCtw5P4LBMMe8h07SLhZywxM+bTW+AbOBzIzn1slZiwTAIgfRiS+gdg2vYurbUe63TVLrIFRA4JSGAqGN89zw9jzv0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83227},"main":"./lib/index.js","type":"module","module":"./lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./model":{"import":"./lib/model/index.js","require":"./lib/model/index.js"},"./special":{"import":"./lib/special/index.js","require":"./lib/special/index.js"},"./material":{"import":"./lib/material/index.js","require":"./lib/material/index.js"},"./package.json":"./package.json"},"scripts":{"test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"repository":{"url":"git+https://github.com/zhaodataiyang/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.158.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_2.0.2_1764749910428_0.7181808655485937","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"three-special-effects","version":"2.0.3","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials"],"author":{"name":"zhaodataiyang"},"license":"ISC","_id":"three-special-effects@2.0.3","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"homepage":"https://github.com/zhaodataiyang/three-special-effects#readme","bugs":{"url":"https://github.com/zhaodataiyang/three-special-effects/issues"},"bin":{"three-special-effects":"lib/index.js"},"dist":{"shasum":"4739c196aada0ad45377cad9b4e014c93260d384","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-2.0.3.tgz","fileCount":11,"integrity":"sha512-FZ3r3Ex6peJdlpml6llnCoJxdnrRBc8cQ+0nL38LN8fFmx5V2kfOz/dVCITHl2PJWwBOeDIIHd/6r8F799vxTA==","signatures":[{"sig":"MEUCIQCtzfjwBSA3wCQRuov0gIfveu40rsYTASAOgv4tHfwOYwIgS9GZeYHzZYEaTXySNoazc5DOU3+HYnTHfnwqBIeRCgg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134418},"main":"./lib/index.js","type":"module","module":"./lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./model":{"import":"./lib/model/index.js","require":"./lib/model/index.js"},"./special":{"import":"./lib/special/index.js","require":"./lib/special/index.js"},"./material":{"import":"./lib/material/index.js","require":"./lib/material/index.js"},"./package.json":"./package.json"},"gitHead":"3ba45cc9cc2bc0b885503225ed189d10dd8934a7","scripts":{"test":"echo \"测试通过\" && exit 0","build":"node build.js","clean":"rm -rf lib/","verify":"node verify-build.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"repository":{"url":"git+https://github.com/zhaodataiyang/three-special-effects.git","type":"git"},"_npmVersion":"10.8.2","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"three":"^0.158.0"},"peerDependencies":{"three":">=0.153.0"},"_npmOperationalInternal":{"tmp":"tmp/three-special-effects_2.0.3_1764813512237_0.5800349661771713","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"three-special-effects","version":"2.0.4","description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","type":"module","main":"./lib/index.js","module":"./lib/index.js","exports":{".":"./lib/index.js","./material":"./lib/material/index.js","./model":"./lib/model/index.js","./special":"./lib/special/index.js","./package.json":"./package.json"},"scripts":{"build":"node build.js","prepublishOnly":"npm run build","clean":"node --input-type=commonjs -e \"require('fs').rmSync('lib', { recursive: true, force: true })\"","verify":"node verify-build.js","test":"node --test"},"keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials"],"author":{"name":"zhaodataiyang"},"license":"ISC","engines":{"node":">=18"},"peerDependencies":{"three":">=0.153.0"},"devDependencies":{"three":"^0.158.0"},"repository":{"type":"git","url":"git+https://github.com/zhaodataiyang/three-special-effects.git"},"bugs":{"url":"https://github.com/zhaodataiyang/three-special-effects/issues"},"homepage":"https://github.com/zhaodataiyang/three-special-effects#readme","_id":"three-special-effects@2.0.4","gitHead":"5ca3eb03980385cc694bf147c53960ca1638fb57","_nodeVersion":"18.20.8","_npmVersion":"10.8.2","dist":{"integrity":"sha512-skYXvq8POhd1gxz6tRLDX+2rEwewd0npiJ/qiWIaJD19LyvgKY2+vP4MnkNpEtIdRKA1Ue0MV4qw7OZZwM/YyA==","shasum":"43396d3de407e3343dbb75ff8a8c5014c4167f77","tarball":"https://registry.npmjs.org/three-special-effects/-/three-special-effects-2.0.4.tgz","fileCount":16,"unpackedSize":169834,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDW5fyAB+92LZxerSeg58kVISXqnHwzPcGlC3FApLcP9QIgX75xMKIpqRzxFUvguPKD5RVfng0a17+Joq5hOgUTRl8="}]},"_npmUser":{"name":"bigsun0109","email":"bigsun0109@163.com"},"directories":{},"maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-special-effects_2.0.4_1787651208499_0.8415021035139831"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-25T07:08:48.770Z","modified":"2026-08-25T09:46:48.841Z","1.0.0":"2025-11-25T07:08:48.942Z","1.0.1":"2025-11-25T07:10:53.145Z","1.0.2":"2025-11-25T07:12:08.017Z","1.0.3":"2025-11-25T07:18:46.396Z","1.0.4":"2025-11-25T08:49:30.616Z","1.0.5":"2025-11-25T08:53:52.113Z","1.0.6":"2025-11-26T02:22:30.030Z","1.0.7":"2025-11-26T02:25:43.507Z","1.0.8":"2025-11-26T03:20:22.255Z","1.0.9":"2025-11-26T03:22:41.168Z","1.0.10":"2025-11-26T08:09:15.922Z","1.0.11":"2025-11-27T07:13:33.721Z","1.0.12":"2025-11-27T07:18:41.546Z","1.0.13":"2025-11-27T07:30:01.037Z","1.0.14":"2025-11-27T07:31:55.689Z","1.0.15":"2025-11-27T07:36:58.898Z","1.0.16":"2025-11-27T07:43:04.632Z","1.0.17":"2025-11-27T07:44:41.407Z","1.0.18":"2025-11-27T07:56:36.081Z","1.0.19":"2025-11-27T08:13:00.204Z","1.0.20":"2025-11-27T08:18:13.072Z","2.0.0":"2025-11-27T08:24:28.319Z","2.0.1":"2025-11-27T08:29:16.493Z","2.0.2":"2025-12-03T08:18:30.640Z","2.0.3":"2025-12-04T01:58:32.402Z","2.0.4":"2026-08-25T09:46:48.640Z"},"bugs":{"url":"https://github.com/zhaodataiyang/three-special-effects/issues"},"author":{"name":"zhaodataiyang"},"license":"ISC","homepage":"https://github.com/zhaodataiyang/three-special-effects#readme","keywords":["Three.js","材质管理器","特殊材质","Three.js材质","Three.js特效","three-materials"],"repository":{"type":"git","url":"git+https://github.com/zhaodataiyang/three-special-effects.git"},"description":"Three.js材质管理器，增加多种材质效果，方便在Three.js项目中使用。","maintainers":[{"name":"bigsun0109","email":"bigsun0109@163.com"}],"readme":"# three-special-effects API 文档\r\n\r\n## 概述\r\n\r\nThree.js 材质管理器是一个功能完整的 Three.js 材质、特效管理器，提供了材质应用、原始材质保存和恢复等功能。支持多种基础颜色材质、特殊效果材质和物理材质。适合在三维场景中快速切换材质以实现高亮、临时效果或调试。\r\n\r\n### 安装\r\n\r\n```bash\r\nnpm install three-special-effects\r\n```\r\n\r\n### 快速开始\r\n\r\n```javascript\r\nimport * as THREE from 'three';\r\nimport {\r\n    MaterialManager,\r\n    saveOriginalMaterials,\r\n    restoreOriginalMaterials,\r\n    color_material\r\n} from 'three-special-effects/material';\r\n\r\n// 创建一个示例 mesh\r\nconst geometry = new THREE.BoxGeometry();\r\nconst originalMaterial = new THREE.MeshStandardMaterial({ color: 0x808080 });\r\nconst mesh = new THREE.Mesh(geometry, originalMaterial);\r\n\r\n// 保存原始材质并应用红色高亮\r\nMaterialManager.saveOriginalMaterial(mesh);\r\ncolor_material.red_material(mesh);\r\n\r\n// 恢复原始材质\r\nMaterialManager.restoreOriginalMaterial(mesh);\r\n```\r\n\r\n---\r\n\r\n## 目录\r\n\r\n- [MaterialManager 模块](#materialmanager-模块)\r\n  - [saveOriginalMaterial](#saveoriginalmaterial)\r\n  - [restoreOriginalMaterial](#restoreoriginalmaterial)\r\n  - [getOriginalMaterial](#getoriginalmaterial)\r\n  - [hasMaterial](#hasmaterial)\r\n  - [clearAll](#clearall)\r\n  - [getSavedCount](#getsavedcount)\r\n  - [printSavedObjects](#printsavedobjects)\r\n  - [saveOriginalMaterials](#saveoriginalmaterials)\r\n  - [restoreOriginalMaterials](#restoreoriginalmaterials)\r\n- [color_material 模块](#color_material-模块)\r\n  - [基础颜色材质](#基础颜色材质)\r\n  - [特殊效果材质](#特殊效果材质)\r\n  - [物理材质](#物理材质)\r\n  - [高级材质 (2.0.2新增)](#高级材质-202新增)\r\n  - [通用材质工具](#通用材质工具)\r\n  - [材质预设](#材质预设)\r\n- [SpecialEffects 模块](#specialeffects-模块)\r\n  - [EffectManager](#effectmanager)\r\n  - [实用模型特效](#实用模型特效)\r\n  - [高级模型特效](#高级模型特效)\r\n  - [applyPulsingEffect](#applypulsingeffect)\r\n  - [createParticleTransferEffect](#createparticletransfereffect)\r\n  - [createBurntSmokeEffect](#createburntsmokeeffect)\r\n  - [createSurroundingAuraEffect](#createsurroundingauraeffect)\r\n  - [createElectricArcEffect](#createelectricarceffect)\r\n  - [createExplosionEffect](#createexplosioneffect)\r\n  - [createScanLineEffect](#createscanlineeffect)\r\n  - [createOutlineEffect](#createoutlineeffect)\r\n  - [createFloatingParticlesEffect](#createfloatingparticleseffect)\r\n- [Model 模块](#model-模块)\r\n  - [ThreeCleanup](#threecleanup)\r\n\r\n---\r\n\r\n## MaterialManager 模块\r\n\r\n材质管理器提供了保存和恢复对象原始材质的功能，避免永久覆盖材质。\r\n\r\n### saveOriginalMaterial\r\n\r\n保存对象的原始材质到内部 Map 中。在应用新材质之前调用此方法，可以确保后续能够恢复原始材质。\r\n\r\n**语法**\r\n\r\n```javascript\r\nMaterialManager.saveOriginalMaterial(object)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| object | `THREE.Mesh \\| THREE.Object3D` | 要保存材质的对象，必须包含 material 属性 |\r\n\r\n**返回值**\r\n\r\n- `boolean` - 成功保存返回 `true`，失败返回 `false`\r\n\r\n**示例**\r\n\r\n```javascript\r\nconst mesh = new THREE.Mesh(geometry, material);\r\nconst success = MaterialManager.saveOriginalMaterial(mesh);\r\n// 返回 true 表示保存成功，false 表示失败\r\n```\r\n\r\n---\r\n\r\n### restoreOriginalMaterial\r\n\r\n恢复对象的原始材质。如果之前保存过该对象的材质，则恢复并移除记录。\r\n\r\n**语法**\r\n\r\n```javascript\r\nMaterialManager.restoreOriginalMaterial(object)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| object | `THREE.Mesh \\| THREE.Object3D` | 要恢复材质的对象 |\r\n\r\n**返回值**\r\n\r\n- `boolean` - 成功恢复返回 `true`，未找到保存的材质返回 `false`\r\n\r\n**示例**\r\n\r\n```javascript\r\nMaterialManager.saveOriginalMaterial(mesh);\r\ncolor_material.red_material(mesh);\r\n// ... 使用红色材质一段时间后 ...\r\nMaterialManager.restoreOriginalMaterial(mesh);\r\n// 材质已恢复为原始材质\r\n```\r\n\r\n---\r\n\r\n### getOriginalMaterial\r\n\r\n获取对象的原始材质（不恢复，只获取）。用于查看保存的材质，但不会恢复它。\r\n\r\n**语法**\r\n\r\n```javascript\r\nMaterialManager.getOriginalMaterial(object)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| object | `THREE.Mesh \\| THREE.Object3D` | 要获取材质的对象 |\r\n\r\n**返回值**\r\n\r\n- `THREE.Material \\| undefined` - 返回保存的原始材质，如果不存在则返回 `undefined`\r\n\r\n**示例**\r\n\r\n```javascript\r\nMaterialManager.saveOriginalMaterial(mesh);\r\nconst originalMaterial = MaterialManager.getOriginalMaterial(mesh);\r\nconsole.log(originalMaterial);\r\n// 材质仍然保存在 Map 中，可以继续使用\r\n```\r\n\r\n---\r\n\r\n### hasMaterial\r\n\r\n检查是否保存了对象的材质。\r\n\r\n**语法**\r\n\r\n```javascript\r\nMaterialManager.hasMaterial(object)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| object | `THREE.Mesh \\| THREE.Object3D` | 要检查的对象 |\r\n\r\n**返回值**\r\n\r\n- `boolean` - 如果保存了材质返回 `true`，否则返回 `false`\r\n\r\n**示例**\r\n\r\n```javascript\r\nif (MaterialManager.hasMaterial(mesh)) {\r\n    console.log('该对象已保存材质');\r\n}\r\n```\r\n\r\n---\r\n\r\n### clearAll\r\n\r\n清空所有保存的材质记录。\r\n\r\n**语法**\r\n\r\n```javascript\r\nMaterialManager.clearAll()\r\n```\r\n\r\n**返回值**\r\n\r\n- `void` - 无返回值\r\n\r\n**示例**\r\n\r\n```javascript\r\nMaterialManager.clearAll();\r\nconsole.log('已清空所有保存的材质');\r\n```\r\n\r\n---\r\n\r\n### getSavedCount\r\n\r\n获取当前保存的对象数量。\r\n\r\n**语法**\r\n\r\n```javascript\r\nMaterialManager.getSavedCount()\r\n```\r\n\r\n**返回值**\r\n\r\n- `number` - 返回保存的对象数量\r\n\r\n**示例**\r\n\r\n```javascript\r\nconst count = MaterialManager.getSavedCount();\r\nconsole.log(`当前保存了 ${count} 个对象的材质`);\r\n```\r\n\r\n---\r\n\r\n### printSavedObjects\r\n\r\n打印所有保存的对象信息到控制台。用于调试。\r\n\r\n**语法**\r\n\r\n```javascript\r\nMaterialManager.printSavedObjects()\r\n```\r\n\r\n**返回值**\r\n\r\n- `void` - 无返回值\r\n\r\n**示例**\r\n\r\n```javascript\r\nMaterialManager.saveOriginalMaterial(mesh1);\r\nMaterialManager.saveOriginalMaterial(mesh2);\r\nMaterialManager.printSavedObjects();\r\n// 控制台输出：当前保存了 2 个对象的材质\r\n```\r\n\r\n---\r\n\r\n### saveOriginalMaterials\r\n\r\n批量保存多个对象的原始材质。可以传入单个对象或对象数组。\r\n\r\n**语法**\r\n\r\n```javascript\r\nsaveOriginalMaterials(objects)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| objects | `THREE.Mesh \\| THREE.Object3D \\| Array<THREE.Mesh \\| THREE.Object3D>` | 单个对象或对象数组 |\r\n\r\n**返回值**\r\n\r\n- `void` - 无返回值\r\n\r\n**示例**\r\n\r\n```javascript\r\nconst objects = [mesh1, mesh2, mesh3];\r\nsaveOriginalMaterials(objects);\r\n// 批量保存了 3 个对象的材质\r\n\r\n// 或者单个对象\r\nsaveOriginalMaterials(mesh1);\r\n```\r\n\r\n---\r\n\r\n### restoreOriginalMaterials\r\n\r\n批量恢复多个对象的原始材质。可以传入单个对象或对象数组。\r\n\r\n**语法**\r\n\r\n```javascript\r\nrestoreOriginalMaterials(objects)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| objects | `THREE.Mesh \\| THREE.Object3D \\| Array<THREE.Mesh \\| THREE.Object3D>` | 单个对象或对象数组 |\r\n\r\n**返回值**\r\n\r\n- `void` - 无返回值\r\n\r\n**示例**\r\n\r\n```javascript\r\nconst objects = [mesh1, mesh2, mesh3];\r\nsaveOriginalMaterials(objects);\r\nobjects.forEach(o => color_material.blue_material(o));\r\n// ... 使用蓝色材质一段时间后 ...\r\nrestoreOriginalMaterials(objects);\r\n// 批量恢复了 3 个对象的材质\r\n```\r\n\r\n---\r\n\r\n## color_material 模块\r\n\r\n提供多种预设材质，包括基础颜色材质、特殊效果材质和物理材质。\r\n\r\n### 基础颜色材质\r\n\r\n#### green_material\r\n\r\n应用绿色发光材质到对象。使用 MeshPhongMaterial 创建绿色发光效果。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.green_material(object)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| object | `THREE.Mesh \\| THREE.Object3D` | 要应用材质的对象 |\r\n\r\n**示例**\r\n\r\n```javascript\r\nconst mesh = new THREE.Mesh(geometry);\r\ncolor_material.green_material(mesh);\r\n```\r\n\r\n#### red_material\r\n\r\n应用红色发光材质到对象。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.red_material(object)\r\n```\r\n\r\n#### blue_material\r\n\r\n应用蓝色发光材质到对象。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.blue_material(object)\r\n```\r\n\r\n#### yellow_material\r\n\r\n应用黄色发光材质到对象。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.yellow_material(object)\r\n```\r\n\r\n#### white_material\r\n\r\n应用白色发光材质到对象。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.white_material(object)\r\n```\r\n\r\n#### black_material\r\n\r\n应用黑色发光材质到对象。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.black_material(object)\r\n```\r\n\r\n#### gray_material\r\n\r\n应用灰色发光材质到对象。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.gray_material(object)\r\n```\r\n\r\n#### orange_material\r\n\r\n应用橙色发光材质到对象。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.orange_material(object)\r\n```\r\n\r\n#### purple_material\r\n\r\n应用紫色发光材质到对象。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.purple_material(object)\r\n```\r\n\r\n#### pink_material\r\n\r\n应用粉色发光材质到对象。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.pink_material(object)\r\n```\r\n\r\n#### brown_material\r\n\r\n应用棕色发光材质到对象。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.brown_material(object)\r\n```\r\n\r\n#### cyan_material\r\n\r\n应用青色发光材质到对象。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.cyan_material(object)\r\n```\r\n\r\n#### silver_material\r\n\r\n应用银色发光材质到对象。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.silver_material(object)\r\n```\r\n\r\n#### gold_material\r\n\r\n应用金色发光材质到对象。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.gold_material(object)\r\n```\r\n\r\n### 特殊效果材质\r\n\r\n#### transparent_material\r\n\r\n应用半透明材质到对象。透明度为 0.5。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.transparent_material(object)\r\n```\r\n\r\n**示例**\r\n\r\n```javascript\r\ncolor_material.transparent_material(mesh);\r\n```\r\n\r\n#### emissive_material\r\n\r\n应用发光材质到对象。使用黄色发光效果。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.emissive_material(object)\r\n```\r\n\r\n#### wireframe_material\r\n\r\n应用线框材质到对象。显示模型的线框结构。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.wireframe_material(object)\r\n```\r\n\r\n#### reflective_material\r\n\r\n应用反射材质到对象。需要环境贴图（cube map），会从 `posx.jpg`, `negx.jpg`, `posy.jpg`, `negy.jpg`, `posz.jpg`, `negz.jpg` 加载。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.reflective_material(object)\r\n```\r\n\r\n**注意**：需要提供环境贴图文件。\r\n\r\n**示例**\r\n\r\n```javascript\r\n// 确保环境贴图文件存在：posx.jpg, negx.jpg, posy.jpg, negy.jpg, posz.jpg, negz.jpg\r\ncolor_material.reflective_material(mesh);\r\n```\r\n\r\n#### emissive_wireframe_material\r\n\r\n应用发光线框材质到对象。结合了发光和线框效果，使用绿色发光。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.emissive_wireframe_material(object)\r\n```\r\n\r\n#### semi_transparent_material\r\n\r\n应用半透明蓝色材质到对象。透明度为 0.5，使用蓝色。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.semi_transparent_material(object)\r\n```\r\n\r\n### 物理材质\r\n\r\n#### metallic_material\r\n\r\n应用金属材质到对象。使用 MeshStandardMaterial 创建金属效果。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.metallic_material(object)\r\n```\r\n\r\n#### glass_material\r\n\r\n应用玻璃材质到对象。使用 MeshPhysicalMaterial 创建透明玻璃效果。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.glass_material(object)\r\n```\r\n\r\n#### plastic_material\r\n\r\n应用塑料材质到对象。使用 MeshStandardMaterial 创建红色塑料效果，金属度为 0.3，粗糙度为 0.7。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.plastic_material(object)\r\n```\r\n\r\n#### wood_material\r\n\r\n应用木质材质到对象。需要 `wood.jpg` 纹理文件，使用 MeshStandardMaterial 创建木质效果。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.wood_material(object)\r\n```\r\n\r\n**注意**：需要提供 `wood.jpg` 纹理文件。\r\n\r\n**示例**\r\n\r\n```javascript\r\n// 确保 wood.jpg 文件存在\r\ncolor_material.wood_material(mesh);\r\n```\r\n\r\n#### rubber_material\r\n\r\n应用橡胶材质到对象。使用 MeshStandardMaterial 创建深灰色橡胶效果，金属度为 0，粗糙度为 1。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.rubber_material(object)\r\n```\r\n\r\n#### leather_material\r\n\r\n应用皮革材质到对象。需要 `leather.jpg` 纹理文件，使用 MeshStandardMaterial 创建皮革效果。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.leather_material(object)\r\n```\r\n\r\n**注意**：需要提供 `leather.jpg` 纹理文件。\r\n\r\n**示例**\r\n\r\n```javascript\r\n// 确保 leather.jpg 文件存在\r\ncolor_material.leather_material(mesh);\r\n```\r\n\r\n#### marble_material\r\n\r\n应用大理石材质到对象。需要 `marble.jpg` 纹理文件，使用 MeshStandardMaterial 创建大理石效果。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.marble_material(object)\r\n```\r\n\r\n**注意**：需要提供 `marble.jpg` 纹理文件。\r\n\r\n**示例**\r\n\r\n```javascript\r\n// 确保 marble.jpg 文件存在\r\ncolor_material.marble_material(mesh);\r\n```\r\n\r\n---\r\n\r\n## SpecialEffects 模块\r\n\r\n提供高级特效功能，包括材质渐变和粒子流动效果。\r\n\r\n### applyPulsingEffect\r\n\r\n应用材质渐变特效到对象。材质颜色会在两个颜色之间平滑过渡，产生脉冲效果。\r\n\r\n**语法**\r\n\r\n```javascript\r\nimport { applyPulsingEffect } from 'three-special-effects/special';\r\n\r\napplyPulsingEffect(object, color1, color2, speed, options)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| object | `THREE.Mesh \\| THREE.Object3D` | 要应用特效的对象 |\r\n| color1 | `string \\| number` | 起始颜色，可以是十六进制字符串（如 `'#ff0000'`）或数字（如 `0xff0000`） |\r\n| color2 | `string \\| number` | 结束颜色 |\r\n| speed | `number` | 渐变速度，数值越大变化越快 |\r\n| options | `Object` | 可选配置对象 |\r\n| options.cloneMaterial | `boolean` | 是否克隆材质（默认 `true`），避免影响其他共享材质的对象 |\r\n| options.restoreOnStop | `boolean` | 停止时是否恢复原始状态（默认 `true`） |\r\n\r\n**返回值**\r\n\r\n返回控制对象，包含以下方法：\r\n- `stop()` - 停止特效并恢复原始状态\r\n- `pause()` - 暂停特效\r\n- `resume()` - 继续特效\r\n- `isRunning()` - 检查是否正在运行\r\n- `getOriginalMaterial()` - 获取原始材质\r\n\r\n**示例**\r\n\r\n```javascript\r\nimport { applyPulsingEffect } from 'three-special-effects/special';\r\n\r\n// 基本使用\r\nconst effect = applyPulsingEffect(mesh, '#ff0000', '#0000ff', 1.0);\r\n\r\n// 使用选项\r\nconst effect2 = applyPulsingEffect(mesh2, '#00ff00', '#ffff00', 2.0, {\r\n    cloneMaterial: true,    // 克隆材质（推荐）\r\n    restoreOnStop: true       // 停止时恢复原始状态\r\n});\r\n\r\n// 在需要的时候停止\r\neffect.stop(); // 恢复到原始样子\r\neffect2.pause(); // 暂停\r\neffect2.resume(); // 继续\r\n```\r\n\r\n---\r\n\r\n### createParticleTransferEffect\r\n\r\n创建粒子流动特效。在两个对象之间创建粒子流动效果，粒子沿着贝塞尔曲线路径移动。支持淡入淡出、颜色变化、大小变化等高级效果。\r\n\r\n**语法**\r\n\r\n```javascript\r\nimport { createParticleTransferEffect } from 'three-special-effects/special';\r\n\r\ncreateParticleTransferEffect(startObject, endObject, options)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| startObject | `THREE.Object3D` | 粒子起始对象，粒子会从此对象的位置开始流动 |\r\n| endObject | `THREE.Object3D` | 粒子目标对象，粒子会流向此对象的位置 |\r\n| options | `Object` | 可选配置对象，所有参数都是可选的 |\r\n| options.particleCount | `number` | 粒子数量（默认 `50`），数值越大粒子越多，性能消耗越大 |\r\n| options.particleSize | `number` | 粒子基础大小（默认 `0.5`） |\r\n| options.color | `number` | 粒子颜色，十六进制（默认 `0xff0000` 红色） |\r\n| options.speed | `number` | 粒子速度（默认 `10`），数值越大移动越快 |\r\n| options.curveHeight | `number` | 贝塞尔曲线高度（默认 `3.0`），控制粒子路径的弧度 |\r\n| options.trailLength | `number` | 粒子拖尾长度（默认 `0.3`），控制粒子的初始分布范围 |\r\n| options.sizeVariation | `number` | 大小变化范围（默认 `0.5`），粒子大小的随机变化幅度 |\r\n| options.colorVariation | `number` | 颜色变化范围（默认 `0.2`），粒子颜色的随机变化幅度 |\r\n| options.fadeInOut | `boolean` | 是否启用淡入淡出效果（默认 `true`），粒子在起点和终点会淡入淡出 |\r\n| options.scene | `THREE.Scene` | 场景对象（可选），如果不提供会自动查找场景 |\r\n\r\n**返回值**\r\n\r\n返回控制对象，包含以下方法和属性：\r\n- `stop(immediate)` - 停止特效，`immediate` 为 `true` 时立即停止，否则淡出\r\n- `reset()` - 重置所有粒子到起始位置\r\n- `updateTarget(start, end)` - 更新起始和目标对象\r\n- `setSpeed(speed)` - 动态设置速度\r\n- `setColor(color)` - 动态设置颜色\r\n- `isRunning()` - 检查是否运行中\r\n- `particleSystem` - 粒子系统对象\r\n\r\n**示例**\r\n\r\n```javascript\r\nimport { createParticleTransferEffect } from 'three-special-effects/special';\r\n\r\n// 基础使用\r\nconst effect1 = createParticleTransferEffect(mesh1, mesh2);\r\n\r\n// 完整配置\r\nconst effect2 = createParticleTransferEffect(mesh1, mesh2, {\r\n    particleCount: 100,        // 100个粒子\r\n    particleSize: 0.8,          // 粒子大小\r\n    color: 0x00ff00,            // 绿色\r\n    speed: 15,                  // 速度\r\n    curveHeight: 5.0,           // 曲线高度\r\n    trailLength: 0.5,            // 拖尾长度\r\n    sizeVariation: 0.3,         // 大小变化\r\n    colorVariation: 0.1,         // 颜色变化\r\n    fadeInOut: true             // 淡入淡出\r\n});\r\n\r\n// 控制特效\r\neffect2.stop();                    // 停止特效（淡出）\r\neffect2.stop(true);                 // 立即停止\r\neffect2.reset();                    // 重置所有粒子到起始位置\r\neffect2.updateTarget(newStart, newEnd);  // 更新起始和目标对象\r\neffect2.setSpeed(20);              // 动态设置速度\r\neffect2.setColor(0xff0000);        // 动态设置颜色\r\nconsole.log(effect2.isRunning());   // 检查是否运行中\r\n```\r\n\r\n---\r\n\r\n### createBurntSmokeEffect\r\n\r\n使目标模型进入“烧焦冒烟”状态：自动将网格材质调整为焦黑色、带红色余烬效果，并在模型顶部持续生成烟雾粒子。特效会跟随目标模块的真实尺寸，且可在停止时恢复原始材质。\r\n\r\n**语法**\r\n\r\n```javascript\r\nimport { createBurntSmokeEffect } from 'three-special-effects/special';\r\n\r\ncreateBurntSmokeEffect(targetModule, options)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| targetModule | `THREE.Object3D` | 需要应用“烧焦冒烟”效果的对象（通常是一个包含 Mesh 的模型） |\r\n| options | `Object` | 可选配置对象 |\r\n| options.smokeParticleCount | `number` | 烟雾粒子数量（默认 `50`） |\r\n| options.smokeColor | `number` | 烟雾颜色，十六进制（默认 `0x333333`） |\r\n| options.smokeSize | `number` | 粒子基础大小（默认 `0.8`） |\r\n| options.smokeRiseSpeed | `number` | 烟雾上升速度（默认 `0.02`） |\r\n| options.smokeSpread | `number` | 烟雾横向扩散速度（默认 `0.01`） |\r\n| options.smokeLife | `number` | 单个粒子的生命周期（默认 `3.0` 秒） |\r\n| options.emissionIntensity | `number` | 余烬发光强度（默认 `0.1`） |\r\n| options.spawnInterval | `number` | 粒子生成间隔（默认 `0.1` 秒） |\r\n\r\n**返回值**\r\n\r\n返回控制对象，包含以下方法和属性：\r\n- `stop(restoreOriginal)`：停止效果；`restoreOriginal=true` 时恢复所有 Mesh 的原始材质\r\n- `setSmokeIntensity(intensity)`：动态调整烟雾强度，0~1\r\n- `isRunning()`：检查是否仍在运行\r\n- `getActiveParticleCount()`：获取当前活跃的烟雾粒子数量\r\n\r\n**示例**\r\n\r\n```javascript\r\nimport { createBurntSmokeEffect } from 'three-special-effects/special';\r\n\r\nconst effect = createBurntSmokeEffect(robot, {\r\n    smokeParticleCount: 80,\r\n    smokeColor: 0x555555,\r\n    emissionIntensity: 0.2\r\n});\r\n\r\n// 几秒后停止并恢复原始材质\r\nsetTimeout(() => effect.stop(true), 5000);\r\n```\r\n\r\n---\r\n\r\n### createSurroundingAuraEffect\r\n\r\n围绕目标模型生成多层光圈（圆柱形）特效，可自定义层数、颜色、半径、脉冲速度等，并支持跟随目标移动或更新尺寸。\r\n\r\n**语法**\r\n\r\n```javascript\r\nimport { createSurroundingAuraEffect } from 'three-special-effects/special';\r\n\r\ncreateSurroundingAuraEffect(targetModule, options)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| targetModule | `THREE.Object3D` | 需要添加光圈的对象 |\r\n| options | `Object` | 可选配置对象 |\r\n| options.layerCount | `number` | 光圈层数（默认 `4`） |\r\n| options.baseColor | `number` | 基础颜色（默认 `0x00ff00`） |\r\n| options.colorVariation | `number` | 颜色变化范围（默认 `0.3`，0~1） |\r\n| options.innerRadius | `number` | 内圈半径比例（默认 `0.8`，相对模型尺寸） |\r\n| options.outerRadius | `number` | 外圈半径比例（默认 `2.0`） |\r\n| options.pulseSpeed | `number` | 脉冲（缩放）速度（默认 `1.0`） |\r\n| options.opacity | `number` | 基础透明度（默认 `0.7`） |\r\n| options.height | `number` | 光圈高度/厚度（默认 `0.1`） |\r\n| options.waveEffect | `boolean` | 是否启用透明度波动（默认 `true`） |\r\n| options.waveSpeed | `number` | 波动速度（默认 `1.5`） |\r\n| options.growFromCenter | `boolean` | 是否从中心向外生长（默认 `true`） |\r\n| options.followModule | `boolean` | 是否跟随目标模块移动/旋转（默认 `true`） |\r\n\r\n**返回值**\r\n\r\n返回控制对象，包含以下方法和属性：\r\n- `stop()`：移除光圈并释放资源\r\n- `updateAuraSize()`：重新计算光圈尺寸（目标发生缩放/变形时调用）\r\n- `updateConfig(newConfig)`：动态更新配置（层数、颜色、速度等）\r\n- `auraContainer`：Three.js `Group`，可自行添加到不同父级\r\n- `isRunning()`：检查是否仍在运行\r\n- `getLayerCount()`：返回当前光圈层数\r\n- `getAuraRadius()`：返回外圈半径\r\n\r\n**示例**\r\n\r\n```javascript\r\nimport { createSurroundingAuraEffect } from 'three-special-effects/special';\r\n\r\nconst aura = createSurroundingAuraEffect(building, {\r\n    layerCount: 6,\r\n    baseColor: 0x00ffff,\r\n    outerRadius: 2.5,\r\n    pulseSpeed: 1.2\r\n});\r\n\r\n// 随时间改变颜色\r\nsetTimeout(() => {\r\n    aura.updateConfig({ baseColor: 0xff00ff });\r\n}, 3000);\r\n```\r\n\r\n---\r\n\r\n### createElectricArcEffect\r\n\r\n在两个对象之间创建电流/闪电特效。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncreateElectricArcEffect(startObject, endObject, options)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| startObject | `THREE.Object3D` | 起始对象 |\r\n| endObject | `THREE.Object3D` | 结束对象 |\r\n| options | `Object` | 配置选项 |\r\n\r\n**options 配置**\r\n\r\n| 属性名 | 类型 | 默认值 | 说明 |\r\n| --- | --- | --- | --- |\r\n| color | `number` | `0x00ffff` | 电弧颜色 |\r\n| segments | `number` | `20` | 电弧分段数 |\r\n| amplitude | `number` | `0.5` | 电弧振幅 |\r\n| speed | `number` | `10` | 闪烁速度 |\r\n\r\n**示例**\r\n\r\n```javascript\r\nimport { createElectricArcEffect } from 'three-special-effects/special';\r\n\r\nconst arc = createElectricArcEffect(tower1, tower2, {\r\n    color: 0x00ffff,\r\n    amplitude: 0.8,\r\n    speed: 15\r\n});\r\n\r\n// 停止特效\r\narc.stop();\r\n```\r\n\r\n---\r\n\r\n### createExplosionEffect\r\n\r\n创建爆炸粒子特效，支持闪光和重力效果。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncreateExplosionEffect(position, options)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| position | `THREE.Vector3 \\| THREE.Object3D` | 爆炸位置或对象 |\r\n| options | `Object` | 配置选项 |\r\n\r\n**options 配置**\r\n\r\n| 属性名 | 类型 | 默认值 | 说明 |\r\n| --- | --- | --- | --- |\r\n| particleCount | `number` | `100` | 粒子数量 |\r\n| color | `number` | `0xff5500` | 主颜色 |\r\n| secondaryColor | `number` | `0xffff00` | 次要颜色 |\r\n| speed | `number` | `5` | 爆炸速度 |\r\n| gravity | `number` | `-2` | 重力 |\r\n| lifetime | `number` | `2.0` | 生命周期（秒） |\r\n| flash | `boolean` | `true` | 是否显示闪光 |\r\n| referenceObject | `THREE.Object3D` | - | 用于获取场景的参考对象 |\r\n\r\n**示例**\r\n\r\n```javascript\r\nimport { createExplosionEffect } from 'three-special-effects/special';\r\n\r\n// 在对象位置爆炸\r\ncreateExplosionEffect(targetMesh, {\r\n    particleCount: 150,\r\n    color: 0xff0000,\r\n    speed: 8\r\n});\r\n\r\n// 在指定位置爆炸\r\ncreateExplosionEffect(new THREE.Vector3(0, 5, 0), {\r\n    referenceObject: scene.children[0]  // 提供参考对象以获取场景\r\n});\r\n```\r\n\r\n---\r\n\r\n### createScanLineEffect\r\n\r\n创建扫描线特效，从上到下或循环扫描目标对象。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncreateScanLineEffect(targetObject, options)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| targetObject | `THREE.Object3D` | 目标对象 |\r\n| options | `Object` | 配置选项 |\r\n\r\n**options 配置**\r\n\r\n| 属性名 | 类型 | 默认值 | 说明 |\r\n| --- | --- | --- | --- |\r\n| color | `number` | `0x00ff00` | 扫描线颜色 |\r\n| duration | `number` | `3.0` | 完成一次扫描的时间（秒） |\r\n| direction | `string` | `'down'` | 扫描方向：`'down'`、`'up'`、`'loop'` |\r\n| opacity | `number` | `0.8` | 透明度 |\r\n| glowIntensity | `number` | `1.5` | 发光强度 |\r\n| followTarget | `boolean` | `true` | 是否跟随目标移动 |\r\n\r\n**返回值**\r\n\r\n| 方法 | 说明 |\r\n| --- | --- |\r\n| `stop()` | 停止特效 |\r\n| `setDuration(seconds)` | 设置扫描时间 |\r\n| `setColor(color)` | 设置颜色 |\r\n\r\n**示例**\r\n\r\n```javascript\r\nimport { createScanLineEffect } from 'three-special-effects/special';\r\n\r\nconst scan = createScanLineEffect(building, {\r\n    color: 0x00ff00,\r\n    duration: 2.0,\r\n    direction: 'loop'\r\n});\r\n\r\n// 动态修改\r\nscan.setDuration(5.0);\r\nscan.setColor(0xff0000);\r\n\r\n// 停止\r\nscan.stop();\r\n```\r\n\r\n---\r\n\r\n### createOutlineEffect\r\n\r\n为对象添加发光轮廓特效。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncreateOutlineEffect(targetObject, options)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| targetObject | `THREE.Object3D` | 目标对象 |\r\n| options | `Object` | 配置选项 |\r\n\r\n**options 配置**\r\n\r\n| 属性名 | 类型 | 默认值 | 说明 |\r\n| --- | --- | --- | --- |\r\n| color | `number` | `0x00ffff` | 轮廓颜色 |\r\n| thickness | `number` | `0.03` | 轮廓厚度 |\r\n| opacity | `number` | `1.0` | 透明度 |\r\n| pulseSpeed | `number` | `0` | 脉冲速度（0=不脉冲） |\r\n| pulseMin | `number` | `0.5` | 脉冲最小透明度 |\r\n| pulseMax | `number` | `1.0` | 脉冲最大透明度 |\r\n\r\n**示例**\r\n\r\n```javascript\r\nimport { createOutlineEffect } from 'three-special-effects/special';\r\n\r\nconst outline = createOutlineEffect(selectedObject, {\r\n    color: 0xff0000,\r\n    thickness: 0.05,\r\n    pulseSpeed: 3\r\n});\r\n\r\n// 修改颜色\r\noutline.setColor(0x00ff00);\r\n\r\n// 停止\r\noutline.stop();\r\n```\r\n\r\n---\r\n\r\n### createFloatingParticlesEffect\r\n\r\n在对象周围创建漂浮粒子环境特效。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncreateFloatingParticlesEffect(targetObject, options)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| targetObject | `THREE.Object3D` | 目标对象 |\r\n| options | `Object` | 配置选项 |\r\n\r\n**options 配置**\r\n\r\n| 属性名 | 类型 | 默认值 | 说明 |\r\n| --- | --- | --- | --- |\r\n| particleCount | `number` | `80` | 粒子数量 |\r\n| particleSize | `number` | `0.08` | 粒子大小 |\r\n| color | `number` | `0x88ccff` | 粒子颜色 |\r\n| radius | `number` | `2` | 分布半径 |\r\n| speed | `number` | `0.3` | 漂浮速度 |\r\n| opacity | `number` | `0.6` | 透明度 |\r\n| twinkle | `boolean` | `true` | 是否闪烁 |\r\n| spiralEffect | `boolean` | `true` | 是否螺旋运动 |\r\n\r\n**示例**\r\n\r\n```javascript\r\nimport { createFloatingParticlesEffect } from 'three-special-effects/special';\r\n\r\nconst particles = createFloatingParticlesEffect(magicOrb, {\r\n    particleCount: 100,\r\n    color: 0xffaa00,\r\n    radius: 3,\r\n    spiralEffect: true\r\n});\r\n\r\n// 停止\r\nparticles.stop();\r\n```\r\n\r\n---\r\n\r\n## 高级材质 (2.0.2新增)\r\n\r\n### dissolve_material\r\n\r\n溶解材质 - 模型溶解消失效果，支持自动动画。\r\n\r\n**语法**\r\n\r\n```javascript\r\ncolor_material.dissolve_material(objects, options)\r\n```\r\n\r\n**options 配置**\r\n\r\n| 属性名 | 类型 | 默认值 | 说明 |\r\n| --- | --- | --- | --- |\r\n| color | `number` | `0xffffff` | 模型颜色 |\r\n| edgeColor | `number` | `0xff5500` | 溶解边缘颜色 |\r\n| noiseScale | `number` | `3.0` | 噪声缩放 |\r\n| edgeWidth | `number` | `0.15` | 边缘宽度 |\r\n| autoPlay | `boolean` | `true` | 是否自动播放 |\r\n| duration | `number` | `2.0` | 动画持续时间（秒） |\r\n| reverse | `boolean` | `false` | 是否反向（从消失到出现） |\r\n\r\n**返回值**\r\n\r\n| 方法 | 说明 |\r\n| --- | --- |\r\n| `dissolve()` | 播放溶解动画 |\r\n| `appear()` | 播放出现动画（反向） |\r\n| `setProgress(value)` | 手动设置进度 (0-1) |\r\n| `getProgress()` | 获取当前进度 |\r\n| `stop()` | 停止动画 |\r\n| `reset()` | 重置到初始状态 |\r\n\r\n**示例**\r\n\r\n```javascript\r\nimport { color_material } from 'three-special-effects/material';\r\n\r\n// 自动播放溶解动画\r\nconst dissolve = color_material.dissolve_material(mesh, {\r\n    edgeColor: 0xff5500,\r\n    duration: 3.0\r\n});\r\n\r\n// 手动控制\r\nconst dissolve2 = color_material.dissolve_material(mesh, { autoPlay: false });\r\ndissolve2.dissolve();  // 开始溶解\r\ndissolve2.appear();    // 反向出现\r\ndissolve2.setProgress(0.5);  // 设置到50%\r\n```\r\n\r\n### hologram_material\r\n\r\n全息材质 - 科幻全息投影效果。\r\n\r\n**示例**\r\n\r\n```javascript\r\nconst hologram = color_material.hologram_material(mesh, {\r\n    color: 0x00ffff,\r\n    scanlineSpeed: 2.0,\r\n    flickerSpeed: 10.0\r\n});\r\n\r\n// 在动画循环中更新\r\nfunction animate() {\r\n    hologram.update(deltaTime);\r\n}\r\n```\r\n\r\n### xray_material\r\n\r\nX光透视材质。\r\n\r\n**示例**\r\n\r\n```javascript\r\ncolor_material.xray_material(mesh, {\r\n    color: 0x00ffff,\r\n    intensity: 1.0\r\n});\r\n```\r\n\r\n### fresnel_material\r\n\r\n菲涅尔边缘发光材质。\r\n\r\n**示例**\r\n\r\n```javascript\r\ncolor_material.fresnel_material(mesh, {\r\n    baseColor: 0x000000,\r\n    fresnelColor: 0x00ffff,\r\n    fresnelPower: 2.0\r\n});\r\n```\r\n\r\n### gradient_material\r\n\r\n渐变材质。\r\n\r\n**示例**\r\n\r\n```javascript\r\ncolor_material.gradient_material(mesh, {\r\n    colorTop: 0xff0000,\r\n    colorBottom: 0x0000ff,\r\n    direction: 'vertical'  // 'vertical', 'horizontal', 'radial'\r\n});\r\n```\r\n\r\n---\r\n\r\n## Model 模块\r\n\r\n提供 Three.js 资源管理和清理功能，避免内存泄漏。\r\n\r\n### ThreeCleanup\r\n\r\nThree.js 资源清理工具类，用于清理 Three.js 创建的资源（渲染器、场景、模型、纹理等），避免内存泄漏导致页面卡顿。\r\n\r\n**导入**\r\n\r\n```javascript\r\nimport { ThreeCleanup } from 'three-special-effects/model';\r\n```\r\n\r\n#### 清理级别\r\n\r\n| 级别 | 说明 |\r\n| --- | --- |\r\n| `MINIMAL` | 只停止动画和移除 DOM |\r\n| `BASIC` | 加上渲染器和控制器 |\r\n| `STANDARD` | 加上模型几何体和材质（默认） |\r\n| `COMPLETE` | 清理所有资源（包括纹理、光源、动画混合器） |\r\n| `CUSTOM` | 自定义清理 |\r\n\r\n#### quickClean\r\n\r\n快速清理函数，一行代码完成资源清理。\r\n\r\n**语法**\r\n\r\n```javascript\r\nThreeCleanup.quickClean(resources, level)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| resources | `Object` | 资源对象，包含需要清理的 Three.js 资源 |\r\n| level | `string` | 清理级别（默认 `'standard'`） |\r\n\r\n**resources 对象属性**\r\n\r\n| 属性名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| animationId | `number` | requestAnimationFrame 返回的 ID |\r\n| renderer | `THREE.WebGLRenderer` | 渲染器 |\r\n| controls | `OrbitControls` 等 | 控制器 |\r\n| scene | `THREE.Scene` | 场景 |\r\n| models | `Array<THREE.Object3D>` | 模型数组 |\r\n| mixer | `THREE.AnimationMixer` | 动画混合器 |\r\n| lights | `Array<THREE.Light>` | 光源数组 |\r\n\r\n**返回值**\r\n\r\n返回清理报告对象：\r\n- `cleaned` - 已清理的资源列表\r\n- `warnings` - 警告信息\r\n- `errors` - 错误信息\r\n\r\n**示例**\r\n\r\n```javascript\r\nimport { ThreeCleanup } from 'three-special-effects/model';\r\n\r\n// Vue 组件销毁时清理\r\nonUnmounted(() => {\r\n    ThreeCleanup.quickClean({\r\n        animationId: animationId,\r\n        renderer: renderer,\r\n        controls: controls,\r\n        scene: scene,\r\n        models: [model1, model2]\r\n    }, 'complete');\r\n});\r\n\r\n// 最简用法\r\nThreeCleanup.quickClean({ renderer, scene });\r\n\r\n// 使用清理级别常量\r\nThreeCleanup.quickClean(resources, ThreeCleanup.LEVEL.COMPLETE);\r\n```\r\n\r\n#### createManager\r\n\r\n创建资源管理器实例。\r\n\r\n**语法**\r\n\r\n```javascript\r\nThreeCleanup.createManager(options)\r\n```\r\n\r\n**参数**\r\n\r\n| 参数名 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| options | `Object` | 配置选项 |\r\n\r\n**返回值**\r\n\r\n- `ThreeResourceManager` - 资源管理器实例\r\n\r\n---\r\n\r\n## 新增功能\r\n\r\n### 通用材质工具\r\n\r\n`applyMaterial`、`restoreMaterials` 与 `createMaterial` 可从 `three-special-effects/material` 导入；它们也分别挂载在 `color_material.apply`、`color_material.restore` 和 `color_material.create` 上。\r\n\r\n```javascript\r\nimport * as THREE from 'three';\r\nimport {\r\n  applyMaterial,\r\n  createMaterial,\r\n  restoreMaterials\r\n} from 'three-special-effects/material';\r\n\r\nconst highlightCount = applyMaterial(model, () => createMaterial('standard', {\r\n  color: 0x38bdf8,\r\n  emissive: 0x0c4a6e,\r\n  metalness: 0.25,\r\n  roughness: 0.35\r\n}));\r\n\r\nconsole.log(`已替换 ${highlightCount} 个网格的材质`);\r\nrestoreMaterials(model);\r\n```\r\n\r\n`applyMaterial` 接受单个 `THREE.Mesh`、包含 Mesh 的 `THREE.Object3D` 或它们的数组。首次应用时会保存原始材质，后续重复应用不会覆盖该记录。`createMaterial` 支持 `basic`、`phong`、`standard`、`physical`、`lambert`、`toon` 六种 Three.js 网格材质。\r\n\r\n### 材质预设\r\n\r\n从 `three-special-effects/material` 导入 `materialPresets` 或 `applyMaterialPresetToModel`，快速给单个 Mesh、模型组或对象数组应用主题材质。\r\n\r\n```javascript\r\nimport { applyMaterialPresetToModel } from 'three-special-effects/material';\r\n\r\napplyMaterialPresetToModel(robot, 'neon', {\r\n  color: 0x00e5ff,\r\n  intensity: 2.5\r\n});\r\n```\r\n\r\n当前预设：\r\n\r\n- `neon`：霓虹发光材质，可配置 `color`、`intensity`。\r\n- `frost`：冰霜半透明材质，可配置 `color`、`opacity`。\r\n- `lava`：熔岩发光材质，可配置 `color`、`emissive`、`intensity`。\r\n- `metal`：高金属度材质，可配置 `color`。\r\n- `glass`：高透射玻璃材质，可配置 `color`、`opacity`。\r\n- `hologram`：加法混合全息材质，可配置 `color`、`opacity`。\r\n\r\n直接使用预设对象时：\r\n\r\n```javascript\r\nimport { materialPresets } from 'three-special-effects/material';\r\n\r\nmaterialPresets.glass(mesh, { opacity: 0.45 });\r\nmaterialPresets.hologram(model, { color: 0xa78bfa });\r\n```\r\n\r\n\r\n`EffectManager` 用于集中管理不同特效返回的控制器，便于组件卸载、场景切换或交互状态变化时批量停止并释放资源。\r\n\r\n```javascript\r\nimport {\r\n  createEffectManager,\r\n  createOrbitRingEffect,\r\n  createShieldEffect\r\n} from 'three-special-effects/special';\r\n\r\nconst effects = createEffectManager();\r\neffects.add('selection-ring', createOrbitRingEffect(mesh));\r\neffects.add('selection-shield', createShieldEffect(mesh, { color: 0x22d3ee }));\r\n\r\neffects.pauseAll();\r\neffects.resumeAll();\r\neffects.stop('selection-ring');\r\neffects.stopAll();\r\n```\r\n\r\n- `add(name, effect, { replace = true })`：注册控制器；默认替换同名实例前会先调用旧实例的 `stop()`。\r\n- `get(name)`、`has(name)`、`remove(name)`：查询或移除实例；`remove` 只移出管理器，不会调用 `stop()`。\r\n- `pause(name)`、`resume(name)`、`pauseAll()`、`resumeAll()`：调用控制器中存在的暂停或恢复方法。\r\n- `stop(name)`、`stopAll()`：停止并移除控制器，适合组件销毁前调用。\r\n- `size` 与 `list()`：获取已注册数量及名称列表。\r\n\r\n### 实用模型特效\r\n\r\n以下特效均从 `three-special-effects/special` 导入，目标对象必须是 `THREE.Object3D`，建议在组件卸载或模型移除前调用 `stop()`。默认自动运行动画；也可以通过 `autoStart: false` 关闭自动帧循环，再在项目自己的渲染循环中调用 `update(delta)`。\r\n\r\n#### createOrbitRingEffect\r\n\r\n为目标创建跟随位置的发光旋转环，适用于选中、高亮和目标锁定状态。\r\n\r\n```javascript\r\nimport { createOrbitRingEffect } from 'three-special-effects/special';\r\n\r\nconst ringEffect = createOrbitRingEffect(mesh, {\r\n  color: 0x38bdf8,\r\n  radius: 1.4,\r\n  tube: 0.03,\r\n  speed: 1.8,\r\n  axis: 'y'\r\n});\r\n\r\nringEffect.setColor(0xfacc15);\r\nringEffect.setSpeed(2.5);\r\nringEffect.stop();\r\n```\r\n\r\n可配置 `color`、`radius`、`tube`、`speed`、`axis`、`opacity` 和 `autoStart`。控制器提供 `ring`、`update(delta)`、`setColor(color)`、`setSpeed(speed)`、`isRunning()` 和 `stop()`。\r\n\r\n#### createShieldEffect\r\n\r\n根据目标初始包围球创建半透明脉冲护盾，适用于受保护、可交互或告警状态。\r\n\r\n```javascript\r\nimport { createShieldEffect } from 'three-special-effects/special';\r\n\r\nconst shieldEffect = createShieldEffect(model, {\r\n  color: 0x22d3ee,\r\n  opacity: 0.22,\r\n  scale: 1.2,\r\n  pulseSpeed: 2.5\r\n});\r\n\r\nshieldEffect.setOpacity(0.3);\r\nshieldEffect.stop();\r\n```\r\n\r\n可配置 `color`、`opacity`、`scale`、`pulseSpeed` 和 `autoStart`。控制器提供 `shield`、`update(delta)`、`setColor(color)`、`setOpacity(opacity)`、`isRunning()` 和 `stop()`。\r\n\r\n#### createGroundPulseEffect\r\n\r\n在目标模型底部创建扩散环，可循环或只播放一次，适用于落点、定位和状态提示。\r\n\r\n```javascript\r\nimport { createGroundPulseEffect } from 'three-special-effects/special';\r\n\r\nconst groundEffect = createGroundPulseEffect(mesh, {\r\n  color: 0x34d399,\r\n  radius: 1.6,\r\n  duration: 1.1,\r\n  repeat: true\r\n});\r\n\r\ngroundEffect.restart();\r\ngroundEffect.stop();\r\n```\r\n\r\n可配置 `color`、`radius`、`duration`、`repeat` 和 `autoStart`。控制器提供 `pulse`、`update(delta)`、`restart()`、`setColor(color)`、`isRunning()` 和 `stop()`。\r\n\r\n#### createMotionTrailEffect\r\n\r\n记录对象运动路径并生成线段拖尾。默认不创建内部动画帧，建议在现有渲染循环中手动更新；设置 `autoUpdate: true` 后可自动采样。\r\n\r\n```javascript\r\nimport { createMotionTrailEffect } from 'three-special-effects/special';\r\n\r\nconst trailEffect = createMotionTrailEffect(mesh, {\r\n  color: 0xf97316,\r\n  maxPoints: 48,\r\n  minDistance: 0.08\r\n});\r\n\r\nfunction animate() {\r\n  trailEffect.update();\r\n  renderer.render(scene, camera);\r\n  requestAnimationFrame(animate);\r\n}\r\n\r\ntrailEffect.clear();\r\ntrailEffect.stop();\r\n```\r\n\r\n可配置 `color`、`maxPoints`、`minDistance`、`autoUpdate` 和 `autoStart`。控制器提供 `trail`、`update()`、`clear()`、`setColor(color)`、`isRunning()` 和 `stop()`。\r\n\r\n### 高级模型特效\r\n\r\n高级特效均从 `three-special-effects/special` 导入，自动动画默认需要浏览器的 `requestAnimationFrame`；在测试或自有渲染循环中可设置 `autoStart: false` 并手动调用 `update(delta)`。\r\n\r\n#### createRotatingCubeEffect\r\n\r\n在目标模型外创建旋转线框立方体，适合选中框和科技感标记。\r\n\r\n```javascript\r\nconst effect = createRotatingCubeEffect(mesh, {\r\n  color: 0xfacc15,\r\n  size: 2,\r\n  speed: 1.5\r\n});\r\neffect.setColor(0x22d3ee);\r\neffect.stop();\r\n```\r\n\r\n#### createBeaconEffect\r\n\r\n创建上下呼吸的垂直信标柱，适合目标定位和告警提示。支持 `color`、`height`、`radius`、`speed` 和 `autoStart`。\r\n\r\n#### createScanRingEffect\r\n\r\n创建从小到大扩散的扫描环，适合地面扫描、范围提示和雷达效果。支持 `color`、`radius`、`duration`、`repeat` 和 `autoStart`。\r\n\r\n#### createConnectionLineEffect\r\n\r\n连接两个对象并实时跟随它们的位置，适合关系连线、能量传输和路径提示。\r\n\r\n```javascript\r\nconst link = createConnectionLineEffect(source, target, {\r\n  color: 0xa78bfa,\r\n  dashed: true\r\n});\r\nlink.update();\r\nlink.stop();\r\n```\r\n\r\n支持 `color`、`dashed`、`opacity` 和 `autoStart`。\r\n\r\n#### createShockwaveEffect\r\n\r\n从固定位置向外扩散冲击波，需要传入 `THREE.Vector3`；可通过 `scene` 选项挂载到场景。\r\n\r\n```javascript\r\nconst shockwave = createShockwaveEffect(new THREE.Vector3(0, 0, 0), {\r\n  scene,\r\n  color: 0xf97316,\r\n  duration: 0.8\r\n});\r\n```\r\n\r\n#### createFloatingLabelEffect\r\n\r\n使用 Canvas 创建文字精灵，适合伤害数字、提示文本和对象名称。需要浏览器环境，可配置 `scene`、`position`、`color`、`font`、`padding` 和 `duration`。\r\n\r\n所有高级特效控制器都提供 `stop()`；调用后会从父对象移除特效并释放几何体、材质和贴图资源。\r\n\r\n\r\n1. **贴图/环境贴图路径**：`wood.jpg`, `leather.jpg`, `marble.jpg`, cube map (`posx.jpg` 等) 等由库示例路径直接加载，实际项目中请提供正确的 URL 或使用打包器导入。\r\n\r\n2. **性能**：频繁创建新材质会增加 GC 与显存占用，建议对共享材质复用或在不需要时手动调用 `material.dispose()`。\r\n\r\n3. **引用语义**：MaterialManager 保存的是材质引用（非深拷贝）；如果在保存后修改了原始材质，会影响恢复效果。\r\n\r\n4. **环境**：该库假定运行在浏览器或支持 WebGL 的环境中；Node.js 环境若没有 WebGL 也无法渲染材质相关效果。\r\n\r\n5. **依赖**：该包声明了 `three` 为 peerDependency（>=0.153.0），请在项目中安装 Three.js：\r\n   ```bash\r\n   npm install three\r\n   ```\r\n\r\n---\r\n\r\n## 更新日志\r\n\r\n### 2.0.4 (2026年8月)\r\n\r\n- 修复 `model` 子模块导出不存在文件导致主入口无法导入的问题。\r\n- 明确包仅提供 ESM 入口，移除无法工作的 CommonJS 导出声明。\r\n- 构建与验证改为根据实际源码和 `exports` 自动检查，并提供跨平台 `clean` 命令。\r\n- 新增 Node 内置测试，覆盖公共导出、材质保存/恢复和资源管理器。\r\n- 补充 `LICENSE`、发布白名单与 Node.js 运行时要求。\r\n\r\n### 当前版本更新\r\n\r\n- 新增 `applyMaterial`、`restoreMaterials` 和 `createMaterial` 通用材质工具。\r\n- 新增 `EffectManager`，支持按名称注册、暂停、恢复和批量停止特效。\r\n- 新增 `createOrbitRingEffect`、`createShieldEffect`、`createGroundPulseEffect` 和 `createMotionTrailEffect`。\r\n- 完善特效生命周期控制与资源释放说明。\r\n\r\n### 2.0.2 (2025年12月)\r\n\r\n**新增材质：**\r\n- `custom_material` - 自定义颜色材质，支持任意颜色和多种配置选项\r\n- `xray_material` - X光透视材质，模拟X光扫描效果\r\n- `hologram_material` - 全息材质，科幻全息投影效果（带扫描线和闪烁）\r\n- `gradient_material` - 渐变材质，支持垂直/水平/径向渐变\r\n- `fresnel_material` - 菲涅尔边缘发光材质\r\n- `dissolve_material` - 溶解材质，模型溶解消失效果\r\n\r\n**新增特效：**\r\n- `createElectricArcEffect` - 电流/闪电特效，在两个对象之间创建电弧\r\n- `createExplosionEffect` - 爆炸粒子特效，支持闪光和重力\r\n- `createScanLineEffect` - 扫描线特效，从上到下或循环扫描\r\n- `createOutlineEffect` - 轮廓高亮特效，为对象添加发光轮廓\r\n- `createFloatingParticlesEffect` - 漂浮粒子环境特效\r\n\r\n### 2.0.1 (2025年12月)\r\n- 新增 `ThreeCleanup` 资源清理工具类，支持多级别清理\r\n- 新增 `createBurntSmokeEffect` 烧焦冒烟特效\r\n- 新增 `createSurroundingAuraEffect` 包围光圈特效\r\n- 新增 `model` 模块导出\r\n\r\n### 2.0.0 (2025年11月26日)\r\n- 添加了新的材质类型：反射材质和折射材质。\r\n- 添加了材质渐变特效，支持材质渐变色彩和渐变速度\r\n- 添加了模块之间数据流向特效，支持自定义特效及速度\r\n- 改进了材质管理器的性能。\r\n- 修复了一些已知的bug。\r\n\r\n### 2025年11月20日\r\n- 增加了对新版本 Three.js 的支持。\r\n- 更新了文档以包含新的示例。\r\n\r\n---\r\n\r\n## 许可\r\n\r\n**作者**: zhaodataiyang  \r\n**许可**: ISC\r\n\r\n---\r\n\r\n## 联系方式\r\n\r\n催更、bug提交、改进建议请联系邮箱：bigsun0109@163.com  \r\n预计两个工作日进行回复\r\n\r\n","readmeFilename":"README.MD"}