Ввод с клавиатуры для управления пиксельным шейдером - PullRequest
0 голосов
/ 11 марта 2011
    //pixelcolour with ambient
    //pixelcolour = vec4( textureshade*shadescale + ambient* textureshade+ textureshade*diffuseshadescale, 1.0 );   

    //ambient           
    pixelcolour += vec4(ambient*textureshade,1.0);

    //diffuse
    //pixelcolour += vec4(textureshade*diffuseshadescale, 1.0);

    //ambient && diffuse
    //pixelcolour += vec4( ambient* textureshade+ textureshade*diffuseshadescale, 1.0 );

    //ambient && specular
    //shadescale= pow(dot(h,nn),shinyness);
    //pixelcolour += vec4 ( textureshade*shadescale + ambient* textureshade, 1.0 );

    //specular && diffuse
    //shadescale= pow(dot(h,nn),shinyness);
    //pixelcolour += vec4 ( textureshade*shadescale + textureshade*diffuseshadescale , 1.0 );

    //ambient && specular && diffuse
    //shadescale= pow(dot(h,nn),shinyness);
    //pixelcolour += vec4 ( textureshade*shadescale + textureshade*diffuseshadescale + ambient*textureshade, 1.0);  

Приведенный выше код использует различные вычисления для отображения освещения в файле пиксельного шейдера, который у меня есть.Мне нужно управлять этим с клавиатуры, которую нужно объявить в main и, например, VK_A будет переключаться между различными режимами, которые у меня есть.Как мне реализовать это?

Как вы, ребята, обычно добавляете управление с клавиатуры, чтобы изменить это?Спасибо

Ответы [ 2 ]

1 голос
/ 11 марта 2011

Скомпилируйте отдельную версию шейдера для каждого режима, либо создайте их вручную, либо используйте манипуляции со строками для генерации каждого набора исходного кода.

В вашем приложении отслеживайте текущий режим и устанавливайте соответствующий шейдер на устройстве, в каждом кадре, перед рендерингом затронутой геометрии.

Есть ли более специфическая проблема, с которой вы сталкиваетесь?

0 голосов
/ 12 марта 2011

Альтернативой наличию нескольких шейдеров может быть использование униформы в шейдере для выбора между различными путями кода и циклического изменения значения этой униформы на основе ввода с клавиатуры.

...