Определение цветовой карты WebGL с оператором if - PullRequest
0 голосов
/ 26 июня 2018

Я немного новичок в 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, но я бы не хотел создавать дополнительный файл).И да, метка, которую я получаю, является значением с плавающей запятой, но это всегда будет натуральное число.

...