1, 系統 內存只是暫時存放數據的地方,不能處理數據;要想顯示數據,還得把數據傳輸到顯卡內存里!
2, 每個3D 顯卡實際只有有限的內存(常見的有2、16、32、64、128MB),而這些內存要存儲前端和后端緩沖區,Z 緩沖區,還有所有的令人驚奇的紋理。 好吧,讓我們看一些數字…
比如你想讓你的游戲看起來最好,所以你想要讓它以32位屏幕, 1280x1024分辨率和32位 Z- 緩沖跑起來。 好,屏幕上每個像素4個字節,外加每個像素4字節的Z-緩沖,因為都是每像素32位。我們有1280x1024 個像素 – 也就是 1,310,720個像素。基於前端緩沖區和Z-緩沖區的字節數,這個數字乘以8,是 10,485,760字節。包括一個后端緩沖區,這樣是 1280x1024x12, 也就是 15,728,640 字節, 或 15MB。 在一個 16MB 顯存的顯卡上,就只給我們剩下1MB 來存儲所有的紋理。 現在如果最初的紋理是真32 位或 4字節寬,那么我們每幀能在顯卡上存儲 1MB/4字節每像素 = 262,144個像素。這大約是4 個 256x256 的紋理頁面。這就是顯存重要的原因,其實由此也可以由此推算有限的紋理內存到底是多少(也只是大概)。
確切的說,如何使用顯存是顯卡的事情,對於VC程序設計來說,我們不必去關心。但是程序里需要使用紋理的話,顯卡內存就需要我們關心了。
什么是紋理內存?我覺得應該是指用於存放紋理的顯存。在渲染過程中,顯存可能被分配為很多不同的用途,比如作為頂點緩存、索引緩存、紋理緩存、模板緩存..那么紋理內存,應該就是指紋理緩存。 而將顯存中的那一部分作為哪個用途,那是顯存自動分配的.
好消息是 if you're loading a lot of different textures, especially if they're large, as long as you don't have all of your textures onscreen at once: both OpenGL and DirectX are supposed to automatically evict textures from graphics memory as needed. 就是說,當有許多個紋理對象的時候,會自動的把當前需要顯示的紋理對象放到顯卡內存里,作為紋理內存的。其他的會被驅逐出顯卡內存。
但是,壞消息是if you're loading a lot of different textures, especially if they're large, you have all of your textures onscreen at once,some graphics drivers have major bugs that manifest as you start to approach the limit of your graphics memory, causing strange rendering artifacts or even crashes.。很明顯,一次性需要顯示的紋理所需要的紋理內存又不能從顯存里獲取到(因為現在顯存已經用完了),所以會說顯存不足。
總之,顯存是有限的,那么其中的紋理內存也是有限的,特別是供你編寫的應用程序使用的紋理內存是有限的,For these reasons, it may be useful to limit the amount of graphics memory your application uses。具體方法有:
1) 選擇顯存大一點的顯卡;
2)降低屏幕的分辨率和顏色質量,不使用Z緩沖。——這一條最不現實和可行,因為這樣的話,圖像質量可能就差得多了。
3)在使用紋理的程序代碼里,可以使用紋理調色板、紋理壓縮等技術(也需要顯卡同步支持才行)可以大大減少所需的紋理內存(to 1/4 or 1/8 of the original)!
參考文章:
1.http://www.panda3d.org/manual/index.php/Texture_Management
2. http://dev.gameres.com/Program/Abstract/GEanatomy3.htm
PS: “ In some integrated graphics cards, the "graphics memory" is actually your system memory”。 對於這句話的理解,我認為不能認為集成顯卡的顯存就可以無限擴展,因為本質上,是集顯顯卡自己提供一部分,然后占用系統內存一部分,合二為所謂的顯存。占用系統內存一部分的這部分顯存的大小必須是有限的!
關於獨立顯卡與集顯的區別參見:http://wenda.tianya.cn/wenda/thread?tid=698452acc00cd93c
再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow