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

低多边形生成网站长沙旅游攻略景点必去长沙美食街

低多边形生成网站,长沙旅游攻略景点必去长沙美食街,html网页设计实训报告范文,wordpress 调整分页大小1. 概述 QOpenGLTexture 是 Qt5 提供的一个类#xff0c;用于表示和管理 OpenGL 纹理。它封装了 OpenGL 纹理的创建、分配存储、绑定和设置像素数据等操作#xff0c;简化了 OpenGL 纹理的使用。 2. 重要函数 构造函数#xff1a; QOpenGLTexture(const QImage image,…1. 概述 QOpenGLTexture 是 Qt5 提供的一个类用于表示和管理 OpenGL 纹理。它封装了 OpenGL 纹理的创建、分配存储、绑定和设置像素数据等操作简化了 OpenGL 纹理的使用。 2. 重要函数 构造函数 QOpenGLTexture(const QImage image, QOpenGLTexture::MipMapGeneration genMipMaps GenerateMipMaps) QOpenGLTexture(QOpenGLTexture::Target target) 纹理配置 void allocateStorage() void allocateStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType) void setFormat(QOpenGLTexture::TextureFormat format) void setLayers(int layers) void setSize(int width, int height 1, int depth 1) 绑定和解绑 void bind() void bind(uint unit, QOpenGLTexture::TextureUnitReset reset DontResetTextureUnit) void release() void release(uint unit, QOpenGLTexture::TextureUnitReset reset DontResetTextureUnit) 设置像素数据 void setData(int mipLevel, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options nullptr) void setData(const QImage image, QOpenGLTexture::MipMapGeneration genMipMaps GenerateMipMaps) 生成 Mipmaps void generateMipMaps() void generateMipMaps(int baseLevel, bool resetBaseLevel true) 获取纹理属性 int width() const int height() const int depth() const GLuint textureId() const 3. 常用枚举类型 BindingTarget纹理绑定目标如 BindingTarget2D、BindingTargetCubeMap 等。 ComparisonFunction深度和模板比较函数。 ComparisonMode比较模式如 CompareRefToTexture。 CubeMapFace立方体贴图的各个面如 CubeMapPositiveX。 DepthStencilMode深度和模板模式。 Feature纹理特性如 TextureRectangle、TextureArrays。 Filter纹理过滤方式如 Nearest、Linear。 MipMapGeneration是否生成 MipmapsGenerateMipMaps 或 DontGenerateMipMaps。 PixelFormat像素格式如 RGBA8888。 PixelType像素类型如 UnsignedByte。 SwizzleComponent颜色通道如 SwizzleRed。 SwizzleValue颜色值如 RedValue。 Target纹理目标如 Target2D。 TextureFormat纹理格式如 RGB8_UNorm。 WrapMode纹理环绕模式如 Repeat、ClampToEdge。 #include widget.hfloat vertices[] {// positions // colors // texture coords0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, // top right0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, // bottom right-0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // bottom left-0.5f, 0.5f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f // top left }; unsigned int indices[] {0, 1, 3, // first triangle1, 2, 3 // second triangle };MyGLWidget::MyGLWidget(QWidget *parent) : QOpenGLWidget(parent) {}MyGLWidget::~MyGLWidget() {glDeleteVertexArrays(1, VAO);glDeleteBuffers(1, VBO);glDeleteBuffers(1, EBO); }void MyGLWidget::initializeGL() {initializeOpenGLFunctions(); // 初始化 OpenGL 函数bool success;m_shaderProgram.addShaderFromSourceFile(QOpenGLShader::Vertex,:/shader/shader.vert);m_shaderProgram.addShaderFromSourceFile(QOpenGLShader::Fragment,:/shader/shader.frag);successm_shaderProgram.link();if(!success) qDebug()ERR:m_shaderProgram.log();//创建、绑定VAOglGenVertexArrays(1, VAO);glBindVertexArray(VAO);//创建、绑定VBO 填充数据glGenBuffers(1, VBO);glBindBuffer(GL_ARRAY_BUFFER, VBO);glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);//设置顶点属性指针glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)0);glEnableVertexAttribArray(0);// 颜色属性glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(3* sizeof(float)));glEnableVertexAttribArray(1);//纹理坐标glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(6 * sizeof(float)));glEnableVertexAttribArray(2);//解绑缓冲区和 VAOglBindBuffer(GL_ARRAY_BUFFER, 0);glBindVertexArray(0);//创建、绑定纹理m_diffuseTex new QOpenGLTexture(QImage(:/img/container.png).mirrored());m_specularTex new QOpenGLTexture(QImage(:/img/awesomeface.png).mirrored());m_shaderProgram.bind();m_shaderProgram.setUniformValue(texture1, 0);m_shaderProgram.setUniformValue(texture2, 1);; }void MyGLWidget::paintGL() {glClearColor(0.2f, 0.3f, 0.3f, 1.0f);glClear(GL_COLOR_BUFFER_BIT); // 清除颜色缓冲区m_shaderProgram.bind();m_diffuseTex-bind(0);m_specularTex-bind(1);glBindVertexArray(VAO);//glDrawArrays(GL_TRIANGLES, 0, 3);glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);glBindVertexArray(0); }void MyGLWidget::resizeGL(int w, int h) {glViewport(0, 0, w, h); // 设置视口大小 }unsigned int MyGLWidget::loadTexture(const char *fileName, bool alpha) {unsigned int texture;glGenTextures(1, texture); // 生成纹理 IDglBindTexture(GL_TEXTURE_2D, texture); // 绑定纹理// 设置纹理参数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_MIPMAP_LINEAR);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); #if 0// 加载图片并转换为 OpenGL 格式QImage image;if (!image.load(fileName)){qWarning() Failed to load texture image;return 0;}image QGLWidget::convertToGLFormat(image); // 转换为 OpenGL 格式unsigned char *data image.bits();// 生成纹理glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image.width(), image.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, data);glGenerateMipmap(GL_TEXTURE_2D); // 生成多级渐远纹理 #elseQFile file(fileName);file.copy(file.fileName(), QFileInfo(file).fileName());int width, height, nrChannels;stbi_set_flip_vertically_on_load(true); // tell stb_image.h to flip loaded textures on the y-axis.unsigned char *data stbi_load(QFileInfo(file).fileName().toStdString().c_str(), width, height, nrChannels, 0);if (data)//awesomeface container{if(alpha)glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);elseglTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data);glGenerateMipmap(GL_TEXTURE_2D);}else{std::cout Failed to load texture1 std::endl;}stbi_image_free(data); #endifreturn texture; }觉得有帮助的话打赏一下呗。。 需要商务合作定制程序的欢迎私信
http://www.ho-use.cn/article/10823701.html

相关文章:

  • 网站的页面布局网站建设单选题
  • 网站logo设计创意上传网站根目录
  • 简单网站建设公司做网站淮南
  • 免费制作一个自己的网站吗还有哪些网站做产品众筹
  • 注册建筑劳务公司需要什么条件seo基础
  • 济南建站免费模板湖南做网站360o
  • 服装行业网站开发东莞免费建站公司
  • 营销型网站要点编程用什么软件写代码
  • 广东网站建设价格广东官网网站建设企业
  • 网站建设如何跑业务深圳高端女装品牌排行榜
  • 校园网站建设必要性aso优化平台有哪些
  • 网站提交上海做网站哪里好
  • php做的网站毕设会问的问题学生做的动漫网站
  • 盐城做网站优化微信推广网站建设
  • 长春建站模板源码专业网站制作的公司
  • 怎么在58同城上做网站windows优化大师自动下载
  • 网站怎么进行优化排名北京 建设官方网站
  • 做网站域名需哪些虚拟主机怎么发布网站吗
  • 做网站技术含量磁力网站怎么做的源码
  • 做网站推广的难点凡科自助建站系统
  • 什么是网站降权处理网站运营条件
  • 台州市城乡建设局网站泸州网站开发
  • 网站开发制作的流程营销软文的范文
  • 做qq主题的网站南京百度seo公司
  • 电商网站开发流程文档怎么样自己做网站接订单
  • 深圳网站seo哪家快自己做网站赚钱
  • 沙井网站设计湘潭网站建设 排名磐石网络
  • 彩虹云商城网站搭建wordpress 好的相册
  • 如何查询网站开发商建筑人才网招聘网官网首页
  • 使用什么工具什么步骤完成网站的设计与建设晨雷文化传媒网站建设