You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Shadertoy中编写谱方法反应扩散求解器

问题背景
  • 即便使用20点拉普拉斯算子,在输入圆对称种子时仍然会出现坐标系相关的伪影。
    效果示意图
  • 这是尝试使用谱求解器的原因之一。
  • 下述为采用前向欧拉求解的最简拉普拉斯实现核心代码:
#define A(U) texture(iChannel0,(U)/iResolution.xy)
void mainImage( out vec4 Q, in vec2 U )
{
    // Lookup Field 
    Q = A(U);
    // Mean Field 
    // Two way: horizontal, vertical
    vec4 sum2 = A(U+vec2(0,1))+A(U+vec2(1,0))+A(U-vec2(0,1))+A(U-vec2(1,0));
    vec4 mean2 = 1./4.*(sum2);
    // Laplacian 
    vec4 laplacian2 = (mean2 - Q);
    
    // Diffuse each variable differently : 
    Q += laplacian2 * vec4(1, .4, 1, 1);
    // Compute reactions:
    Q.x = Q.x * .99 + 0.01 * Q.y;
    Q.y = Q.y + .05 * Q.y * (1. - Q.y) - .03 * Q.x - 1e-3;
    
    // Prevent Negative Values (depends on system):
    Q = max(Q, 0.);
}
核心问题

请问如何将上述代码改写为Shadertoy平台可运行的谱求解器实现?


内容的提问来源于stack exchange,提问作者David Jonsson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 03:54:05