c - 如何将与 OpenGL 一起使用的纹理嵌入到 C 数组中?

标签 c opengl game-engine

我不希望我的游戏引擎的错误纹理依赖于外部文件,因为该文件可能会被删除,这违背了拥有错误纹理的目的。如何将图像文件转换为可以使用 glTexImage2D 读取的 C 样式字符数组?

最佳答案

首先,将您的源图像文件转换为“原始”格式(同时在一对变量中“记住”图像的尺寸)。为此,您可以使用 ImageMagickconvert工具。
answer 给出了灰度图像转换的示例.对于 RGB 图像,要么编写自己的图像到二进制文件转换器(因为您可能知道如何为其他纹理加载 RGB 图像,或者使用 STB 或类似库加载它,然后将图像数据保存为二进制文件)文件),或者(如果不需要此转换步骤的自​​动化)只需使用一些 GUI 工具来保存 RAW 图像。
然后使用名为 bin2h 的工具(二进制文件到 C 头文件),它将文件作为输入(您的“原始”文件)并输出一个带有字节数组的 C 头文件。
可以在 Bin2H@github 找到这样的工具之一。
然后使用声明的数组(和一对具有纹理尺寸的变量)作为 glTexImage2D 的参数。 .

关于c - 如何将与 OpenGL 一起使用的纹理嵌入到 C 数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64887684/

相关文章:

c++ - 实时更改纹理sdl

c - “C”程序将音频文件输出到 FFMPEG 并生成视频文件

c - 在不取消引用的情况下保持指针越界是否安全?

java - jBullet 例子

c++ - 如何实现高效的二维批处理?

OpenGL - 顶点着色器颜色未传递给片段着色器

ios - 向固定点旋转箭头(类似时钟的动画)

c - 我正在用 C 构建基本统计头文件并遇到问题

c - 在 C 中用 100 个整数填充数组

opengl - 使用 GL_TRIANGLE_STRIP 绘制四边形