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