摘要:
Lookat矩阵 在三维游戏引擎中,需要摄像机看向某个点,或者需要物体看向某个点,此时需要对物体的变换,以调整到我们需要的姿态。以Unity为例,Unity的坐标系是左手系,朝上的轴是y轴(up,绿色),朝前的轴是z轴(foward,蓝色),朝右的轴是x轴(right,红色)。现在我们想让fowar 阅读全文
摘要:
高斯金字塔与拉普拉斯金字塔 高斯金字塔 一个下采样的序列,例如原始尺寸是512x512,那么一个图像序列,尺寸例如,512,256,128,...,4,2.这样一些尺寸的图像序列构成了高斯金字塔。这样一个序列的存储空间最大为原图像的4/3,因为每个图像是前一个层级的1/4尺寸,那么等比数列求和就好了 阅读全文
摘要:
下采样与走样问题 下采样 如果一幅图像的尺寸过大,如何降低尺寸呢?一种朴素的想法是,丢弃一些行和列,但是这样会造成走样问题,因为我们采集的都是离散信号。 走样 在对连续信号进行采样的时候,由于欠采样,在对信号进行恢复的时候,可能出现走样的情况,可能信息被理解成高频或者低频的情况。如下图所示,如果信号 阅读全文
摘要:
NULL和nullptr 首先看看NULL的定义,在C中,直接定义为0,在C中定义为((void *)0),空指针。因为在C中需要显示的类型转换int *p = (void *) 0这样会报错,而C可以隐式转换。 #ifndef NULL #ifdef __cplusplus #define NUL 阅读全文
摘要:
C++中的析构函数 简介 析构函数(Destructors),是对象的成员函数,没有返回值也没有参数,且一个类只有一个析构函数,当对象被销毁的时候调用,被销毁通常有这么几个情况。 函数执行结束 程序执行结束 程序块包含的局部变量 delete操作 什么时候要自己写析构函数? 编译器会自动创建默认的析 阅读全文
摘要:
颜色混合(Color Blending) 颜色混合是通过混合两种颜色,来得到第三种颜色的一种方法。已有的颜色一般称为$destination$,将要放上的颜色称为$source$。一般图片除了颜色的RGB通道,还有一个alpha通道来表示透明度。我们可以利用混合来制作半透明的效果。有两种混合方式,传 阅读全文
摘要:
Z缓冲区算法(Z-Buffer) 将多边形投影到2D平面上时,还需要解决一个问题,就是遮挡问题,也就是消除隐藏面,常用的是Z-Buffer算法。 一个帧缓来村像素的颜色,一个深度缓存来存放每个像素对应物体的深度值。 总的思想是,如果当前操作的像素值的深度值大于深度缓存中对应的深度值(因为往-Z方向看 阅读全文
摘要:
C++中结构体和类的区别 在C++中,结构体和类基本一致,除了小部分不同。主要的不同是在访问的安全性上。 在类中默认的访问权限是private,而结构体是public。 当从基类/结构体中派生时,类的默认派生方式是private,而结构体是public。 实例 #include <stdio.h> 阅读全文
摘要:
Friend Class Friend class可以访问别的class中的private和protected成员,只要在这个类中声明了friend。 通常可以使部分类访问其他类中的一些私有成员,例如在链表中,链表class作为节点class的friend,可以访问其私有成员。 class Node 阅读全文
摘要:
树 术语 Root 没有父节点的节点。 Siblings 有相同父节点的节点。 Internal node 至少有一个子节点的节点。 External node 没有子节点的节点。 Ancestors of a node 父节点,父节点的父节点... Descendant of a node 子节点 阅读全文