5格式數(shù)據(jù)中的每一個(gè)像素點(diǎn)的alpha值不全為O或不全為I時(shí),將所述DXT5格式數(shù)據(jù)和所述目標(biāo)貼圖中的對(duì)應(yīng)位置的顏色數(shù)據(jù),分別轉(zhuǎn)換為ARGB8888格式的數(shù)據(jù),并將轉(zhuǎn)換后的兩個(gè)數(shù)據(jù)進(jìn)行alpha融合,再將融合后的顏色數(shù)據(jù)壓縮回DXT5格式的數(shù)據(jù),輸出到所述目標(biāo)貼圖中的對(duì)應(yīng)位置。
[0044]第四方面,本發(fā)明提供了一種貼圖處理裝置,包括:
[0045]第二獲取單元,用于獲取用于與目標(biāo)貼圖進(jìn)行alpha融合的中間貼圖文件;其中,所述中間貼圖文件記載了源貼圖中的每一個(gè)像素塊的位置信息、屬性和顏色數(shù)據(jù);
[0046]第二貼圖處理單元,用于根據(jù)所述中間貼圖文件中的每一個(gè)像素塊的位置信息,依次讀取所述每一個(gè)像素塊的屬性和顏色數(shù)據(jù),對(duì)所述目標(biāo)貼圖中的對(duì)應(yīng)位置進(jìn)行貼圖處理;
[0047]和,第二輸出單元,用于當(dāng)所述中間貼圖文件中的每一個(gè)像素塊均被讀取且處理完畢后,輸出alpha融合后的目標(biāo)貼圖;
[0048]其中,所述第二貼圖處理單元包括:第四處理子單元、第五處理子單元和第六處理子單元;
[0049]所述第四處理子單元,用于當(dāng)所讀取的像素塊的屬性為鏤空像素塊時(shí),使所述目標(biāo)貼圖中的對(duì)應(yīng)位置的顏色數(shù)據(jù)保持不變;其中,所述鏤空像素塊的顏色數(shù)據(jù)為空;
[0050]所述第五處理子單元,用于當(dāng)所讀取的像素塊的屬性為實(shí)心像素塊時(shí),將所述像素塊的顏色數(shù)據(jù)拷貝至所述目標(biāo)貼圖中的對(duì)應(yīng)位置;其中,所述實(shí)心像素塊的顏色數(shù)據(jù)為DXT5格式的數(shù)據(jù);
[0051]所述第六處理子單元,用于當(dāng)所讀取的像素塊的屬性為待融合像素塊時(shí),將所述目標(biāo)貼圖中的對(duì)應(yīng)位置的顏色數(shù)據(jù)轉(zhuǎn)換為ARGB8888格式的數(shù)據(jù),并與所述待融合像素塊的顏色數(shù)據(jù)進(jìn)行alpha融合,將融合后的顏色數(shù)據(jù)壓縮回DXT5格式的數(shù)據(jù),再輸出到所述目標(biāo)貼圖中的對(duì)應(yīng)位置;其中,所述待融合像素塊的顏色數(shù)據(jù)為ARGB8888格式的數(shù)據(jù)。
[0052]進(jìn)一步的,所述貼圖處理裝置還包括:
[0053]第三獲取單元,用于在所述第二獲取單元獲取用于與目標(biāo)貼圖進(jìn)行alpha融合的中間貼圖文件之前,獲取用于與所述目標(biāo)貼圖進(jìn)行alpha融合的源貼圖文件;其中,所述源貼圖文件包含所述源貼圖中的每一個(gè)像素塊的DXT5格式數(shù)據(jù)和位置信息;所述DXT5格式數(shù)據(jù)包含所述像素塊的每一個(gè)像素點(diǎn)的顏色數(shù)據(jù)和alpha值;
[0054]第三轉(zhuǎn)換單元,用于創(chuàng)建一個(gè)中間貼圖文件,根據(jù)所述源貼圖文件中每一個(gè)像素塊的位置信息,依次讀取每一個(gè)像素塊的DXT5格式數(shù)據(jù)進(jìn)行轉(zhuǎn)換,并寫入到所述中間貼圖文件中;
[0055]和,第三輸出單元,用于所述第三轉(zhuǎn)換單元對(duì)所述源貼圖文件的每一個(gè)像素塊進(jìn)行轉(zhuǎn)換后,輸出記載了所述源貼圖中的每一個(gè)像素塊的位置信息、屬性和顏色數(shù)據(jù)的中間貼圖文件;
[0056]其中,所述第三轉(zhuǎn)換單元包括:第一轉(zhuǎn)換子單元、第二轉(zhuǎn)換子單元和第三轉(zhuǎn)換子單元;
[0057]所述第一轉(zhuǎn)換子單元,用于當(dāng)所讀取的DXT5格式數(shù)據(jù)中的每一個(gè)像素點(diǎn)的alpha值均為O時(shí),將所述DXT5格式數(shù)據(jù)所對(duì)應(yīng)的像素塊的屬性確定為鏤空像素塊,并將所述鏤空像素塊的顏色數(shù)據(jù)配置為空,再將所述鏤空像素塊的位置信息、屬性和顏色數(shù)據(jù)寫入到所述中間貼圖文件;
[0058]所述第二轉(zhuǎn)換子單元,用于當(dāng)所讀取的DXT5格式數(shù)據(jù)中的每一個(gè)像素點(diǎn)的alpha值均為I時(shí),將所述DXT5格式數(shù)據(jù)所對(duì)應(yīng)的像素塊的屬性確定為實(shí)心像素塊,并將所述DXT5格式數(shù)據(jù)中的顏色數(shù)據(jù)提取出來(lái),直接作為所述實(shí)心像素塊的顏色數(shù)據(jù),再將所述實(shí)心像素塊的位置信息、屬性和顏色數(shù)據(jù)寫入到所述中間貼圖文件;
[0059]所述第三轉(zhuǎn)換子單元,用于當(dāng)所讀取的DXT5格式數(shù)據(jù)中的每一個(gè)像素點(diǎn)的alpha值不全為O或不全為I時(shí),將所述DXT5格式數(shù)據(jù)所對(duì)應(yīng)的像素塊的屬性確定為待融合像素塊,并將所述DXT5格式數(shù)據(jù)中的顏色數(shù)據(jù)提取出來(lái),轉(zhuǎn)換為ARGB8888格式的數(shù)據(jù)后,再作為所述待融合像素塊的顏色數(shù)據(jù),最后將所述待融合像素塊的位置信息、屬性和顏色數(shù)據(jù)寫入到所述中間貼圖文件。
[0060]進(jìn)一步的,所述貼圖處理裝置還包括:
[0061]第四獲取單元,用于在所述第二獲取單元獲取用于與目標(biāo)貼圖進(jìn)行alpha融合的中間貼圖文件之前,獲取用于與所述目標(biāo)貼圖進(jìn)行alpha融合的源貼圖文件;其中,所述源貼圖文件包含所述源貼圖中的每一個(gè)像素塊的DXT5格式數(shù)據(jù)和位置信息;所述DXT5格式數(shù)據(jù)包含所述像素塊的每一個(gè)像素點(diǎn)的顏色數(shù)據(jù)和alpha值;
[0062]第四轉(zhuǎn)換單元,用于創(chuàng)建一個(gè)中間貼圖文件,根據(jù)所述源貼圖文件中每一個(gè)像素塊的位置信息,依次讀取每一個(gè)像素塊的DXT5格式數(shù)據(jù)進(jìn)行轉(zhuǎn)換,并寫入到所述中間貼圖文件中;
[0063]和,第四輸出單元,用于所述第四轉(zhuǎn)換單元對(duì)所述源貼圖文件的每一個(gè)像素塊進(jìn)行轉(zhuǎn)換后,輸出記載了所述源貼圖中的每一個(gè)像素塊的位置信息、屬性和顏色數(shù)據(jù)的中間貼圖文件;
[0064]其中,所述第四轉(zhuǎn)換單元包括:第四轉(zhuǎn)換子單元、第五轉(zhuǎn)換子單元和第六轉(zhuǎn)換子單元;
[0065]所述第四轉(zhuǎn)換子單元,用于當(dāng)所讀取的DXT5格式數(shù)據(jù)中的每一個(gè)像素點(diǎn)的alpha值均為O時(shí),將所述DXT5格式數(shù)據(jù)所對(duì)應(yīng)的第i個(gè)像素塊的屬性確定為鏤空像素塊,并記錄所述第i個(gè)像素塊的位置信息;若下一個(gè)讀取的DXT5格式數(shù)據(jù)所對(duì)應(yīng)的像素塊不為鏤空像素塊,則將所述第i個(gè)像素塊的顏色數(shù)據(jù)配置為空,再將所述第i個(gè)像素塊的位置信息、屬性和顏色數(shù)據(jù)寫入到所述中間貼圖文件;若后續(xù)讀取的N個(gè)連續(xù)的DXT5格式數(shù)據(jù)所對(duì)應(yīng)的像素塊均被確定為鏤空像素塊,則將所述第i個(gè)像素塊及后續(xù)的N個(gè)連續(xù)像素塊的顏色數(shù)據(jù)配置為空,再將所述第i個(gè)像素塊的位置信息、后續(xù)連續(xù)鏤空像素塊的個(gè)數(shù)N、屬性及顏色數(shù)據(jù)寫入到所述中間貼圖文件;
[0066]所述第五轉(zhuǎn)換子單元,用于當(dāng)所讀取的DXT5格式數(shù)據(jù)中的每一個(gè)像素點(diǎn)的alpha值均為I時(shí),將所述DXT5格式數(shù)據(jù)所對(duì)應(yīng)的像素塊的屬性確定為實(shí)心像素塊,并將所述DXT5格式數(shù)據(jù)中的顏色數(shù)據(jù)提取出來(lái),直接作為所述實(shí)心像素塊的顏色數(shù)據(jù),再將所述實(shí)心像素塊的位置信息、屬性和顏色數(shù)據(jù)寫入到所述中間貼圖文件;
[0067]所述第六轉(zhuǎn)換子單元,用于當(dāng)所讀取的DXT5格式數(shù)據(jù)中的每一個(gè)像素點(diǎn)的alpha值不全為O或不全為I時(shí),將所述DXT5格式數(shù)據(jù)所對(duì)應(yīng)的像素塊的屬性確定為待融合像素塊,并將所述DXT5格式數(shù)據(jù)中的顏色數(shù)據(jù)提取出來(lái),轉(zhuǎn)換為ARGB8888格式數(shù)據(jù)后,再作為所述待融合像素塊的顏色數(shù)據(jù),最后將所述待融合像素塊的位置信息、屬性和顏色數(shù)據(jù)寫入到所述中間貼圖文件。
[0068]進(jìn)一步的,所述中間貼圖文件中記載的像素塊的位置信息,為所述像素塊相對(duì)于所述源貼圖中的第一個(gè)像素塊的索引偏移。
[0069]實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:
[0070]本發(fā)明實(shí)施例提供的一種基于alpha融合的貼圖處理方法,在與目標(biāo)貼圖進(jìn)行alpha融合時(shí),通過對(duì)源貼圖文件中的每個(gè)像素塊中每個(gè)像素點(diǎn)的alpha值進(jìn)行判斷,當(dāng)所有像素點(diǎn)的alpha值均為O時(shí),使目標(biāo)貼圖中的對(duì)應(yīng)位置的顏色數(shù)據(jù)保持不變;當(dāng)所有像素點(diǎn)的alpha值均為I時(shí),將該像素塊的DXT5格式數(shù)據(jù)中的顏色數(shù)據(jù)拷貝至目標(biāo)貼圖中的對(duì)應(yīng)位置;當(dāng)所有像素點(diǎn)的alpha值不全為O或不全為I時(shí),將該像素塊和目標(biāo)貼圖中的對(duì)應(yīng)位置的顏色數(shù)據(jù)提取出來(lái),分別轉(zhuǎn)換為ARGB8888格式的數(shù)據(jù)進(jìn)行alpha融合,再將融合后的顏色數(shù)據(jù)壓縮回DXT5格式的數(shù)據(jù),輸出到目標(biāo)貼圖的對(duì)應(yīng)位置。當(dāng)源貼圖文件中的每一個(gè)像素塊均被處理完畢后,獲得alpha融合后的目標(biāo)貼圖。相比于現(xiàn)有技術(shù)將源貼圖文件和目標(biāo)貼圖中的所有像素塊由DXT5格式轉(zhuǎn)換為ARGB8888格式后,再進(jìn)行alpha融合,融合時(shí)以每一個(gè)像素點(diǎn)作為單位,本發(fā)明技術(shù)方案以整個(gè)像素塊為處理單位,節(jié)省了數(shù)據(jù)轉(zhuǎn)換的次數(shù),提高了alpha融合的效率。
[0071]另外,本發(fā)明還提供了一種基于alpha融合的貼圖處理方法,該方法將源貼圖文件預(yù)先轉(zhuǎn)換為中間貼圖文件,該轉(zhuǎn)換過程可以在離線預(yù)處理完成,將數(shù)據(jù)轉(zhuǎn)換的開銷轉(zhuǎn)移至離線的預(yù)處理階段,降低了本地設(shè)備的硬件需求,提高了 alpha融合的效率。
[0072]進(jìn)一步的,本發(fā)明中的中間貼圖文件對(duì)源貼圖文件進(jìn)行壓縮,減少了所占用的磁盤空間,相比于加載源貼圖文件,本發(fā)明的中間貼圖文件具有更快的加載速度,進(jìn)一步提高alpha融合的效率。
【附圖說(shuō)明】
[0073]圖1至圖6分別是現(xiàn)有技術(shù)提供的角色皮膚、腰帶、靴子、胸甲、手套和褲子貼圖的效果示意圖;
[0074]圖7是現(xiàn)有技術(shù)提供的alpha融合后的角色目標(biāo)貼圖的效果示意圖;
[0075]圖8是現(xiàn)有技術(shù)提供的DXT5格式的像素塊的顏色壓縮格式示意圖;
[0076]圖9是現(xiàn)有技術(shù)提供的DXT5格式的像素塊的alpha值壓縮格式示意圖;
[0077]圖10是本發(fā)明提供的基于alpha融合的貼圖處理方法的一種實(shí)施例的流程示意圖
[0078]圖11是本發(fā)明提供的貼圖處理方法的另一種實(shí)施例的流程示意圖
[0079]圖12是本發(fā)明提供的基于alpha融合的貼圖處理方法的又一種實(shí)施例的流程示意圖;
[0080]圖13是本發(fā)明提供的貼圖處理裝置的一種實(shí)施例的結(jié)構(gòu)示意圖[0081 ]圖14是本發(fā)明提供的貼圖處理裝置的另一種實(shí)施例的結(jié)構(gòu)示意圖;
[0082]圖15是本發(fā)明提供的貼圖處理裝置的又一種實(shí)施例的結(jié)構(gòu)示意圖;
[0083]圖16是本發(fā)明實(shí)施例提供的貼圖裝置的另又一種實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0084]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0085]實(shí)施例1
[0086]參見圖10,是本發(fā)明提供的基于alpha融合的貼圖處理方法的一種實(shí)施例的流程示意圖。該貼圖處理方法適用于以DXT5格式進(jìn)行壓縮存儲(chǔ)的貼圖,其主要包括步驟101至步驟103,具體如下:
[0087]步驟101:獲取用于與目標(biāo)貼圖進(jìn)行alpha融合的源貼圖文件;其中,源貼圖文件包含源貼圖中的每一個(gè)像素塊的DXT5格式數(shù)據(jù)和位置信息;該DXT5格式數(shù)據(jù)包含像素塊的每一個(gè)像素點(diǎn)的顏色數(shù)據(jù)和alpha值。
[0088]在本實(shí)施例中,游戲的裝備換裝主要通過目標(biāo)貼圖與源貼圖文件進(jìn)行alpha融合來(lái)實(shí)現(xiàn)。本發(fā)明獲取需與目標(biāo)貼圖進(jìn)行alpha融合的源貼圖文件,而源貼圖文件包含源貼圖中每一個(gè)像素塊的DXT5格式數(shù)據(jù)和位置信息。由于DXT5格式的數(shù)據(jù)是以16個(gè)像素點(diǎn)為單位進(jìn)行壓縮存儲(chǔ)的,故該位置信息用于標(biāo)明每個(gè)像素塊在源貼圖上的位置。
[0089]步驟102:根據(jù)每一個(gè)像素塊的位置信息,依次讀取每一個(gè)像素塊的DXT5格式數(shù)據(jù),對(duì)目標(biāo)貼圖中的對(duì)應(yīng)位置進(jìn)行貼圖處理。
[0090]在本實(shí)施例中,步驟102包括:
[0091 ]當(dāng)所讀取的DXT5格式數(shù)據(jù)中的每一個(gè)像素點(diǎn)的alpha值均為O時(shí),使目標(biāo)貼圖中的對(duì)應(yīng)位置的顏色數(shù)據(jù)保持不變。
[0092]當(dāng)所讀取的DXT5格式數(shù)據(jù)中的每一個(gè)像素點(diǎn)的alpha值均為I時(shí),將DXT5格式數(shù)據(jù)中的每一個(gè)像素點(diǎn)的顏色數(shù)據(jù)拷貝至目標(biāo)貼圖中的對(duì)應(yīng)位置。
[0093]當(dāng)所讀取的DXT5格式數(shù)據(jù)中的每一個(gè)像素點(diǎn)的alpha值不全為O或不全為I時(shí),將DXT5格式數(shù)據(jù)和目標(biāo)貼圖中的對(duì)應(yīng)位置的顏色數(shù)據(jù),分別轉(zhuǎn)換為AR