GAMES101(1-4):图形学数学基础和Transformation GAMES101-现代计算机图形学入门Lec1: Overview本课包含的几个基本的tipic: 光栅化 Rasterization 曲线/曲面Curves and Meshes 光线追踪 Ray Tracing 动画/模拟 Animation/Simulation Lec2: Review of Linear Algebra向量 $\vec{a}$,代表一个方向,因此向 2022-06-26 图形学 GAMES101
GAMES101(5-6):Rasterization和反走样 GAMES101(5-6):Rasterization和反走样Rasterization(Triangles)简单来说光栅化的目的就是将想要展现的物体给真正现实到屏幕上的过程,因为我们的物体其实都是一个个顶点数据来表示的,如何表这些蕴含几何信息的数据转化为屏幕上的像素就是光栅化所考虑的东西。比如说一条直线,究竟该用哪些像素点去逼近它,一个三角形,又用哪些像素集合表示它,这都是光栅化的过程。 采样 2022-06-26 图形学 GAMES101
C++11新特性 ariadic Templates数量不定的模板参数下面是一个数量不定的模板参数的例子,print()函数做得是一个将一堆参数输出的动作。 每次取出第一个参数输出,剩下的参数包递归下去每次输出参数的第一个。但请不要忘记写void print(){ },因为当参数空的时候,你需要一个无参的print来结束print的递归。 如果你想知道 后面那一部分参数包有几个,你可以使用sizeof...(arg 2022-05-27 C++
Lambda函数-用法/实现/广义捕获 Lambda函数-用法/实现/广义捕获Lambda函数用法1234[捕获列表] (参数) mutable noexcept/throw() -> 返回值类型{ 函数体;}; 1.[捕获列表] [ ] 方括号用于向编译器表明当前是一个 lambda 表达式,其不能被省略。在方括号内部,可以注明当前 lambda 函数的函数体中可以使用哪些“外部变量”。 所谓外部变 2022-05-07 C++
C++ 类型推导:auto和decltype 类型推导:auto和decltypeauto基本用法使用它来做自动类型推导,可以和其他操作符(&,*,const),一般来说auto 是根据变量的初始值来推导出变量类型的,比如一些容器的迭代器完整写下来就很长,使用auto就很方便 1234567int a = 5 , b = 3;auto* pointer = &b;//和*一起用cout<<*pointer<& 2022-03-11 C++
C++ shared_ptr循环引用问题/解决方法 C++ shared_ptr循环引用问题/解决方法关于shared_ptr/weak_ptr首先可以看一下这篇文章 C++的智能指针-unique_ptr,shared_ptr,weak_ptr 循环引用问题shared_ptr存在循环引用问题: 考虑下面这样一个代码 12345678910111213141516171819class Node{public: int _data; 2022-02-24 C++
C++拷贝构造函数和operator =的区别 C++拷贝构造函数和operator =的区别起因之前感觉拷贝构造函数和operator =作用很相似,也没有细察他们的区别,今天看了一些文章实验了一下: 比如我创造了一个Base的class,我同时编写了拷贝构造函数和operator=,那么对于下面这个代码有几个疑问: 12Base a;Base b = a; Base b = a; 调用拷贝构造函数 还是 operator =呢? 是两者都可 2022-02-15 C++
C++左值右值/左右值引用/std::move() C++左值右值/左右值引用/std::move()左值/右值 左值(lvalue)是放在赋值语句左边可以被赋值的值(不是变量!),左值必须在内存中有一个确定的地址。 右值(rvalue)用来放在赋值语句右边,将自己的值取出赋给别的变量,右值没有一个确定的地址。 也可以这么理解: 左值是指表达式结束后依然存在的持久化对象 右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值 2022-02-15 C++
C++的智能指针-unique_ptr,shared_ptr,weak_ptr C++的智能指针-unique_ptr,shared_ptr,weak_ptr智能指针基本介绍和特点 C++11以后出现了智能指针这个新东西,他的出现主要是为了更方便的进行资源内存管理。程序员使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理,例如new一个对象,delete一个对象。 他的底层实现方法就是通过一个class来实现,把指针封装成了一个类。这个类的构造 2022-02-15 C++