匯入圖片

支援的圖片格式

Godot 可匯入下列圖片格式:

  • BMP (.bpm) - 不支援每像素 16 位元的圖片。僅支援每像素 1 位元、4 位元、8 位元、24 位元與 32 位元的圖片。

  • DirectDraw Surface (.dds) - 若紋理中有 Mipmap,則會直接載入 Mipmap。可以使用自定 Mipmap 來製作特效。

  • OpenEXR (.exr) - 支援 HDR (強烈建議用於全景天空)。

  • Radiance HDR (.hdr) - 支援 HDR (強烈建議用於全景天空)。

  • JPEG (.jpg, .jpeg) - 由於檔案格式限制,不支援透明度。

  • PNG (.png) - 匯入時精度限制在每頻道 8 位元 (無 HDR 圖片)。

  • Truevision Targa (.tga)

  • SVG (.svg, .svgz) - SVG 在匯入時會使用 NanoSVG 柵欄化。支援有限。可能無法正確算繪複雜的向量。若為較複雜的向量,建議使用 Inkscape 算繪為 PNG 以獲得最佳效果。此操作可使用 Inkscape 的 命令行界面 (英文) 來自動化。

  • WebP (.webp)

備註

若使用自行從原始碼編譯的 Godot 編輯器時禁用了特定模組,可能會無法使用某些格式。

匯入紋理

Godot 中的預設操作是將圖片匯入為紋理。紋理保存在視訊記憶體中,無法直接存取。這樣一來也能有效率地繪製。

有許多匯入選項:

../../../_images/image_import1.png

Detect 3d 選項

通過該選項可以讓 Godot 紋理何時使用於 3D (紋理預設匯入為 2D)。若該選項開啟後,會變更設定,以讓旗標能對 3D 更友善 (Mipmap, Filter 與 Repeat 會變為啟用,Compress 會改為 VRAM)。貼圖也會自動重新匯入。

壓縮

圖片是遊戲中其中一個最大的素材。為了有效率地處理圖片,應該進行壓縮。Godot 依據使用情況,提供了數種壓縮方法。

壓縮模式

  • VRAM 壓縮: 3D 素材中最常見的壓縮方式。可以減少硬碟暫用與記憶體使用 (通常介於 4 倍與 6 倍間)。由於會出現明顯的噪點,建議不要在 2D 素材上使用。

  • Lossless - 無損壓縮: 最常用於 2D 素材。不會顯示出噪點,也有適當地壓縮硬碟空間。雖然通常會使用比 VRAM 壓縮更多的視訊記憶體。該模式也建議用於像素畫 (Pixel Art)。

  • Lossy - 有損壓縮: 有損壓縮適合用於大型 2D 素材。會產生噪點,但比 VRAM 少,且檔案大小比起無損壓縮或無壓縮也小了數倍。此種模式並未降低視訊記憶體使用量,與 Lossless 無損壓縮及 Uncompressed 無壓縮相同。

  • Uncompressed - 無壓縮: 只適用於無法壓縮的格式 (如 raw float 圖片)。

在下表中,分別寫出了四個選項各自的優點與缺點 (good = 最優、 bad = 最差):

無壓縮

無損壓縮 (PNG)

有損壓縮 (WebP)

VRAM 壓縮

說明

以原始像素點保存

保存為 PNG

保存為 WebP

依據不同平台,保存為 S3TC/BC 或 PVRTC/ETC

硬碟空間

bad

regular

good 非常小

regular

記憶體佔用

bad

bad

bad

good

效能

regular 普通

regular 普通

regular 普通

good

品質損失

good

good

regular 稍微

bad 中等

載入時間

regular 普通

bad

bad

good

HDR 模式

Godot 支援高動態範圍紋理 (.HDR 或 .EXR)。這些紋理最適合用於動態範圍等距柱狀全景天空 (網路上可找到許多結果),該功能取代了 Godot 2.x 版中的 Cubemap。新電腦支援 BC6H VRAM 格式,但仍有許多電腦未支援。

若希望能讓 Godot 確保完全支援各種紋理,請開啟「Force RGBE」選項。

法線映射

當使用作為法線映射的紋理貼圖時,只需要紅色與綠色通道。使用一般的紋理貼圖壓縮演算法會產生噪點,使法線映射不那麼好看。RGTC 壓縮格式最適合用於此資料。將該選項強制設為「Enabled」會使 Godot 以 RGTC 壓縮匯入圖片。預設情況下,該選項設為「Detect」則代表若貼圖有用於法線映射,則會自動更改為「Enabled」並重新匯入。

請注意,RGTC 壓縮會影響法線映射圖片。為此則必須手動調整使用該法線映射的著色器。

備註

Godot 中的法線映射必須使用 X+, Y- 與 Z+ 座標。換句話說,若匯入使用於其他引擎的素材,則必須將其 Y 軸翻轉過來,否則,法線映射方向的 Y 軸可能會顯示為相反。

有關更多法線映射的資訊 (包含各種常見引擎的座標順序表),請參考 此處 (英文)

旗標

依據使用情況,匯入圖片為紋理時有許多可調整的設定。

Repeat - 重複

該設定最常用於 3D,而 2D 中通常會禁用。開啟後會將超過 0,0 ~ 1,1 的 UV 座標設為「Loop」。

重複選項也可設定為 Mirrored (鏡像) 模式。

Filter - 過濾

當像素點大於實際螢幕像素時,該選項可對像素點作線性插值。如此一來便能讓紋理貼圖看起來更平滑 (更少馬賽克)。該設定通常用於 2D 與 3D,但對於製作像素完美 (Pixel Perfect) 遊戲時則大多會禁用。

Mipmaps

若像素小於螢幕,則可使用 Mipmap。開啟 Mipmap 能有效降低縮小紋理時造成的顆粒感。但請記得,在較舊的硬體上 (GLES2,主要為行動裝置),要使用 Mipmap 有一些條件:

  • 紋理的寬與高必須為 2 的倍數

  • 必須開啟「Repeat」

在製作手機遊戲與應用程式時,若像達到完整相容並使用 Minimap,請務必謹記上述條件。

用於 3D 時,建議開啟 Mipmap,可一併提高效能 (小版本的紋理貼圖會用於遠處的物件)。

各向異性

若貼圖幾乎與視圖平行時 (如地板),則開啟該選項可藉由降低模糊程度來提供更多細節。

SRGB

Godot 在 3D 算繪時使用線性色彩空間。映射至反照通道 (Albedo) 或詳細通道 (Detail) 的紋理貼圖必須開啟此選項以使顏色顯示正確。選擇「Detect」模式時,紋理將在使用反照通道時設定為 SRGB。

Process - 處理

匯入為紋理貼圖後可套用某些特殊處理至圖片上。

Fix Alpha Border - 修正 Alpha 邊界

該處理會將周圍有相同顏色的像素從透明轉變為非透明。可有效減少從 Photoshop 等軟體匯出的圖片中的外框線效果。

../../../_images/fixedborder.png

除了需要特殊值,建議保留預設。

Premultiplied Alpha - 預乘 Alpha

另一種修正深色邊框的方法是使用預乘 Alpha。開啟該選項後,紋理貼圖會轉換為此格式。請注意,必須先建立材料,且該材料需在有需要的項目上開啟「Premult Alpha」混合模式。

HDR as sRGB - 將 HDR 轉為 sRGB

有些損壞的 HDR 包含 sRGB 色彩資料。建議不使用這些檔案。但,最糟的情況下,開啟該選項可使這些檔案正確顯示。

Invert Color - 色彩反轉

反轉圖片的色彩。適用於一些情況,如:將外部程式產生的高度映射轉換為深度映射,以於 Spatial Material 中使用。

Svg

Scale - 縮放

該選項只會套用於 SVG 檔。用於控制 SVG 圖像的縮放。預設的縮放為 (1.0),會使匯入的 SVG 保持原始大小。