- 博客(9)
- 收藏
- 关注
原创 三维旋转笔记
三维旋转 笔记,自己学习用 “定向”含义 "定向"基本上是告诉我们对象所面向的方向。但是"定向"与"方向"并不完全相同。 1.方向(Direction):可以用两个数字(也就是球面坐标的角度) 2.定向(Orientation):至少需要 个数字(即欧拉角) 3.角位移(Angular Displacement):旋转量称为角位移。在数学上,定向等同于角位移。 定向和角位移之间的这种区别类似于点和矢量之间的区别,这两个术语在数学上是等价的 ,但在概念上是不相同的。在这两种情况下,第一个术语主要用于描述单
2021-09-11 10:05:31 705
原创 C++学习笔记(三)
智能指针 new在堆上分配内存,需要delete来释放内存。智能指针是实现这一过程自动化的一种方式,当你用new的时候不需要调用delete,很多时候用智能指针甚至不需要调用new。智能指针本质上是原始指针的包装,当你创建智能指针的时候,它会调用new并分配内存,然后在某一时刻这些内存会自动释放。 unique_ptr unique_ptr是作用域指针,当超出作用域时它会被销毁然后delete。(低开销,甚至无开销) #include <iostream> #include <string
2021-07-24 11:11:13 131
原创 C++学习笔记(二)
条件与分支 当开始一个程序的时候,整个应用程序及所有模块加载到内存中。也就是说我们必须检查条件,然后跳转到内存的不同地方,然后从这里开始执行。这也就意味着if语句和分支通常有比较大的开销。为了解决这一问题分支预测技术出现。现在的CPU处理速度非常高,所以实际上分支预测出色,造成的影响也比较少。但在GPU中仍然存在性能问题。(为了解决大量的计算GPU不支持分支预测) 分支预测 当处理一个分支指令时,有可能会产生跳转,从而打断流水线指令的处理,因为处理器无法确定该指令的下一条指令,直到分支指令执行完毕。流水线越
2021-07-15 14:20:56 154
原创 C++学习笔记(一)
C++如何工作 #include <iostream> int main() { std::cout << "Hello World" << std::endl; std::cin.get(); } 先看第一行 #include <iostream> 这是一个预处理语句。在#号之后的都叫预处理语句。编译器会预先处理这些语句,也就是说它在编译之前就已经被处理了。“include”的含义就是他需要找一个文件(在这个代码中需要找到的文件就是“iostr
2021-07-12 21:28:35 179 2
原创 steamVR学习笔记
steamVR动作(Action)获取Boolean类型的动作获取Vector1类型的动作获取Pose类型振动输出 动作(Action) 0.SteamVR2.0将动作抽象为6种类型:Boolean、Single、Vector2、Vector3、Pose、Skeleton等类型; 1.[Boolean]类型的动作代表只有两种状态的动作:True或False,比如抓取(Grab)动作,只有抓取或未抓取两种状态,不存在中间状态;(在Unity中对应类为:SteamVR_Action_Boolean); 2.[S
2021-03-16 22:52:37 1970 3
原创 OpenGL从“入门”到“摔门而走”(三)
Textures 我们通过给顶点颜色来增加图形的细节。要让图形看起来更加真实就要足够多的顶点来添加更多的颜色。这样会产生额外的开销(每个模型都要很多的顶点,每个顶点要一个颜色) 所以我们就要一个图片来添加细节,这个图片就叫纹理(也可以是1D或3D) 文章目录Textures纹理坐标创建纹理对象纹理环绕方式(WRAP)纹理过滤(Filter)多级渐远纹理(Mipmaps)加载原始纹理完整过程纹理单元 纹理坐标 要想把纹理映射到图形上,我们需要指定图形的每个顶点各自对应纹理的哪个部分 纹理坐标在X和Y轴上,范围
2021-02-28 13:52:36 213
原创 OpenGL从“入门”到“摔门而走”(二)
Shader着色器GLSL数据顶点着色器片段着色器Uniform更多属性 着色器 着色器(shader)是运行在GPU上的小程序。目前我们主要使用到的着色器有顶点着色器(Vertex Shader)和片段着色器(Fragment Shader),我们使用GLSL(OpenGL Shading Language)编写着色器程序。 GLSL GLSL是一种类C语言。 先声明版本 接着是输入和输出变量(in输入,out输出) uniform和main函数 每个着色器的入口点都是main函数,在这个函数中我
2021-02-06 18:26:21 401
原创 OpenGL从“入门”到“摔门而走”(一)补充
索引缓冲对象 这是对上一篇博客的补充 上一篇讲了OpenGL中的顶点数组对象(Vertex Array Object,VAO)和顶点缓冲对象(Vertex Buffer Object,VBO)。并绘制了三角形。现在将用索引缓冲对象(Element Buffer Object,EBO)进行图形的绘制。 通过上一篇的知识,当我们要绘制一个矩形时,其实是要绘制两个三角形(其中有两个点是重复的)所以,我们的顶点数据是这样的。 float vertices[] = { // 第一个三角形 0.5f, 0.5f, 0
2021-01-29 18:46:23 164
原创 OpenGL从“入门”到“摔门而走”(一)
Hello,Triangle!欢迎观看我的OpenGL学习笔记简介本节所需要用到的东西标准化坐标顶点数组对象(VAO)与顶点缓冲对象(VBO)顶点数组对象(VAO)与顶点缓冲对象(VBO)的生成顶点缓存对象(VBO)的绑定数据的绑定顶点数组对象(VAO)的绑定着色器(Shader)编译着色器着色器程序链接顶点属性终于可以画三角形了 欢迎观看我的OpenGL学习笔记 这是我第一次写博客。作为一个小白在这里记录我的学习过程并分享一些我的学习心得。 本文不会有太多理论性的东西(理论太多对小白不是很友好QAQ) 简
2021-01-22 19:59:58 415 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人