OpenGL C++ SDL 2D 阴影

Posted

技术标签:

【中文标题】OpenGL C++ SDL 2D 阴影【英文标题】:OpenGL C++ SDL 2D Shadows 【发布时间】:2012-02-03 22:38:10 【问题描述】:

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

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

These 两个videos 正是我想要的。

【问题讨论】:

阴影使用什么算法?是投影阴影还是阴影体积..? 巫师,我认为您的意思是“阴影映射”而不是投影阴影 【参考方案1】:

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

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

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

【讨论】:

链接已断开。

以上是关于OpenGL C++ SDL 2D 阴影的主要内容,如果未能解决你的问题,请参考以下文章

在现有 sdl_opengl 上下文上绘制小部件

用 SDL_Renderer 绘制 2D 东西,用 SDL_GLContext 绘制 OpenGL 东西

使用 Allegro / SDL 与 OpenGL / DirectX 制作游戏时,我会遇到哪些限制?

更多 SDL C++ Opengl 显示问题

C++ - SDL/OpenGL 加载图像的颜色被反转

将 SDL 示例移植到 OpenGL 和 C++