gpt4 book ai didi

opengl - 片段着色器 GLSL 中的颜色插值?

转载 作者:行者123 更新时间:2023-12-04 19:44:12 33 4
gpt4 key购买 nike

我需要将标量值映射到范围为 0 到 1 的颜色。它将使用纹理坐标从绿色变为红色(从 0 到 1)线性插值(范围也从 0 到 1)

我是 OpenGL 和 GLSL 的新手,到目前为止我发现我需要在

中写入颜色值
gl_FragColor

这是一个维度为 4 的向量。我不确定如何仅通过一个范围为 0 到 1.0 的标量值来计算 gl_FragColor 的 R、G 和 B channel (它将从 GREEN 到 RED 和 0.5它将是白色的)

最佳答案

#version 120

...

float remap( float minval, float maxval, float curval )
{
return ( curval - minval ) / ( maxval - minval );
}

...

const vec4 GREEN = vec4( 0.0, 1.0, 0.0, 1.0 );
const vec4 WHITE = vec4( 1.0, 1.0, 1.0, 1.0 );
const vec4 RED = vec4( 1.0, 0.0, 0.0, 1.0 );

float u = <whatever, grabbed from a uniform?>;
u = clamp( u, 0.0, 1.0 );
if( u < 0.5 )
gl_FragColor = mix( GREEN, WHITE, remap( 0.0, 0.5, u ) );
else
gl_FragColor = mix( WHITE, RED, remap( 0.5, 1.0, u ) );

或者您可以对 3 像素的 1D 纹理进行采样。

关于opengl - 片段着色器 GLSL 中的颜色插值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24063247/

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