D3D9效果 – variables参数

我从样本中创建了一些简单的Phong着色代码。 问题是样品只能处理一个灯。 如果我想在每个帧的开始处设置可变数量的灯光,我怎么能在效果文件中指定我需要传递可变数量的灯光位置等来渲染?

对于每个灯光,一个渲染通过并使用添加剂混合。 它被称为向前渲染

问题是:为什么要这样做,而不是只发送几个arrays中的所有灯光位置和参数? 答案是,一旦你开始做一些更复杂的效果,这是更容易处理。 还有一个更多。 你可以使用你当前的着色器。

编辑:为了certificate我的观点,我添加了两个渲染,因为这种技术有时听起来很奇怪。 使用所描述的技术来渲染一个gpu渲染器。 其次是玛雅同样的场景。 场面点燃3个灯。 一个发出红色,一个蓝色和一个绿色。 常用的阴影映射被使用。

实时渲染器:
furryball

用玛雅渲染

玛雅