96SEO 2026-07-03 05:14 9
基于three.js实现的炫酷3D线条背景动画特效.使用THREE.JS开发的雨滴效果,使用数据驱动来geng新雨滴的位置信息.本篇文章将深入探讨如何利用three.js实现雨滴特效。
大家好!我是晓智,一位专注 Web3D、Shader、AI 方向的前端开发者。 这里会持续分享 Three.js、WebGL、Shader 特效、AI 可视化 等实战内容。 Ru果你也热爱前沿技术,欢迎一起交流成长 🚀

S 同时缩放内外边界,保持边缘软化的相对比例。
效果图
真实雨滴效果的物理本质是光线穿过非均匀介质后的折射与散射。在 GPU 上,我们没有光线追踪的预算,因此需要用纹理重采样的方式近似:
这似乎和直觉相反:水滴中心应该geng模糊?不对,仔细kan代码逻辑:
t = min;t = . - t;t = * .;
这是一个非线性时间映射
这让雨滴在爱心"冻结"时的运动geng缓慢,增强戏剧感。
float colFade = sin * . + . + story;col *= mix, vec3, colFade);
sin 的周期是 / = 秒,经过 * . + . 映射到 。这是一个极低频振荡器 ,以 秒为周期在冷暖色调之间缓慢摆动。
说实话,这个问题困扰了hen多开发者。 咱就是说百度收录规则咱也摸不透,但Ke以试试优化关键词和内容质量。
level : 原始分辨率level : 每 2x2 像素平均 → 分辨率 / level : 每 2x2 像素平均 → 分辨率 / ...level n: 分辨率 / 2ⁿ
每一级 mipmap 本质上是一个**盒式滤波**的结果,级联后近似高斯模糊。= 相当于 4x4 的采样窗口,= 相当于 64x64 的采样窗口。
vec3 N13 { vec3 p3 = fract * vec3); p3 += dot; return fract*p3.z, *p3.y, *p3.x));}
three.js使用粒子实现雨滴特效.1.VUE中导入three.js,创建场景、相机和渲染器;2.定义粒子几何体和材质;3.通过.setAttribute.
你懂的,用粒子系统Ke以Zuo出hen酷的效果!
害,用Three.jsZuo特效真的hen有意思!
对了还有个问题,为什么我的网站百度不收录?有没有大佬指点一下 🤔.
float droplets = max*.)-st.y)) * trail2 * trailFront * n.z;
*.): 一个先升后降的抛物线函数,模拟拖尾形状.
: 确保拖尾只在
心形的隐式方程解析
标准心形的隐式方程为 xa+|y|b=c,x∈.
玻璃窗上的雨滴、雾气、折射扭曲、爱心图案、闪电暗角等特效,该特效基于threejs自定义shader实现。
在微小尺度下折射偏移的方向与表面法线在屏幕空间的投影成正比。而法线方向恰好是密度场的..
Ru果每个像素dou遍历所有水滴,复杂度是 O.分网格后每个像素只计算所在网格内的水滴,复杂度降到 O.
这个模型忽略了几何光学中的斯涅尔定律和菲涅尔方程,但在视觉层面Yi经足够可信 —— 因为它抓住了人眼Zui关心的两个特征:..
s = S: 一个随时间变化的缩放因子.
实际上 maxBlur 和 minBlur 的值分别是 max 和 min.
dFdx/: GPU 硬件指令,在一个 quad内计算偏导数。优点是零额外计算开销.
通过纹理导入实现雨滴特效.
S:三次 Hermite 插值.
它的导数在边界处为0,因此过渡是 C1连续的,没有硬边。
* a.yx:.
各向异性缩放.
a = vec:,所以 a.yx=vec,x方向压缩倍,y方向压缩倍。
这样 length 计算的是椭圆距离,而不是圆形距离。
意味着水滴本体是清晰的,周围是模糊的 —— 这模拟了人眼透过水滴kan物体的效果.
水滴不是模型,是 signed distance field;折射不是光线追踪,是法线偏移后的纹理重采样;
景深不是后处理 blur pass,是 textureLod 的 mipmap 级别控制。
实际上 maxBlur=mix,minBlur=.
雨量越大,maxBlur 越大。
drops = textureLod: textureLod.
显式指定 mipmap 级别采样.
Mipmap 的生成规则是:
每一级分辨率减半,使用 box filter 或其他滤波算法平滑图像.
这样既降低了存储开销,又提升了采样效率.
传统后处理模糊需要额外的 render pass,
而 textureLod 直接复用 GPU Yi经计算好的 mipmap 链,
零额外内存开销、零额外计算开销。这是本特效在性Neng上Zui精妙的设计。
N: 打破网格的周期性..
Ru果不Zuo列偏移,所有列的水滴dou会水平对齐,kan起来像栅栏。通过每列施加不同的垂直偏移 N,水滴在垂直方向上交错分布,geng接近真实的随机雨幕。
从信号处理角度,这是对颜色信号的幅度调制:基带信号是 vec 到 vec 的插值,载波是 sin.
第二层 pow),.) 是硬阈值化:sin 在大部分时间为负,max截断为0;偶尔为正时pow把接近的值压得geng小,只保留接近峰值的脉冲。这模拟了闪电的统计特征:大部分时间黑暗,极少瞬间爆发.
选择 : 的长宽比是因为雨滴在垂直方向geng密集.grid=a* 表示每个单元进一步细分,提供geng多随机位置。
n=-∇c=-: 法线计算公式.
代码中用差分近似梯度:
n≈--c,c-c)/.
选择 ε= 是因为:
太小会因浮点误差导致噪声;
太大则梯度估计不准确.
本文利用Three.js的粒子系统实现漫天雨滴的效果,
Zui终效果如下图:.常用的构造器、属性和方法可参考《实例介绍three.js常用的构造器、属性和方法》,
这里只分析特殊的代码。.
改变每个顶点的坐标位置,从而产生下落的过程
Ru果单单只设置第1点的动画,雨滴的动画效果会一卡一卡,不够真实;
所以利用时间差判断,Ru果达到条件就调用函数initObject,
函数里面有判断Ru果类存在则删除全部雨滴,重新渲染5000个雨滴,使雨滴下落过程geng加顺畅
S:smoothstep 的反用法:当 d 时输出 ,d> 时输出 .
水滴中心密度为 ,边缘平滑过渡到 .
相比线性插值 mix,smoothstep 在边界处的导数为,不会产生视觉上的"断裂感".
整个 shader 大量使用了 smoothstep,定义为:
hermite/),a<t<b;
其中 hermite=x²-x³,即三次 Hermite插值。
它的特点是在区间 内平滑过渡,且一阶导数在边界处为 .
这种平滑特性使得它非常适合用于图形学中的渐变效果,避免视觉上的突兀变化.
这是一个二次径向衰减,比线性衰减geng自然因为人眼对亮度的感知是对数性的。
float N{return fract);}:
正弦 Hash 的Zui简形式:
sin在大量程下呈现混沌行为,fract把输出折叠到[,).
常数 和 的选择原则:
避免 sin 的周期 与这些常数形成有理数倍关系,否则会出现格子状伪影。
使用THREE.JS 开发的雨滴效果,使用数据驱动来geng新雨滴的位置信息.threejs贴图下雨效果。Ke以自定义数量,位置,颜色。等。.
第一层 sin) 是频率调制:内层 sin产生快速振荡,外层 t... 让频率随时间变化,形成混沌信号.
👉 点击查kan《..js 雨滴特效》完整源码与效果演示
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback