摘要: 存储器的结构 最近在阅读GPU相关文献的时候看到cache相关的术语,上一次看到这些还是在学校里的时候,有些记不清了,翻了下CSAPP复习了下cache line,cache set相关的内容。 Cache的组织 cache分为很多个set,每个set里面有很多个cache line,每个Cache 阅读全文
posted @ 2020-03-03 11:41 马子哥 阅读(155) 评论(0) 推荐(0) 编辑
摘要: FFT与游戏开发(二) 首先补充下傅里叶变换的原理——把函数分解到一系列正交基上,这些正交基复合下面的条件: $$ \begin{cases} \int_{ \infty}^{+\infty} f_k(x) f_j(x) \mathrm d x \neq 0 & k=j \\ \int_{ \inf 阅读全文
posted @ 2020-03-03 09:46 马子哥 阅读(191) 评论(0) 推荐(0) 编辑
摘要: FFT与游戏开发(一) 傅里叶变换 傅里叶变换是信号与系统这门课中很重要的内容,它的功能是把信号从时域变成频域。 在计算机中,用到最多的离散傅里叶变换(DFT)。 这里推荐一些参考资料和在线内容: 1. 《Understanding Digital Signal Processing》 1. "Di 阅读全文
posted @ 2020-03-01 11:11 马子哥 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 众所周知,游戏图形程序员的内功之一就是数学。这句话大名鼎鼎的Milo和安柏霖都有讲过(拿大佬撑场面)。 接下来我想开坑一个系列,主要讲讲FFT和其在游戏中的应用(水面模拟和CSM等)。 希望不要像Vulkan系列一样太监掉,立帖为证。 阅读全文
posted @ 2020-03-01 11:04 马子哥 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 一、托管堆内存分配过程 A|B|C|NextObjPtr| | | | | | | 1. 计算需要的内存大小 1. 类型本身大小 2. CLR对象需要的开销 1. 型对象指针 2. 同步块索引 1. 检查NextObjPtr指向的空间是否足够 1. 足够 1. NextObjPtr处放置对象 2. 阅读全文
posted @ 2020-02-29 18:01 马子哥 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 12 泛型 使用值类型作为参数的泛型容器,传入值类型的参数时,不需要进行装箱 12.1 FCL中的泛型 中提供了很多泛型方法 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 12.2 泛型基础结构 12.2.1 开放类型和封闭类型 1. 具有泛型 阅读全文
posted @ 2020-02-27 22:58 马子哥 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 5 基元类型,引用类型和值类型 5.3 值类型的装箱和拆箱 1. 将值类型转化为引用类型需要进行装箱(boxing) 1. 赋值,传参等操作,如果从值类型转为引用类型,都会进行装箱 2. 装箱的代价比较大 1. 申请一块堆内存 2. 从栈上把内容复制过去 1. 使用值类型作为参数的泛型集合,操作起来 阅读全文
posted @ 2020-02-26 21:36 马子哥 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 一、委托的内部实现 C 中的委托是一种类型安全的回调函数,假设有这样一个委托: 编译器会生成一个类: 当创建一个委托时,编译器会把静态函数,成员函数等转化为这个类的实例对象。 注意这里的修饰符是 和deletage的修饰符是一致的。 二、委托链 MultiCastDelegate 再来看下 这个基类 阅读全文
posted @ 2020-02-26 21:34 马子哥 阅读(182) 评论(0) 推荐(0) 编辑