官术网_书友最值得收藏!

第2章 高性能的定點數實現方案

作者:周軒、白如冰

摘要

現代游戲程序通常使用浮點數來表示實數,但各個軟硬件平臺并沒有嚴格遵守浮點數標準IEEE 754,導致浮點數的運算結果在不同平臺上難以做到嚴格一致,也就是浮點數的運算結果具有不確定性。這對于依賴計算確定性的鎖步同步(幀同步)游戲有嚴重影響,因為微小的誤差會累積,導致不同平臺上的模擬產生巨大分歧。

本章介紹的定點數,可以保證在不同平臺上計算結果的一致性,從而解決了這個問題。本章介紹了定點數的表示原理,以及四則運算、開方、超越函數等運算的實現。定點數的運算基于整數運算實現,因此在不同的軟硬件平臺上可以實現一致的結果,適合對確定性有需求的技術方案,例如確定性的數學庫、物理引擎,以及上層的游戲邏輯。定點數支持常用的數學運算后,使用起來就可以像使用浮點數一樣簡單、方便。本章還對定點數運算的精度、性能和原生浮點數進行了比較。本章介紹的方案最早由本書主編葉勁峰實現,已應用于War Song、《激戰狂潮》和《線條大作戰》等游戲中。

主站蜘蛛池模板: 天水市| 金湖县| 工布江达县| 合川市| 静乐县| 旺苍县| 东城区| 赫章县| 黄石市| 宁蒗| 呼伦贝尔市| 沁水县| 宜兴市| 宁强县| 崇左市| 集贤县| 林周县| 阳山县| 兰溪市| 桓仁| 虞城县| 明水县| 双桥区| 瑞金市| 济源市| 江川县| 务川| 上高县| 罗田县| 德阳市| 洛川县| 体育| 海林市| 会昌县| 郑州市| 筠连县| 炉霍县| 盐源县| 田阳县| 壶关县| 金昌市|