猫探长的茶水间

  • 首页

  • 归档38

  • 分类13

  • 标签30

  • 关于

[OpenGL] 第三课 画个三角形

发表于 2019-04-21 | 分类于 图形学 | 评论数:

Background

  这一节是非常短的。我们简单的扩展上一节的内容来画一个三角形。
  在这一节中我们再一次在规范化空间中安排我们的顶点坐标。能够看见的顶点一定要在盒子内部,这样视口矩阵才能将这些顶点映射到窗口可以看见的地方。当我们忽略 Z 轴时,我们看到的盒子如下图:

阅读全文 »

[OpenGL] 第二课 绘制一个点

发表于 2019-04-21 | 分类于 图形学 | 评论数:

背景

  这将是我们第一次遇到 GLEW,GLEW 是OpenGL的扩展功能库。它能帮助你解决OpenGL不断扩展的问题。一旦你初始化它之后,它在你的系统上将查询所有可用的扩展功能,自动的加载它们并且通过一个单一的头文件提供简单的接口。

  在这一节中,我们将第一次看见顶点缓冲区对象(VBOs)的使用。顾名思义,它们是被用来储存顶点数据的。加载顶点进入 GPU 最有效率的方法是 VBOs。它们是可以存储在显存中的缓冲区,使得 GPU 访问数据的速度最快。

阅读全文 »

[OpenGL] 第一课 创建一个窗口

发表于 2019-04-21 | 分类于 图形学 | 评论数:

Background

  OpenGL 标准没有指定任何用于建立和使用窗口的 API。在x系统中提供 OpenGL 的接口为 GLX。Windows 提供 WGL 而 MacOS 提供 CGL。为了建立一个能够显示图像的窗口,我们直接使用这些接口,这样就不用关心在不同操作系统中的具体实现细节。我们这里使用的库叫 ‘OpenGL utility library’ 简称 GLUT。它为窗口的管理、事件处理、IO 控制和一些其他的设备管理提供了一个简单的 API。此外,GLUT 是跨平台的,这使移植更方便。SDL 和GLFW 可代替 GLUT。

阅读全文 »

[Cpp] Cpp和Hpp中应该写些什么东西

发表于 2019-04-15 | 更新于 2019-04-21 | 分类于 编程语言基础 | 评论数:
转自去做点事情

CPP & HPP

  首先,我们可以将所有东西都放在一个.cpp文件内,编译器会将这个.cpp编译成.obj,即编译单元。一个程序可以由一个编译单元组成,也可以由多个编译单元组成。一个.cpp对应一个.obj.

  然后将所有的.obj链接起来(通过一个叫链接器的程序),组成一个.exe,即程序。如果一个.cpp要用到另一个.cpp定义的函数怎么办,只需在这个.cpp中写上它的函数声明。

  链接器将所有的obj链接起来,但是如果碰巧有相同的函数或外部变量怎么办?C++可以通过一种叫做链接属性的关键字来限定,某个函数是属于整个程序公用的,还是只在一个编译单元obj里面使用,这些关键字就是extern(外部链接)和static(内部链接)。

  让我们说说.h。其实没有.h,程序也能很好的工作,但是当你发现一个外部链接的函数或外部变量,需要许多分声明,因为只要使用到该函数的单元,就必须写一份声明在那个.cpp里面,如果要修改会很麻烦!!!.h就是为了解决这个问题而诞生的,它包含了这些公共的东西,然后所有需要使用该函数的.cpp,只需要用#include包含进去便可,以后需要修改,只是修改一份内容。

  #include并不是什么申请指令,只是将指定文件的内容,原封不动的拷贝进来。

  不是很严格的讲,*.h文件做的是类的声明,包括类成员的定义和函数的声明,而 *.cpp文件做的类成员函数的具体实现(定义)。一个 *.h文件和 *.cpp文件一般是配对的。在*.cpp文件的第一行一般也是#include "* .h"文件,其实也相当于把 *.h文件里的东西复制到*.cpp文件的开头。所以,你全部写在*.cpp文件其实也是一样的。

阅读全文 »

[算法] O(n)的排序算法 - 伪

发表于 2019-04-09 | 更新于 2019-04-10 | 分类于 算法 | 评论数:

  看上去似乎任何已知的算法都无法做到,如果谁做到了,那么所有的排序方法:QuickSort,ShellSort,HeapSort,BubbleSort等等等等,都可以扔掉了,还要这些算法干吗阿,呵呵。
  我们平常知道是排序算法都是O(n),最好的情况也就是O(nlogn),怎么会有O(n)的呢。
  不过实际上,在数字范围有限制的情况下,(必须是数字才行的吧)是有一个这样的算法的,只需要用一个数组记录每个数字出现次数就可以了。
  假定你的数字范围在0到65535范围之内,定义一个数组count[65536](这个空间是常量,和n无关,所以是O(1) ),初值全部为0。
  那么假设有下面这些数字:

1
2
3
4
5
6
7
100
200
300
119
0
6
...

阅读全文 »
12…8
DetSup Neko

DetSup Neko

38 日志
13 分类
30 标签
蜀ICP备18009374号 © 2020 DetSup Neko