2012-07-11 57 views
1

我正在嘗試生成玩家頭部的3D等距視圖,但我不確定PHP對此類操作或可能更適合的任何外部庫有什麼樣的支持。如何在PHP中生成Minecraft皮膚的等距圖像?

基本上我需要一個像thishere是一個圖表顯示每個部分被映射到),並從它做出一個3D頭。我還需要包括'頭部附件'部分,它應該比實際頭部稍大/偏移。

有誰知道我應該怎麼做呢?

+0

我不認爲你將與PHP內部圖形功能多少運氣。 – 2012-07-11 03:55:27

+0

@Dragon這就是我想的......你知道任何有更好支持的圖書館嗎?我不熟悉PHP中的圖像處理。 – 2012-07-11 03:57:04

+0

如果您只使用minecraft的頭部,您可能會編寫自己的代碼來處理它並使用內部圖形功能。根據我的理解,模型本身非常簡單(雖然實際上並沒有實現),但數學函數不會太棘手。我認爲唯一令人遺憾的是能夠捕捉圖像的三角形部分並將其轉移到另一個三角形圖像部分。其餘部分可以很容易地通過從圖像背面到正面進行,從而確保正確的可視性。 – Fluffeh 2012-07-11 04:24:49

回答

2

首先,在我看來,這將是一項複雜的工作。

你提到的http://www.minecraftwiki.net/images/0/01/Skinzones.png文件是平的,但你要轉換,在ISOMETRIC 3D外觀,所以你必須使圖像失真

例如看看下面的圖片

3D Box Box Front Side Box Left Side

所以你可以看到3D盒子圖像是從其他圖像中創建的,邏輯是爲平面圖像添加透視圖並加入它們。但因爲它是2D,我們將其稱爲圖像失真。

不幸的是,與PHP捆綁在一起的GD庫不夠先進,無法讓你做這樣的事情。

您必須使用一些其他圖書館像圖片魔術而這個鏈接是教程使用扭曲功能http://www.imagemagick.org/Usage/distorts/

第二大的是圖像的處理,您可以處理圖像生活,但它會佔用大量資源在服務器上,所以建議您使用預處理的圖像,而不是每次處理它們。

要生成等軸測圖像,您必須自己編寫代碼,並且可能需要根據圖像的大小更改每個圖像字符。但是,當你編寫代碼時,它會很容易。

我的建議是編寫一次你自己的代碼,然後改變它的每個字符,並將處理後的圖像保存在一個精靈中,並在添加播放功能時使用它們。

退房此鏈接,以及

http://www.fmwconcepts.com/imagemagick/index.php