【问题标题】:OpenGL C++ SDL 2D ShadowsOpenGL C++ SDL 2D 阴影
【发布时间】:2023-12-23 19:43:01
【问题描述】:

目前我正在开发我的游戏,我被灯光和阴影困住了。 我想出了如何只用 1 个光源制作阴影,但是如果你有更多光源怎么做呢?如何通过OpenGL 8光源限制?

我正在使用 C++、OpenGL 和 SDL。

These 两个videos 正是我想要的。

【问题讨论】:

  • 阴影使用什么算法?是投影阴影还是阴影体积..?
  • 巫师,我认为您的意思是“阴影映射”而不是投影阴影

标签: c++ opengl 2d shadow light


【解决方案1】:

我的建议是跳过所有关于固定功能管道的教程,直接进入 GL3.3+ 时代:一些教程见:https://github.com/McNopper/OpenGL

无论如何,如果您在谈论阴影映射,那么决定一个对象可以支持多少灯(即使是基于每个对象)并在您的着色器

  • 为每个支持的灯光接收一个阴影贴图
  • 为每个支持的灯光接收一组灯光参数
  • 在每个像素处确定灯光是否可见,对于每个灯光
  • 如果光线可见(不在阴影中),则计算光线的贡献
  • 对最终亮度值的所有贡献求和

【讨论】:

  • 链接已断开。