我知道mipmaps和積分圖像都存在這樣的問題,即得到的像素值不是原始紋理空間中任意多邊形的積分。使用積分圖像在紋理座標上對軸對齊矩形進行積分需要4次紋理查找。使用mipmap,opengl在mipmap中插入4個相鄰的像素值,以及4個內存查找。使用一個完整的圖像,你需要更少的內存(沒有額外的preresized圖像,只有一個完整的圖像,而不是原來的),沒有水平的決心。當然,這可以通過着色器來實現,但爲什麼(現在被棄用的)固定功能管線曾經設計過支持mipmap並且沒有整體圖像支持?爲什麼OpenGL提供對mipmap的支持而不是整體圖像?
2
A
回答
2
使用需要更少的內存積分圖像
我很懷疑這種說法是真實的
從我瞭解的積分圖像的值可以得到相當大的,因此需要浮點數表示將使用比典型的24位mipmap更多的空間(mipmap只能將圖像大小加倍)和/或不夠精確並在插值過程中產生噪聲。另外浮點圖像並沒有真正用於固定功能流水線,並且GPU對浮點圖像的處理速度可能會慢很多。
如果您使用整數圖片,那麼積分圖像所需的比特深度會不合理地變高(bitdepth =範圍+ 8對於白色圖像,這意味着256x256圖像需要每比特深度爲264比特顏色通道)與更高分辨率的圖像。
1
但爲什麼(現在不推薦使用)固定功能管道設計爲支持mipmap並且沒有整體圖像支持?
因爲mipmap的訪問和插值可以建立爲相當簡單的硬連線電路。有沒有想過,爲什麼紋理尺寸必須是2的冪?通過一系列位移和添加來實現Mipmaping計算。訪問高斯金字塔中的相鄰元素也需要比評估積分更少的內存訪問。並且存在您的主要問題:填充(即視頻內存帶寬)始終是GPU的瓶頸。
相關問題
- 1. 爲什麼Silverlight不提供IME支持?
- 2. Play爲什麼只提供對OAuth 1.0的支持?
- 3. OS X Lion是否爲Radeon 5770提供OpenCL圖像支持?
- 4. 爲什麼CSS Transitions -module不支持圖像到圖像轉換?
- 5. SKTextureAtlas的SKTexture是否支持mipmap功能?
- 6. 爲什麼Android支持java而不支持其他語言?
- 7. 爲什麼要在補丁上提取SIFT特徵而不是整個圖像?
- 8. 爲什麼Rails提供更少的時區支持?
- 9. 最低支持分辨率應該爲網站提供什麼?
- 10. 提供支持ios6
- 11. 爲什麼FileStream提供FtpWebRequest而不是MemoryStream?
- 12. 爲什麼Hadoop hftp會提供目錄而不是文件?
- 13. 爲什麼angular $ http提供了headerGetter而不是頭文件?
- 14. 爲什麼Java提供規範而不是實現
- 15. 爲什麼redirect_to _path提供HTTP而不是HTTPS url?
- 16. OpenGL mipmap問題
- 17. 爲什麼顯示器不支持OpenGL GLX擴展:?
- 18. 爲每個瀏覽器提供完整的CSS3支持
- 19. 7.1.2上的Nexus 6P提供「設備支持,但APK只支持$ abiFlavorsHere」;做什麼?
- 20. Oracle的實體框架提供程序是否支持DbGeography?
- 21. LaunchImage和背景圖像不支持3.5「,而支持iOS 6
- 22. 爲什麼EF不支持合併到對象圖功能?
- 23. 爲什麼必須爲不同的屏幕密度提供不同的圖像?
- 24. 爲什麼DIV和圖像不是調整大小,而是被切割?
- 25. 不支持的選項提供給mysql_options()
- 26. 爲什麼android沒有提供原生支持文本視圖或按鈕的文本大小自動調整?
- 27. Pyqt5爲什麼我的圖像加載爲PNG而不是JPG?
- 28. C++支持原生無符號整數的優點是什麼,而java不支持?
- 29. os.environ的類型是什麼?爲什麼它不支持視圖鍵方法
- 30. SceneKit支持的OpenGL ES 3.0的子集是什麼?
*咳嗽* Mipmap添加三分之一。他們不加倍。你必須存儲1 + 1/4 + 1/16 + ...。使用該算術級數公式或應用您的二進制算術本能(想想:設置每一個,但低於2的冪)。 – Tommy 2014-07-16 07:03:58