gpt4 book ai didi

opengl - '平滑' : no matching overloaded function found

转载 作者:行者123 更新时间:2023-12-02 15:08:16 31 4
gpt4 key购买 nike

我正在浏览 Book of Shaders tutorial在 GLSL 上,我尝试使用 smoothstep 函数,但出现此错误。当我将 step 更改为下面的 smoothstep 函数时,您可以看到它发生了。

// Author @patriciogv - 2015
// http://patriciogonzalezvivo.com

#ifdef GL_ES
precision mediump float;
#endif

uniform vec2 u_resolution;
uniform vec2 u_mouse;
uniform float u_time;

void main(){
vec2 st = gl_FragCoord.xy/u_resolution.xy;
vec3 color = vec3(0.0);

// bottom-left
vec2 bl = smoothstep(vec2(0.1),st);
float pct = bl.x * bl.y;

// top-right
// vec2 tr = step(vec2(0.1),1.0-st);
// pct *= tr.x * tr.y;

color = vec3(pct);

gl_FragColor = vec4(color,1.0);
}

有什么办法解决这个问题吗?

最佳答案

stepsmootstep是具有不同签名和行为的 2 个函数。同时 step在边缘生成从 0 到 1 的硬转换,smoothstep在 2 个值之间平滑插入。

如 Khronos 引用中所述, smoothstep 有 3 个参数:

genType smoothstep( genType edge0, genType edge1, genType x );
  • edge0指定 Hermite 函数下边缘的值。
  • edge1指定 Hermite 函数上边缘的值。
  • x指定插值的源值。

smoothstep performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1. This is useful in cases where a threshold function with a smooth transition is desired.

相比之下, step 有 2 个参数:

genType step( genType edge, genType x);
  • edge指定阶跃函数边缘的位置。
  • x指定用于生成阶跃函数的值。

step generates a step function by comparing x to edge.
For element i of the return value, 0.0 is returned if x[i] < edge[i], and 1.0 is returned otherwise.

关于opengl - '平滑' : no matching overloaded function found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45775411/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com