[MAC] Xcode OpenGL中SOIL库与stbi_load库加载图片

在学习OpenGL贴图时,使用stbi_load在MAC的Xcode环境中出现错误。通过引入SOIL库解决了问题。安装SOIL库后,保留src文件夹的内容,并配置Xcode编译设置,成功实现图片加载。参考解决方案来源于网络。

[MAC] Xcode OpenGL中SOIL库与stbi_load库加载图片
在learnopengl的教程里面贴图那一章,xcode里面使用stbi_load 会报错,教程里面是

//     load image, create texture and generate mipmaps
    int width, height, nrChannels;
//    The FileSystem::getPath(...) is part of the GitHub repository so we can find files on any IDE/platform; replace it with your own image path.
    unsigned char *data = stbi_load(FileSystem::getPath("resources/textures/container.jpg").c_str(), &width, &height, &nrChannels, 0);
    unsigned char *data = stbi_load("images/test1.bmp", &width, &height, &nrChannels, 0);

然而fileSystem这个有问题。
解决方法1:使用SOIL库
安装了SOIL库使用命令行
git clone https://github.com/DeVaukz/SOIL
之后需要在xcode 设置编译文件

在这里插入图片描述
注意只留这些src文件夹的文件,其他的不留会有重复。

    int texwidth,texheight,nrChannels;
    unsigned char *image = SOIL_load_image("/Users/kangyixiao/EchoFile/coding/SJTU-SE-Junior/SE344_ComputerGraphics/OpenGLTest2/images/test1.png", &texwidth, &texheight, 0, SOIL_LOAD_RGB);
        glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, texwidth, texheight, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
        if(image){
            glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, texwidth, texheight, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
            glGenerateMipmap(GL_TEXTURE_2D);
        }
        else
            std::cout<<SOIL_last_result()<<std::endl;
        SOIL_free_image_data(image);
        glBindTexture(GL_TEXTURE_2D,0);

成功
在这里插入图片描述

解决方案参考了
https://www.cxyzjd.com/article/gcola007/78458009

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值