OpenGL png图片 纹理贴图,去除png图片黑边

本文介绍了如何在OpenGL中将PNG图片作为纹理贴图时,避免出现图片周围的黑边问题。通过启用GL_BLEND,设置合适的 Blend 函数和 Alpha 测试,以及调整纹理参数,成功实现透明区域的正确显示。
摘要由CSDN通过智能技术生成

将png图片作为纹理贴图,在图片周围会产生黑边,在网上查了一下,都没有明确指出解决方法!废话不说了,看代码。

1.初始化

 

 

OpenGL实现图片纹理贴图的步骤如下: 1. 加载图片并生成纹理数据 可以使用第三方库,如SOIL、FreeImage等,也可以自己编写代码读取图片数据,然后利用OpenGL提供的接口生成纹理数据。 2. 设置纹理参数 通过调用glTexParameteri函数设置纹理参数,如纹理过滤方式、纹理环绕方式等。 3. 绑定纹理 通过调用glBindTexture函数将纹理绑定到纹理单元。 4. 绘制图形并应用纹理 通过OpenGL的绘图函数绘制图形,并在绘制时将纹理应用到图形上。 下面是一段示例代码: ```c++ // 加载图片并生成纹理数据 int width, height; unsigned char* image = SOIL_load_image("texture.jpg", &width, &height, 0, SOIL_LOAD_RGB); glGenTextures(1, &textureID); glBindTexture(GL_TEXTURE_2D, textureID); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image); SOIL_free_image_data(image); // 设置纹理参数 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); // 绑定纹理 glBindTexture(GL_TEXTURE_2D, textureID); // 绘制图形并应用纹理 glBegin(GL_TRIANGLES); glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 0.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f(1.0f, -1.0f, 0.0f); glTexCoord2f(0.5f, 1.0f); glVertex3f(0.0f, 1.0f, 0.0f); glEnd(); ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值