Mayada cizilen modelleri resim dosyası olarak nasıl kayıtedebilirim?

Mayada cizilen modelleri resim dosyası olarak nasıl kayıtedebilirim?

cahabooo

Arkadaşlar kusura bakmayın maya programını bu gün kurdum modellemeden pek birsey anlamıyorum sadece bi sey için lazım oldu kendimce kucuk bir cizim yaptım fakat bunu uv image olarak kaydetmem lazım belkide yanlış bir terim kullandım arama kısmındada aradım ama tam olarak ne arıyacagımı bılmedıgımden konu acmak durumunda kaldım.

Öğrenmek istediğim: yaptıgım cizimi resim dosyası olrak kaydetmem lazım bu dosya tga bmp jpg jpeg veya png uzantılı olmak zorunda ve 3 boyutlu goruntunun RGB ile bişekilde kodlanmış hali bu image türünün adının uv image oldugunu zannediyorum yani sonuçta böle rengareng bi resim cıkması gerekiyo ortaya resim paletine benziyor bu konuyu bilen varsa mayada cizdiğim şeyi nasıl bu sekilde kaydederim hiç bilmeyen birinin anlıyacagı şekilde anlatabilirmi ?
cahilligimi bağışlayın dah bu gün başladım :)

2007-12-03 19:12:09

Cvp

benzin

Render almaniz gerekiyor.

Genel menünün hemen altında pek çok tuşdan oluşan bir çubuk vardır (Çubuğun başına açılır menü vardır, orada animation, polygons, surfaces gibi seçenekler vardır).

Çubuğun sonuna doğru dört adet düğme vardır. Dört düğmenin en sonuncusu olan "render settings"den ayarlarınızı yaparsınız, ikinci düğmeden ise "render" alırsınız.

Render aldığınız zaman bir pencere açılır. Açılan pencerede resminizi görebilirsiniz. Kaydetmek içinse, File>Save Image menüsüne girerseniz, istediğiniz formatta kaydedebilirsiniz.

2007-12-01 16:32:59

bahsettiğim resim dosyası tarzına örnek

cahabooo

[img]http://www.barisdiker.com/mirakapsonbuzuk.bmp[/img]

2007-12-03 19:21:47

teşşekur to Cvp

cahabooo

ilgilendiğin için teşekur ederim ama bahsettiğim o değildi bahsettiğim olayı cözdum bunun için bazı kodlar varmıs bu kodları ekleyınce bu ıslemı kolayca yapmama yarıyan bır menu acılıyor ve kolayca halledıyorum bahsettıgım resım tarzı bıraz farklı cızımlerın farklı programlar arasında aktarılmasına yarıyo bn bunu yaptıgım cızımı bır oyuna aktarmak ıcın kullandım ılgılenen arkadaşlar içi eklemeniz gereken kodları buraya eklıyorum
[table]// * Copyright (c) 2007-dolarCurrentYeardolar, Linden Research, Inc.
// * dolarLicensedolar


global proc string llFirst(string dolarlist[])
{
return dolarlist[0];
}





global proc llSculptExport(string dolarobject, string dolarfile_name, string dolarfile_format,
int dolarresolution_x, int dolarresolution_y,
int dolarmaximize_scale, int dolarfix_orientation, int dolarflip_horizontal)

{
// copy it, because we´re going to mutilate it. MUHAHAHAAAaa...
string dolarobject_copy = llFirst(duplicate(dolarobject));

// disentangle from groups
string dolarparents[] = listRelatives("-parent", dolarobject_copy);
if (size(dolarparents) != 0)
dolarobject_copy = llFirst(parent("-world", dolarobject_copy));

// scale it to unit cube
float dolarbounding_min[3];
float dolarbounding_max[3];

dolarbounding_min = getAttr(dolarobject_copy + ".boundingBoxMin");
dolarbounding_max = getAttr(dolarobject_copy + ".boundingBoxMax");

float dolarscale[3];
int dolari;
for (dolari = 0; dolari < 3; dolari++)
dolarscale[dolari] = dolarbounding_max[dolari] - dolarbounding_min[dolari];

float dolarscale_max = 0;
for (dolari = 0; dolari < 3; dolari++)
if (dolarscale[dolari] > dolarscale_max)
dolarscale_max = dolarscale[dolari];

if (dolarmaximize_scale)
{
print(dolarobject + " scale normalized - scale by " +
dolarscale[0] + " " + dolarscale[1] + " " + dolarscale[2] + " inside SL to get original shape
");
}
else
{
for (dolari = 0; dolari < 3; dolari++)
dolarscale[dolari] = dolarscale_max;
}


scale("-relative", 1/dolarscale[0], 1/dolarscale[1], 1/dolarscale[2], dolarobject_copy);

// position it in unit cube
dolarbounding_min = getAttr(dolarobject_copy + ".boundingBoxMin");
dolarbounding_max = getAttr(dolarobject_copy + ".boundingBoxMax");

float dolarcenter[3];
for (dolari = 0; dolari < 3; dolari++)
dolarcenter[dolari] = (dolarbounding_min[dolari] + dolarbounding_max[dolari]) / 2.0;

move("-relative", 0.5 - dolarcenter[0], 0.5 - dolarcenter[1], 0.5 - dolarcenter[2], dolarobject_copy);


//
// nurbs surfaces can be adjusted to ensure correct orientation
//

if (dolarfix_orientation)
{
string dolarshape = llFirst(listRelatives("-shapes", dolarobject_copy));
if ((nodeType(dolarobject_copy) == "nurbsSurface") ||
((dolarshape != "") && (nodeType(dolarshape) == "nurbsSurface")))
{
// try to determine the "north pole";
float dolarpole[] = pointOnSurface("-turnOnPercentage", 1,
"-parameterU", 0.5,
"-parameterV", 0,
dolarobject_copy);
float dolartotal_distance = 0;

float dolarv;
for (dolarv = 0; dolarv <= 1; dolarv += 0.1)
{
float dolarpoint[] = pointOnSurface("-turnOnPercentage", 1,
"-parameterU", dolarv,
"-parameterV", 0,
dolarobject_copy);
float dolardistance = 0;
int dolari;
for (dolari = 0; dolari < 3; dolari++)
dolardistance += pow(dolarpole[dolari] - dolarpoint[dolari], 2);
dolardistance = sqrt(dolardistance);

dolartotal_distance += dolardistance;
}

if (dolartotal_distance > 0.1) // the points don´t converge on the pole - swap
{
print("swapping UVs to orient poles for " + dolarobject + "
");
reverseSurface("-direction", 3, dolarobject_copy);
}

// now try to ensure the normal points "out"
// note: this could easily fail - but there´s no better way (i think.)

float dolartotal_orientation = 0;
float dolaru;
for (dolaru = 0; dolaru <= 1; dolaru += 0.1)
for (dolarv = 0; dolarv <= 1; dolarv += 0.1)
{
float dolarpoint[] = pointOnSurface("-turnOnPercentage", 1,
"-parameterU", dolaru,
"-parameterV", dolarv,
dolarobject_copy);

float dolarnormal[] = pointOnSurface("-normal",
"-turnOnPercentage", 1,
"-parameterU", dolaru,
"-parameterV", dolarv,
dolarobject_copy);

// check the orientation of the normal w/r/t the direction from center

float dolarcenter_dir[];
for (dolari = 0; dolari < 3; dolari++)
dolarcenter_dir[dolari] = dolarpoint[dolari] - 0.5;

float dolarorientation = 0; // dot product
for (dolari = 0; dolari < 3; dolari++)
dolarorientation += dolarcenter_dir[dolari] * dolarnormal[dolari];

dolartotal_orientation += dolarorientation;
}

if (dolartotal_orientation > 0) // need to invert
{
print("reversing V for " + dolarobject + "
");
reverseSurface("-direction", 1, dolarobject_copy);
}
if (dolarflip_horizontal)
{
// reverse U, for compatibility with surface textures
print("reversing U for " + dolarobject + "
");
reverseSurface("-direction", 0, dolarobject_copy);
}
}

else
{
warning("cannot fix orientation on non-nurbs object: " + dolarobject);
}


}

// create temporary shading network
string dolarsampler_info = createNode("samplerInfo");

print("exporting sculpt map for " + dolarobject + " into file " + dolarfile_name + "
");

// bake sculpt texture
string dolarfileNodes[] = convertSolidTx("-fileImageName", dolarfile_name,
"-fileFormat", dolarfile_format,
"-force", 1,
"-resolutionX", dolarresolution_x,
"-resolutionY", dolarresolution_y,
dolarsampler_info + ".pointWorld",
dolarobject_copy);

delete(dolarfileNodes); // we don´t want ´em. why do you make ´em?

delete(dolarsampler_info);
delete(dolarobject_copy);
}



global proc int llSculptEditorCallback()
{
string dolarobjects[] = ls("-sl");

if (size(dolarobjects) == 0)
{
warning("please select objects to export");
return 0;
}

string dolarfilename = textFieldButtonGrp("-query", "-fileName", "llSculptEditorFilename");
int dolarresolution_x = intSliderGrp("-query", "-value", "llSculptEditorResolutionX");
int dolarresolution_y = intSliderGrp("-query", "-value", "llSculptEditorResolutionY");
int dolarfix_orientation = checkBoxGrp("-query", "-value1", "llSculptEditorFixOrientation");
int dolarflip_horizontal = checkBoxGrp("-query", "-value1", "llSculptEditorFlipHorizontal");
int dolarmaximize_scale = checkBoxGrp("-query", "-value1", "llSculptEditorMaximizeScale");

// get filetype
string dolarfile_type;
string dolarfile_base;
string dolarfile_extension;

string dolartokens[];
tokenize(dolarfilename, ".", dolartokens);

if (size(dolartokens) == 1) // no extension, default to bmp
{
dolarfile_base = dolarfilename;
dolarfile_type = "bmp";
dolarfile_extension = "bmp";
}
else
{
dolarfile_extension = dolartokens[size(dolartokens) - 1];
int dolari;
for (dolari = 0; dolari < size(dolartokens) - 1; dolari++)
{
dolarfile_base += dolartokens[dolari];
if (dolari != size(dolartokens) - 2)
dolarfile_base += ".";
}

if (dolarfile_extension == "bmp")
dolarfile_type = "bmp";
else if ((dolarfile_extension == "jpg") || (dolarfile_extension == "jpeg"))
dolarfile_type = "jpg";
else if ((dolarfile_extension == "tif") || (dolarfile_extension == "tiff"))
dolarfile_type = "tif";
else if (dolarfile_extension == "tga")
dolarfile_type = "tga";
else
{
warning("unknown image type (" + dolarfile_extension + "). switching to bmp");
dolarfile_type = "bmp";
dolarfile_extension = "bmp";
}
}


string dolarobject;
for (dolarobject in dolarobjects)
{
string dolarthis_filename = dolarfile_base;
if (size(dolarobjects) > 1)
dolarthis_filename += "-" + dolarobject;
dolarthis_filename += "." + dolarfile_extension;

llSculptExport(dolarobject, dolarthis_filename, dolarfile_type, dolarresolution_x, dolarresolution_y,
dolarmaximize_scale, dolarfix_orientation, dolarflip_horizontal);
}


select(dolarobjects);

return 1;
}

global proc llSculptEditorSetFilenameCallback(string dolarfilename, string dolarfiletype)
{
textFieldButtonGrp("-edit", "-fileName", dolarfilename, "llSculptEditorFilename");
}

global proc llSculptEditorBrowseCallback()
{
fileBrowser("llSculptEditorSetFilenameCallback", "Export", "image", 1);
}


global proc llSculptEditor()
{
string dolarcommandName = "llSculptExport";

string dolarlayout = getOptionBox();
setParent dolarlayout;

setOptionBoxCommandName(dolarcommandName);

setUITemplate -pushTemplate DefaultTemplate;

scrollLayout;

tabLayout -tabsVisible 0 -scrollable 0;

string dolarparent = `columnLayout -adjustableColumn 1`;

separator -height 10 -style "none";

textFieldButtonGrp
-label "Filename"
-fileName "sculpt.bmp"
-buttonLabel "Browse"
-buttonCommand "llSculptEditorBrowseCallback"
llSculptEditorFilename;

intSliderGrp
-field on
-label "X Resolution"
-minValue 1
-maxValue 512
-fieldMinValue 1
-fieldMaxValue 4096
-value 64
llSculptEditorResolutionX;

intSliderGrp
-field on
-label "Y Resolution"
-minValue 1
-maxValue 512
-fieldMinValue 1
-fieldMaxValue 4096
-value 64
llSculptEditorResolutionY;

checkBoxGrp
-label ""
-label1 "Maximize scale"
-numberOfCheckBoxes 1
-value1 off
llSculptEditorMaximizeScale;

checkBoxGrp
-label ""
-label1 "Flip Horizontal"
-numberOfCheckBoxes 1
-value1 on
llSculptEditorFlipHorizontal;

checkBoxGrp
-label ""
-label1 "Correct orientation"
-numberOfCheckBoxes 1
-value1 on
llSculptEditorFixOrientation;

setUITemplate -popTemplate;

string dolarapplyBtn = getOptionBoxApplyBtn();
button -edit
-label "Export"
-command "llSculptEditorCallback"
dolarapplyBtn;

string dolarapplyAndCloseBtn = getOptionBoxApplyAndCloseBtn();
button -edit
-label "Export and Close"
-command "llSculptEditorCallback"
dolarapplyAndCloseBtn;


setOptionBoxTitle("Export Sculpt Texture");

setOptionBoxHelpTag( "ConvertFileText" );

showOptionBox();
}



//

llSculptEditor;[/table]

2007-12-03 19:12:09