我不希望我的游戏引擎的错误纹理依赖于外部文件,因为该文件可能会被删除,这违背了拥有错误纹理的目的。如何将图像文件转换为可以使用 glTexImage2D
读取的 C 样式字符数组?
最佳答案
首先,将您的源图像文件转换为“原始”格式(同时在一对变量中“记住”图像的尺寸)。为此,您可以使用 ImageMagick
的 convert
工具。
此 answer 给出了灰度图像转换的示例.对于 RGB 图像,要么编写自己的图像到二进制文件转换器(因为您可能知道如何为其他纹理加载 RGB 图像,或者使用 STB 或类似库加载它,然后将图像数据保存为二进制文件)文件),或者(如果不需要此转换步骤的自动化)只需使用一些 GUI 工具来保存 RAW 图像。
然后使用名为 bin2h
的工具(二进制文件到 C 头文件),它将文件作为输入(您的“原始”文件)并输出一个带有字节数组的 C 头文件。
可以在 Bin2H@github 找到这样的工具之一。
然后使用声明的数组(和一对具有纹理尺寸的变量)作为 glTexImage2D
的参数。 .
关于c - 如何将与 OpenGL 一起使用的纹理嵌入到 C 数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64887684/