gpt4 book ai didi

cocoa 和OpenGL : fastest way to draw array of rectangles

转载 作者:行者123 更新时间:2023-12-03 17:58:22 25 4
gpt4 key购买 nike

背景:我正在 Cocoa 中构建一个屏幕保护程序,其中一些 C 代码生成表示幅度的二维值数组(0 到 1 之间)。然后我想在屏幕上将其显示为网格,其中单元格的颜色代表数组中的值。

我开始使用带有 NSBezierPath 的循环,这太慢了。然后我转向矩形列表,它更快,但仍然太慢。现在我正在考虑使用 nsbitmapimagerep 或转向 OpenGL(我相信这会更快)。

问题:因此,我的问题是,在 cocoa 中使用 opengl 绘制二维正方形数组(通常为 200x200)的最佳方法是什么?其中位置固定但颜色变化(希望每秒最多 30 次)?

到目前为止的尝试:我想我会想要使用 glDrawArrays 或类似的东西而不是循环 glQUAD?或者也许转移到顶点缓冲区对象(我当前正在阅读)?

最佳答案

使用 OpenGL,您只需将 2D 数组定义为纹理。然后,您可以使用简单的四边形绘制将该纹理绘制到屏幕上。

为了获得最佳性能,建议保留 2 个纹理。 1 个纹理是您正在显示的纹理,另一个纹理是您正在更新的纹理。完成更新后,将它们交换。这可能会有所帮助,因为通过 PCIe 总线将纹理数据从主内存复制到图形内存会降低您的速度。显然,尽可能节省内存将提高传输速度。使用调色板将带来巨大的胜利,因为您将上传一小部分数据......

关于 cocoa 和OpenGL : fastest way to draw array of rectangles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10172973/

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