最新要闻
- 焦点速读:曾经的国民神车 新款哈弗H6亮相:换张脸、动力更强
- 你敢开不?特斯拉大雾中自动辅助驾驶 “狂飙”至86km/h
- 全球即时:少见!女子家中大巨蛋磕开竟是蛋中蛋 最终收获两枚蛋黄:科普原因
- 世界最新:全新比亚迪宋Pro DM-i申报图出炉:前脸比Plus还凌厉
- 券后9块9!汤臣倍健维生素D钙片大促:手慢真的无
- 联想小新16 2023轻薄本官宣: 普及2.5K高清大屏、1TB硬盘
- 你会答?深圳一电子厂入职考数理化、《庄子》和英语等 网友吐槽难:厂商回应
- 开眼!一宝马车高速行驶未松手刹 四个车轮全磨红了
- 众泰“亡者归来”推出首款电动车 江南U2正式开售:5.88万起
- 环球实时:广东最狂野民俗盐拖灶神刷爆网络 场面激烈:堪称我国最热血民俗
- 微资讯!深圳夜空出现三个不明发光飞行物:飞速掠过
- 今日快讯:连续开车8小时!男子长期久坐后被诊断截瘫 医生提醒
- 天天快资讯丨丰田顶级名车!世纪SUV最新效果图曝光:有“大汉兰达”那味了
- 世界热资讯!众泰汽车破产清算 一保时捷Macan将被拍卖!网友:当年皮尺部首车?
- 当前信息:注意!长期空气污染增加患抑郁症风险:甚至会致死
- 世界热点! 新型合成皮肤面世:有望解开蚊子传播致命疾病之谜
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
每日热议!【OpenGL+Qt 学习】 你好,三角形
【资料图】
参考
LearnOpenGL CN (learnopengl-cn.github.io)1-2VAO与VBO_哔哩哔哩_bilibili
定义 OpenGL 窗口类
#ifndef MYGLWIDGET_H#define MYGLWIDGET_H#include #include class MyGLwidget : public QOpenGLWidget,QOpenGLFunctions_3_3_Core{public: explicit MyGLwidget(QWidget* parent = nullptr); ~MyGLwidget();private: unsigned int VAO;///< 顶点数组对象 ID unsigned int VBO;///< 顶点缓冲对象 ID unsigned int shaderProgram;///< 着色器程序 IDprotected: virtual void initializeGL(); virtual void resizeGL(int w, int h); virtual void paintGL();};#endif // MYGLWIDGET_H
#include "myglwidget.h"#include /// 顶点着色器 GLSL 源代码硬编码const char *vertexShaderSource = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" "void main()\n" "{\n" " gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n" "}\0";/// 片段着色器 GLSL 源代码硬编码const char *fragmentShaderSource = "#version 330 core\n" "out vec4 FragColor;\n" "void main()\n" "{\n" " FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f);\n" "}\n\0";/// 三角形顶点数据float vertices[]={ -0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.0f, 0.5f, 0.0f};MyGLwidget::MyGLwidget(QWidget* parent) :QOpenGLWidget{parent}{}MyGLwidget::~MyGLwidget(){ // 删除没用的对象 glDeleteVertexArrays(1, &VAO); glDeleteBuffers(1, &VBO); glDeleteProgram(shaderProgram);}void MyGLwidget::initializeGL(){ initializeOpenGLFunctions(); /* 顶点着色器 *************************************************/ // 创建顶点着色器 unsigned int vertexShader; vertexShader = glCreateShader(GL_VERTEX_SHADER); // 把着色器源码附加到着色器对象上,然后编译它 glShaderSource(vertexShader, 1, &vertexShaderSource, NULL); glCompileShader(vertexShader); // 检查着色器程序是否编译成功 int success; char infoLog[512]; glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &success); if(!success) { glGetShaderInfoLog(vertexShader, 512, NULL, infoLog); qDebug() << "ERROR::SHADER::VERTEX::COMPILATION_FAILED\n" << infoLog << Qt::endl; } /* 片段着色器 *************************************************/ // 创建片段着色器 unsigned int fragmentShader; fragmentShader = glCreateShader(GL_FRAGMENT_SHADER); // 把着色器源码附加到着色器对象上,然后编译它 glShaderSource(fragmentShader, 1, &fragmentShaderSource, NULL); glCompileShader(fragmentShader); // 检查着色器程序是否编译成功 glGetShaderiv(fragmentShader, GL_COMPILE_STATUS, &success); if(!success) { glGetShaderInfoLog(fragmentShader, 512, NULL, infoLog); qDebug() << "ERROR::SHADER::FRAGMENT::COMPILATION_FAILED\n" << infoLog << Qt::endl; } /* 着色器程序 *************************************************/ // 创建一个着色器程序 shaderProgram = glCreateProgram(); // 把之前编译的着色器附加到程序对象上 glAttachShader(shaderProgram, vertexShader); glAttachShader(shaderProgram, fragmentShader); // 连接着色器程序 glLinkProgram(shaderProgram); // 检查链接着色器程序是否失败 glGetProgramiv(shaderProgram, GL_LINK_STATUS, &success); if(!success) { glGetProgramInfoLog(shaderProgram, 512, NULL, infoLog); qDebug() << "ERROR::SHADER::PROGRAM::LINKING_FAILED\n" << infoLog << Qt::endl; } // 在把着色器对象链接到程序对象以后,记得删除着色器对象,不再需要它们了 glDeleteShader(vertexShader); glDeleteShader(fragmentShader); // 创建一个 VAO 对象 glGenVertexArrays(1, &VAO); // 先绑定 VAO 对象 glBindVertexArray(VAO); // 创建一个 VBO 对象 glGenBuffers(1, &VBO); // 绑定 VBO glBindBuffer(GL_ARRAY_BUFFER, VBO); // 把顶点数组复制到顶点缓冲区中供 OpenGL 使用 glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); // 设置顶点属性指针——函数告诉OpenGL该如何解析顶点数据 glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0); glEnableVertexAttribArray(0);// 启用顶点属性 // 使用glVertexAttribPointer设置好顶点属性指针后,就可以解绑 VBO 了 glBindBuffer(GL_ARRAY_BUFFER,0); // 只有绑定的状态下才能修改 VAO // 解除绑定VAO,以便其他 VAO 调用不会意外修改此VAO glBindVertexArray(0);}void MyGLwidget::resizeGL(int w, int h){}void MyGLwidget::paintGL(){ // 设置背景色 glClearColor(0.2f, 0.3f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); glUseProgram(shaderProgram); glBindVertexArray(VAO); // 第一个参数:打算绘制的OpenGL图元的类型 // 第二个参数指定了顶点数组的起始索引,我们这里填 0 // 最后一个参数指定我们打算绘制多少个顶点,这里是 3 glDrawArrays(GL_TRIANGLES, 0, 3);}
定义主窗口类
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include "myglwidget.h"QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMESPACEclass MainWindow : public QMainWindow{ Q_OBJECTpublic: MainWindow(QWidget *parent = nullptr); ~MainWindow();private: MyGLwidget* glWidget;private: Ui::MainWindow *ui;};#endif // MAINWINDOW_H
#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow){ ui->setupUi(this); glWidget = new MyGLwidget; this->setCentralWidget(glWidget);}MainWindow::~MainWindow(){ delete ui;}
-
每日热议!【OpenGL+Qt 学习】 你好,三角形
参考LearnOpenGLCN(learnopengl-cn github io)1-2VAO与VBO_哔哩哔哩_bilibili定义OpenGL窗口类 ifndefMYGLWIDG
来源: -
全球微资讯!《焦虑症的自救》焦虑症反反复复?还在为恐惧和焦虑苦恼?快来领取焦虑症自愈宝典!
大家好我是Jack,一个专门解决焦虑症的心理咨询师。我曾经也是个很严重的焦虑症患者,被各种症状折磨了...
来源: 每日热议!【OpenGL+Qt 学习】 你好,三角形
全球微资讯!《焦虑症的自救》焦虑症反反复复?还在为恐惧和焦虑苦恼?快来领取焦虑症自愈宝典!
焦点速读:曾经的国民神车 新款哈弗H6亮相:换张脸、动力更强
你敢开不?特斯拉大雾中自动辅助驾驶 “狂飙”至86km/h
全球即时:少见!女子家中大巨蛋磕开竟是蛋中蛋 最终收获两枚蛋黄:科普原因
世界最新:全新比亚迪宋Pro DM-i申报图出炉:前脸比Plus还凌厉
券后9块9!汤臣倍健维生素D钙片大促:手慢真的无
全球热议:使用cnn,bpnn,lstm实现mnist数据集的分类
热门:ASP.Net WP 教程_编程入门自学教程_菜鸟教程-免费教程分享
每日热文:为什么这11道JVM面试题这么重要(附答案)
环球今日讯!修改Linux内核版本信息的方法
联想小新16 2023轻薄本官宣: 普及2.5K高清大屏、1TB硬盘
你会答?深圳一电子厂入职考数理化、《庄子》和英语等 网友吐槽难:厂商回应
开眼!一宝马车高速行驶未松手刹 四个车轮全磨红了
众泰“亡者归来”推出首款电动车 江南U2正式开售:5.88万起
找数组中重复的数字
最资讯丨十年老程序员:再见了Navicat,以后多数据库管理就看这款SQL工具
【Spring】Bean装配类注解
环球实时:广东最狂野民俗盐拖灶神刷爆网络 场面激烈:堪称我国最热血民俗
微资讯!深圳夜空出现三个不明发光飞行物:飞速掠过
【全球新视野】ASP.Net 教程_编程入门自学教程_菜鸟教程-免费教程分享
今日快讯:连续开车8小时!男子长期久坐后被诊断截瘫 医生提醒
天天快资讯丨丰田顶级名车!世纪SUV最新效果图曝光:有“大汉兰达”那味了
世界热资讯!众泰汽车破产清算 一保时捷Macan将被拍卖!网友:当年皮尺部首车?
当前信息:注意!长期空气污染增加患抑郁症风险:甚至会致死
世界热点! 新型合成皮肤面世:有望解开蚊子传播致命疾病之谜
必知必会的设计原则——迪米特原则
环球关注:20万燃油车能比?百万级轿跑底盘助力:哪吒S麋鹿测试80km/h稳过
【新要闻】看看你的工作会被取代吗?ChatGPT时代生存攻略:未来“高枕无忧”的10种工作
快看:原美团创始人王慧文进军人工智能:称将打造中国的OpenAI
一加Ace 2首销战报出炉:37分钟打破近一年所有安卓机首销全天记录!
德国最新电商周销量:AMD完胜Intel
鼠标不能拖动文件是怎么回事?鼠标不能拖动文件夹怎么解决?
苹果ipad充不上电是什么原因?苹果ipad怎么使用?
YY个人积分怎么计算?yy个人积分在哪里查看?
如何选购抽油烟机?抽油烟机十大名牌排名
word打不开是什么原因?word打不开怎么解决?
固态水指的是什么?固态水冻结状态持续多久?
乌鲁木齐机场属于什么区?乌鲁木齐机场到火车站需要多长时间?
DataX二次开发——HdfsReader和HdfsWriter插件增加parquet文件读写
全链路异步,让你的 SpringCloud 性能优化10倍+
每日焦点!机器学习-SVM
金色枫叶是什么意思?金色枫叶相关的成语有哪些?
无人生还的凶手是谁?无人生还的人物介绍
逆生长是什么意思?人怎么才能逆生长?
快讯:“小行星”撞地球今日中午上演!法国、英国、荷兰均肉眼可见
十大全系标配!长安逸达一出场 就把压力给到合资了
【世界速看料】别迷信日本制造!董明珠:格力中央空调国内第一创历史 日立大金都不行
国产最帅电动猎装车成了!极氪已交付8万台:完成7.5亿美元A轮融资 杀向全球前三
黄旭东评价李培楠《星际争霸2》夺冠:这一刻等了20年!
速讯:Redmi K60官宣降价:2999元普及512GB存储、老用户保价+送手环
不花钱每天能跑12公里 印度首款太阳能汽车亮相:像是“三蹦子”
世界即时:ChatGPT惊动谷歌创始人:罕见出山检查Bard AI代码数据
热议:曝宁德时代将赴美建厂:福特出地出厂房 “宁王”出技术
当前速读:实测用微软ChatGPT写求职信:“不道德”、被拒绝
天天滚动:安全圈最新重大数据泄露事件
世界最新:移动端重排版PDF阅读器比较
Flink 积压问题排查
全球视点!重新思考 Vue 组件的定义
环球快讯:读Java实战(第二版)笔记08_默认方法
当前观点:Opera新版本集成ChatGPT:一键生成网页内容摘要
全球信息:车圈美女测2023新款比亚迪秦PLUS DM-i:1箱油跨8省1300km 油耗3.49L/100km
动态:如何在Debian 11上安装Docker Swarm集群
fusion app登录注册示例
多家快递回应站点派件延迟问题:寄送时效要看站点运力恢复如何
格芯成都晶圆厂烂尾:紫光集团要接手?
豆瓣9.2分 《中国奇谭》今日正式收官!上美影厂还有三部新作
环球视点!学习笔记——尚好房:Apache Dubbo
零跑创始人:增程式结构简单成本低 就是为纯电车加上“充电宝”
天天快看点丨减少牙菌斑 两面针牙膏4支仅需17.9元 加赠2支牙刷
【新视野】系统扭矩590N·m 零百加速6.5秒!长安UNI-V混动iDD开卖:14.49万起
《中国式家长》精神续作 《中国式相亲2》上架Steam
女子驾宝马车“刹车失灵” 罪魁祸首竟是“脚垫”
热文:1月MPV销量排名出炉 GL8、赛那、腾势D9混战 谁将胜出?
快报:1km收费2元多!日本高速公路收费政策再增50年 2115年才免费
上班注意了 北京明起恢复机动车尾号限行:尾号0、5别开车
全球即时看!沃尔沃:自家电动车供不应求 不会跟随特斯拉降价
【全球新要闻】苏联搞砸的火箭 马斯克干成了
全球微头条丨9岁209天!美国一袖珍鼠创吉尼斯纪录:人工饲养“最长寿老鼠”
德系车传统技能?因排放作弊 奔驰或被30万车主索赔
世界关注:读Java实战(第二版)笔记07_用Optional取代null
新资讯:痞子衡嵌入式:我拿到了CSDN博客专家实体证书
全球观焦点:深入解读.NET MAUI音乐播放器项目(二):播放内核
女子戴金手镯做核磁共振:手腕被烫出一圈水泡
环球短讯!三亚旅游发现拔白发服务一小时50元 网友叹服:发量不允许
【全球聚看点】多地对体育中考项目作出调整:取消/选考中考男女生长跑 800米对健康不利
全球短讯!情人节多部爱情电影集中上映:跟邓超新电影强势对垒
每日热文:ChatGPT爆火!争议声也越来越大了
焦点速递!fusion app 常用小技巧
可怕又惊喜!87岁老人棺材内复生 亲属称席都吃了:目前一切正常
全球讯息:200M内存就能启动 Win11极限精简版升级:去除广告
【独家】19岁男孩患阿尔茨海默病 专家:这么做可以远离
全球微头条丨Pytorch环境安装
全球即时:PC销量下滑 AMD的Zen2处理器重新出山:配置没法看
《分布式技术原理与算法解析》学习笔记Day08
清华教授花20多万为村民3D打印住宅:直言房子一点不贵 方式会普及
观速讯丨雷军再次力荐小米13和Redmi K60!一小米之家上午开门就卖了7台
今亮点!土耳其专家称遇上地震是命遭主持人怒斥:网友热议说的没毛病
【天天报资讯】小伙入职1小时被HR告知招错人:补偿50元
全球热门:基于ModelViewSet写接口