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