快速像素绘图库
我的应用程序以每个像素的方式产生一个“动画”,所以我需要高效地绘制它们。 我尝试过不同的策略/库,但效果不理想,特别是在更高分辨率下。
以下是我所尝试的:
SDL
:可以,但很慢;
OpenGL
:低效的像素操作;
xlib
:更好,但仍然太慢;
svgalib
, directfb
,(其他帧缓冲区实现):它们看起来很完美,但对于为最终用户进行设置而言绝对是太棘手。
(注意:我可能对这些断言是错误的,如果是这样,请纠正我)
我需要的是以下内容:
性能可与OpenGL
渲染相媲美的快速像素绘制;
它应该在Linux上工作(作为奖励功能的跨平台);
它应该支持双缓冲和垂直同步;
它应该是便携式的,因为硬件方面的问题;
它应该是开源的。
你能给我一些启发/想法/建议吗?
你的像素是稀疏还是密集的(例如位图)? 如果您要在像素之外创建密集的位图,那么另一种选择是将位图转换为OpenGL纹理,并使用OpenGL API以某种帧率渲染。
基本问题是,不同硬件平台上的图形硬件会有很大差异。 您可以选择一个抽象层,这会降低速度,也可能更密切地针对目前不存在的图形硬件类型进行编码。
我不完全确定你做错了什么,但可能是你一次一个像素写到显示器表面。
不要这样做。
取而代之的是,在主内存中以与要呈现的显示表面相同的格式创建呈现表面,然后在一次操作中将整个呈现的图像复制到显示器。 现代GPU的每笔交易非常缓慢,但可以在一次操作中快速移动大量数据。
看起来你很迷惑窗口管理器(SDL和xlib)和渲染库(opengl)。
只需选择一个窗口管理器(SDL,glut或xlib,如果你喜欢挑战),激活双缓冲模式,并确保你有直接渲染。
你有什么样的图形卡? 它很可能会处理GPU上的像素。 查看如何在opengl中创建像素着色器。 像素着色器正在处理每个像素。
链接地址: http://www.djcxy.com/p/45727.html