首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何显示内存中的帧缓冲区

如何显示内存中的帧缓冲区
EN

Computer Graphics用户
提问于 2020-06-17 15:27:00
回答 1查看 987关注 0票数 0

我计划编写一个小型的软件渲染引擎(在别人问我之前,这对我来说是一种学习/科学实验)。

在编写任何代码之前,我已经停留在第一步:如何在屏幕上显示框架缓冲区?我计划做的是渲染到内存中的缓冲区,例如320x200,24位的RGB格式。当然,我需要在屏幕上显示结果;全屏或窗口。

我知道类似的问题在这里已经存在:

不同的是,我想要经常更新图像,像50 The这样的体面的框架。

似乎有一种可能是OpenGL框架缓冲区对象和/或缓冲区流。我不确定我是否应该走那条路,还是对这个用例来说太过分了?我还考虑过用纹理显示一个简单的矩形,我会更新每一帧,但我不确定性能(我想每个帧传输几兆字节的数据应该不是问题)。几年前,我尝试过GDI+和WPF,但是性能远远没有达到我想要达到的效果。不幸的是,我已经没有源代码了,但是我承认我的方法可能是完全错误的。

我并不期待源代码或现成的解决方案,而是一些说明:使用什么功能,我很乐意阅读关于这个主题的文章或教程。

我先考虑了OpenGL,但我和DirectX也没什么关系。欢迎其他建议。我计划使用C/C++或C#,也许使用Python来实现。

我相信一定有一个简单的解决方案,但我承认,在图形编程方面,我是一个完全的新手。我想这只是为了找到一种有效的方法,将数据从RAM复制到GPU内存。我想知道复古仿真器(例如,邪恶)或幻想控制台(如Pico-8)是如何解决这个问题的?

EN

回答 1

Computer Graphics用户

回答已采纳

发布于 2020-06-19 11:38:22

你考虑过使用SDL 2吗?

我的用例与您的基本相同,而且我发现这种方法工作得很好。他们有一个非常好的C(和C++) API,用于将框架缓冲区绘制到窗口。它也与平台无关,所以您可以很容易地在macOS、Linux和Windows之间共享您的实现。如果您想看一个示例,可以在这里查看模块在GitHub上。不过,我警告您,虽然这个实现可以工作,而且我可以轻松地在60-120FPS运行它,但它可能确实比一个完全优化的实现使用更多的CPU。具体地观察initDisplay()drawWindow()函数。

票数 0
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/9949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档