SOIL的配置
需求来自于在学习OPENGL的过程中,纹理这一块内容时需要获取图片信息,而纹理图像可能被储存为各种各样的格式,每种都有自己的数据结构和排列,如DDS、JPG、BMP、PNG等,需要一个图像加载器,所以我们如何才能把这些图像加载到应用中呢?自己写一个图像加载器,把图像转化为字节序列?这样就偏移了OpenG的学习轨道,而SOIL库就是一个非常方便好使的库,它的代码是跨平台的,在Windows,Linux和Mac上都方便使用,使用它我们将对OpenGL的学习更加高效。
简介
SOIL是一个很小的C库,主要用于将纹理上传到OpenGL中。它基于stb_image版本1.16,Sean Barrett的公共域代码(在此处找到)。我已将其扩展为加载TGA和DDS文件,并执行加载OpenGL纹理所需的常用功能。SOIL还可用于以各种格式保存和加载图像(对于加载高度图,非OpenGL应用程序等非常有用)
功能
-
可读图像格式:
- BMP - 非1bpp,非RLE(来自stb_image文档)
- PNG - 非隔行扫描(来自stb_image文档)
- JPG - JPEG基线(来自stb_image文档)TGA - 灰度或RGB或RGBA或索引,未压缩RLE
- DDS - DXT1 / 2/3/4/5,未压缩的立方体贴图(尚无法读取3D DDS文件)
- PSD - (来自stb_image文档)
- HDR - 转换为LDR,除非加载*HDR *函数(RGBE或RGBdivA或RGBdivA2)
2.可写图像格式:
- TGA - 未压缩的灰度或RGB或RGBABMP
- RGB,未压缩DDS - RGB为DXT1,
- RGBA为DXT5
- 可以将图像文件直接加载