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

第2章 高性能的定點(diǎn)數(shù)實(shí)現(xiàn)方案

作者:周軒、白如冰

摘要

現(xiàn)代游戲程序通常使用浮點(diǎn)數(shù)來表示實(shí)數(shù),但各個軟硬件平臺并沒有嚴(yán)格遵守浮點(diǎn)數(shù)標(biāo)準(zhǔn)IEEE 754,導(dǎo)致浮點(diǎn)數(shù)的運(yùn)算結(jié)果在不同平臺上難以做到嚴(yán)格一致,也就是浮點(diǎn)數(shù)的運(yùn)算結(jié)果具有不確定性。這對于依賴計(jì)算確定性的鎖步同步(幀同步)游戲有嚴(yán)重影響,因?yàn)槲⑿〉恼`差會累積,導(dǎo)致不同平臺上的模擬產(chǎn)生巨大分歧。

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

主站蜘蛛池模板: 湛江市| 松溪县| 腾冲县| 工布江达县| 青铜峡市| 靖远县| 莲花县| 噶尔县| 张家港市| 五华县| 华蓥市| 嘉黎县| 华坪县| 宁明县| 宁陕县| 曲松县| 常山县| 湖口县| 济阳县| 普宁市| 英德市| 安福县| 武宁县| 蛟河市| 阜阳市| 即墨市| 类乌齐县| 阳春市| 涿鹿县| 西昌市| 洛阳市| 石门县| 北票市| 高平市| 会宁县| 潜山县| 渭南市| 大余县| 庆城县| 绥棱县| 潼南县|