切换到 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+DrawArrays,VBO+DrawArrays)应该与着色器完全正交(只要您提供数据)。所以你并没有真正错过任何东西(特别是如果它适用于 VBO)。
您的问题可能在您没有提及的地方。
【讨论】:
是的,它在其他地方。感谢您的回复以上是关于切换到 glVertexPointer 后未应用 Cg 着色器的主要内容,如果未能解决你的问题,请参考以下文章
Rider Xamarin iOS 错误“部署后未生成应用程序包”
M1 上的 Flutter:GoogleMapsBase 和 Flutter.h 从 Windows 移至 mac 后未发现错误
openGL之API学习(一六九)glVertexPointer