随笔分类 -  qt

摘要:目录 一. 基本概念: 二. 理解缓冲对象 glVertex 函数 顶点数组(Vertex Array) 三. VBO(Vertex Buffer Object)顶点缓冲区对象 大体流程理解: Qt 中使用QOpenGLWidget 的VBO 例子 四. VAO(Vertex Array Objec 阅读全文
posted @ 2023-03-13 10:41 imxiangzi 阅读(1350) 评论(0) 推荐(0)
摘要:这俩个O,前面搞了这么多链接,已经迷糊了,捋一捋吧。 事物的发展都是一个过程,所以如果能按着这个技术发展的过程来学习,应该就能捋顺了。 简单的说,如果能亲身经历一遍这个发展过程,重新”发明“出VAO+VBO,自然就明白啥是VAO,VBO了。 过程1——立即渲染模式 这里不从网上找概念,因为我是小白, 阅读全文
posted @ 2023-03-12 22:31 imxiangzi 阅读(189) 评论(0) 推荐(0)
摘要:目录一、VBO的作用二、VAO的作用三、一个VAO和多个VBO注: VAO和VBO都是用来存储顶点信息的,并把这些信息送入顶点着色器。至于什么是顶点和顶点着色器,这里就不多说了,不了解的读者可自行CSDN。 VBO的B为Buffer之意,用来存储顶点数据;VAO的A为Array,但我认为理解为 At 阅读全文
posted @ 2023-03-12 22:30 imxiangzi 阅读(176) 评论(0) 推荐(0)
摘要:GLSL(OpenGL着色语言OpenGL Shading Language)语法跟C语言很类似,在可编程管线中我们必须要纯手写顶点和片源着色器,这里就要求必须使用GLSL,自行编译,链接,使用,本片文章介绍了GLSL基础语法。 GLSL中提供了许多内建的函数,来方便我们的使用。可以在官方手册中查找 阅读全文
posted @ 2023-03-12 08:46 imxiangzi 阅读(376) 评论(0) 推荐(0)
摘要:前言 期待您移步上篇:OpenGL笔记十三:GLSL加载纹理颠倒六种方案 概述 GLSL 全称 OpenGL Shading Language,是用来在 OpenGL 中着色编程的语言,即开发人员写的自定义程序代码。是执行在 GPU上的,代替了固定的渲染管线的一部分,使渲染管线中不同层次具有可编程性 阅读全文
posted @ 2023-03-12 08:46 imxiangzi 阅读(315) 评论(0) 推荐(0)
摘要:我的 OpenGL 专题学习目录,希望和大家一起学习交流进步! OpenGL学习(一)-- 术语了解 OpenGL学习(二)-- Xcode 搭建 OpenGL 环境 OpenGL学习(三)-- OpenGL 基础渲染 OpenGL学习(四)-- 正面&背面剔除和深度测试 OpenGL学习(五)-- 阅读全文
posted @ 2023-03-12 08:45 imxiangzi 阅读(1427) 评论(0) 推荐(0)
摘要:这一小节并不会向你展示非常先进非常酷的新特性,也不会对场景的视觉质量有显著的提高。但是,这一节会或多或少涉及GLSL的一些有趣的地方以及一些很棒的技巧,它们可能在今后会帮助到你。简单来说,它们就是在组合使用OpenGL和GLSL创建程序时的一些最好要知道的东西,和一些会让你生活更加轻松的特性。 我们 阅读全文
posted @ 2023-03-12 08:44 imxiangzi 阅读(105) 评论(0) 推荐(0)
摘要:目录 GLSL简介 GLSL的内建变量 顶点着色器变量 gl_PointSize gl_VertexID 片段着色器变量 gl_FragCoord gl_FragDepth 参考网站:LearnOpenGL 参考书籍:OpenGL编程指南第九版 GLSL简介OpenGL着色语言(OpenGL Sha 阅读全文
posted @ 2023-03-12 08:43 imxiangzi 阅读(468) 评论(0) 推荐(0)
摘要:前言# 经过之前一段时间的学习(渲染管线简介)我们已经知道了着色器(Shader)是运行在GPU上的程序,这些小程序为图形渲染管线的某个特定部分而运行,着色器只是一种把输入转化为输出的程序,着色器也是一种非常独立的程序,因为它们之间不能相互通信,它们之间唯一的沟通只有通过输入和输出 之前我们简要地触 阅读全文
posted @ 2023-03-12 08:42 imxiangzi 阅读(503) 评论(0) 推荐(0)
摘要:GLSL的Hello World 这一节中包含一个最基本的shader,它提供如下功能:顶点变换然后使用单一的颜色渲染图元。 顶点shader 前面已经说过,顶点shader负责完成顶点变换。这里将按照固定功能的方程完成顶点变换。 固定功能流水线中一个顶点通过模型视图矩阵以及投影矩阵进行变换,使用如 阅读全文
posted @ 2023-03-11 22:41 imxiangzi 阅读(96) 评论(0) 推荐(0)
摘要:WebGL着色器GLSL矩阵mat本文是WebGL教程(电子书)的2.5节内容 着色器语言中通过关键字mat2、mat3、mat4分别声明一个2x2矩阵、3x3矩阵、4x4矩阵,通过内置函数mat2()、mat3()、mat4()分别创建一个2x2矩阵、3x3矩阵、4x4矩阵。 关键字 数据类型ma 阅读全文
posted @ 2023-03-11 22:40 imxiangzi 阅读(311) 评论(0) 推荐(0)
摘要:1、变量类型 基础类型:bool,int,uint,float,double 向量类型:vecN,bvecN,ivecN,uvecN,dvecN N表示向量维数(N=1,2,3,4)。 含前缀b为bool向量,i为int向量,u为uint向量,d为double向量,不含前缀为float向量。 可以通 阅读全文
posted @ 2023-03-11 22:35 imxiangzi 阅读(256) 评论(0) 推荐(0)
摘要:在上一篇文章中我们初步了解了 GLSL ES 的基本语法,那么本篇文章就和大家一起学习 GLSL ES 的数据类型。 Let’s go!!! 上一篇:《Shader 入门:GLSL ES(简介和基本语法)》 在本系列文章中主要针对 GLSL ES 3.0 进行讲解 正文 数据类型 标量(Scalar 阅读全文
posted @ 2023-03-11 11:12 imxiangzi 阅读(252) 评论(0) 推荐(0)
摘要:基本类型: 类型说明 void 空类型,即不返回任何值 bool 布尔类型 true,false int 带符号的整数 signed integer float 带符号的浮点数 floating scalar vec2, vec3, vec4 n维浮点数向量 n-component floating 阅读全文
posted @ 2023-03-10 23:21 imxiangzi 阅读(239) 评论(0) 推荐(0)
摘要:从零开始学习openGL与GLSL(没有计算机图像学基础),开始确实挺费劲,网上的资料虽然多,但不系统,例子也不全,openGL还好(这里指的是v2.0之前的版本,使用glBegin(), glEnd()方式绘制),完整的例子比较多,而GLSL的例子相对少不少,中间走了不少弯路。下面说一下个人的一些 阅读全文
posted @ 2023-03-10 17:47 imxiangzi 阅读(487) 评论(0) 推荐(0)
摘要:权威官方文档:https://www.opengl.org/documentation/glsl/ 权威民间金典入门教程:http://blog.csdn.net/racehorse 一个详细完整的GLSL代码:http://www.ituring.com.cn/article/851 GLSL简介 阅读全文
posted @ 2023-03-10 17:46 imxiangzi 阅读(166) 评论(0) 推荐(0)
摘要:着色器语言和C语言一样,通过一个表示特定数据类型的关键词声明一个变量,比如int num;通过int关键字声明一个整数型变量num,不过着色器语言还提供了三个关键字attribute、uniform和varying用来声明特定用途的变量。 attribute和uniform关键字的目的主要是为了ja 阅读全文
posted @ 2023-03-10 17:02 imxiangzi 阅读(387) 评论(0) 推荐(0)
摘要:一、前言 2022年圣诞节到来啦,很高兴这次我们又能一起度过~ 这次给大家带来一个简单漂亮圣诞树灯。 当然了,本篇文章主要是讲解一下如何在 Qml 中使用 GLSL 来实现自己的特效。 至于代码嘛,我比较喜欢在 Shadertoy 上寻找,那里有很多超级炫酷的着色器实现的特效,并且可以很轻松的集成到 阅读全文
posted @ 2023-03-10 14:50 imxiangzi 阅读(181) 评论(0) 推荐(0)
摘要:上节在绘制三角形的时候,简单讲解了一些着色器,GLSL 的相关概念,可能看的云里雾里的。不要担心,在本节中,我将详细讲解着色语言 GL Shader Language(GLSL)的一些基本的概念。 PS:无特殊说明,文中的 GLSL 均指 OpenGL ES 2.0 的着色语言。 概览 OpenGL 阅读全文
posted @ 2023-03-10 13:45 imxiangzi 阅读(1276) 评论(0) 推荐(0)
摘要:矩阵:矩阵的初始化: 可以用向量初始化,或单个值指定,但是OGL是列主序矩阵,所以先填充的是第一 列。mat3 m =mat3 (1.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 1.0);vec3 colum1 = (1.0, 0.0, 0.0);vec3 colum 阅读全文
posted @ 2023-03-10 13:39 imxiangzi 阅读(100) 评论(0) 推荐(0)