SDL 平台游戏中的 OpenGL 着色器?

Posted

技术标签:

【中文标题】SDL 平台游戏中的 OpenGL 着色器?【英文标题】:OpenGL Shader in SDL Platform Game? 【发布时间】:2014-05-11 02:01:19 【问题描述】:

我是 SDL 新手,刚刚获得了一个简单的平台游戏,其中包含跳墙和音乐:

http://postimg.org/image/k31mjej1h/

我花了很多时间试图弄清楚如何在这个游戏中实现 OpenGL 着色器。我使用通过 SDL_Renderer 渲染的 SDL_Surfaces。我在我的 SDL 程序中初始化了一个 OpenGL 上下文,我的问题是:如何设置 OpenGL 片段着色器以便它们对 SDL 渲染的内容进行着色?

我的计划是使用 God Ray 着色器,就像这里使用的那样:http://xnauk-randomchaosblogarchive.blogspot.com/2012/10/2d-crepuscular-god-rays.html

【问题讨论】:

我不确定你是否想做这么复杂的事情,但是 Chris ck 这个你,你可能会稍微修改一下着色器,如果你还不知道你想学一点更多关于 kodern opengl 和着色器以及 sdl 是如何完成的(从高层次的角度来看)hg.libsdl.org/SDL/file/default/test/testshader.c 这是一个很好的链接!所以看起来 SDL_Texture 绑定到 DrawGLScene 中的 OpenGL 四边形。如果我想给我们着色器,这就是我必须绘制纹理的方式吗? 我做到了!这是一个视频:vimeo.com/161093497 【参考方案1】:

您应该像纯 OpenGL 应用程序一样执行此操作,但您需要在创建窗口时添加 SDL_WINDOW_OPENGL 标志,以便您的应用程序使用 OpenGL 而不是 DirectX 或其他渲染库!

【讨论】:

是的,效果好多了,现在我知道了一些 openGL,我看到我可以替换 SDL 的渲染,并使用它来加载 .png 和处理键盘输入 其实你可以用GLFW!它类似于 SDL,但更简约,处理键盘输入、窗口和其他内容的速度更快!

以上是关于SDL 平台游戏中的 OpenGL 着色器?的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL + SDL2 +计算着色器=黑屏

带有着色器的 SDL_Renderer 和 SDL_Texture?

VAO 不使用着色器渲染颜色

OpenGL/WebGL着色器开发入门指南

为啥我可以有 OpenGL 着色器类,但不能有 VAO 类?

使用现代 OpenGL 渲染纹理