我正在學習OpenGL和最近發現的關於glGenTextures。 儘管有幾個網站解釋它的作用,但我不禁想知道它在速度方面的表現如何,尤其是內存方面。glGenTextures速度和內存問題
調用glGenTextures時應該考慮什麼?我應該考慮卸載並重新加載紋理以獲得更好的速度嗎?標準遊戲需要多少紋理?解決內存和速度可能帶來的侷限性有哪些解決方法?
我正在學習OpenGL和最近發現的關於glGenTextures。 儘管有幾個網站解釋它的作用,但我不禁想知道它在速度方面的表現如何,尤其是內存方面。glGenTextures速度和內存問題
調用glGenTextures時應該考慮什麼?我應該考慮卸載並重新加載紋理以獲得更好的速度嗎?標準遊戲需要多少紋理?解決內存和速度可能帶來的侷限性有哪些解決方法?
根據manual,glGenTextures只分配沒有「維度」的紋理「名稱」(例如IDS)。所以你實際上並沒有分配紋理內存,而且這裏的開銷與實際的紋理內存分配相比可以忽略不計。
glTexImage實際上將控制每個紋理使用的紋理內存量。您的應用程序對紋理內存的最佳使用取決於許多因素:包括每幀使用的紋理的最大工作集,硬件的可用專用紋理內存以及紋理內存的帶寬。
至於你關於典型遊戲的問題 - 你在創造什麼類型的遊戲?控制檯遊戲開始填充藍光磁盤容量(我已經開發了一個最初不適合藍光的PS3標題)。這個空間的很大一部分是紋理。另一方面,可下載的網頁遊戲受到的限制更多。基本上,你需要使用合理的遊戲設計,並拿出估計: 1.你的遊戲使用的紋理總數。 2.任何時候使用的最大紋理。
然後你需要看看你的目標硬件,並決定如何使它全部合適。
下面是一個古老的遊戲開發者的文章,應該讓一個鏈接,你開始: http://number-none.com/blow/papers/implementing_a_texture_caching_system.pdf
感謝您的聯繫 - 有趣的文章! – 2009-06-29 02:47:04