遊戲引擎架構 && 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         

發佈了72 篇原創文章 · 獲贊 6 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章