切换到 glVertexPointer 后未应用 Cg 着色器

Posted

技术标签:

【中文标题】切换到 glVertexPointer 后未应用 Cg 着色器【英文标题】:Cg shaders not being applied after switch to glVertexPointer 【发布时间】:2010-02-07 21:05:59 【问题描述】:

我的渲染器曾经使用 glBegin/glEnd 使用旧的固定函数来渲染几何图形。通过 glVertexPointer 等将其切换为使用顶点数组后。 al.,我的 Cg 着色器停止显示。如果我只是做一个常规的纹理绑定,它工作正常,所以数组数据是可靠的。此外,如果我使用旧的 glBegin/glEnd 系统,Cg 着色器工作正常。是否有一些我缺少特定于顶点缓冲区的注意事项?

【问题讨论】:

如何启用顶点数组?您使用的是glEnableClientState 而不仅仅是glEnable 是的,我正在使用 glEnableClientState。奇怪的是,如果我使用相同的方法但使用 VBO(调用 glBindBufferARB,然后将 NULL 传递给 glVertexPointer),它工作正常。但我希望除了硬件 VBO 之外还可以选择使用内存阵列。 【参考方案1】:

顶点数据提交(Begin/End,常规 VertexPointer+Dra​​wArrays,VBO+DrawArrays)应该与着色器完全正交(只要您提供数据)。所以你并没有真正错过任何东西(特别是如果它适用于 VBO)。

您的问题可能在您没有提及的地方。

【讨论】:

是的,它在其他地方。感谢您的回复

以上是关于切换到 glVertexPointer 后未应用 Cg 着色器的主要内容,如果未能解决你的问题,请参考以下文章

Rider Xamarin iOS 错误“部署后未生成应用程序包”

M1 上的 Flutter:GoogleMapsBase 和 Flutter.h 从 Windows 移至 mac 后未发现错误

openGL之API学习(一六九)glVertexPointer

单击动态按钮后未显示的信息(使用切换)

后退按钮后未释放 UITableViewCell 的 UIImage 的内存

glVertexPointer 的目的是啥?