游戏引擎架构 && windows 核心编程
欲想正人,必先正己。
静坐当思己过,闲谈莫论人非。
垂直同步的作用:
为避免画面撕裂,许多渲染引擎会在交换缓冲区之前,等待显示器的垂直区间消隐,即电子枪重归屏幕上角的时间。
高分辨率计时器的时间漂移
多核处理器。
时间同步
使用cpu的时间周期数进行度量
若使用存储绝对值的手动时钟,需要定期将其清0,避免累加至很大的值。可以将时钟按照周期手动循环,time = (time +△t)%period。
为了应付断点,可以锁定增量时间,当增加时间超过预设的上限,将其锁定至目标帧率
If(dt > 1/30.0f) dt = 1/30.0f
人体接口学设备(HID)
弦(chord)一组按键组合,当同事按下的时候,会在游戏中产生一组独特的行为。
手势检测的方法,历史输入缓冲记录。
Debug技巧
游戏内置菜单:切换全局bool设定,调教全局整数及浮点值,调用一些引擎提供的函数,执行任何任务;开启副菜单,使菜单系统按层阶式管理,方便浏览。
AutoProfile实现技巧 page354
Tessellation 镶嵌
把表面分割为一组离散的多边形。
纹素密度及多级渐进纹理
Mipmap,对于每张纹理,建立低分辨率的纹理序列,当中每张图的宽度和高度都是前一张图的一半,图形硬件会按照三角形与摄像机的距离,选择合适的渐进纹理级数,以尝试维持纹素密度接近于1.
Ansi和Unicode
Ansi为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。
函数希望我们传入花出去的字符数,即应该传入_countof 而不是sizeof。
程序字符串的比较采用CompareStringOrdinal,不考虑用户的区域设置,速度快,而用户字符串一般显示在界面上,要考虑用户的区域设置,采用CompareString(Ex)来处理。
导出ansi和unicode dll函数的转换技巧,windows核心 page 29。IsTextUnicode
最新文章
- Android线程管理之AsyncTask异步任务
- 部署React+webpack工程的步骤
- java中scanner类的用法
- 【WP开发】JSON数据的读与写
- 工具 cocoapods和插件
- java中trim()函数是什么
- hdu4511小明系列故事——女友的考验(ac自动机+最短路)
- shell中for循环
- [C#] Extension Method 扩展方法
- MAC OSX 下安装 CTAGS
- 在这个年纪,打DOTA冲分有那么可笑么?
- STM32系列命名规则
- Android UI学习 - GridView和ImageView的使用
- iOS自动布局之autoresizingi
- C#编程连接数据库,通过更改配置文件切换数据库功能。
- BZOJ 3931: [CQOI2015]网络吞吐量( 最短路 + 最大流 )
- 网页视频下载牛逼工具,支持各种格式转换,比如腾讯视频格式qlv转mp4
- User implements HttpSessionBindingListener
- CSS选择符-----元素选择符
- hfrk2410_a1.1开发板移植linux-2.6.32.27--网卡篇(cs8900)