NGUI紋理九宮格拉伸

2021-06-20 20:37:10 字數 1160 閱讀 8931

源:

不論是遊戲中的ui,還是應用中的ui,紋理九宮格拉伸都是必不可少的,因為採用這種拉伸方式,可以最大化的節省紋理資源,還能保證良好的表現效果!

把紋理用4條線分割成9部分(如上圖),通過觀察可以發現,5是最規則的形狀(矩形),其次是2,6,8,4(矩形,但是和四個角有公共邊),最後是四個角1,3,9,7(圓角矩形)

規則的圖形在拉伸之後的效果是比較好的,如果是不規則的圖形,則會在拉伸之後變形!

根據上圖做拉伸制定規則:

在uisprite中,對於不同型別有不同填充shader定點的方法,參照uisprite.onfill()

[csharp]view plain

copy

print?

public

override

void

onfill (betterlistverts, betterlistuvs, betterlistcols)  

}  基本的sprite是乙個矩形紋理,即兩個三角形,4個頂點,參照

[csharp]view plain

copy

print?

protected

void

******fill (betterlistverts, betterlistuvs, betterlistcols)  

九宮格拉伸的sprite相當於9個矩形紋理拼合而成,並且有部分矩形做拉伸操作,根據shader渲染三角形,需要傳4x9=36個頂點,參照

[csharp]view plain

copy

print?

protected

void

slicedfill (betterlistverts, betterlistuvs, betterlistcols)  

Unity3D開發(四) NGUI紋理九宮格拉伸

不論是遊戲中的ui,還是應用中的ui,紋理九宮格拉伸都是必不可少的,因為採用這種拉伸方式,可以最大化的節省紋理資源,還能保證良好的表現效果!把紋理用4條線分割成9部分 如上圖 通過觀察可以發現,5是最規則的形狀 矩形 其次是2,6,8,4 矩形,但是和四個角有公共邊 最後是四個角1,3,9,7 圓角...

九宮格布局

2009 08 25 15 15 27 九宮格是一種比較古老的設計,它最基本的表現其實就像是乙個三行三列的 其實它最初是在window的c s結構中用得比較多,比如我們經常看 到軟體中的乙個窗體,其實就是乙個九宮格的典型應用,因為窗體需要在八個方向拉伸,所以在c s軟體中大量採用這種技術來布局設計。...

九宮格問題

include include stl 雙端佇列容器 include include pos.h using namespace std ofstream fout sudoku.txt deque d int lay deque d int checkout pos p,int n int sud...