OpenGL的学习记录(一)(一些基本概念)

news2024/11/30 8:41:46

1.OpenGL是什么?

        OpenGL是一组各个GPU厂家一起遵循的约定。

2.GLFW,GLAD分别是什么?

        GLFW解决系统层面的不同,是我们与系统之间的隔离,如(创建窗口,定义上下文,处理用户输入)

        GLAD使得代码可以用于不同的OpenGL驱动(OpenGL本身只是规范/标准,各厂家的具体实现方式可能不同)

3,OpenGL 的工作模式

        也叫可编程管线(顶点数据---->顶点着色器---->形状装配----->几何着色器----->光栅化---->片段着色器---->测试与混合),GPU的渲染是一个流水线

4.OpenGL的核心

        OpenGL自身是一个巨大的状态机,这个状态机描述着该如何操作所有变量的大集合,状态可以设置,也可以进行获取。

  5 .OpenGL的对象

        通常把OpenGL上下文比做一个大的结构体,包含很多的子集,一个对象是指一些选项的集合,代表OpenGL状态的一个子集。

        例如:我们可以用一个对象来代表绘图窗口的设置,设置他的大小,设置颜色位数等等。可以把对象看成一个C风格的结构体。当前的状态只有一份,如果每次显示的是不同的效果,那么从新配置就会非常的麻烦,这时候我们就可以有一些对象来帮忙记录某些状态,以达到复用的效果。        

        使用时的大致流程为1.给对象一个编号,2.绑定对象至上下文,3.设置属性,4.将上下文的这个对象设回默认,这是的对象已经记录上了上面的内容,可以先解绑,等到需要的时候在进行使用,一旦我们重新绑定,这些选项就会立即重新生效.

下面的链接是我觉得写的非常好的博客

【图像】【OpenGL】VAO和VBO的关系_vao vbo_西西敏的博客-CSDN博客

初识OpenGL (4)链接着色器_opengl如何调用着色器_thefist11的博客-CSDN博客

QOpenGLWidget的使用https://www.baidu.com/link?url=RYlK562gMKcTF8sJuUutU3ivLByCDxCjiUhzFPRhwdJW3k_jhvRBd2nnTmNtGnNFpYHuS0L2oBx5CCAjYeffkPYVhPXk2xe0UQ8AAiLMtxq&wd=&eqid=e2cb2af70003ecb10000000264ad0e4b

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/741162.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构--树和森林的遍历

数据结构–树和森林的遍历 树的先根遍历 void PreOrder(TreeNode* R) {if (R ! NULL){visit(R);while (R还有下一个子树T)PreOrder(T);} }树和二叉树的转化后》 树的先根遍历序列与这棵树相应二叉树的先序序列相同。 \color{red}树的先根遍历序列与这棵树相应二叉树的先序序列相…

txt文本筛选—python操作

需求:若文档中某行最后一列内容为0,则删除该行,否则保留该行内容,并将筛选后的内容保存到新的文本文档中。 # 读取原始txt文件 with open(depth_values.txt, r) as file:lines file.readlines()# 过滤掉第三列内容为0的行 filter…

WIFISKY-7层流控路由器 后台任意命令执行漏洞复现

这个漏洞相当于是两个漏洞的结合,首先是弱口令漏洞 admin/admin 我们成功登录后台之后才能进行任意命令执行漏洞的操作,我们登录之后找到系统维护-系统控制台 然后我们使用命令拼接的操作来实现任意命令执行的操作 ifconfig & cat /etc/passwd

自定义seg_decoder组件并创建Nios系统(二)

3.搭建Nios Ⅱ系统 3.1添加组件 系统会自动添加一个clk的clock source组件作为时钟组件,可直接使用该组件作为系统时钟 添加Nios Ⅱ处理器,将Nios Processor组件设置框中Nios Core选择Nios Ⅱ/f(报错先不管) 添加On-chip Memory…

揭秘未来:AI、自然资源与时空大数据的完美结合!JNPF快速开发平台引领无限潜能!

前言 在当今数智时代,人工智能(AI)的应用正以前所未有的方式改变着各个领域的发展路径。尤其在融合自然资源、时空大数据的领域,AI呈现出了崭新的形式,展现着巨大的潜力与前景。 技术的发展离不开数据的支持 随着人工…

【STM32MP135】移除stm32mp135d-atk-u-boot.dtsi设备树config节点,否则会进入fastboot下载模式

文件路径:u-boot-stm32mp-v2021.10-stm32mp1-r1/arch/arm/dts/stm32mp135d-atk-u-boot.dtsi

TVS二极管原理

在管子两端的电压大于一定值时,TVS管被反向击穿,瞬间形成一个导通回路,将管子两端的大电流导出,并且将管子两段的电压钳制在一个固定电压,进而保护和它并联的电路。 挑选TVS管先看VRWM,尽量与最大工作电压接…

洛谷:P5018 对称二叉树 ← NOIP2018 普及组T4

【题目来源】https://www.luogu.com.cn/problem/P5018https://www.acwing.com/problem/content/478/【题目描述】一棵有点权的有根树如果满足以下条件,则被轩轩称为对称二叉树: 1.二叉树; 2.将这棵树所有节点的左右子树交换,新树和…

关于Python的Numpy库reshape()函数的用法

1.介绍 更改数组的形状,不改变原数组 2.语法 a np.reshape(mat, newshape, order ‘C’) a : newshape形状的新数组 mat : 原数组 newshape:(1, 2)/ 1, 2 都可以改为1行2列的数组 order:读取原数组的规则,默认为C(…

Go语言精进之路读书笔记—第三章 声明、类型、语句与控制结构(五)map

map 是啥? 无序的 key value 键值对。 创建变量有两种方式: 基本操作: 插入数据: 获取数据: 查找和数据读取: comma ok 查找法, 被称为最佳实践。 获取value 删除数据 遍历数据 想要有序的需要这样做&a…

CSS 沿着同一个方向旋转

主要解决旋转360后倒转的问题&#xff0c;沿着一个方向旋转&#xff0c;而不是倒回去重新开始。 效果 源码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>同方向旋转</title><script src"https://dp.rc1…

【STM32MP135】修复EMMC模式启动时,uboot启动识别为usb0设备问题

文件路径&#xff1a;u-boot-stm32mp-v2021.10-stm32mp1-r1/arch/arm/dts/stm32mp135d-atk.dts 文件路径&#xff1a;u-boot-stm32mp-v2021.10-stm32mp1-r1/configs/stm32mp13_defconfig

ChatGLM 实践赛之学术工具创意开发丨智谱 AI × 和鲸科技

2022 年底以来&#xff0c;LLM 大规模语言模型备受瞩目。今年 3 月中旬&#xff0c;智谱 AI 与清华大学强强联合&#xff0c;重磅发布了 ChatGLM-6B 开源模型。截止 6 月 24 日&#xff0c;该模型的下载量超过三百万人次&#xff0c;并在 Hugging Face&#xff08;HF&#xff0…

jdbc中jdbcTemplate的事务问题

jdbcTemplate的增删改都用 update 查询用queryForList 1. 2. 3.虽然事务未提及也可以查到对应的数据

优思学院|六西格玛全面入门指南

I. 引言 六西格玛的定义 六西格玛&#xff08;Six Sigma&#xff09;是一种基于数据、以客户为导向、不断改进的方法论&#xff0c;用于提高组织中过程和产品的质量。六西格玛旨在消除缺陷&#xff0c;减少过程中的变异性&#xff0c;从而提高客户体验&#xff0c;并增加组织…

pip install visdom时报错

在envs所在环境下pip install visdom报如下错误&#xff1a; 解决方法&#xff0c;换源&#xff1a; pip install visdom -i https://pypi.tuna.tsinghua.edu.cn/simple

基于Web的社区医院管理服务系统

本次设计任务是要设计一个社区医院管理服务系统&#xff0c;通过这个系统能够满足社区医院管理服务的管理及医生和用户的社区医院管理服务功能。系统的主要功能包括首页、个人中心、用户管理、医生管理、预约医生管理、就诊信息管理、诊疗方案管理、病历信息管理、健康档案管理…

Vue3 使用vue-seamless-scroll 轮播组件报错问题解决

1、npm安装组件 npm install vue3-seamless-scroll --save 全局注册 import { createApp } from vue;import App from ./App.vue;import vue3SeamlessScroll from "vue3-seamless-scroll";const app createApp(App);app.use(vue3SeamlessScroll);app.mount(#app); …

ChatGPT驱动虚拟主播(2)语音驱动图片数字人

整个流程是这样的 。你说话的 语音-->语音转为文字 -->chatgpt --> 文字转为语音-->驱动虚拟主播。 前面的流程都是非常多的参考代码。下面代码就是教你如果做到这一步。这个虚拟主播是可用wav格式音频驱动虚拟主播的。代码是一个http接口&#xff0c;上传wav文件…

traceId跟踪请求全流程日志

一个系统被拆分成N多个模块&#xff0c;这些模块负责不同的功能&#xff0c;组合成一套系统&#xff0c;最终可以提供丰富的功能。在这种分布式架构中&#xff0c;一次请求往往需要涉及到多个服务&#xff0c;如下图&#xff1a; 服务之间的调用错综复杂&#xff0c;对于维护的…