摘要:
2D游戏中通过短时间内快速切换贴图来实现动画效果。为了减少贴图数量,可以合并为一张贴图,根据时间来修改UV坐标,达到和切换贴图一样的效果。 在UnityShader的Properties块中,定义属性: 这里定义了合并后的贴图、子贴图数量和切换动画的速度。 在CG代码中可以这么写: 这里没有修改UV 阅读全文
摘要:
在Data Lab中有一个logicalShift函数给定一个值x和需要移动的位数n,要求只是用运算符:~ & ^ | + ,实现逻辑右移运算。思考了很久,然后我写出了如下的代码: / logicalShift shift x to the right by n, using a logical s 阅读全文
摘要:
前面已经介绍了全局函数construct()和destory(),分别完成指定内存地址上的对象构造和析构操作。下面主要是介绍空间配置器中关于空间配置和释放的操作。STL中空间配置和释放由负责。SGI对此的设计哲学为: 向system heap要求空间 考虑多线程(multi threads)状态 考 阅读全文
摘要:
SGI虽然定义了名为allocator的配置器,但从未使用过。SGI的allocator只是包装了C++的::operatpor new和::operator delete,效率不高。STL中内存配置操作由alloc::allocate()负责,内存释放操作由alloc::deallocate()负 阅读全文
摘要:
Trie树又称为前缀树(Prefix Tree)、单词查找树或键树,是一种多叉树结构。 上图是一棵 Trie 树,表示了关键字集合{“a”, “to”, “tea”, “ted”, “ten”, “i”, “in”, “inn”} 。从上图可以归纳出Trie树的基本性质: 1. 根节点不包含字符,除 阅读全文
摘要:
空间配置器(allocator)这个概念在阅读源码之前我根本没有听过,原以为内存分配都是使用new和delete运算符(注意和operator new、placement new、operator delete以及placement delete不同)。在实际使用STL编程时也很少会遇到自己去实现一 阅读全文