Программы построения теней фрагмента: выходные переменные

Чтение спецификации GLSL 1.40:

Выводы фрагмента могут только быть плаванием, векторами с плавающей точкой, целыми числами со знаком или целыми числами без знака или целочисленными векторами или массивами любого они. Матрицы и структуры не могут быть произведены. Выводы фрагмента объявляются как в следующих примерах:

vec4 FragmentColor; Яркость uint;

Цвет фрагмента определяется, пишущий gl_FragColor... действительно ли это правильно? Кто-то мог очистить мои идеи об этих выводах? Могу я 'FragmentColor' только для записи примера для определения цвета фрагмента? Я могу считать назад их ('Яркость', например)?

10
задан genpfault 4 September 2019 в 15:19
поделиться

1 ответ

Я хочу привести несколько примеров:

void add(in float a, in float b, out float c)
{
    //you can not use c here. only set value
    //changing values of a and b does not change anything.
    c = a + b;
}

void getColor(out float r, out float g, out float b)
{
   //you can not use r, g, b here. only set value
   r = gl_FragColor.r;
   g = gl_FragColor.g;
   b = gl_FragColor.b;
}

void amplify(inout vec4 pixelColor, in value)
{
   //inout is like a reference
   pixelColor = pixelColor * value;
}
0
ответ дан 3 December 2019 в 18:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: