微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在OpenGL中,当我使用VAO绘制对象时如何通过名称堆栈选择对象?

如何解决在OpenGL中,当我使用VAO绘制对象时如何通过名称堆栈选择对象?

我正在处理一个使用固定渲染管道的旧大型项目,当前项目使用名称堆栈来选择一个对象。

现在我需要将项目中的一个对象更改为 VAO (glDrawElements...) 模式,而其他对象仍然由 glBegin/glEnd 绘制。结果,原来的拾取机制不能再拾取 VAO 对象了。

现在我想知道是否可以使用名称堆栈方法来选择一个 VAO 对象?如果没有,如何在不干扰其他物体渲染和选择的情况下选取它。

解决方法

我在 OpenGL 规范的兼容性配置文件中没有看到任何阻止选择在存在从缓冲区拉出的数组的情况下工作的内容。所以它应该可以正常工作。

显然,性能会受到影响。此外,渲染时间“太长”是因为您使用的是选择模式,而不是因为 glBegin/End 太慢。它们并不快,但选择模式会扼杀对性能的所有希望,无论您如何渲染。因此,使用缓冲区和 VAO 不会有帮助(而且可能会受到伤害)。

最好不要使用选择模式进行渲染。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。