0
我有一個圓柱體,我想紋理它使用36個不同的位圖。 ,如果我紋理只是一個紋理的缸,我看到被拉伸,如像這裏的問題:紋理與多個紋理的圓柱體
// 90, 90, are top radius, down radius, 50 is the height, 60 segements w, 60 segments height.
reel = new CylinderGeometry(90,90,50,60,60,false,false,true);
var textureBase2:Texture2DBase = new BitmapTexture(new reelTexture().bitmapData);
matrial_Reel = new TextureMaterial(textureBase2);
matrial_Reel.bothSides = true;
reelMesh = new Mesh(reel, matrial_Reel);
reel = null;
reelMesh.mouseEnabled = true;
我想也把不同的紋理一個打倒對方,而是把它們組成一個大的紋理,問題是與座標。 我用下面的代碼,但我仍然得到兩張照片相互重疊
public static const SIZE : int 1024;
public var img1 : Bitmap;
public var img2 : Bitmap;
var bmp:BitmapData=new BitmapData(SIZE,SIZE,false,0);
//Draw img1 at 0,0
bmp.draw(img1);
//Draw img2 at 512,0
bmp.draw(img2, new Matrix(1,0,0,1, SIZE/2, 0));
編輯:
新的問題是我有紋理的12張照片(128×128),但最後的圖片與最後一張圖片重疊。我也想紋理36張照片,但最大紋理是在away3D 4k,我該怎麼做?
這裏是一個新的PIC與新代碼:
render = new BitmapData (2048 , 128 , false, 0);
for (var j:int = 0; j < bitmaps.length; j++)
{
if (j == 0)
{
matrix.translate(0,0);
matrix.scale(1.1,1);
render.draw(bitmaps[0], matrix);
}
else if (j == bitmaps.length -1)
{
matrix.translate(128,0);
//matrix.scale(1,1);
render.draw(bitmaps[j], matrix);
}
else
{
matrix.translate(128,0);
matrix.scale(1.05,1);
render.draw(bitmaps[j], matrix);
}
}
var m_finalText:TextureMaterial = new TextureMaterial (new BitmapTexture(render)) ;
但我需要改變在運行時的紋理不同質地:/。另一個問題是最終的bigTexture總是應該是2的大小。 – Andre
那麼在運行時你必須改變這些呢?重繪主紋理,就這些了。另一個問題可以通過使用包含基於複合紋理的位圖的縮放Sprite的'bitmapData.draw()'來解決。適當擴展,搖滾。 – Vesper
請參閱編輯的問題。 – Andre