GODOT SHADER关键函数

哈希函数

// 哈希函数:把一个 vec2 坐标变成 0,1 内的"伪随机"值

// 为什么用 sin?sin 对整数坐标会产生复杂的小数,fract 取小数部分

// 为什么乘以 43758.5?放大小差异,让不同格子差别明显

float hash(vec2 p) {

return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453);

}

水波碰撞函数

h(r, t) = sin(r/λ - ωt) × A × e^(-αr) × e^(-βt)

  • `r` = 到波源的距离(`length(p - center)`)

  • `λ` = 波长(控制波纹疏密)

  • `ω` = 角频率(控制传播速度)

  • `A × e^(-αr)` = 空间衰减(距离越远越弱)

  • `e^(-βt)` = 时间衰减(可选,模拟阻尼)多个波源的总高度:直接相加。

// 单个圆形水波

// center: 波源位置

// speed: 传播速度(频率)

// wLen: 波长(控制疏密)

// decay: 空间衰减系数

float ripple(vec2 p, vec2 center, float speed, float wLen, float decay) {

float r = length(p - center);

float phase = r / wLen - TIME * speed;

float amplitude = exp(-r * decay); // 空间衰减:越远越弱

return sin(phase * 6.28318) * amplitude; // 6.28318 = 2π(完整正弦周期)

}

相关推荐
江上闲人.10 小时前
Wardogs战犬\战狗Beta测试启动报错UE崩溃卡顿?解决方法来了
游戏·游戏引擎·虚幻·战犬·战狗·wardogs
杨丰玮41815 小时前
从零手写Java飞机躲障碍游戏|Swing绘图、鼠标跟随、计时器碰撞检测实战(五)
java·python·游戏·游戏引擎·图形渲染·动画·贴图
鼎艺创新科技1 天前
不依赖 UE/Unity:我们如何从零搭建一套国产三维 GIS 渲染引擎
人工智能·算法·unity·游戏引擎·三维电子沙盘
huihui3611 天前
校友网管理软件技术选型框架:基于功能核验与系统架构的量化评估
unity·系统架构·游戏引擎
五仁烧饼1 天前
Unity性能优化系列设置篇 - URP 移动端设置基线与分档策略
unity·游戏引擎
新手unity自用笔记1 天前
unity基于Socket的网络学习
网络·网络协议·学习·unity·c#·游戏引擎
心前阳光2 天前
Unity之XR Interaction Toolkit | IPointerDownHandler问题
unity·游戏引擎·xr
帅_shuai_2 天前
unity 静态字段内存查找工具
unity·游戏引擎
郝学胜-神的一滴3 天前
[简化版 GAMES 104] 现代游戏引擎 06:从Tick时序到邮局模型,拆解确定性世界的底层密码
开发语言·c++·游戏引擎·图形渲染·软件开发·opengl
鹿野素材屋4 天前
Unity超轻量级中文语音播报,仅5兆大小,无需联网即可使用,适用于弹幕、提示等动态语音播出
unity·游戏引擎