第一个问题是如何从单个光源获取,使用多个光源,而不使用多个片段着色器。GLSL法线映射着色器的多个光源和实现细节
我的直觉是,每次运行着色器计算都需要光源坐标以及一些颜色信息,我们可以通过循环计算n个光源。
如何将多个灯光传递到着色器程序?我是否使用一系列制服?我的猜测是用每个光源的坐标传递一组制服,然后指定有多少个光源,然后设置一个最大值。
我可以为着色器程序调用getter或setter方法吗?而不是仅仅操纵全局变量?
我使用本教程和libGDX实现学习如何做到这一点: https://gist.github.com/mattdesl/4653464
'com.badlogic.gdx.graphics.g3d.shaders.DefaultShader'处理来自环境的多个灯光。该软件包还包含一个默认的垂直/碎片着色器。可能会给你一些启示。 – cfrick 2014-10-30 10:29:53