从 C++ 运行 GLSL 着色器(尚未编译)的最快捷方式是啥?

Posted

技术标签:

【中文标题】从 C++ 运行 GLSL 着色器(尚未编译)的最快捷方式是啥?【英文标题】:What is the most short way to run your GLSL shader (not compiled yet) from C++?从 C++ 运行 GLSL 着色器(尚未编译)的最快捷方式是什么? 【发布时间】:2011-04-05 21:25:14 【问题描述】:

那么简单 - 跨平台 C++ 库,用于从源代码编译和运行 GLSL 着色器并在需要时模拟视频卡。一般来说,我想给它着色器和数据,并能够运行它并获取结果数据。有没有这样的库/或描述的方式来组合使用一些库?

【问题讨论】:

【参考方案1】:

可能最简单的方法是使用像 GLFW 这样的跨平台 OpenGL 框架,并稍微编译和使用着色器(例如,我在 previous answer 中发布的一个)。对于不支持 OpenGL 的系统,您可能希望使用 Mesa3D。

【讨论】:

在 Mesa3d 中预编译着色器有什么需要吗?您能否提供任何与您为 GLFW 提供的代码示例相似(甚至更好地相同)的代码示例? @Blender:Mesa3d 将与其他部分一起使用——即,您将使用 GLFW 编写代码,并且它将(隐式)使用 Mesa3D 作为 OpenGL 的实现。您只需编写 OpenGL 代码,Mesa3D 可用于在没有其他系统的系统上提供 OpenGL 实现。

以上是关于从 C++ 运行 GLSL 着色器(尚未编译)的最快捷方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

GLSL/C++:自定义着色器的默认行为

从 GLSL 着色器中获取常量

GLSL 着色器未编译,没有错误消息

我的OpenGL学习进阶之旅如何抽取着色器代码到assets目录下的GLSL文件,以及如何通过Java或者C++代码来加载着GLSL文件?

在 PyQt 中编译着色器

如何在 C++ 中为 GLSL 片段着色器实现 iGlobalTime?