如何在https://www.shadertoy.com/new的所有调用中使用GLSL中的变量?
float buffer;调用清除[变量vec2 buffer2[1024];
或mainImage()
。是的,我可以将数据保存到视频缓冲区fragColor = data;
并获取它vec3 buf = texture(iChannel0, fragCoord / iResolution.xy).rgb;
,但它是如此困难。
如何将数据保存到普通变量并使用它?
“如何仅用像素位置和时间作为输入的函数来制作漂亮的图片”。这并不是最佳实践或可变变量的灵活编程。困难的事实也是“ OMG!您设法在没有变量的情况下完成that!太神奇了!”
要在跨帧的阴影中存储任何内容,您必须写入纹理。您可以为要存储的每件事选择纹理中的位置,然后编写适当的着色器代码以读取vec4 values = textureFetch(texture, pixelCoordOfVariable, 0);
并写
if (int(gl_FragCoord.x) == pixelCoordOfVariable.x && int(gl_FragCoord.y) == pixelCoordOfVariable.y) { fragColor = valueToStore; }
高性能且灵活的WebGL应用程序通常不对阴影应用这些技术。