首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过opengl渲染每像素1位的图像

通过opengl渲染每像素1位的图像
EN

Stack Overflow用户
提问于 2019-08-18 06:15:13
回答 1查看 209关注 0票数 3

最近,我开始用C语言实现CHIP-8仿真器。在实现了大部分操作码之后,我遇到了一个为仿真器实现显示的问题。在谷歌搜索和阅读之后,我解码给了OpenGL一次机会。这就是问题所在--显示信息以每像素1位的单色图像形式存储在CHIP-8内存的最后256字节中(内存是一个大小为4096的uint8_t数组)。当然,我可以创建另一个数组,用于以更易用的格式(每个像素1字节)存储显示数据,并通过OpenGL将其呈现为纹理,但我想知道的是,在现代OpenGL或其他可以在C编程语言中使用的库/框架中,是否有更优雅、更有效的解决方案。

提前谢谢你。

另外,英语不是我的母语,所以错误修复将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2019-08-18 06:42:19

在现代OpenGL中,您可以使用整数纹理和8位单通道图像格式。然后在着色器中,将快速运行的坐标除以8来确定纹理元素,并用余数来选择位,类似于GLSL中的内容

代码语言:javascript
复制
texelFetch(texture, ivec2(texcoord.x/8, texcoord.y), 0).x &
    (1 << texcoord.x%8) != 0;

我现在正在用手机,所以如果这太简洁了,请原谅。如果你需要更多的细节,尽管问吧!

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

https://stackoverflow.com/questions/57540314

复制
相关文章

相似问题

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