游戲開發(fā) C++ Cocos2d-x OpenGL DirectX 數(shù)學(xué) 計(jì)算機(jī)圖形學(xué) SQL Server
源碼已發(fā)布,請(qǐng)打開下載http://www.shnenglu.com/mybios/archive/2008/10/31/65636.html上次發(fā)了個(gè)這樣的圖,結(jié)果被某些人鄙視了,很郁悶啊。我們把一個(gè)魔獸3的草地貼圖提取出來,并且用下面的分塊方法來標(biāo)示每一塊小貼圖,然后通過一種特定的方式來組織這些小貼圖,形成真正的地表貼圖。魔獸爭(zhēng)霸編輯器中刷地表時(shí),刷一格就會(huì)影響四個(gè)周圍的渲染塊,具體如何影響?請(qǐng)看下圖:這是貼圖的分塊索引方法:通過魔獸爭(zhēng)霸地圖編輯器點(diǎn)一下刷地表草之后,在地圖中就會(huì)出現(xiàn)一小塊綠色草地地表,請(qǐng)注意在圖中我用數(shù)字1、2、4、8來表示四個(gè)渲染塊對(duì)應(yīng)的貼圖索引,而這個(gè)1、2、4、8是固定的。代表的是相對(duì)于筆刷位置(筆刷位置是指周圍四個(gè)渲染塊中間位置)來說,左下角的角落貼圖索引是1;右下角的角落貼圖索引是2;左上角的角落貼圖索引是4;右上角的角落貼圖索引是8。如下圖所示:如果在已經(jīng)有草地的地表旁邊再點(diǎn)一下刷地表,會(huì)刷成如下圖這個(gè)樣子:看明白8+4=12沒有?這里是兩個(gè)角落貼圖索引相加后的結(jié)果,得到12,就從文章開頭的索引貼圖中找到12對(duì)應(yīng)的小貼圖貼上去。2+1=3同理,用兩個(gè)角落貼圖索引相加后的結(jié)果3從索引貼圖中找到3對(duì)應(yīng)的小貼圖貼上去。這樣得到的效果就會(huì)變成如下圖:這里有是更復(fù)雜的情況,有三個(gè)角落相加,1+8+4=13,不過道理都是一樣的。最后說一下四周都有貼圖的情況,看到中間筆刷位置沒有?筆刷左上方有一個(gè)貼圖,對(duì)應(yīng)的是貼圖索引中的0,這是因?yàn)樗膫€(gè)角都填充了,所以就需要從0、16~31中隨機(jī)選擇一個(gè)小貼圖貼上去以完整的填充整個(gè)渲染塊:至此貼圖選擇的方法已經(jīng)說完了。至于渲染的方法,都是大同小異,這里就不多說了。
如果本文對(duì)你的開發(fā)有所幫助,并且你手頭恰好有零錢。
不如打賞我一杯咖啡,鼓勵(lì)我繼續(xù)分享優(yōu)秀的文章。
Copyright @ 李錦俊(mybios) Powered by: .Text and ASP.NET Theme by: .NET Monster