当前位置: 首页 > news >正文

纹理对象创建

 

纹理对象通俗点就是贴图,像游戏的皮肤什么就是纹理。常间的结构就是激活纹理单元(0-15有16个),将纹理对象挂在纹理单元上,纹理采样器需要采哪个样品就与哪个单元挂钩就行了,加载纹理对象需要用到stb_image库,这个我给个博文地址,按照他说的下载使用就行了:图像库:stb_image.h-CSDN博客

把.h文件添加到项目中后,在main.cpp文件中加上一句

#define STB_IMAGE_IMELEMENTATION
#include "stb_image.h"

这个库就可以调用了。

stb_image读取图片

int width,height,channels;
反转y轴

图片文件的原点在图片的左上角,而我们需要的是原点在左下角的数据,就需要把图片的坐标系数据反转下

stbi_set_flip_vertically_on_load(true);//自动翻转y轴//读入图片文件,把他的宽高,通道传出来,并且不管是什么格式指定传过来的变为rgba格式
unsigned char* data=stbi_load("此处填入图片路径",&width,&height,&channels,STBI_rgb_alpha);

生成纹理并且进行单元绑定

GLuint texture//纹理对象的编号
glGenTextures(1,&texture);
//激活纹理单元
glActiveTexture(GL_TEXTURE0);
//OpenGL状态机接口绑定纹理对象
glBindtexture(GL_TEXTURE_2D,texture);

 传输纹理数据并开辟显存

glTextImage2D(GL_TEXTURE_2D,0,GL_RGBA,width,height,0,GL_RGBA,GL_UNSIGNED_BYTE,data);

 释放数据

一旦纹理生成并且数据完成传输,纹理对象就没有存在的必要了,我们就可以将内存中指针指向的这一片数据给他释放了

stbi_image_free(data);//释放掉data指针

http://www.xdnf.cn/news/254341.html

相关文章:

  • Nacos使用
  • 组件通信-props
  • 类与对象(中)
  • OnlyOffice Document Server 源码调试指南-ARM和x86双模式安装支持
  • < 自用文 Texas style Smoker > 美式德克萨斯烟熏炉 从设计到实现 (第一部分:烹饪室与燃烧室)
  • 类与类之间的关系详解
  • 部署Superset BI(二)再战Superset
  • 【信息系统项目管理师-论文真题】2013上半年论文详解(包括解题思路和写作要点)
  • AI编译器对比:TVM vs MLIR vs Triton在大模型部署中的工程选择
  • PyQt 或 PySide6 进行 GUI 开发文档与教程
  • 【东枫电子】AMD / Xilinx Alveo™ UL3422 加速器
  • MTV-SCA:基于多试向量的正弦余弦算法
  • GNOME扩展:ArcMenu的Brisk布局左右调换
  • 在Kali Linux上安装GNOME桌面环境完整教程
  • 【Linux系统】线程
  • 一种快速计算OTA PSRR的方法(Ⅰ)
  • open files 打开文件数
  • SALOME源码分析: JobManager
  • [更新完毕]2025五一杯B题五一杯数学建模思路代码文章教学: 矿山数据处理问题
  • php artisan resetPass 执行密码重置失败的原因?php artisan resetPass是什么 如何使用?-优雅草卓伊凡
  • PDF转换工具xpdf-tools-4.05
  • 【AI面试准备】AI误判案例知识库优化方案
  • 依赖倒置原则
  • AI外挂RAG:大模型时代的检索增强生成技术
  • 笔试专题(十四)
  • 基于C++、JsonCpp、Muduo库实现的分布式RPC通信框架
  • c语言的常用关键字
  • (六——下)RestAPI 毛子(Http resilience/Refit/游标分页)
  • math.atan2(y, x)
  • 人工智能搜索时代的SEO:关键趋势与优化策略