作者:壳牌盛行 | 来源:互联网 | 2023-06-05 18:47
我正在尝试做DirectX 11的东西,我想知道实现点光源的最佳方法是什么,例如在一个级别中点光源的数量就达到2000了...
当前我正在做rastertek的教程...并且正在使用shader类实现灯光...我认为每个shader类都有一个3D模型,他还声明了shader中的NUM_LIGHTS,在教程中声明了4个...
我想拥有多个3d模型,并希望实现影响它们的多个点光源...怎么做...
如果您正在进行前向照明,则通常限制为4到8个照明,而不会开始损害帧速率。如果您是绝对的初学者,建议您暂时只使用8盏灯,直到您对D3D11 api有了更好的了解。当您熟悉API并熟悉更改渲染器的程序结构时,可以考虑使用更高级的照明方案,例如延迟照明或前向照明。有一篇不错的博客文章描述了使用DirectX 11的所有三种(前进,后退和前进+)照明techniques。Github上提供了源代码。另一资源是Learning Opengl,它也描述了延迟照明。