BugMaker

Create bugs to solve problems

十、OpenGL坐标系统 & 空间转换 & 摄像机

1、坐标系统 右手坐标系:伸开右手,大拇指指向X轴正方向,食指指向Y轴正方向,其他三个手指指向Z轴正方向 左手坐标系:伸开左手,大拇指指向X轴正方向,食指指向Y轴正方向,其他三个手指指向Z轴正方向 两者的区别主要是两者Z轴的方向是相反的,openGL中使用的是右手坐标系 每个顶点的x,y,z坐标都应该在-1.0到1.0之间,超出这个坐标范围的顶点都将不可见。我们通常会自己设......

九、OpenGL基础数学知识

1、向量 1.1 向量概念 向量最基本的定义就是一个方向,每个向量在2D图像中都用一个箭头(x, y)表示。我们在2D图片中展示这些向量,因为这样子会更直观一点。你可以把这些2D向量当做z坐标为0的3D向量。由于向量表示的是方向,起始于何处并不会改变它的值。下图我们可以看到向量v¯和w¯是相等的,尽管他们的起始点不同: 如果用公式表示: 如果在三维空间中,就是(x,y,z)表示,......

八、Qt+OpenGL 的一些问题记录

1. 开发背景 大多数人学习OpenGL估计都是从LearnOpenGL这个网站开始的吧,这个教程使用的是VS Studio + glfw + glad的开发方式。 好吧,我之前也是这么做的,但是OpenGL本身是C风格的API, 如果用面向对象的思想其写,稍微有一些麻烦,而且在调试参数的时候不太方便。 后来我在Review LearnOpenGL的时候就想换一种开发方式学习: 方案一: I......

七、OpenGL常用开发库

开发前提 之前在LearnOpenGL上学习是使用Visual Studio2022开发的,现在需要整理一套开发工具类和基础框架,所以打算换用Clion+Cmake的方式,以下所有编译链接都是基于Cmake, 环境是CLion + MinGW 基础工具库 首先在Clion中创建一个基础的C++项目OpenGL-Tools,在其根目录下新建文件夹: include 用来存放三方库的头文件 l......

五、Clion配置Qt+Cmake开发环境

1. Qt安装 1.1 Qt在线安装器 Qt从5.15开始不再提供本地安装包,只能在线下载 官方资源:https://download.qt.io/ 官方在线下载器:https://download.qt.io/archive/qt/ 1.2 国内镜像源 中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/ 清华大学:https://mirror......

六、VisualStudio+Cmake构建Qt项目

VisualStudio创建QT项目 这个没啥讲的,配置好Qt项目之后,创建的时候选择CMAKE方式就行,一般直接运行就可以跑了,如果出错看下是否配置正确。 Cmake管理Qt项目 CMake是一个跨平台的自动化构建系统,它使用名为CMakeLists.txt的文本文件来描述项目的构建过程。这个文件可以通过编写简单的指令来创建编译过程,并且可以在不同的平台上使用相同的CMakeLists.t......

四、理解OpenGL渲染管线

理解渲染管线 之前我们简单提到了固定渲染管线和可编程渲染管线,他们有共同特点:渲染管线,那什么是渲染管线? Contex为我们提供OpenGL的运行环境,而具体的操作则是在OpenGL的渲染管线中进行的。这里的渲染管线是一次完整的图形图像渲染过程,OpenGL1.0对应的渲染管线是固定渲染管线。意味着开发者只能做一些简单操作,后面OpenGL2.0之后渲染管线升级为可编程渲染管线。其中可编程......

三、理解OpenGL是一个状态机

理解OpenGL是一个状态机 什么是状态机,简单的可以理解为: 它有记忆的能力,能够记住自己当前的状态。 它可以接收输入,根据输入的内容和自己的状态,修改自己的状态,并且可以得到输出。 当它进入某个特殊的状态(停机状态)的时候,它不再接收输入,停止工作。 我们举个以电脑操作为例: 电脑的存储器(内存、硬盘等等),可以记住电脑自己当前的状态(当前安装在电脑中的软件、保存在电脑中的数据,其......

二、如何理解OpenGL

OpenGL是什么 OpenGL是一个图像API,是一套接口,并不是一个独立的平台 硬件层面和驱动层面需要支持OpenGL,才能使用OpenGL API,目前大部分图形设备都支持OpenGL,所以其应用层面才非常广 OpenGL的Open指的是接口是开放的,而具体实现的库一般都是不公开的。 显卡驱动和OpenGL的关系:OpenGL每隔一段时间发布新的API,显卡厂商需要在驱动中支持其......

一、初识计算机图形学

1、什么是计算机图形学? 什么是计算机图形学?计算机图形学(Computer Graphics,简称CG)的内容比较丰富,与很多学科都有交叉,因此笔者认为是无法严格定义的。 在“Wiki百科”和“百度百科”上,对“计算机图形学”的解释为:计算机图形学是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利......