最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity-特定于平臺(tái)的覆蓋的紋理壓縮格式

2021-03-27 10:56 作者:unity_某某師_高錦錦  | 我要投稿

Unity 支持許多常見(jiàn)的圖像格式作為導(dǎo)入紋理的源文件(例如 JPG、PNG、PSD 和 TGA)。但是,3D 圖形硬件(例如顯卡或移動(dòng)設(shè)備)在實(shí)時(shí)渲染期間不會(huì)使用這些格式。這種硬件要求紋理以專門(mén)格式進(jìn)行壓縮,這些格式針對(duì)快速紋理采樣進(jìn)行了優(yōu)化。不同的平臺(tái)和設(shè)備分別都有自己的專有格式。

默認(rèn)情況下,Unity Editor 會(huì)自動(dòng)將紋理轉(zhuǎn)換為最合適的格式,以匹配您選擇的構(gòu)建目標(biāo),而且構(gòu)建中僅包含轉(zhuǎn)換后的紋理。源資源文件保留為原始格式,位于項(xiàng)目的?Assets?文件夾中。但是,大多數(shù)平臺(tái)支持多種紋理壓縮格式,可供您進(jìn)行選擇。

Unity 為每個(gè)平臺(tái)設(shè)置了默認(rèn)格式,但您可以覆蓋默認(rèn)格式并為某些紋理選擇不同的壓縮格式(例如,如果使用紋理作為遮罩,只有一個(gè)通道,則可以選擇使用 BC4 格式來(lái)降低文件大小,但同時(shí)保持質(zhì)量)。

本頁(yè)包含以下信息:

  • 紋理壓縮概念

  • 受支持平臺(tái)的默認(rèn)格式

  • 所有支持的紋理壓縮格式

  • 移動(dòng)端和 WebGL 特有格式

    • 關(guān)于 iOS 的注意事項(xiàng)

    • 關(guān)于 tvOS 的注意事項(xiàng)

    • 關(guān)于 Android 的注意事項(xiàng)


有關(guān)導(dǎo)入紋理以及如何設(shè)置覆蓋的一般信息,請(qǐng)參閱紋理導(dǎo)入設(shè)置 (Texture Import Settings)。


紋理壓縮概念

本頁(yè)用到了以下概念:

  1. RGB?是一種顏色模型,其中紅色、綠色和藍(lán)色通過(guò)各種方式疊加在一起以再現(xiàn)各種顏色。

  2. RGBA?是具有 Alpha 通道的?RGB?版本,支持混合和不透明度更改。

  3. 每像素位數(shù) (bpp)?表示單個(gè)像素所需的存儲(chǔ)量。該值越低,可以在 GPU 的緩存中存儲(chǔ)的像素越多,從而可以更快地訪問(wèn)紋理。

  4. 可變比特率 (VBR)?表示每像素的位數(shù)不是固定值,而是取決于實(shí)際內(nèi)容。VBR 僅適用于?Crunch 壓縮,僅限于磁盤(pán)上的紋理大小。內(nèi)存中的大小與使用基礎(chǔ)紋理格式時(shí)的大小相同(例如,RGB Compressed DXT1 對(duì)應(yīng) RGB Crunched DXT1)。

  5. Crunch 壓縮是一種基于 DXT 或 ETC 紋理壓縮的有損壓縮格式(壓縮過(guò)程中會(huì)丟失部分?jǐn)?shù)據(jù))。在運(yùn)行時(shí),紋理在 CPU 上解壓縮為 DXT 或 ETC,然后上傳到 GPU。Crunch 壓縮有助于紋理在磁盤(pán)上使用盡可能少的空間,但對(duì)于運(yùn)行時(shí)內(nèi)存使用量沒(méi)有影響。Crunch 紋理可能需要很長(zhǎng)時(shí)間進(jìn)行壓縮,但在運(yùn)行時(shí)的解壓縮速度非???。

受支持平臺(tái)的默認(rèn)格式

下表顯示了每個(gè)平臺(tái)使用的默認(rèn)格式。

所有支持的紋理壓縮格式

下表顯示了每個(gè)平臺(tái)上可用的紋理壓縮格式選項(xiàng)以及磁盤(pán)上生成的壓縮文件大小(基于 256x256 像素圖像)。

選擇紋理壓縮格式需要在文件大小、質(zhì)量和壓縮時(shí)間之間取得平衡:質(zhì)量越高,文件越大。為了獲得最佳性能,尤其是在移動(dòng)設(shè)備上,請(qǐng)使用應(yīng)用程序的目標(biāo)硬件所支持的每像素位數(shù)最少的格式,只要該格式能夠提供足夠的視覺(jué)質(zhì)量即可。

不同平臺(tái)有不同的硬件,并經(jīng)優(yōu)化后可最有效地處理特定壓縮格式。使用目標(biāo)平臺(tái)支持的紋理壓縮格式時(shí),GPU 可以直接使用該格式,并且平臺(tái)不用消耗任何資源即可將紋理解壓縮為支持的格式。這樣可以提高應(yīng)用程序的性能。

如果使用目標(biāo)平臺(tái)不支持的紋理壓縮格式,紋理將解壓縮為 RGBA 32 位(除非另有說(shuō)明)并與壓縮紋理一起存儲(chǔ)在內(nèi)存中。這會(huì)增加紋理加載時(shí)間并使用額外的內(nèi)存,這意味著選擇不兼容的格式可能會(huì)影響應(yīng)用程序的性能。

下表顯示了每種壓縮格式支持的平臺(tái)。

注意:在內(nèi)存中的大小基于 256x256 像素紋理。

  1. 僅限在 Nvidia Tegra GPU 上。

  2. 在不支持 sRGB DXT 的 Web 瀏覽器上使用線性渲染,紋理在運(yùn)行時(shí)被解壓縮為 RGBA32。

  3. Windows Direct3D 11、Windows OpenGL 4 和 macOS Metal。在具有 Direct3D 10 著色器模型 4 和 OpenGL 3 GPU 的平臺(tái) (Windows) 上以及在 macOS OpenGL 上,BC6H 紋理被解壓縮為 RGBA Half,而 BC7 紋理被解壓縮為 RGBA32。

  4. 在 iOS 和 tvOS 上需要 Metal;在 Android 上需要 Vulkan、OpenGL ES 3.0 或 Nvidia Tegra;WebGL 2。

  5. 在 iOS 和 tvOS 上需要 Metal;在 Android 上需要 Vulkan、OpenGL ES 3.0 或?GL_EXT_texture_rg?擴(kuò)展;需要 WebGL 2。

  6. 在 iOS 和 tvOS 上需要 Metal;在 Android 上需要 Vulkan、OpenGL ES 3.0 和?GL_EXT_texture_norm16?擴(kuò)展。

  7. 在 iOS 和 tvOS 上需要 Metal;在 Android 上需要 Vulkan、OpenGL ES 3.0 或?GL_OES_texture_half_float?擴(kuò)展;需要 WebGL 2 或 WebGL 上的?OES_texture_half_float?擴(kuò)展。

可從 DDS 文件導(dǎo)入紋理,但僅支持 DXT、BC 壓縮格式或未壓縮像素格式。

移動(dòng)端和 WebGL 特有格式

下表中的格式僅在 Android、iOS、tvOS 和 WebGL 上受支持。

注意:大小基于 256x256 像素紋理。

注意:

  1. 只有少部分瀏覽器在 WebGL 上支持 ETC1 和 ETC2/EAC。

  2. 運(yùn)行 OpenGL ES 2 時(shí),Android 不支持ETC2。在這種情況下,紋理在運(yùn)行時(shí)解壓縮為?Android Build Settings?中的?ETC2 fallback?指定的格式,或者?Platform-specific overrides?面板的 Android 選項(xiàng)卡上指定的格式。

  3. 運(yùn)行 OpenGL ES 2 時(shí),iOS 和 tvOS 不支持 ETC2。

  4. 需要?GL_KHR_texture_compression_astc_ldr?擴(kuò)展或 Vulkan 支持。

  5. 需要 A8 GPU 或更高版本。

  6. 需要?WEBGL_compressed_texture_astc?擴(kuò)展。

  7. 需要?GL_KHR_texture_compression_astc_hdr?擴(kuò)展。如果不支持此擴(kuò)展,則紋理將在運(yùn)行時(shí)解壓縮為 RGB9E5 格式,從而失去了 Alpha 通道。

  8. 所有 PVRTC 格式都需要具有二次冪尺寸正方形紋理。

  9. 僅限在 PowerVR GPU 上。

關(guān)于 iOS 的注意事項(xiàng)

選擇默認(rèn)的紋理壓縮設(shè)置 (PVRTC) 可獲得更大的兼容性。如果您的應(yīng)用程序不包含 OpenGL ES 2 支持,則可以選擇一種 ASTC 格式。這些格式提供更好的質(zhì)量和靈活性,并且壓縮速度比 PVRTC 快。

關(guān)于 tvOS 的注意事項(xiàng)

Unity 僅支持具有 Metal 支持的 tvOS 設(shè)備。該平臺(tái)上的默認(rèn)紋理壓縮格式是 ASTC。如果手動(dòng)添加 OpenGL ES 2,請(qǐng)確保將紋理壓縮格式更改為 PVRTC 或 ETC,以免在運(yùn)行時(shí)進(jìn)行紋理解壓縮。

關(guān)于 Android 的注意事項(xiàng)

常規(guī)紋理

除非您的應(yīng)用程序針對(duì)的是特定硬件(例如 Nvidia Tegra 或 Imagination PowerVR),否則必須在幾種壓縮格式和未壓縮格式之間進(jìn)行選擇,這種情況下需要考慮不同的取舍因素:

HDR 紋理

對(duì)于高動(dòng)態(tài)范圍 (HDR) 紋理,請(qǐng)從以下格式中進(jìn)行選擇:

  • ASTC HDR 是 Android 設(shè)備上唯一可用于 HDR 紋理的壓縮格式。這種格式需要 Vulkan 或?GL_KHR_texture_compression_astc_hdr?支持。與低動(dòng)態(tài)范圍紋理一樣,這是最靈活的格式。

  • RGB9e5 是一種打包格式,不含 Alpha 通道。所有運(yùn)行 Vulkan 或 OpenGL ES 3.0 的設(shè)備以及搭載 Nvidia Tegra GPU 的設(shè)備都支持這種格式。

  • RGBA Half 是半精度的未壓縮浮點(diǎn)格式。這種格式占用的內(nèi)存是 RGB9e5 的兩倍,但具有一個(gè) Alpha 通道,并且受到大多數(shù)設(shè)備的支持。

以不同的 APK 發(fā)布到多種設(shè)備

您可以發(fā)布以不同硬件為目標(biāo)的多個(gè)?Android 包?(APK)。例如,要發(fā)布兩個(gè)單獨(dú)的 APK(一個(gè)適用于支持 OpenGL ES 3.0 及更高版本的設(shè)備,另一個(gè)適用于僅支持 OpenGL ES 2.0 的設(shè)備),請(qǐng)按照以下步驟操作:

1.構(gòu)建一個(gè)以 OpenGL ES 3 為目標(biāo)的 APK。

  1. 訪問(wèn) Android 的?Player Settings(菜單:Edit > Project Settings > Player Settings,然后選擇 Android 類別)。

  2. 向下滾動(dòng)到?Graphics APIs?部分。

  3. 確保 OpenGL ES 2 不在列表中。

  4. 構(gòu)建 APK(菜單:File > Build Settings,然后單擊?Build)。

2.構(gòu)建一個(gè)以 OpenGL ES 2 為目標(biāo)的單獨(dú) APK。

  1. 訪問(wèn) Android Player Settings。

  2. 向下滾動(dòng)到?Graphics APIs?部分。

  3. 在列表中添加 OpenGL ES 2 并刪除 OpenGL ES 3 和 Vulkan。

  4. 構(gòu)建 APK。

3.將這兩個(gè) APK 發(fā)布到 Google Play 應(yīng)用商店。

當(dāng)用戶下載應(yīng)用程序時(shí),Google Play 應(yīng)用商店會(huì)自動(dòng)為其設(shè)備安裝最相關(guān)的 APK。

有關(guān)發(fā)布多個(gè) APK 文件的更多信息,請(qǐng)參閱 Android 開(kāi)發(fā)者文檔中的以下主題:

  • 發(fā)布多個(gè) APK

  • Google Play 應(yīng)用商店 APK 過(guò)濾。


Unity-特定于平臺(tái)的覆蓋的紋理壓縮格式的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
松原市| 玉龙| 大同县| 礼泉县| 梨树县| 侯马市| 文昌市| 柘荣县| 岐山县| 康马县| 拉萨市| 柳州市| 宣城市| 海口市| 通榆县| 保康县| 东乡| 东阿县| 大厂| 织金县| 随州市| 高雄市| 城固县| 简阳市| 长汀县| 镇雄县| 崇阳县| 韶关市| 和田县| 鄄城县| 祥云县| 龙海市| 宣汉县| 明光市| 阳东县| 绿春县| 闵行区| 淮阳县| 海南省| 郎溪县| 威宁|