Essential Mathematics for Games and Interactive Applications

來源:互聯網
上載者:User

想重新看一篇這本書,因為是英文版,所以想看的過程中把一些東西記錄下來。所以就隨便翻譯了一下。先記錄在這裡吧。

第一章  真實世界的電腦數字表示

1.1   引言

這章我們將討論可能是構建3d圖形管道最基礎的東西:電腦如何表示數字,特別是實數。雖然一些3d程式員經常成功的使用電腦表示(近似)的實數,但是卻沒有理解是如何?的,這經常會在應用程式開發過程中引起一些細微的錯誤和效能問題,一些大學電腦結構方面的書籍給出了整數的表示(比如c或者c++中的整形和無符號整形),但是卻只是簡單的介紹浮點數和其他非整形數的表示。因為3d數學都是與實數打交道,因此對在這個領域工作的人來說,理解電腦表示的實數的特徵和限制就非常重要了。

本章我們將主要討論實數、浮點數的電腦表示以及二進位位的格式、基本操作以及限制。並從實數的表示過渡到3d相關的主題。本章的大部分內容都是關於IEEE浮點規範,並討論由於這種表示的限制在你3d管道中造成的問題。並帶有一個學習案例。

我們假定讀者熟悉整形的一些基本概念。比如通過二的補碼錶示的有符號數、範圍、溢出、一般的儲存位元組數(8,16或32)。標準的c和c++基礎類型轉換等。如果不熟悉,請參考相關資料。

1.2   實數表示

對一些開發人員來說,實數是3d圖形系統的心臟和靈魂。這本書後面的部分就是基於實數或者實數空間。在大多數電腦上面實數的實現是最有彈性和強大的,不要奇怪的是,同時也是最複雜和最容易產生問題的。我們將會講解今天電腦上表示是熟的方法,還用幾節來描述這種表示給應用開發帶來的問題。

整數由於儲存的原因,帶來最臭名昭著的問題就是溢出,但是這個問題在實數裡面仍然存在。而且實數的表示帶來了更多的複雜性以及由此帶來的實現權衡、細微的錯誤和很難跟蹤的效能問題非常容易把程式員搞迷糊。

1.2.1        近似

電腦表示的整數和正整數是全部整數的一個連續的子集。就是說如果i和i+2是可以表示的,那麼i+1也是可以表示的。在可被描述的最小值和最大值範圍內,所有的值都是可以被正確描述的。這是因為有限範圍內的整數包含的元素是有限的。

    對實數來而言,上述說法是不在正確了。在有限的最小實數和最大實數範圍之間的子集裡面的實數是無限多的,無論這個範圍有多小(當然要排除最小值等於最大值的情況)。因此我們不能完全正確描述一個實數的子集。因此我們在討論實數表現的時候主要也是討論範圍和精度的相關的問題。為了理解實數的表示,我們首先要瞭解精度和誤差的概念。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.