opengl
文章平均质量分 95
ppipp1109
积累,进步
展开
-
OpenGl 之学习笔记 glMatrixMode() 函数以及视图相关知识总结
1.glMatrixMode()函数理解glMatrixMode()函数的参数,这个函数其实就是对接下来要做什么进行一下声明,也就是在要做下一步之前告诉计算机我要对“什么”进行操作了,这个“什么”在glMatrixMode的“()”里的选项(参数)有3种模式: GL_PROJECTION 投影, GL_MODELVIEW 模型视图, GL_TEXTURE 纹理.如果参数是GL_PROJEC...原创 2020-01-09 00:42:47 · 716 阅读 · 1 评论 -
OpenGl 之学习笔记 glNormal3f 函数理解和光源相关知识总结
3.glNormal3f 函数void glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz )void glNormal3fv( const GLfloat *v )但是第一个的参数就是浮点型的三个数,分别代表法向量的x、y、z。第二个的参数是一个三元素数组的首地址,这个三元素数组分别代表法向量的x、y、z。使用光源相关知识使用光源...原创 2020-01-09 00:39:43 · 12467 阅读 · 1 评论 -
OpenGl 之学习笔记 glTexCoord2f() 函数以及纹理相关知识总结
2.glTexCoord2f() 函数原型:glTexCoord2f(GLfloat s,GLfloat t);s代表x坐标,t代表y坐标;s∈[0.0,1.0],t∈[0.0,1.0];一张位图的4个坐标顶点分别为:左下角(0.0,0.0),右下角(1.0,0.0)右上角(1.0,1.0),左上角(0.0,1.0)。0.0f 是纹理的左侧。 0.5f 是纹理的中点, 1.0f 是纹理的...原创 2020-01-09 00:35:38 · 8787 阅读 · 3 评论 -
OPenGL 学习笔记之 VBO VAO EBO 概念和使用方法总结
目录一.基本概念:二. 理解缓冲对象glVertex 函数顶点数组(Vertex Array)三. VBO(Vertex Buffer Object)顶点缓冲区对象大体流程理解:Qt 中使用QOpenGLWidget 的VBO 例子四. VAO(Vertex Array Object)顶点数组对象Qt 中使用QOpenGLWidget 的VAO ...原创 2019-12-30 17:43:11 · 8768 阅读 · 3 评论 -
OPenGL 学习笔记之 VAO VBO EBO 以及SHADER 并使用其绘制三角形
译注在学习此节之前,建议将这三个单词先记下来:顶点数组对象:Vertex Array Object,VAO 顶点缓冲对象:Vertex Buffer Object,VBO 索引缓冲对象:Element Buffer Object,EBO或Index Buffer Object,IBO当指代这三个东西的时候,可能使用的是全称,也可能用的是英文缩写,翻译的时候和原文保持的一致。由于没有...翻译 2019-12-30 16:06:30 · 1278 阅读 · 2 评论 -
OPenGL 学习笔记之 Assimp 知识
到目前为止的所有场景中,我们一直都在滥用我们的箱子朋友,但时间久了甚至是我们最好的朋友也会感到无聊。在日常的图形程序中,通常都会使用非常复杂且好玩的模型,它们比静态的箱子要好看多了。然而,和箱子对象不同,我们不太能够对像是房子、汽车或者人形角色这样的复杂形状手工定义所有的顶点、法线和纹理坐标。我们想要的是将这些模型(Model)导入(Import)到程序当中。模型通常都由3D艺术家在Blender...翻译 2019-12-30 15:51:20 · 1001 阅读 · 0 评论 -
OPenGL 学习笔记之 Model 模型知识
现在是时候接触Assimp并创建实际的加载和转换代码了。这个教程的目标是创建另一个类来完整地表示一个模型,或者说是包含多个网格,甚至是多个物体的模型。一个包含木制阳台、塔楼、甚至游泳池的房子可能仍会被加载为一个模型。我们会使用Assimp来加载模型,并将它转换(Translate)至多个在上一节中创建的Mesh对象。事不宜迟,我会先把Model类的结构给你:class Model {...翻译 2019-12-30 15:46:22 · 1516 阅读 · 0 评论 -
OPenGL 学习笔记之 Mesh 网格知识
通过使用Assimp,我们可以加载不同的模型到程序中,但是载入后它们都被储存为Assimp的数据结构。我们最终仍要将这些数据转换为OpenGL能够理解的格式,这样才能渲染这个物体。我们从上一节中学到,网格(Mesh)代表的是单个的可绘制实体,我们现在先来定义一个我们自己的网格类。首先我们来回顾一下我们目前学到的知识,想想一个网格最少需要什么数据。一个网格应该至少需要一系列的顶点,每个顶点包含一...翻译 2019-12-30 15:28:54 · 3489 阅读 · 0 评论 -
Qt OPenGL 入门教程之六 基于QOpenGLWidget 3D立方体纹理贴图
纹理贴图是 opengl 极为重要的一个知识,相关知识点在此暂时不做介绍,这里只给出一个可运行的示例,我对demo进行了一定的改动,其中在构造函数定义了一个PROGRAM_2D的宏,定义的时候为一个2个面的纹理贴图,注释掉该宏则会实现一个3d的贴图。同时给我们的例子添加键盘和鼠标动作,详细可以自行运行体验。相比于前面几节,本节我们添加resources资源项,并添加图片。具体代码如...原创 2019-12-28 00:17:49 · 2993 阅读 · 1 评论 -
Qt OPenGL 入门教程之五 基于QOpenGLWidget 实现3D效果
上一节为白色的正方形通过顶点绘制了颜色,这一小节修改顶点数组,实现3D效果//myopenglwidget.h#ifndef MYOPENGLWIDGET_H#define MYOPENGLWIDGET_H#include <QOpenGLWidget>#include <QOpenGLFunctions>#include <QOpenGLBuffe...原创 2019-12-28 00:04:20 · 5450 阅读 · 2 评论 -
Qt OPenGL 入门教程之四 基于QOpenGLWidget 顶点着色
前面绘制的图片还是纯白色的,并且看上去还是2D的正方形,这一节将为图形每个顶点着色,然后添加其他的面来形成3D效果。//myopenglwidget.h#ifndef MYOPENGLWIDGET_H#define MYOPENGLWIDGET_H#include <QOpenGLWidget>#include <QOpenGLFunctions>#inc...原创 2019-12-27 23:58:57 · 1867 阅读 · 6 评论 -
Qt OPenGL 入门教程之三 基于QOpenGLWidget 使用缓存绘制多边形
上一教程我们应用glVertexAttribPointer绘制多边形,这一节,我们通过使用缓存基础知识:和上一节的区别,//myopenglwidget.h#ifndef MYOPENGLWIDGET_H#define MYOPENGLWIDGET_H#include <QOpenGLWidget>#include <QOpenGLFunctions>...原创 2019-12-27 23:50:21 · 2616 阅读 · 4 评论 -
Qt OPenGL 入门教程之二 基于QOpenGLWidget 绘制图形(2d正方形)
对比教程一 我们添加了一个顶点坐标,并绘制//myopenglwidget.h#ifndef MYOPENGLWIDGET_H#define MYOPENGLWIDGET_H#include <QOpenGLWidget>#include <QOpenGLFunctions>class QOpenGLShaderProgram;class M...原创 2019-12-27 23:38:09 · 5056 阅读 · 0 评论 -
Qt OPenGL 入门教程之一 基于QOpenGLWidget 绘点
前言:OpenGl 是一个跨平台的用来渲染3D图形的标注API,Qt 对OpenGL提供了强大的支持。Qt4时代的Qt OpenGl 模块在Qt5中已经不再建议使用,OpenGL相关的类被移到了Qt GUI模块。Qt Widgets 模块中的QOpenGLWidget类提供了一个可以渲染OpenGL图形的部件,通过该部件可以轻松将OpenGL图形整合到Qt应用程序中。本入门系列,仅涉及在Qt ...原创 2019-12-27 23:32:07 · 6863 阅读 · 5 评论 -
Qt OPenGL- 从win到qt QGLwidget 之初见解
虽然Qt不以效率著称,但是事实上有足够的优化,最最典型的就是默认的图形双缓冲,按照Windows下的编程惯例是需要手动开启,并通过额外的接口调用才能使用的,这一点在以前简单图形编程学习时比较过Qt,Win32 GDI时感受特别深刻,在没有额外处理的时候,Win32动画程序那个闪阿,而Qt程序非常稳定。事实上,我想,Qt的其他问题比效率严重多了,比如个人感觉Qt程序在Windows下刷新的感知明显没...转载 2019-12-27 17:52:00 · 1545 阅读 · 0 评论 -
OpenGl 之学习笔记
1.glMatrixMode()函数理解glMatrixMode()函数的参数,这个函数其实就是对接下来要做什么进行一下声明,也就是在要做下一步之前告诉计算机我要对“什么”进行操作了,这个“什么”在glMatrixMode的“()”里的选项(参数)有3种模式: GL_PROJECTION 投影, GL_MODELVIEW 模型视图, GL_TEXTURE 纹理.如果参数是GL_PROJEC...原创 2019-12-26 10:20:21 · 1158 阅读 · 1 评论 -
Qt 5 QOpenGLWidget 和 QGLQidget 总结
1. QOPenGLWidget 类1.1 概述QOpenGLWidget类是用于渲染OpenGL图形的小部件。QOpenGLWidget提供了显示集成在Qt应用程序中的OpenGL图形的功能。使用起来非常简单:将你的类继承于QOpenGLWidget,然后可以像使用任何QWidget一样使用这个子类。 并且,您可以选择使用QPainter或者标准OpenGL来进行图形渲染。#in...原创 2019-11-27 16:25:17 · 3059 阅读 · 0 评论 -
opengl库中gl glu glut glaux的区别
GL GLU GLUT的关系OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库。gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库。gl中包含了最基本的3D函数,而glu似乎对gl的辅助,如果算数好,不用glu的情况下,也是可以做出同样的效果。glut是基本的窗口界面,如果不喜欢用glut可以用MFC和Win32窗口等代替,但是glut是跨...原创 2019-10-24 17:19:22 · 1590 阅读 · 1 评论