【问题标题】:How to assemble ARB assembly如何组装 ARB 组件
【发布时间】:2019-08-08 04:41:54
【问题描述】:

我刚刚阅读了这份文档:this documentation

我只是向下滚动,然后在示例程序 #1 处停止,其中包含以下代码:

!!ARBvp1.0
ATTRIB pos = vertex.position;
PARAM mat[4] = { state.matrix.mvp };
# Transform by concatenation of the
# MODELVIEW and PROJECTION matrices.
DP4 result.position.x, mat[0], pos;
DP4 result.position.y, mat[1], pos;
DP4 result.position.z, mat[2], pos;
DP4 result.position.w, mat[3], pos;
# Pass the primary color through w/o lighting.
MOV result.color, vertex.color;
END

然后我才意识到“将这段代码放在哪里?”。 所以我搜索了“如何组装 ARB 组件?”或“如何使用 ARB 程序集?”。我绝对找不到任何东西
最后我在这里有问题:

  1. 哪个文件扩展名适用于 ARB 程序集?
  2. 如何将这段代码组装成可执行文件?

我也使用了 Linux Mint 18.3 Cinnamon 64 位

【问题讨论】:

  • @zx485: 是啊,arb标签在这里用错了,我把它去掉了
  • 其实 assembly 标签也不合适,因为这不是汇编,而是人类可读的中间表示(IR)。因此,它比 GLSL 更接近 SPIR-V。
  • "我刚刚阅读了这份文档" 该文档来自 15 年前。你为什么要看它?
  • ARB 组件?在 $CURRENT_YEAR?!这是什么,末日3零售? :)
  • 啊,我喜欢汇编语言就是这样......我很困惑,无法理解:(

标签: linux opengl assembly gpu


【解决方案1】:
  1. ARB 程序集的文件扩展名是什么?

没有,随便用吧。

  1. 如何将这段代码组装成可执行文件?

你没有。

ARB“汇编”语言用于 OpenGL 着色器,在您在这里似乎暗示的意义上,它不是任何可执行文件。这些是针对shaders 在渲染管道上下文中在 GPU 上运行的,而不是可以直接执行的单个程序。

通常,您需要一个支持GL_ARB_vertex_programGL_ARB_fragment_program GL 扩展(从来不是任何OpenGL 核心版本的一部分)的OpenGL 实现,然后驱动程序将为正在使用的特定GPU 创建一个二进制文件。

ARB 程序集着色器已完全过时(至少从最终用户的角度来看,nvidia 有时仍使用自己的扩展方言作为内部中间表示,但这并没有真正改变大局),并且已被替换由OpenGL Shading Language (GLSL)(自 2004 年 2.0 版以来,它核心 OpenGL 的一部分!)。

【讨论】:

  • 感谢您删除引用一个程序的 arb 标签。还有 OpenGL 实现吗?听起来可以下载...可以下载吗? (如果我看起来很愚蠢,我很抱歉)
  • 对不起,我不明白你的问题?你想下载什么? OpenGL 实现通常随您的图形驱动程序或操作系统一起提供。
  • 对不起>
  • @user9241531 大多数桌面 GL 实现仍然支持这些扩展。你还需要什么?
猜你喜欢
  • 2017-11-21
  • 1970-01-01
  • 2021-04-03
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 2019-02-06
  • 2019-11-18
  • 2020-10-31
相关资源
最近更新 更多