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π(完整正弦周期)

}

相关推荐
丁小未4 小时前
基于MVVM框架的XUUI HelloWorld 新手教程
unity·性能优化·c#·游戏引擎
松树戈9 小时前
【Godot4精进之路】03~Godot编辑器常用界面介绍
编辑器·游戏引擎·godot
YigAin9 小时前
Unity Spine 资源出现白边的解决办法
unity·游戏引擎·spine
郝学胜-神的一滴1 天前
中级OpenGL教程 013:渲染器类架构设计与逐帧渲染流程详解
开发语言·c++·unity·游戏引擎·图形渲染·opengl·unreal
_helen_5201 天前
unreal engine 虚拟现实 + airsim
游戏引擎·vr·虚幻
真鬼1233 天前
【Unity WebGL】内嵌网页与双向通信
unity·游戏引擎·webgl
郝学胜-神的一滴4 天前
[简化版 GAMES 101] 计算机图形学 16:纹理走样、Mipmap、三线性插值、各向异性过滤原理全解
unity·游戏引擎·godot·图形渲染·three.js·opengl·unreal
2301_767113985 天前
Superpowers 游戏引擎从零开发实战指南
游戏引擎
想你依然心痛5 天前
嵌入式单元测试:Unity/CMock框架与硬件在环测试——测试驱动、桩函数
unity·单元测试·游戏引擎
yangmu32035 天前
《星露谷物语》MOD配置与实战安装综合指南
游戏·游戏引擎·游戏程序