2014-09-28 203 views
0

使用S3TC進行壓縮的紋理很好,例如,因爲他們允許它將紋理更快地上傳到GPU。在這種情況下(使用three.js),我將不得不使用DDS格式,但即使使用壓縮最好的方法,紋理圖像也採用這種格式,通常比相同的PNG大。three.js使用PNG進行紋理壓縮

是否有可能讓一個人擁有兩全其美的世界?

+0

紋理壓縮是關於GPU內存使用情況,而不是「更快上傳到GPU」。 – 2014-09-28 01:54:23

+0

因此它在GPU中實時解壓縮?太好了,更好! – Beabool 2014-09-28 11:04:01

回答

0

我不太確定你的問題是什麼。如果您想要下載PNG並將它們作爲DDS上傳到GPU,則必須編寫JavaScript DDS壓縮器(或使用emscripten來移植C/C++壓縮器)。你會有一些問題,雖然

  1. DDS壓縮是緩慢的。

    大多數壓縮機採取的秒數量級壓縮

  2. DDS的支持只存在於桌面

    大部分手機不支持DDS

更好的問題是,爲什麼你想要做到這一點?您的項目是否擁有如此之多的資源以至於您真的需要使用DDS來擠壓內存中的所有紋理?

+0

好處,在處理大紋理時編碼DDS的速度確實很慢。在我的情況下,我現在用稍小一些的紋理來解決問題,我希望我的客戶很高興,這是關於非常詳細的平面AutoCad數據。 PS:我最初把它歸類到WebGL下,因爲我想知道是否有一些WebGL功能可以製作成可以幫助我的three.js插件。我知道three.js支持DDS。 PPS:我相信在某些平臺上支持一些紋理壓縮格式(PVRTC?),儘管我自己還沒有檢查過它。 – Beabool 2014-09-29 09:59:45