spine 导出纹理_Spine 纹理打包Texture packing_官方文档中文版
馬上注冊,加入CGJOY,讓你輕松玩轉CGJOY。
您需要 登錄 才可以下載或查看,沒有帳號?立即注冊
x
本帖最后由 笑蝦 于 2014-10-7 20:45 編輯
歡迎入群??Spine2D骨骼動畫??1群:7708065,2群:225097509
大家好,我是笨笨,笨笨的笨,笨笨的笨,謝謝!總述(Overview)
Spine 能幫你把分散的圖片打包成一張完整的紋理貼圖集或精靈表(spritesheet)以便在運行時更有效率的渲染。Spine的紋理打包器(texture packer)是一個通用工具。它即可以用于為Spine的骨骼打包紋理,也可以單獨運行為你打包應用程序所需的所有圖片資源。
大多數圖形API(如:OpenGL)的工作原理是這樣的,綁定一張紋理,然后渲染,完成之后再綁定一張再渲染,如此往復直到全部完成。綁定紋理相對來說需要消耗大量的系統資源,所以理想的情況是把一堆小圖儲存為一張大圖,然后就可以一次綁定,再將各區域分多次渲染。Spine能有效的將大量小圖打包成大圖,每張小圖的定位信息儲存在一個采樣文件中,它們可以通過名稱在程序中引用。
Spine使用了多種先進打包算法。對各種尺寸進行海量嘗試,然后選擇最優打包方案。
打包(Packing)
紋理打包器可以通過兩種方式運行:
1) 當導出“JSON”或“二進制”動畫數據時,勾選`Create Atlas`:
0.jpg (36.04 KB, 下載次數: 81)
2014-10-7 20:43 上傳
這個方法可以便捷的同時導出動畫數據和打包紋理,但是每套骨架會各自分別打包輸出圖片,并且忽略目錄結構[directory structure](#Directory-structure)和JSON文件[JSON files](#JSON-Configuration)。要將多套骨架的圖片信息打包在一起,請使用下面的方法運行打包器。
2) 在主菜單中選擇`Texture Packer`:
1.jpg (6.57 KB, 下載次數: 82)
2014-10-7 20:43 上傳
然后指定圖片路徑進行打包:
輸入目錄:(Input directory),輸出目錄:(Output directory),貼圖集名稱:(Atals name)
2.jpg (15.88 KB, 下載次數: 94)
2014-10-7 20:43 上傳設置(Settings)
有許多參數用于控制如何打包圖片:
3.jpg (64.17 KB, 下載次數: 104)
2014-10-7 20:43 上傳
一眼看上去可能讓人望而生畏,但大多數情況下用默認設置就可以了。需要特別注意的地方有: 1)最大長/寬值(Max width/height), 2)是否勾選了預乘alpha(premultiplied alpha), 3)是否勾選了去除白邊。**如果使用了網絡,那應該取消去除白邊(Strip whitespace X/Y)。
區域(Regions)
設置描述
Strip whitespace X/Y移除輸入圖片邊緣的空白像素。移除的量儲存在 Atlas 文件中,因此圖片可以在你的應用程序中繪制就好像沒裁剪過一樣。如果使用了網格,應該取消移除空白邊緣的選項。
Rotation將某些圖片旋轉90度能高率的打包。應用程序必須特別注意要正確繪制這些地區。
Alias如果兩張圖片的所有像素完全相同,那么只打包一次。
Ignore blank images完全透明的圖片不打包。
Alpha threshold移除空白邊緣時,Alpha 低于此值的,被視為0。
區域填充(Region padding)
設置描述
Padding X/Y打包的各圖片區域之間的填充像素。某些紋理過濾會平均混合相鄰像素,所以推薦區域間填充2個像素以避免相鄰的區域互相影響。
Edge padding填充也將應用到圖片頁面的邊緣。
Duplicate padding拷貝相鄰的像素用于填充。如果紋理過濾選擇了填充像素,此設置能消除"接縫"瑕疵。
頁面(Pages)
設置描述
Min width/height輸出圖片的最小頁面尺寸。
Max width/height輸出圖片的最大頁面尺寸。如果圖片大于此值,將分多頁輸出。
Power of two確保輸出圖片的尺寸大小為 2 的冪。某些游戲開發包有此需求。
Square確保輸出的圖片長寬相等。某些紋理壓縮算法有此需求(如: PVRT)。
輸出(Output)
設置描述
Format輸出 PNG 或 JPG 圖片。
JPG quality輸出的 JPG 的壓縮質量。
Packing`Atlas` 打包圖片盡可能緊湊的在一起。`Grid` 打包圖片均勻的排列在網格中。(眾所周知的精靈表spritesheet)。
Premultiply alpha將 alpha 與每個 R、G 和 B 通道相乘。推薦在適合的情況下用[proper blending](http://esotericsoftware.com/forum/viewtopic.php?p=15772).
Bleed設置透明像素到最近的非透明像素的RGB值。以免在對透明像素進行 RGB 采樣時造成紋理過濾的瑕疵[filtering artifacts](http://esotericsoftware.com/forum/viewtopic.php?p=13480#p13480)。
Scale為每個比例單獨輸出完整的 Atlas。
Suffix每個縮放比例 Atlas 的后輟。如果留空,不同尺寸將使用相同文件名,分別輸出到以尺寸命名的子文件夾中。
選項(Options)
設置描述
Atlas extensionatlas 數據文件的擴展名。
Combine subdirectories將當前目錄和所有子目錄的圖片打包在同一張圖片上。忽略所有子目錄中的設置文件 Pack.json。
Flatten paths目錄信息將從圖片文件名字中移除。圖片的文件名必須唯一。
Use indexes使用圖片名稱無需移除任何圖片索引后綴(在最后一個下劃線之后的任意字符)
Fast打包速度更快,但效果不受影響。
Debug在輸出的頁面上,為所有圖片區域繪制邊框。
運行庫(Runtime)
以下這些設置意在應用程序運行時,提示相關信息。
設置描述
Filter min/mag紋理過濾的縮小和放大設置。
Wrap X/Y重復貼圖紋理的設置。
Format貼圖紋理在內存中使用的格式。
目錄結構(Directory structure)
Spine 能為應用程序一次性打包所有圖片。給定一個目錄,它就會遞歸掃描其下的圖片文件。將當前目錄和所有子目錄中Spine找到的圖片文件拼成一張更大的紋理貼圖,稱作"頁"。如果圖片大小超過了一頁的最大尺寸,將會分成多頁。
同一個目錄下的圖片會打包在同一頁上。如果一頁能放下所有圖片,那就不需要分目錄存放,因為每個應用程序只綁定一張紋理。否則,把圖片分類放在不同的子文件夾下,可以最大限度地減少紋理綁定次數。
例如:應用程序可希望把所有的 "game"圖片和"pause menu"圖片分別放在不同的文件夾里,這樣連續繪制這兩張圖片只要:先綁定"game"并繪制(綁定一次),完成后再綁定"pause menu"再繪制(再綁定一次)。如果這些文件都放在同一個目錄下,將會被混合打包在多個頁面中,每個頁面中都有"game"和"pause menu"圖片。這樣一來,在繪制"game"和"pause menu"時都需要執行多次綁定紋理的操作,而無法像之前那樣各綁定一次就能完成繪制。
按文件夾分類圖片,還能將紋理設置相關的圖片組織在一起。比如每張圖運行時的內存格式(RGBA, RGB,等等),過濾(nearest, linear,等等)。圖片需要不同的紋理設置,就要分為不同的頁面打包,這時應該將圖片用文件夾分開放置。
用文件夾來組織,還是用 Spine將所有子目錄打包到一起,請看`Combine subdirectories`設置。
為了避免子目錄的路徑出現在 atlas文件的圖片名稱中,請看`Flatten paths`設置。
JSON 結構(JSON Configuration)
每個文件夾可以包含一個 "pack.json"文件用于具體指定此文件夾下圖片的打包設置。每個子文件夾繼承其父級的設置。子文件夾中的設置會覆蓋父級的設置。
下面是一個 JSON文件的例子,包含了所有可用的設置。
{
pot: true,
paddingX: 2,
paddingY: 2,
bleed: true,
edgePadding: true,
duplicatePadding: false,
rotation: false,
minWidth: 16,
minHeight: 16,
maxWidth: 1024,
maxHeight: 1024,
square: false,
stripWhitespaceX: false,
stripWhitespaceY: false,
alphaThreshold: 0,
filterMin: Nearest,
filterMag: Nearest,
wrapX: ClampToEdge,
wrapY: ClampToEdge,
format: RGBA8888,
alias: true,
outputFormat: png,
jpegQuality: 0.9,
ignoreBlankImages: true,
fast: false,
debug: false,
combineSubdirectories: false,
flattenPaths: false,
premultiplyAlpha: false,
useIndexes: true,
grid: false,
scale: [ 1 ],
scaleSuffix: [ "" ]
}
注意這是 libgdx的"minimal" JSON格式,因此雙引號通常是可選的。
不是所有的設置都需要指定,可以省略部分或全部。例如:取消填充(padding)和 合并目錄(combine subdirectories)那么JSON可以寫成這樣:
{
paddingX: 0,
paddingY: 0,
combineSubdirectories: false
}
在設置 [Settings](#Settings)對話框有一個保存JSON `Save JSON`按鈕能保存當前設置。此文件會命名為`pack.json`將它放要輸入圖片的文件夾下就成了此目錄的設置文件,用不著手動創建設置文件。
九宮格(Ninepatches)
九宮格一般不用于 Spine骨骼,但有其它的用途。
不算擴展名,如果一個圖片文件的名稱以".9"結尾,那么它將被識別為九宮格。可以手動創建九宮格圖片,也可以使用這個工具[this tool]。圖片必須有1px的透明邊框。左上邊緣可以有一條連續的黑線用于定義切割信息,九宮格中哪部分將會伸展。在右下邊緣可以有一條連續的黑線用來定義填充信息,內容如何在九宮格中填充。圖片打包時,1px的透明邊框會被移除,切割和填充信息會儲存在atlas數據文件里。
圖片索引(Image indexes)
圖片索引一般不用于 Spine骨骼,但有其它的用途。
如果一個圖片文件名以下劃線加數字結尾(例如:`animation_23.png`),這個數字將被識別為索引,圖片的索引會儲存在atlas文件中。儲存圖片文件名時不包含下劃線和索引。這樣便可以通過索引在一個列表中檢索這些圖片。這樣能更方便的打包精靈動畫避免搞亂幀的順序。
總結
以上是生活随笔為你收集整理的spine 导出纹理_Spine 纹理打包Texture packing_官方文档中文版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 员工在工作的电脑中存有大量淫秽内容,单位
- 下一篇: 玉柴spn码故障对照表_后处理的故障不总