numerical-methods - 如何在 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 上的光谱求解器?
解决方案
推荐阅读
- reactjs - 在父组件的 DOM 层次结构之外插入组件的新实例 onClick
- html - 隐藏特定组件中的导航栏
- ruby-on-rails - graphql ruby 单元测试
- leaflet - 如何在javascript中刷新传单地图
- r - 在使用 r 中的 auto.arima 进行预测之前,我应该使用 ts 函数吗?
- amazon-web-services - 来自 AWS 中私有子网的出站流量
- azure - 如何恢复到 Azure Function App 的经典身份验证
- ios - prefersLargeTitles 属性中文本的字体属性是什么?
- python - 调用 tf.data.Dataset.map 时未更新全局变量
- kubernetes - Kubernetes:“Liveness probe failed:rm: cannot remove '/tmp/healthy': No such file or directory”