我正在使用Digilent Uno32 Chipkit和I / O屏蔽,配备小型128 * 32px OLED显示屏。我有帧速率问题(渲染时间取决于绘制的像素)。
我的帧是512长字节数组,总共有4096位(128 * 32)。
我的像素绘制功能在平方时间工作(我认为),这意味着它必须增加一个for循环(迭代列中的像素)嵌套在另一个for循环中(迭代屏幕内的列)以获得到(x,y)像素位置。 (屏幕分为4个水平页面。)
我已经实现了Bresenham's line algorithm (for all cases),我只用了8行。
我有一个计时器(和中断)每0.1秒更新一次屏幕,但屏幕渲染速度慢了。
我正在寻找一般建议如何获得一个合适的帧率(30-60Hz),无论绘制的像素数量(应该可以在80MHz设备上,Gameboy低于那个!)。我应该重新考虑我的方法吗?画线算法?我应该查看数据结构,哈希表还是类似的东西?
答案 0 :(得分:0)
这是一个愚蠢的初学者错误,与我在帧数组中设置位的方式有关。无需迭代,只需直接处理帧数组中的位(稍微移位以移入每列中的相应y位置,使用| =以避免覆盖)!