OpenGL自学:你好,三角形

Qt中的OpenGL (2)[你好,三角形] 本文是学习OpenGL的笔记,主要参考JoeyDeVries的LearnOpenGL教程,并将教程中的代码基于Qt进行实现。 阅读详情

这次学习,最重要的是学习了一些计算机画图的基本流程和基本概念。

一些专业术语:

三个基本概念
三者之间的关系
绘图的流程

参考连接

很好的入门教材
https://learnopengl-cn.github.io/01%20Getting%20started/04%20Hello%20Triangle/#_12

OpenGL绘制三角形 可编程渲染管线 在现代OpenGL中,我们必须定义至少一个顶点着色器和一个片段着色器(因为GPU中没有默认的顶点/片段着色器)。出于这个原因,刚开始学习现代OpenGL的时候可能会非常困难,因为在你能够渲染自己的第一个三角形之前已经需要了解一大堆知识了。 #include <glad/glad.h> #include <GLFW/glfw3.h> #include <iostream> //当用户改变窗口的大小的时候,视口也应该被调整。 //我们可以对窗口注册一个回调 阅读详情

相关推荐

OpenGL三角形旋转平移变换

题目:已知某三角形的三顶点坐标{50.0,50.0},{150.0,50.0},{100.0,150.0}。 要求:(1)创建一个长宽分别为600、600的窗口,窗口的左上角位于屏幕坐标(100,100)处。 (2)绘制一个由上述顶点所描绘的三角形,使得三角形位于窗口的中心;对三角形进行下列的几何变换:首先使三角形沿着其中心的x轴,y轴方向缩小到原来的25%;然后绕中心旋转-90度;最后沿着x轴平移70个单位,绘制出变换后的结果。 #include <gl/glut.h> #includ

qq_45108890的博客 2411

Cmake编译《OpenGL超级宝典》第七版GitHub源码及常见错误解决

LNK4272: 库计算机类型“x86”与目标计算机类型“x64”冲突的解决方法;LNK201:无法解析的外部符号 __imp_wglGetProcAddress,函数 get_proc 中引用了该符号的解决方法;无法启动程序 glfw-3.3.9(build\Win32\Debug\ALL BUILD"), 拒绝访问。

m0_64025974的博客 2318

使用Opengl绘制三角形

OpenGL绘制三角形三角形的平移和旋转 三角形的平移和旋转 对三角形的三个坐标矩阵化,之后乘相应操作的矩阵得到平 移/旋转后的三角形矩阵,并用Opengl函数库进行绘制。 注意:并未使用Opengl中自带的平移与旋转函数。而是根据原理理解后写出的具体操作。 // An highlighted block // sanJiaoxing.cpp: 定义控制台应用程序的入口点。 // #inclu...

沧海一瞬 1581

OpenGL实用开源库 汇总

https://blog.youkuaiyun.com/huawenguang/article/details/1393904有了网络的最大好处就是可以资源共享。网络是最大的知识库,也是最好的老师,正所谓“没有你想不到的,只有你找不到的”。以下是我收集的以游戏编程,OpenGL 3D编程相关的免费扩展库资料。不断更新中,如果你有好的建义,也请把函数库名及大概功能写上,本人负责收集整理。免费共享SDL在3D的世...

jeffasd的专栏 8158

C++.OpenGL (2/64)你好,三角形(Hello Triangle)

你好, 三角形 (Hello Triangle) 绘制流程概览 1. 定义顶点数据 2. 创建顶点缓冲对象(VBO) 3. 创建顶点数组对象(VAO) 4. 编写着色器(GLSL) 5. 编译着色器 6. 创建着色器程序 7. 渲染三角形 使用元索缓冲对象(EBO) 常见问题解决

Rachelhi的博客 1133

OpenGL_Actions:使用GitHub Actions编译CC ++源代码以生成OpenGL输出-git source code

OpenGL_Actions 使用GitHub Actions编译C / C ++源代码以生成OpenGL输出。 如何使用: 在action-a /文件夹中添加一个.cpp / .c源文件。 在Dockerfile和脚本文件中添加文件名,以替换默认的src.cpp文件 推送到master分支以执行操作 如何贡献 这个项目是开源的,欢迎各种形式的贡献。 请遵循以下为该存储库做出贡献。 执照 该项目是许可的。 由@NishkarshRaj创建

【OpenGL】五、Visual Studio 2019 配置 GitHub ( 提交代码 )

一、源代码修改及标识、 二、向 GitHub 提交代码、 三、查看提交结果

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1088

AD9026芯片开发实战:从Example Code到API调用的关键步骤解析

本文详细解析了AD9026芯片开发的核心流程,重点阐述了如何从官方提供的Example Code入手,逐步理解硬件平台发现、HAL层初始化、配置加载、芯片复位、固件启动、JESD链路建立等关键API调用序列。通过剖析示例工程的结构与核心文件,为开发者在自定义硬件平台上移植和调试AD9026驱动提供了清晰的实战指南。

java5的博客 787

golang,OpenGL,计算机图形学(一)

golang,OpenGL,计算机图形学

猛犸象 1826

地震数据可视化必备:5分钟读懂SEGY道头字段全解析(含坐标定位指南)

本文深入解析了SEGY文件格式中道头坐标字段的提取与可视化方法。针对地震数据处理中的常见痛点,详细介绍了sx/sy、gx/gy等关键坐标字段的二进制解析、比例因子应用、单位转换及常见问题解决方案,并提供了实用的Python代码示例,帮助开发者实现从SEGY文件到三维空间可视化的完整流程。

echo99的专栏 1009

极路由 极1s J1S hc5661 刷padavan固件

极路由1S刷机指南 准备工作: 下载Breed不死固件 通过WinSCP上传或直接wget获取 执行mtd命令写入Breed 关键步骤: 进入Breed控制台(按住Reset键开机) 备份原厂固件和密钥 下载Padavan固件(RT-N14U-GPIO-12-xiaodu-ji1S-128M.trx) 刷机过程: 在Breed控制台更新固件 等待自动重启完成 初始设置: 管理地址:192.168.123.1 默认账号:admin/admin 无线名称:PCDN 无线密码:1234567890 注意事项:切勿

SimonLiu的博客 1302

OpenGL的Github项目复现: Plotter3D(1)

GLAD 是一个用于加载 OpenGL 函数指针的库(OpenGL loader), 其具体作用包括: 第一,OpenGL 的函数是在运行时动态加载的(因为不同平台和驱动支持的版本不同)。第二,GLAD 负责查询系统支持的 OpenGL 版本和功能,并将函数指针映射到程序中。GLAD是“OpenGL 加载器”,帮助你访问和使用OpenGL的函数。GLM 是一个C++数学库,专门为OpenGL设计,符合GLSL(OpenGL Shading Language)语法和风格。(实际操作中有的安装的是更新的版本)

weixin_43638873的博客 221

【实战案例】IBM V3500存储控制器故障诊断与更换全流程解析

本文详细解析了IBM Storwize V3500存储控制器发生故障后的完整处理流程。通过还原真实故障现场,介绍了如何利用服务助手精准定位缓存模块损坏的根源,并逐步指导完成控制器备件准备、核心部件移植更换、系统上线同步及全面功能验证的全过程,为存储运维人员提供了一份实用的实战指南。

weixin_29269441的博客 546

Learn OpenGL with Qt——你好,三角形

在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。 3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphics Pipeline,大多译为管线,实际上指的是一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程)管理的。 笔者注:代码里也有管线?图形渲...

ItaLink 4969

SE-0526激光避障雷达扫描传感器输入输出连线方法及PLC联机实例说明

SE-0526激光避障雷达扫描传感器广泛应用于原材料运输与处理、移动装配、托盘或货架运输、产成品自动运输、生产线自动对接,餐厅自助送餐等AGV小车、服务机器人、仓储机器人、无人叉车导航、避障、定位等。 本文重点介绍SE-0526激光避障雷达扫描传感器输入输出连线方法及PLC联机实例说明。

华翔天诚科技 2692

BUCK降压电路设计实战:从理论到PCB的完整指南

本文详细介绍了BUCK降压电路的设计实战,从基础原理到PCB布局的完整指南。通过关键部件选型、PCB布局黄金法则和调试技巧,帮助工程师高效设计稳定可靠的开关电源。特别针对电感、MOSFET和电容选型提供实用公式和避坑指南,并分享高温环境下的工程经验与测试方法。

weixin_33744141的博客 449

Learn OpenGL In Qt之你好,三角形

在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphics Pipeline,大多译为管线,实际上指的是一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程)管理的。这里我们会简单地讨论一下图形渲染管线,以及如何利用它创建一些漂亮的像素。

记录点滴,终成江河! 1620

基于Cesium移动的天空云

天空中的云朵也算是一种天气气候的效果,它能更加逼真的反映当前的天气状况,可以是白云朵朵,也可以是乌云密布,结合其他天气效果,可以组合形成较为真实的三维可视化场景。

星云数海的博客,一个专注GIS十多年的GISer人。 446

Qt实现OpenGL的经典教程②——你好,三角形

上一篇文章中,我们继承了QOpenGLFunctions来实现gl.h中的窗口,但是在编写新一章内容时,我发现继承QOpenGLFunctions所提供的函数标准是OpenGL2.0,这导致一些函数无法使用,比如glBindVertexArray()等,而LearnOpenGL所使用的标准是3.3。这里为了保持统一,对自定义的myOpenGLWidget做出如下修改,继承QOpenGLFunctions_3_3_Core而非QOpenGLFunctions。

qq_45233572的博客 2133

【即插即用模块】Mamba篇 | CVPR 2025 | MaIR:新型Mamba扫描方式+通道混洗注意力,全任务涨点!

MaIR是一种新型图像恢复模型,通过嵌套S形扫描策略(NSS)和序列混洗注意力(SSA)改进传统Mamba方法。NSS采用条纹区域划分和S形扫描路径,既保留图像局部性又维持空间连续性;SSA通过通道洗牌和门控机制增强特征聚合。该模块创新性地融合多路径选择性扫描、深度卷积和注意力机制,在保持O(N)计算复杂度的同时,显著提升超分辨率和去噪等任务的性能表现(PSNR提升0.2-0.5dB)。代码实现包含特征洗牌、组卷积等关键操作,适用于高分辨率视觉任务,可作为即插即用组件替代传统自注意力模块。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1162

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

OpenGL从入门到精通--你好三角形

三角形 绘图中需要牢记下面这几个单词 顶点数组对象:Vertex Array Object, VAO 顶点缓冲对象:Vertex Buffer Object, VBO 索引缓冲区:Element Buffer Object, EBO或Index Buffer Object, IBO 在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphi

andrewbytecoder 753

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Learn OpenGL 02 你好,三角形

所以,即使在片段着色器中计算出来了一个像素输出的颜色,在渲染多个三角形的时候最后的像素颜色也可能完全不同。几何着色器的输出会被传入光栅化阶段(Rasterization Stage),这里它会把图元映射为最终屏幕上相应的像素,生成供片段着色器(Fragment Shader)使用的片段(Fragment)。图元装配(Primitive Assembly)阶段将顶点着色器输出的所有顶点作为输入(如果是GL_POINTS,那么就是一个顶点),并所有的点装配成指定图元的形状;图形渲染管线的每个阶段的抽象展示。

Mr_Dongzheng的博客 975

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

QT使用openGL绘制一个三角形

对于opengl的学习来说,绘制一个三角形是学习一种计算机语言时的一个hello world级的入门程序,个人觉得相比主流语言的helloworld,openGL的入门确实是有一些劝退,虽然说有不错的教程,但简明与全面不可兼得,很容易面对教程中一大堆概念和术语而摸不到头脑,本文试图用“相对”简单和直观的方式让人成功的绘制出第一个三角形。对于使用QT的同学,可以直接从文末的链接下载完整代码,自己修改其中的参数观察变化,这样理解起来更快。希望能让使用QT并且想学习openGL的人踏出第一步,而不是被画一个三角.

TinyHou的博客 3997

【OpenGL】十三、OpenGL 绘制三角形 ( 绘制单个三角形 | 三角形绘制顺序 | 绘制多个三角形 )

一、绘制三角形、 二、三角形绘制顺序、 1、绘制正面、 2、三个点逆时针方向排列、 3、三个点顺时针方向排列、 4、设置点的正面方向、 三、绘制多个三角形、 四、相关资源、

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 6851

【OpenGL】绘制三角形

实验步骤 步骤: 1-初始化: 初始化GLFW,创建窗口,初始化GLAD,创建视口 2-数据处理: 给定顶点数据,生成并绑定VAO&VBO(准备再GPU中进行处理),设置顶点属性指针(本质上就是告诉OpenGL如何处理数据)。 3-着色器: 给出顶点和片段着色器,然后链接为着色器程序,渲染时使用着色器程序。 4-渲染: 清空缓冲,使用着色器程序,绘制三角形,交换缓冲区并检查触发事件(比如键...

Do Better 1151

OpenGL ES 3.0 第二章总结:你好,三角形(Hello Triangle)

OpenGL 是一个状态机型的图形 API。第二章《你好,三角形》是整个图形开发的起点,它帮助我们掌握从「准备绘制数据」到「渲染出第一个像素」的完整流程。绘制一个基本三角形。但在这个过程中,你会接触到一系列“图形学世界”的关键角色,包括顶点着色器、片段着色器、缓冲对象、绘图指令等。“写好程序 → 加载数据 → 安排绑定 → 开始绘图”[ 顶点数组 ] -> [ VBO ] -> [ VAO ] -> [ VertexShader ]v光栅化生成像素vv显示屏幕。

柒月 916
上一篇: opencv学习:匹配模板函数matchTemplate
下一篇: cpp中sizeof的总结
dlvector
博客等级 码龄10年 85粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值