gpt4 book ai didi

opengl - glEnableClientState 和 glEnableVertexAttribArray

转载 作者:行者123 更新时间:2023-12-02 04:31:19 24 4
gpt4 key购买 nike

后者是否会贬低前者?

我正在编写希望在着色器 2.0 硬件上运行的代码,但我想使用更新的编程约定,例如 VAO。

所以我一直在使用 glVertexAttribPointer 函数而不是 glVertexPointerglNormalPointerglColorPointer 等。

似乎我们已经到了服务器-客户端概念不......特别相关的地步(编辑:我的意思是因为它适用于这些缓冲区指针的切换状态)。但我想知道旧的 En/DisableClientState 的实际作用是什么,以及它与 glEnableVertexAttribArray 的实际作用有何关系。

而且我也没有 5 代以前的任何图形硬件,但我的软件的某些用户肯定可能有。例如,我该如何防止代码在 Radeon 9700 上编译失败? (尽管我希望如果用户拥有最新的驱动程序,它可能会支持新功能)

最佳答案

It seems as though we have come to a point where the server-client concept isn't... particularly relevant

事实上,这是非常相关的。整个缓冲区对象术语是针对服务器和客户端的。缓冲区是服务器端的,客户端只需发出引用服务器端缓冲区的绘图命令。

用 glEnableVertexAttribArray 替换 glEnableClientState 的主要原因是,由于 OpenGL-3 总是使用顶点数组(不再有立即模式),并且数据是客户端还是服务器端的区别是由绑定(bind)状态决定的各种缓冲区对象槽。如果绑定(bind)了缓冲区对象 0,则数据是客户端的,如果绑定(bind)的缓冲区对象非零,则数据是服务器端的。

关于opengl - glEnableClientState 和 glEnableVertexAttribArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8827926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com