glVertexAttribPointer 内置顶点属性,如 gl_Vertex、gl_Normal

2023-11-24

我必须使用 glVertexAttribPointer 将顶点属性发送到期望它们作为内置的着色器(gl_Vertex, gl_Color, etc.).

The glVertexAttribPointer函数需要指定每个内置属性的索引(或位置)。我可以在 NVidia 实现上执行此操作,因为每个属性的位置是固定的(请参阅http://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/attributes.php在“自定义属性”部分),但是我不确定 ATI 实现中的位置。

另外,函数glGetAttribLocation当尝试获取以“gl_”开头的任何属性的位置时,将返回 -1。

我认为我错过了一些东西,这是一个微不足道的问题,但是我还没有找到 ATI 的正确解决方案。


内置属性数组未设置glVertexAttribPointer,但具有类似的功能glVertexPointer, glColorPointer, ...。你可以通过调用来启用这些glEnableClientState与常数像GL_VERTEX_ARRAY, GL_COLOR_ARRAY, ..., 代替glEnableVertexAttribArray.

而在 nVidia 上glVertexAttribPointer可能会起作用,因为它们将自定义属性索引与内置属性混叠,这不符合标准,我确信您不能指望在任何其他硬件供应商上出现这种情况。所以要确保使用glVertexAttribPointer对于自定义属性和glVertexPointer/glNormalPointer/...用于布尔属性的函数,以及匹配的启用/禁用函数。

请记住,无论如何,内置属性以及提到的函数都已被弃用。因此,如果您想编写现代 OpenGL 代码,无论如何您都应该定义自己的属性。但也许您必须支持旧版着色器,或者目前不关心向前兼容性。

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

glVertexAttribPointer 内置顶点属性,如 gl_Vertex、gl_Normal 的相关文章

随机推荐

  • 核心数据ios9:多字段唯一约束

    我知道核心数据的新功能是独特的约束 所以我决定测试它 我创建了简单的模式 当我为一个字段 例如名字 添加约束时 一切正常 如果我为另一个字段 姓氏 添加约束 核心数据分别为每个字段创建两个不同的约束 我尝试在一行中添加两个以逗号分隔的字段
  • JBehave 在场景期间跨步骤 Give/When/Then 维护数据

    我已经尝试 JBehave 一段时间了 我需要弄清楚是否存在一种方法可以在一个特定场景的运行期间跨步骤维护数据 我的意思是 是否可以在给定 何时 然后的场景中维护状态 数据 而不使用 Step Class 下的任何状态变量 是的 您可以将维
  • 在正则表达式javascript中转义问号

    我认为这是一个简单的问题 我正在尝试使用 JavaScript 中的正则表达式来搜索一个字符串在另一个字符串中的出现 如下所示 var content Hi I like your Apartment Could we schedule a
  • 使用 php 从字符串中查找文件名

    public images portfolio i vis 1 jpg 无论使用 php 的文件名是什么 我如何删除所有路径 看一下basename path public images portfolio i vis 1 jpg name
  • 耶拿从乌龟读取失败

    我刚刚将 jena 库导入到 eclipse 中以处理 rdf s 这是我的第一次尝试 但我无法读取海龟 ttl 文件 我按照以下方式尝试过 import java io import java util import com hp hpl
  • 没有final修饰符的按需初始化持有者惯用语线程安全吗

    我有预感 使用holder 习惯用法而不将holder 字段声明为final 不是线程安全的 由于Java 中不变性的工作方式 有人可以证实这一点吗 希望有一些消息来源 public class Something private long
  • 引用类型中定义的值类型存储在哪里(堆或堆栈)?

    引用类型中定义的值类型是存储在堆上还是堆栈上 如果存储在堆上 那么什么时候值类型存储在堆栈上 如果存储在堆栈上 那么当所有内容最终都以值类型结束时 堆内会存放什么 存储在堆栈上的唯一变量是函数的局部变量 对于引用类型 引用存储在堆栈上 而它
  • 如何更改 VS Code 的“资源管理器”窗口中的字体?

    有没有办法更改资源管理器窗口 左侧面板显示工作目录中的文件 而不是您编写代码的编辑器 中的字体 实际上有一个扩大在 vscode 中提供所需的功能 按照链接中的说明进行操作 添加CSS代码 monaco panel view in vsco
  • 检测postMessage是否可以发送对象?

    我正在寻找一种巧妙的方法来检测浏览器中的 postMessage 是否支持对象或字符串的发送和接收 我认为肯定有人写过一些这样做的东西 但我还没有找到解决方案 我正在使用 postMessage 向 WebWorker 发送数据 从 Web
  • Xcode 12 和 iOS 14 中的手势问题

    升级到 Xcode 12 和 iOS 14 后遇到问题 设想 我有一个嵌套的 UITableView 嵌套表视图 像下面这样 class GAllowGestureEventPassTableView UITableView UIGestu
  • new 和 new[1] 和有什么区别?

    有什么区别new and new 1 我可以用吗delete with new 1 Edit 好吧好吧 我应该提供背景 对此感到抱歉 我正在使用 VS 2010 评估 BoundsChecker 当我在 new 1 上使用 delete 时
  • 查找 int 的“字符串长度”

    基本上我想返回 int gt 值中的位数 如下所示 int 1 gt 1 int 123 gt 3 int 12345678 gt 8 我对C一无所知 所以请耐心等待 我知道 Objective C 但我使用整数和浮点数而不是 NSNumb
  • 如何将csv中的数据获取到python对象中

    我是一个Python初学者 无法以所需的对象格式将数据从 csv 导入 python 以满足 python 函数的要求 如果我在 python 中手动创建数据 而不是从 csv 引入数据 则以下代码有效 class Student obje
  • ggplot2:手动添加图例

    我怎样才能绘制地图any现有 ggplot 的 不相关 图例 免责声明 请不要恨我 我知道使用 ggplot2 创建图例的最佳方法是正确映射数据 99 的情况下我都会这样做 然而 我在这里要求的东西通常可以给我任何我想要的传奇 As an
  • 如何使用 Ninject 实例化 MEF 导出对象?

    我的应用程序正在使用 MEF 从外部程序集中导出一些类 这些类是为构造函数注入而设置的 我面临的问题是 当我尝试访问这些类时 MEF 正在尝试实例化这些类 有没有办法让 Ninject 负责类的实例化 IEnumerable
  • Java 中带有整数键的哈希表

    我正在尝试创建一个哈希表 如下所示 Hashtable
  • 将 T-SQL 语句解析为标记

    你可以看到here多好啊C 代码语句被解析为标记 例如 以下代码 namespace MyNamespace class MyClass public void MyFunction int arg1 int var1 arg1 被解析为
  • 使用自定义类型扩展指定 DataTemplate.DataType

    我有这个标记扩展 public class NullableExtension TypeExtension public NullableExtension public NullableExtension string type base
  • PHP 中不使用 preg_match() 的 UTF-8 验证

    我需要验证一些以 UTF 8 编码的用户输入 许多人建议使用以下代码 preg match A x09 x0A x0D x20 x7E xC2 xDF x80 xBF xE0 xA0 xBF x80 xBF xE1 xEC xEE xEF
  • glVertexAttribPointer 内置顶点属性,如 gl_Vertex、gl_Normal

    我必须使用 glVertexAttribPointer 将顶点属性发送到期望它们作为内置的着色器 gl Vertex gl Color etc The glVertexAttribPointer函数需要指定每个内置属性的索引 或位置 我可以