随笔分类 - 读书笔记
摘要:灯光衰减图可以模拟3D贴图的效果,但也有一定的局限性。给灯光使用衰减图可以一定程度的控制灯光形状。 应该也是某种程度的灯光cookie。 使用衰减图与翻页动画制作的灯火效果: 优点: 一定程度上的3D Texture 可以拿来做摇曳灯火等 缺点: 定制性比较高,真正使用可能要借助CB 相比3D Te
阅读全文
摘要:原文在《游戏编程精粹2》的1.2中,BloomFilter是一种可以快速检测是否存在集合包含关系的数据结构,但有一定的误识别率。 该结构的优点 判断包含关系时效率较高,粗略测试了下比List快一倍(不拆分哈希) 由于内部是位数组BitArray,做交集并集几乎不产生开销 该结构的缺点 有一定的误识别
阅读全文
摘要:在《游戏编程精粹1》的4.7中,原文主要解决赛车游戏的路程确定问题和光照插值问题。 但原文中没有提及如何判断四边形区域是否包含的问题,只有提到point-in-sector这个函数名称 实现是T和L两部分做向量投影,但是不乘以最终方向矢量,而是以两边的点乘结果求得比例。 那么我对其做了一些修改,改成
阅读全文
摘要:在Unity中挂载Renderer的对象可以使用OnBecameVisible/OnBecameInvisible来接收剔除事件。 但是非Renderer对象则要自己处理相交检测。 文中的方法测试结果比Unity的GeometryUtility效率要高一倍左右,且没有GC。不过只支持圆柱 下面是直接
阅读全文
摘要:这是一种避免一次性生成所有内容的可预测随机数实现 原文使用了简易的随机数生成算法来生成,可以支持的最大数字是uint型的最大值4294967295。 文中提到的宏无限分解和微无限分解指的是用种子生成的随机结果再作为种子继续生成,细化到具体星球,植被等等。 这样当玩家在任意坐标区域内,只需要生成附近一
阅读全文
摘要:在《游戏编程精粹1》里的1.10处讲解了位数组的应用,原文意把位操作变为类似数组的形式,从而更加直观。 (注意C#中已经内置这种数据结构,叫做BitArray) 不过我联想到是否可以设计一个位锁的概念。 我遇到过这样一个问题,游戏中有一些模块的参数必须在所有使用者都结束后才可以被释放。 例如时间系统
阅读全文
摘要:来自《游戏编程精粹1》寻路部分文章,使用CatmullRom插值来达到平滑,算是对书中内容的练习。 using UnityEngine; using System.Collections; public class Practice : MonoBehaviour { public Transfor
阅读全文
摘要:参考自《游戏编程精粹1》多边形相交部分,用该方法除了知道是否相交以外还可以得到相交点,从而用于其他判断。 原文用到了平面方程的基本式Ax+By+Cz+D=0,求出线段2点p0和p1的D值,用D值转换成比值最后插值得到坐标 不用平面方程其实也可以用向量投影解释。 其中一些公式计算直接做了优化,没有生搬
阅读全文
摘要:21章太短,2章就写一块了。21章 - 工厂模式----------------------------------------------------------我一直认为,工厂模式的问题不是控制时间上的各种变化,而是复杂度的问题。很多时候创建工厂都是过度设计,以前一个谷歌员工说,自己辞职离开谷歌...
阅读全文
摘要:要使一个软件中的代码变得难以更改,最有效的方法是让其他软件包依赖于他。这一章几个知识点梳理一下:1.不要让代码产生环依赖,即A依赖B B依赖A。遇到环依赖想办法用C去分解A和B的依赖部分,或者用依赖倒置原则抽象出接口2.书中给出一个模块稳定性测量公式, Ca是外部到内部的耦合数量Ce是内部到外部的耦...
阅读全文
摘要:看完这一章,花了好几个小时。刚开始看作者用命令模式,各种Execute()感觉很麻烦。。不过看到最后原来是为GUI操作做铺垫,突然就明白了。可以想象初始化的时候,要new出来一排事物类的情况,但作者最后绑定显示UI部分的代码没有写,比较隐晦。可能只能new一堆事物类了。。
阅读全文
摘要:第一次画的UML类图是很潦草的,但凡事都从第一次开始,然后不断迭代。刚开始,从客户那里得到如下信息:1.职员分为钟点工,普通职员,销售(可以拿提成)2.职员可以选择薪水支付方式,支票发放,现金发放,和银行卡打款。3.公司有一个协会(工会?),加入协会的职员每个月收取一定的会费,从工资中扣除。----...
阅读全文
摘要:如果一个引用类型对象是空值,有时候就会报错。所以经常要在判断后面加 && xxx==null这样很麻烦。那是不是有简单的方法呢? 17章所讲的空对象模式,不适合所有情况。但在部分情况下确实值得一用。 我这里用C#代码演示一下空对象模式 public class NullPlayer : IPlaye
阅读全文
摘要:MonoState一些设计模式的书上没有,我也不清楚这个模式的由来。具体说一下 单例模式:私有掉构造函数,并且类中有一个私有静态对象,通过静态方法去获得实例。可以保证类中只有一个实例。 MonoState模式:静态化所有成员变量,但成员函数都是非静态的。这样使用时有一定隐蔽性,和普通类使用时没区别。
阅读全文
摘要:这一章中列举了2个例子,通过温度打印和冒泡排序来说明两个模式如何取舍。 这一章想表达的东西应该是 1.过度使用模式不好 2.模板方法模式和策略模式有些相似,但他们各有利弊,需要取舍。 不过第一个例子实在想吐槽。。没有遇到变化的时候,就用模式,当然会变得臃肿了。。 而且还没创建一个新的类,而是直接在M
阅读全文