//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将循环显示我所拥有的不同模式。我该如何实施呢?

你们通常如何添加键盘控制来更改此设置?谢谢

最佳答案

为每种模式编译单独的着色器版本,可以手动编写它们,也可以使用字符串操作来生成每组源代码。

在您的应用程序中,在渲染受影响的几何图形之前,请跟踪当前模式并在设备上每一帧设置适当的着色器。

您遇到一些更具体的问题吗?

关于c++ - 键盘输入以控制像素着色器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5276444/

10-14 09:37