摘要: 在给骨骼模型加上bump后发现每个顶点的数据可真是不小, in float3 position; // float3 in float3 tangent; // float3 in float3 binormal; // float3 in float3 blend_weights; // float3 in float4 ... 阅读全文
posted @ 2009-04-20 15:26 龚谨 阅读(539) 评论(0) 推荐(0)
摘要: 结构化异常能够使程序处理各种异常情况,能获取更多的异常信息, 仔细处理异常会更好的了解异常发生的原因并解决它。而普通的 结构化异常和C++混用会有一些问题,比如: __try { std::string str;// Error 3 error C2712: Cannot use __try in functions that require object unwinding } __f... 阅读全文
posted @ 2009-03-18 17:07 龚谨 阅读(828) 评论(0) 推荐(0)
摘要: 某次给美工发布完场景编辑器后发现在他机器上时间走的很不正常, 像粒子,草体,树叶都动的特别快。但是在我机器上就没这个问题。 最后经过检查发现是GetPerformanceCounter出的问题。现在多核 的机器已经很普遍了,而多核的机器GetPerformanceCounter返回的 结果可能会不正确(由于bios或其它硬件的bug)。如果想获取正确的值 需要用SetThreadAffinityM... 阅读全文
posted @ 2009-03-18 16:38 龚谨 阅读(667) 评论(0) 推荐(1)
摘要: 一般在使用std::map插入一个元素时都会这样使用,比如: typedef std::map map_t; map_t testmap; testmap [1] = “One”; testmap [2] = “Two” 这样非常直观,但存在一个性能的问题。插入2时,先在_map中查找主键为2的项,没发现,然后将一个新的对象插入_map,键是2,值是一个空字符串,插入完成后,将字符串赋为"Two"... 阅读全文
posted @ 2009-03-18 16:22 龚谨 阅读(3210) 评论(0) 推荐(0)
摘要: #pragma pack是指定数据在内存中的对齐方式, 例如: #pragma pack(push, 4) 就是按四字节对齐. 对于一个结构或类来说,其数据成员按照指定大小与成员本身大小的最小值对齐,而这个类 本身则按照类的最大成员大小和指定大小的最小值对齐。如果类的数据成员也是一个类,其是 按照成员类中最大成员大小和指定大小的最小值对齐。 例子: #pragma pack(push, 4... 阅读全文
posted @ 2009-03-18 16:19 龚谨 阅读(424) 评论(0) 推荐(1)