引用折叠和完美转发

模板参数推导

模板参数有三种写法:

1
2
3
4
5
6
7
8
template <typename T>
void Foo(T) { static_assert(false); } // 直接使用T

template <typename T>
void FooWithRRef(T&) { static_assert(false); } // 使用T&

template <typename T>
void FooWithLRef(T&&) { static_assert(false); } // 使用T&&

根据《C++ Templates 2》的说法,第一种写法会decay(等同于调用std::decay),即:

EnTT源码分析【二】:Entity

本文分析了开源项目EnTT v3.12.2的原理和实现。述说了ECS中的Entity部分。

Entity

Entity的本质

EnTT中的Entity是正整数,或者更严谨一点,是enum class

EnTT源码分析【三】:sparse set

本文分析了开源项目EnTT v3.12.2的原理和实现。述说了ECS中的核心数据结构sparse set。

sparse set

结构介绍

sparse set是一个数据结构,用于极快速地对正整数进行增删改查并能够较好地利用CPU Cache。而EnTT中的Entity部分正式用正整数实现的。

EnTT源码分析【一】:什么是ECS

本文分析了开源项目EnTT v3.12.2的原理和实现。述说了ECS架构。

ECS架构

ECS的用法

ECS是一个典型的组合优于继承的架构。

关于逐渐迁移至B站的说明

因为最近开始工作了,995的那种(周末有时加班),所以基本上没什么时间写博客。我现在有时间会在B站上录一些技术视频,主要记录工作中遇到的一些技术问题和自己额外学习的一些学习内容,以及一些简单教程。

USRefl源码分析

最近在看UE4中的反射机制,学了一些反射的使用方式,但并不知道其实现方式。这两天上知乎看到了Ubp.a大神写的99行静态反射,所以拿来分析一下源码。

其知乎文章在这里

切线空间详解

本文解释了TBN矩阵的推导和在顶点着色器中对切线空间变换的推导。

3D空间中的旋转

本文描述了3D空间中的旋转,包括使用欧拉角旋转,四元数旋转,绕坐标轴轴旋转,绕旋转轴旋转以及四元数插值。