首页 > 解决方案 > 带有 if 语句的 WebGL 颜色图定义

问题描述

我对 WebGL 有点陌生,我正在尝试显示类似于颜色图的东西。本质上,我有一个每点的变量,我想根据它选择一种颜色。例如:

varying float point_label;

void main()
{
    vec4 fragColor = vec4(1.0, 1.0, 1.0, 1.0);
    if (point_label == 0.0)
    {
        fragColor = vec4(1.0, 0.0, 1.0, 1.0);
    }
    else if (point_label == 2.0)
    {
        fragColor = vec4(1.0, 1.0, 1.0, 1.0);
    }
    else if (point_label == 3.0)
    ...
    ...
}

在我的情况下point_label[0-7]. 有人告诉我,像这样长的 if-else 语句效率低下。如果不这样做,最有效的处理方法是什么?如果可能的话,不要创建额外的文件(建议我使用纹理和 ThreeJS LUT,但我宁愿不创建额外的文件)。是的,我得到的标签是一个浮点值,但它总是一个自然数。

标签: webgl

解决方案


推荐阅读