Kevin

游戏开发闲谈

导航

2018年6月7日 #

3-线程间共享数据

摘要: 本章主要内容 共享数据带来的问题 使用互斥量保护数据 数据保护的替代方案 3.1 共享数据带来的问题 不变量(invariants) 的概念对程序员们编写的程序会有一定的帮助——对于特殊结构体的描述;比如,“变量包含列表中的项数”。不变量通常会在一次更新中被破坏,特别是比较复杂的数据结构,或者一次更 阅读全文

posted @ 2018-06-07 16:02 iamkevin 阅读(200) 评论(0) 推荐(0) 编辑

2-线程管理

摘要: 2.1 线程管理的基础 2.1.1 启动线程 使用C++线程库启动线程,可以归结为构造 std::thread 对象: 可以用可调用类型构造,也就是伪函数 启动了线程,你需要明确是要等待线程结束(加入式——参见2.1.2节),还是让其自主运行(分离式——参见2.1.3节) 如果 对象销毁之前还没有做 阅读全文

posted @ 2018-06-07 16:01 iamkevin 阅读(244) 评论(0) 推荐(0) 编辑

1-C++的并发世界

摘要: 1.1 何谓并发 并发的两种方式 1. 多核机器上的真正并行 2. 单核机器的任务切换 并发的两种途径 1. 多进程并发 1.1 多进程并发需要通过操作系统进行 进程间通信 2. 多线程并发 2.1 多线程并发需要 共享内存 1.2 为什么使用并发 主要原因有两个:关注点分离(SOC)和性能 为了分 阅读全文

posted @ 2018-06-07 15:46 iamkevin 阅读(121) 评论(0) 推荐(0) 编辑

2017年7月21日 #

推导正交投影(Orthographic Projection)

摘要: 定义六个面 left right bottom top near far 然后三个轴分开考虑 x轴 视椎体的x范围在[l,r],我们要变换到[-1,1] 1 减去l变换到[0, r-l] 2 乘以2/(r-l)变换到[0, 2] 3 减去1变换到[-1,1] 进一步简化 展开 所以 y方向同理 最后 阅读全文

posted @ 2017-07-21 19:27 iamkevin 阅读(3457) 评论(0) 推荐(0) 编辑

2017年7月17日 #

向量点乘 推导及应用

摘要: u=(u1,u2,u3) v=(v1,v2,v3) dot(点乘 & 内积) 结果是一个float,表示两个向量的夹角。点积公式:u * v = u1v1+u2v2+u3v33=lul*lvl*COS(U,V) 如果点乘的结果为0,那么这两个向量互相垂直;如果结果大于0,那么这两个向量的夹角小于90 阅读全文

posted @ 2017-07-17 14:57 iamkevin 阅读(2740) 评论(0) 推荐(0) 编辑

2015年4月29日 #

顶点缓冲区

摘要: 几个概念vao --> vertex array objectvbo --> vertex buffer objectibo --> index buffer object绘制三角形为例几种方式 1. 多个vbo 一个vao 2. 一个vbo一个vao 3. 一个vbo一个ibo一个vao其中... 阅读全文

posted @ 2015-04-29 21:23 iamkevin 阅读(1951) 评论(0) 推荐(0) 编辑

2014年4月30日 #

技能

摘要: 客户端方面简单的说就是播放特效和动作服务端方面大致的包 吟唱包 参数 skill_no, interval 释放包 细分 打点 skill_no, interval 打人 skill_no, src_eid, interval 常规释放 skill_no 结... 阅读全文

posted @ 2014-04-30 09:35 iamkevin 阅读(411) 评论(0) 推荐(0) 编辑

2014年4月28日 #

导表工具

摘要: 确认怎么写导表工具需要先确定开发环境,数据存储结构.假设采用的数据载体是csv如果没有编译成本比如python这样的脚本语言,做法很简单:(假设使用的是python) 1.解析csv文件,读到内存中来叫做sheet_map 2.通过读出来的sheet_map写成python代码 3.写一些通用... 阅读全文

posted @ 2014-04-28 11:21 iamkevin 阅读(703) 评论(0) 推荐(0) 编辑