WebGL:在旧值和新值之间进行插值

问题描述 投票:1回答:1

我现在正在第二天为此而苦苦挣扎,这似乎是一个简单的任务,但是我找不到正确的解决方案。

[使用p5.js,我正在创建GL实例,并将制服发送到顶点着色器。现在,我想更改统一的全局变量,并使着色器在旧值与新值之间进行插值。

在下面的示例中,单击按钮后,它不应立即更改颜色,而应进行很小的增量以获得新的颜色。

#ifdef GL_ES
precision mediump float;
#endif

uniform vec2 iResolution;
uniform float iTime;
uniform vec3 uSky;



void main()
{
    // Normalized pixel coordinates (from 0 to 1)
    vec2 uv = gl_FragCoord.xy/iResolution.xy;
      uv -= 0.5;
    uv.x *= iResolution.x/iResolution.y;

    vec3 sky = uSky;
    //sky = mix(sky, uSky, 0.001);
                            // ^- This needs to be increment until 1 every time the uniform changes

    // Output to screen
    gl_FragColor = vec4(sky, 1.0);
}

https://glitch.com/~shader-prb

glsl shader webgl p5.js
1个回答
1
投票

正如Rabbid76所说。我无法在着色器中更改统一值。解决的办法是从宿主那里逃脱。

© www.soinside.com 2019 - 2024. All rights reserved.