OpenGL 二进制程序格式是否标准化?

2024-01-15

我一直在谷歌上搜索 OpenGL 二进制格式及其实际含义。到目前为止我还没有取得太大的成功。我知道我可以按如下方式获取数量和格式集:

::glGetIntegerv(GL_PROGRAM_BINARY_FORMATS, &values[0]);

,其中 value 是大小为整数的 std::vector:

::glGetIntegerv(GL_NUM_PROGRAM_BINARY_FORMATS, &value);

对于我的机器中的驱动程序,这将返回单个二进制格式。这只是一个数字,否则对我来说毫无意义。

所以我的问题如下:

(1) 格式数字/代码代表什么? (2) 是否有标准的 ARB 二进制格式,或者它们都依赖于供应商吗? (3) 供应商之间是否有通用的格式? (4)如果有多种格式,该如何选择?

我有一种模糊的感觉,我必须在给定机器上预编译和缓存着色器才能利用这一点。我的意思是它不像 DX,您可以将着色器编译器作为构建后事件运行并将它们打包在一起并在任何具有 D3D 的 (Windows) 机器上使用它们。


(1) 格式数字/代码代表什么?

它们代表唯一的标识符。

(2) 是否有标准的 ARB 二进制格式,或者它们都依赖于供应商吗?

它们都是特定于供应商的。

(3) 供应商之间是否有通用的格式?

No.

(4)如果有多种格式,该如何选择?

你不知道。您无法选择格式。你打电话时glGetProgramBinary http://www.opengl.org/wiki/GLAPI/glGetProgramBinary,您将获得由驱动程序决定的特定格式的二进制数据。当你稍后加载该程序 http://www.opengl.org/wiki/GLAPI/glProgramBinary,您必须使用二进制数据传递该特定格式。

我有一种模糊的感觉,我必须在给定机器上预编译和缓存着色器才能利用这一点。

是的,这就是该功能的目的:允许您缓存着色器编译。但您必须始终确保您的程序能够在驱动程序的着色器版本changes(因此与创建缓存版本时不同)。因此,您仍然需要能够从文本形式重建着色器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenGL 二进制程序格式是否标准化? 的相关文章

  • 交错顶点提交如何提高性能?

    我已经阅读并看到了其他问题 这些问题通常都指向将顶点位置和颜色等交错到一个数组中的建议 因为这可以最大限度地减少从 cpu 发送到 gpu 的数据 我不清楚的是 即使使用交错数组 您仍然必须对位置和颜色指针进行单独的 GL 调用 OpenG
  • 递归算法无法在指定时间内完成测试

    我正在进行一项测试 需要二进制断层扫描算法 提供了一组 38 个测试值来测试正确性 但完成所有测试也有 1 CPU 秒的时间限制 问题如下 如果存在 m n 矩阵 A 且每个元素为 0 或 1 则输出 Yes 使得 否则输出 否 对于每个测
  • 退出 glutFullScreen()

    我不明白为什么当我按 f 时它进入全屏但不退出全屏 在这个方法的开头我已经设置了bool fullscreen false 这是我的切换代码 case f toggle screenmode if fullscreen glutFullSc
  • Phong 着色问题

    我正在根据以下内容编写着色器冯模型 http en wikipedia org wiki Phong reflection model 我正在尝试实现这个方程 其中 n 是法线 l 是光线方向 v 是相机方向 r 是光反射 维基百科文章中更
  • 奇怪的 0x0D 被添加到我的二进制文件中

    我有这个奇怪的问题 我将 16 个字符写入一个二进制文件 然后写入 3 个整数 但是当我使用某些二进制文件查看器打开文件时 我看到添加了一个额外的字节 等于0x0D 这是我的代码 for i 0 i lt 16 i if i lt strl
  • 如何使用 hibernate JPA 2 以二进制形式存储 uuid

    我有一个关于通过休眠持久化 JPA2 在数据库中以二进制形式存储字符串uuid的问题 我现在正在使用这段代码 private UUID id Id Type type uuid char GeneratedValue generator s
  • 为什么 -INT_MIN = INT_MIN 在有符号的二进制补码表示中?

    我仍然没有找到为什么最低的有符号负数没有等效的有符号正数的原因 为简单起见 我的意思是 3 位二进制数 100 是 4 但我们不能有符号格式的正 4 因为我们不能 它溢出了 那么我们如何知道补码 1000 是 4 1000 0000 是 1
  • openGL转png

    我正在尝试将包含大量纹理 没有移动 的 openGL 编辑 我画的卡片 thx unwind 转换为一个 PNG 文件 我可以在框架的另一部分中使用该文件我正在与 有 C 库可以做到这一点吗 thanks 如果您的意思只是 获取由 Open
  • WebKit 是否使用 OpenGL 来渲染 CSS 过渡?

    WebKit 是使用 OpenGL 来渲染 CSS 过渡 还是使用软件渲染 WebKit 只是一个前端 这取决于后端和硬件支持 谷歌浏览器使用skia http code google com p skia 作为后端 它可以使用软件或硬件
  • lnk1104:无法打开“LIBC.lib”链接

    使用 GLee 将着色器写入我的 OpenGL 项目并编译后 我收到了错误LNK1104 cannot open file LIBC lib 我尝试按照其他人的建议添加它并忽略它 但没有解决问题 有没有其他方法可以解决我错过的这个问题 以下
  • 阻止 OpenGL.framework 在 Cocoa 应用程序中加载

    我的应用程序链接到这些框架 Cocoa Framework AppKit Framework CoreData Framework Foundation Framework 请注意 OpenGL Framework 是NOT已链接 但是 设
  • 将像素传递给 glTexImage2D() 后会发生什么?

    例如 如果我创建一个像素数组 如下所示 int getPixels int pixels new int 10 pixels 0 1 pixels 1 0 pixels 1 1 etc glTexImage2D getPixels glTe
  • 如何从 wfstream 读取二进制数据?

    我从文件读取数据时遇到一个小问题 我希望能够读取 wstring 以及任意大小的原始数据块 大小以字节为单位 std wfstream stream file c str std wstring comType stream gt gt c
  • 反转二进制网络

    如何反转二元方程 以便找到哪些输入将产生给定的输出 Example Inputs i0 through i8 Outputs o0 through o8 Operators XOR AND 二元方程 1 i0 1 i1 0 i2 1 i3
  • glut 库中缺少 glutInitContextVersion()

    我正在练习一些 opengl 代码 但是当我想通过以下方式强制 opengl 上下文使用特定版本的 opengl 时glutInitContextVersion 它编译过程失败并给出以下消息 使用未声明的标识符 glutInitContex
  • SDL 鼠标位置调整大小后裁剪

    我在 SDL 中的鼠标位置上遇到了一些奇怪的行为 如果我将窗口大小调整得更大 则任一鼠标事件的 x y 位置似乎都限制为原始窗口的宽度和高度 如果我缺少一些函数调用来告诉 SDL 鼠标区域的大小已增加 应用程序的相关部分 void Resi
  • 使用 C# 截取任何外部应用程序的屏幕截图

    我们有一个 C WPF 应用程序 我们想要在其中截取我们启动的任意应用程序的屏幕截图 即 我们可以引用我们启动的进程 应用程序可能已最小化或位于其他窗口后面 但我们仍然只需要单个应用程序的图像 而不是重叠像素 我知道使用 BitBlt 或的
  • 为什么OpenGL使用float而不是double? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • PyQt5 的 OpenGL 模块和版本控制问题(调用不正确的 _QOpenGLFunctions_(ver))

    我一直在努力得到PyQt5 helloGL 示例代码 https github com baoboa pyqt5 blob master examples opengl hellogl py编译 当我尝试构建解决方案时 我得到 Traceb
  • 将带有 glut 的点击坐标添加到向量链接列表中

    我想创建一个向量链接列表 并在 GLUT 库的帮助下获取点击的位置并将它们附加到链接列表中 这些是我写的结构 typedef struct vector int x int y Vector typedef struct VectorLis

随机推荐

  • 字典中的特征数量

    我正在努力从这样的 pickle 文件加载数据集 Load the dictionary containing the dataset with open final project dataset pkl r as data file d
  • Marklogic 中的 JavaScript 多语句事务

    我想在 marklogic 中的服务器端 JavaScript 中编写多语句事务 我想要实现的是 执行更新事务 然后编写查询语句来查询更新的文档并确认更新在事务中可见 最后进行回滚 通过进行回滚 我想确认事务内进行的更新在事务外不可见 而在
  • 如何获取函数参数列表(以便我可以删除函数)

    我想让 SQL 删除 PostgreSQL 中的一个函数 我写的DROP FUNCTION以及从中获取函数名称pg proc 那不是问题 但是 如果我保留空白参数 它不会删除该函数 我检查了手册 里面写着我必须识别该函数及其参数才能删除它
  • 带有字母范围的 PATINDEX 排除变音符号(重音字符)

    我试图弄清楚如何使用 patindex 来查找一系列字母字符 但排除重音字符 如果我进行直接搜索 使用默认排序 不敏感 就可以了 但是 当我搜索一系列字母时 它将匹配重音字符 SELECT IIF U COLLATE Latin1 Gene
  • C#变量到sql命令

    string alpha this is text string sql INSERT INTO dokimastikospinakas pliroforia VALUES alpha 将 C 变量传递到 sql 命令的正确语法是什么 这只
  • SQL 中的变量“IN”表达式[重复]

    这个问题在这里已经有答案了 可能的重复 SQL 多个参数值 https stackoverflow com questions 694536 sql multiple parameter values SQL Server 2008 将 A
  • require_once(Google/Auth/AssertionCredentials.php):无法打开流:没有这样的文件或目录

    我正在尝试做一个非常简单的事情 require once vendor google src Google Client php require once vendor google src Google Service Plus php
  • 如何将自定义 HTML 类名称添加到管理屏幕子菜单项?

    这是下面的这些子菜单项Posts menu 我检查了代码 发现它的标记是这样的 ul class wp submenu wp submenu wrap li class wp submenu head Posts li li class w
  • 必须创建一个matlab计数器[重复]

    这个问题在这里已经有答案了 Q 从 0 limit 1 创建一个 计数器 例如 如果您选择 3 它将显示 0 1 2 计数器的长度不是在程序中确定的 应该在运行时确定 并且输入可以彼此不同 不太确定你的意思 但是 for i 0 limit
  • 带有渐变的CSS3动画[重复]

    这个问题在这里已经有答案了 难道真的没有办法用 CSS 来制作渐变背景的动画吗 就像是 webkit keyframes pulse 0 background webkit gradient linear left top left bot
  • Android 虚拟设备 - Armeabi-v7a 与 x86_64

    我想制作自己的 Android 应用程序 我正在使用 Ubuntu 64 位和 IntelliJ 在虚拟设备配置中 它要求我选择系统映像 所有选项都有一个Download另外 这意味着我还没有下载任何系统映像 有 3 个选项可供选择Loll
  • grep 排除多个字符串

    我正在尝试使用查看日志文件tail f并想要排除包含以下字符串的所有行 Nopaging the limit is and keyword to remove is 我可以像这样排除一个字符串 tail f admin log grep v
  • 如何在 Cloud Machine Learning Engine 上获取模型的 C# 在线预测?

    我已成功部署在 Cloud ML Engine 上的模型上 并验证它正在使用gcloud ml engine models predict依照指示说明 https cloud google com ml engine docs how to
  • 在bash中将字符插入字符串?

    我需要转动绳子 125959 into 12 59 59 显然 字符串是时间 所以正则表达式在这里不太好 time 125959 echo time 0 2 time 2 2 time 4 2
  • 并发程序中的 I/O

    我正在开发一个并发程序 它有两个线程 其中一个监听来自服务器的消息 另一个线程向服务器发送消息 我需要从用户获取命令 使用 cin 并同时显示来自服务器的消息 我该如何处理这种情况 问题是 如果我在收到消息时读取用户的命令 则用户的输入会被
  • Mesa + Linux:gl.h 不包含现代 OpenGL

    这是我目前使用的环境 Eclipse Luna Linux Mint Rebecca 上的 C 11 当我尝试使用现代 OpenGL 例如 VAO 或 VBO 时 我收到编译器错误 导致方法无法解析 例如 GLuint VaoID GLui
  • F# 中 Control.Observable 和 Control.Event 模块之间有哪些相似/差异?

    F 至少在 Visual Studio 2012 中 两者兼而有之Control Observable http msdn microsoft com en us library ee370313 v vs 110 aspx and Con
  • 带有scope.$watch的Angular指令强制验证其他字段

    我写了一个match model当用户在我的应用程序中注册时 我用于密码 密码重复过程的角度指令 密码重复字段具有此特定属性 可根据原始密码字段验证此字段 我的指令有scope watch出于优化目的 因为我不必每次验证重复密码范围属性时都
  • 枚举和使用带有常量的静态类有什么区别?

    这两项之间的性能影响是什么 我最近在野外看到了静态类 但我不知道如何理解它 public enum SomeEnum One 1 Two Three public static class SomeClass public static r
  • OpenGL 二进制程序格式是否标准化?

    我一直在谷歌上搜索 OpenGL 二进制格式及其实际含义 到目前为止我还没有取得太大的成功 我知道我可以按如下方式获取数量和格式集 glGetIntegerv GL PROGRAM BINARY FORMATS values 0 其中 va