View Full Version : Maya->Indigo Exporter
MattTheMan 06-04-2006, 03:30 PM Hey, I don't know if any of you know or like, or use the free Indigo renderer at
www.indigorender.com (http://www.indigorender.com).
Well, I wrote a simple MEL script that exports from Maya to Indigo, its still beta and doesnt have any great features like sun or meshlight- but I am working on it.
//Script by Matt B. (ThatDude33) for export from Maya 6.5+ to Indigo 0.5.3
//Fixed by Arne OOG
//Outputs in script window
//Copy-Paste results into XML file, run using Ini File.
//No edits should be neccesary
//Start Writing:
string $write = "<?xml version='1.0' standalone=no>\n";
$write += "<!--Exported from Maya--!>\n\n";
proc vector normalize(vector $v){
float $len = sqrt($v.x*$v.x+$v.y*$v.y+$v.z*$v.z);
vector $n = <<$v.x/$len, $v.y/$len, $v.z/$len>>;
return $n;
}
//Will have a prompt window, but now uses settings from render globals
$write +="<scene>\n";
$write += "\n<renderer_settings>\n";
$write += "\t<width>" + `getAttr defaultResolution.width` +"</width>\n";
$write += "\t<height>" + `getAttr defaultResolution.height` +"</height>\n";
$write += "\t<metropolis>true</metropolis>\n";
$write += "\t<large_mutation_prob>0.2</large_mutation_prob>\n";
$write += "\t<max_change>0.025</max_change>\n";
$write += "\t<russian_roulette_live_prob>0.7</russian_roulette_live_prob>\n";
$write += "\t<max_depth>1000</max_depth>\n";
$write += "\t<bidirectional>false</bidirectional>\n";
$write += "\t<strata_width>10</strata_width>\n";
$write += "\t<frame_upload_period>20</frame_upload_period>\n";
$write += "\t<halt_time>-1</halt_time>\n";
$write += "\t<logging>true</logging>\n";
$write += "\t<image_save_period>30</image_save_period>\n";
$write += "\t<save_tonemapped_exr>false</save_tonemapped_exr>\n";
$write += "\t<save_untonemapped_exr>false</save_untonemapped_exr>\n";
$write += "</renderer_settings>\n\n";
$write += "\t<tonemapping>\n";
$write += "\t\t<reinhard>\n";
$write += "\t\t\t<pre_scale>2.0</pre_scale>\n";
$write += "\t\t\t<post_scale>1.0</post_scale>\n";
$write += "\t\t</reinhard>\n";
$write += "\n\t\t<colour_correction>1.0 1.0 1.0</colour_correction>\n";
$write += "\t</tonemapping>\n";
$write += "<background>\n<radiance>1 1 1</radiance>\n</background>\n\n";
$write += "\n<camera>\n";
float $px = `getAttr camera1.tx`;
float $py = `getAttr camera1.ty`;
float $pz = `getAttr camera1.tz`;
vector $pos = <<$px, $py, $pz>>;
float $tx = `getAttr camera1_aim.tx`;
float $ty = `getAttr camera1_aim.ty`;
float $tz = `getAttr camera1_aim.tz`;
vector $target= <<$tx, $ty, $tz>>;
vector $front = $target-$pos;
vector $dist = $front;
$front = normalize($front);
$write += "\t<pos>"+$px+" "+$py+" "+$pz+"</pos>\n";
float $ux = `getAttr camera1_up.tx`;
float $uy = `getAttr camera1_up.ty`;
float $uz = `getAttr camera1_up.tz`;
vector $up = <<$ux, $uy, $uz>>;
$up = $up - $pos;
$up = normalize($up);
$write += "\t<up>"+$up.x+" "+$up.y+" "+$up.z+"</up>\n";
$write += "\t<forwards>"+$front.x+" "+$front.y+" "+$front.z+"</forwards>\n";
float $fstop = 8;
if ($fstop < 1.0){
$fstop = 1.0;
}
if ($fstop > 22){
$fstop = 22;
}
float $aprad = 50/$fstop;
$aprad = $aprad/200;
$write += "\t<aperture_radius>"+$aprad+"</aperture_radius>\n";
float $FD = sqrt($dist.x*$dist.x+$dist.y*$dist.y+$dist.z*$dist.z);
$write += "\t<focus_distance>"+$FD+"</focus_distance>\n";
$write += "\t<aspect_ratio>"+`getAttr defaultResolution.deviceAspectRatio`+"</aspect_ratio>\n";
$write += "\t<sensor_width>0.036</sensor_width>\n";
$write += "\t<lens_sensor_dist>0.0523314</lens_sensor_dist>\n";
$write += "\t<white_balance>D65</white_balance>\n";
$write += "</camera>\n\n";
string $mats[] = `ls -mat`;
for ($one in $mats){
if (`objectType $one` == "lambert"){
$write+= "\n<material>\n";
if($one == "initialMaterialInfo"){
$one = "lambert1";
}
$write += "\t<name>"+$one+"</name>\n";
$write += "\t<diffuse>\n";
float $color[] = `getAttr ($one + ".color")`;
$write+="\t\t<colour>"+$color[0]+" "+$color[1]+" "+$color[2]+"</colour>\n";
$write += "\t</diffuse>\n";
$write += "</material>\n";
}
if (`objectType $one` == "phong"){
$write += "\n<material>\n";
$write += "\t\t<name>"+$one+"</name>\n";
$write += "\t<phong>\n";
float $col[] = `getAttr ($one + ".color")`;
$write += "\t\t<diffuse>"+$col[0]+" "+$col[1]+" "+$col[2]+"</diffuse>\n";
float $reflectivity = `getAttr($one +".reflectivity")`;
if ($reflectivity > 0.0){
$write += "\t\t<specular>"+$reflectivity+" "+$reflectivity+" "+$reflectivity+"</specular>\n";
}
if ($reflectivity == 0.0){
float $refl[] = `getAttr ($one +".reflectedColor")`;
$write += "\t\t<specular>"+$refl[0]+" "+$refl[1]+" "+$refl[2]+"</specular>\n";
}
float $exp = `getAttr ($one + ".cosinePower")`;
float $exp = $exp * 10;
$write += "\t\t<exponent>"+$exp+"</exponent>\n";
$write += "\t</phong>\n";
$write += "</material>\n";
}
}
string $shapes[] = `ls -s`;
for ($one in $shapes){
if(`objectType $one` == "mesh"){
int $nV[] = `polyEvaluate -v $one`;
int $nF[] = `polyEvaluate -f $one`;
int $x = 0;
$write += "\n<mesh>\n";
$write += "\t<name>"+$one+"</name>\n";
$write += "\t<embedded>\n";
for($x=0;$x < $nV[0];$x++){
string $cv = $one+".vtx["+$x+"]";
float $pos[] = `pointPosition $cv`;
$write += "\t\t<vertex pos='"+$pos[0]+" "+$pos[1]+" "+$pos[2]+"'";
float $normal[] = `polyNormalPerVertex -q -xyz $cv`;
$write += " normal='"+$normal[0]+" "+$normal[1]+" "+$normal[2]+"'";
string $uv[] = `polyListComponentConversion -fv -tuv $cv`;
float $uvcoord[] = `polyEditUV -q $uv`;
$write += " uv0='"+$uvcoord[0]+" "+$uvcoord[1]+"'/>\n";
}
$write += "\t<triangle_set>\n";
string $sg[] = `listConnections -type shadingEngine $one`;
string $mat[] = `listConnections $sg[0]`;
//$mat[2] holds the actual material.
print(`listConnections $sg[0]`);
if ($mat[2] == "initialMaterialInfo"){
$mat[2] = $mat[0];
}
if ($mat[2] == "renderPartition"){
$mat[2] = $mat[3];
}
$write += "\t<material_name>"+$mat[2]+"</material_name>\n";
for($x = 0;$x < $nF[0];$x++){
string $curface = $one +".f["+$x+"]";
string $vfl[] = `polyListComponentConversion -ff -tvf $curface`;
$vfl = `filterExpand -sm 70 $vfl`;
$write +="\t\t<tri>";
for ($v in $vfl){
string $vert[]=`polyListComponentConversion -fvf -tv $v`;
string $vnum = match("[0-9]+",match("[0-9]+\]",$vert[0]));
int $conv = $vnum;
$write += $conv + " ";
}
$write += "</tri>\n";
}
$write += "\t</triangle_set>\n";
$write += "\t</embedded>\n";
$write += "</mesh>";
}
}
//Models
string $trans[] =`ls -s`;
for ($one in $trans) {
string $shape[] = `listRelatives -shapes $one`;
if (`objectType $one` == "mesh"){
$write += "\n\n<model>\n\t<pos>0 0 0</pos>";
$write += "\n\t<scale>1</scale>";
$write += "\n\t<normal_smoothing>true</normal_smoothing>";
$write += "\n\t<rotation><matrix>1 0 0 0 1 0 0 0 1</matrix></rotation>";
$write += "\n\t<mesh_name>"+$one +"</mesh_name>\n</model>";
}
}
$write += "\n</scene>";
print($write);
if (`window -exists indOut`) deleteUI indOut;
window -title "Output for Indigo Renderer" indOut;
windowPref -wh 500 600 indOut;
rowLayout -h 600;
scrollField -w 480 -h 560 -editable false -tx $write;
showWindow indOut;
Works with Indigo 0.5.3, 0.5.4, 0.5.5, and 0.5.6.
Tell me what you think :)
-Matt
| |
bazuka
06-04-2006, 07:32 PM
that's nice but im getting this error
// Error: float $FD = sqrt($dist.x*$dist.x+$dist.y*$dist.y+$dist.z*$dist .z); //
// Error: Syntax error //
MattTheMan
06-04-2006, 07:46 PM
ok i fixed it. same script. just edited and fixed.
bazuka
06-04-2006, 09:29 PM
...i'll try...
tryed, and sorry to say but script doest work at all :(
MattTheMan
06-05-2006, 12:31 AM
funny... it works for me and a few other testers...????
Are you using Maya for Mac or something?
Synthesizer
06-05-2006, 05:21 AM
Hmm, I get the same thing:
// Error: float $FD = sqrt($dist.x*$dist.x+$dist.y*$dist.y+$dist.z*$dist .z);
//
// Error: Line 74.67: Syntax error //
I'm using Maya 7.0 on a PC. An older version that you posted on the indigo forum works for me though.
bazuka
06-05-2006, 07:47 AM
ok i know how to fix that error, but i dont how to fix other problems when u export scene and try to render with Indigo...
// Error: float $FD = sqrt($dist.x*$dist.x+$dist.y*$dist.y+$dist.z*$dist .z);
make sure that there is no space at the end of the z*$dist .z);
-> float $FD = sqrt($dist.x*$dist.x+$dist.y*$dist.y+$dist.z*$dist.z);
bazuka
06-05-2006, 08:00 AM
ok this post will be looong :) (simple scene, camera and one poly sphere)
had to attach it :)
this is what i got from maya:
----------------------------------------------------------------
and when i try to render scene i get these errors:
SceneLoaderExcep: could not find root 'scene' element
Fatal Error: SceneLoaderExcep: could not find root 'scene' element
ok when i fix that error coz indigo doesnt understand maya string
(<!--Exported from Maya--!>) just remove it...
then im getting this error:
Using Reinhard tone mapping with pre_scale=2.000000, post_scale=1.000000
SceneLoaderExcep: TinyXmlWrapper: could not find element 'lens_radius' in elemen
t 'camera' (around line 36)
Fatal Error: SceneLoaderExcep: TinyXmlWrapper: could not find element 'lens_radi
us' in element 'camera' (around line 36)
ok when i fix that error im getting next one:
Using Reinhard tone mapping with pre_scale=2.000000, post_scale=1.000000
SceneLoaderExcep: TinyXmlWrapper: could not find element 'angle_of_view' in elem
ent 'camera' (around line 36)
Fatal Error: SceneLoaderExcep: TinyXmlWrapper: could not find element 'angle_of_
view' in element 'camera' (around line 36)
so i didnt have time to play more, so it's very nice to have this script, but plz people fix it to work...
Elvis75k
06-05-2006, 10:56 AM
same here.. and // Error: No object matches name: camera1_up.tx //
Anyone has a working version? In the Flipcode forum i found this one
http://www.flipcode.dxbug.com/board.php?topic=417
but still buggy or it's just me?
-e
bazuka
06-05-2006, 10:58 AM
u'r getting that error coz u didnt make camera, aim and up!
:)
Elvis75k
06-05-2006, 11:37 AM
u'r getting that error coz u didnt make camera, aim and up!
:)
i did.. lol
MattTheMan
06-05-2006, 03:04 PM
Ok, sorry for the trouble, guys.
Camera-aim-up: don't rename it.
Also, I forgot to say- Triangulate mesh, then delete ALL history before running this script. Else, Indigo will not find the correct materials. I will have the script to do this (well, probably not delete history, but the triangulation part).
Also, this script WONT WORK with indigo 0.4. That's why it won't find Lens Radius, and angle of view.
If you go to the indigo forum, you can find Indigo 0.5test6. Use that one.
Ok- I think this script should work better-
//Script by Matt B. (ThatDude33) for export from Maya 6.5+ to Indigo 0.5.3
//Fixed by Arne OOG
//Outputs in script window
//Copy-Paste results into XML file, run using Ini File.
//No edits should be neccesary
//Start Writing:
string $write = "<?xml version='1.0' standalone=no>\n";
proc vector normalize(vector $v){
float $len = sqrt($v.x*$v.x+$v.y*$v.y+$v.z*$v.z);
vector $n = <<$v.x/$len, $v.y/$len, $v.z/$len>>;
return $n;
}
//Will have a prompt window, but now uses settings from render globals
$write +="<scene>\n";
$write += "\n<renderer_settings>\n";
$write += "\t<width>" + `getAttr defaultResolution.width` +"</width>\n";
$write += "\t<height>" + `getAttr defaultResolution.height` +"</height>\n";
$write += "\t<metropolis>true</metropolis>\n";
$write += "\t<large_mutation_prob>0.2</large_mutation_prob>\n";
$write += "\t<max_change>0.025</max_change>\n";
$write += "\t<russian_roulette_live_prob>0.7</russian_roulette_live_prob>\n";
$write += "\t<max_depth>1000</max_depth>\n";
$write += "\t<bidirectional>true</bidirectional>\n";
$write += "\t<strata_width>10</strata_width>\n";
$write += "\t<frame_upload_period>20</frame_upload_period>\n";
$write += "\t<halt_time>-1</halt_time>\n";
$write += "\t<logging>true</logging>\n";
$write += "\t<image_save_period>30</image_save_period>\n";
$write += "\t<save_tonemapped_exr>false</save_tonemapped_exr>\n";
$write += "\t<save_untonemapped_exr>false</save_untonemapped_exr>\n";
$write += "</renderer_settings>\n\n";
$write += "\t<tonemapping>\n";
$write += "\t\t<reinhard>\n";
$write += "\t\t\t<pre_scale>2.0</pre_scale>\n";
$write += "\t\t\t<post_scale>1.0</post_scale>\n";
$write += "\t\t</reinhard>\n";
$write += "\n\t\t<colour_correction>1.0 1.0 1.0</colour_correction>\n";
$write += "\t</tonemapping>\n";
$write += "<background>\n<radiance>1 1 1</radiance>\n</background>\n\n";
$write += "\n<camera>\n";
float $px = `getAttr camera1.tx`;
float $py = `getAttr camera1.ty`;
float $pz = `getAttr camera1.tz`;
vector $pos = <<$px, $py, $pz>>;
float $tx = `getAttr camera1_aim.tx`;
float $ty = `getAttr camera1_aim.ty`;
float $tz = `getAttr camera1_aim.tz`;
vector $target= <<$tx, $ty, $tz>>;
vector $front = $target-$pos;
vector $dist = $front;
$front = normalize($front);
$write += "\t<pos>"+$px+" "+$py+" "+$pz+"</pos>\n";
float $ux = `getAttr camera1_up.tx`;
float $uy = `getAttr camera1_up.ty`;
float $uz = `getAttr camera1_up.tz`;
vector $up = <<$ux, $uy, $uz>>;
$up = $up - $pos;
$up = normalize($up);
$write += "\t<up>"+$up.x+" "+$up.y+" "+$up.z+"</up>\n";
$write += "\t<forwards>"+$front.x+" "+$front.y+" "+$front.z+"</forwards>\n";
float $fstop = 8;
if ($fstop < 1.0){
$fstop = 1.0;
}
if ($fstop > 22){
$fstop = 22;
}
float $aprad = 50/$fstop;
$aprad = $aprad/200;
$write += "\t<aperture_radius>"+$aprad+"</aperture_radius>\n";
float $FD = sqrt($dist.x*$dist.x + $dist.y*$dist.y+$dist.z*$dist.z);
$write += "\t<focus_distance>"+$FD+"</focus_distance>\n";
$write += "\t<aspect_ratio>"+`getAttr defaultResolution.deviceAspectRatio`+"</aspect_ratio>\n";
$write += "\t<sensor_width>0.036</sensor_width>\n";
$write += "\t<lens_sensor_dist>0.0523314</lens_sensor_dist>\n";
$write += "\t<white_balance>D65</white_balance>\n";
$write += "</camera>\n\n";
string $mats[] = `ls -mat`;
for ($one in $mats){
if (`objectType $one` == "lambert"){
$write+= "\n<material>\n";
if($one == "initialMaterialInfo"){
$one = "lambert1";
}
$write += "\t<name>"+$one+"</name>\n";
$write += "\t<diffuse>\n";
float $color[] = `getAttr ($one + ".color")`;
$write+="\t\t<colour>"+$color[0]+" "+$color[1]+" "+$color[2]+"</colour>\n";
$write += "\t</diffuse>\n";
$write += "</material>\n";
}
if (`objectType $one` == "phong"){
$write += "\n<material>\n";
$write += "\t\t<name>"+$one+"</name>\n";
$write += "\t<phong>\n";
float $col[] = `getAttr ($one + ".color")`;
$write += "\t\t<diffuse>"+$col[0]+" "+$col[1]+" "+$col[2]+"</diffuse>\n";
float $reflectivity = `getAttr($one +".reflectivity")`;
if ($reflectivity > 0.0){
$write += "\t\t<specular>"+$reflectivity+" "+$reflectivity+" "+$reflectivity+"</specular>\n";
}
if ($reflectivity == 0.0){
float $refl[] = `getAttr ($one +".reflectedColor")`;
$write += "\t\t<specular>"+$refl[0]+" "+$refl[1]+" "+$refl[2]+"</specular>\n";
}
float $exp = `getAttr ($one + ".cosinePower")`;
float $exp = $exp * 10;
$write += "\t\t<exponent>"+$exp+"</exponent>\n";
$write += "\t</phong>\n";
$write += "</material>\n";
}
}
string $shapes[] = `ls -s`;
for ($one in $shapes){
if(`objectType $one` == "mesh"){
int $nV[] = `polyEvaluate -v $one`;
int $nF[] = `polyEvaluate -f $one`;
int $x = 0;
$write += "\n<mesh>\n";
$write += "\t<name>"+$one+"</name>\n";
$write += "\t<embedded>\n";
for($x=0;$x < $nV[0];$x++){
string $cv = $one+".vtx["+$x+"]";
float $pos[] = `pointPosition $cv`;
$write += "\t\t<vertex pos='"+$pos[0]+" "+$pos[1]+" "+$pos[2]+"'";
float $normal[] = `polyNormalPerVertex -q -xyz $cv`;
$write += " normal='"+$normal[0]+" "+$normal[1]+" "+$normal[2]+"'";
string $uv[] = `polyListComponentConversion -fv -tuv $cv`;
float $uvcoord[] = `polyEditUV -q $uv`;
$write += " uv0='"+$uvcoord[0]+" "+$uvcoord[1]+"'/>\n";
}
$write += "\t<triangle_set>\n";
string $sg[] = `listConnections -type shadingEngine $one`;
string $mat[] = `listConnections $sg[0]`;
//$mat[2] holds the actual material.
print(`listConnections $sg[0]`);
if ($mat[2] == "initialMaterialInfo"){
$mat[2] = $mat[0];
}
if ($mat[2] == "renderPartition"){
$mat[2] = $mat[3];
}
$write += "\t<material_name>"+$mat[2]+"</material_name>\n";
for($x = 0;$x < $nF[0];$x++){
string $curface = $one +".f["+$x+"]";
string $vfl[] = `polyListComponentConversion -ff -tvf $curface`;
$vfl = `filterExpand -sm 70 $vfl`;
$write +="\t\t<tri>";
for ($v in $vfl){
string $vert[]=`polyListComponentConversion -fvf -tv $v`;
string $vnum = match("[0-9]+",match("[0-9]+\]",$vert[0]));
int $conv = $vnum;
$write += $conv + " ";
}
$write += "</tri>\n";
}
$write += "\t</triangle_set>\n";
$write += "\t</embedded>\n";
$write += "</mesh>";
}
}
//Models
string $trans[] =`ls -s`;
for ($one in $trans) {
string $shape[] = `listRelatives -shapes $one`;
if (`objectType $one` == "mesh"){
$write += "\n\n<model>\n\t<pos>0 0 0</pos>";
$write += "\n\t<scale>1</scale>";
$write += "\n\t<rotation><matrix>1 0 0 0 1 0 0 0 1</matrix></rotation>";
$write += "\n\t<mesh_name>"+$one +"</mesh_name>\n</model>";
}
}
$write += "\n</scene>";
print($write);
if (`window -exists indOut`) deleteUI indOut;
window -title "Output for Indigo Renderer" indOut;
windowPref -wh 500 600 indOut;
rowLayout -h 600;
scrollField -w 480 -h 560 -editable false -tx $write;
showWindow indOut;
Try it out. Also, tell me all of the bugs, it does help me make it better. And I am adding support for meshlights now.
Thanks, and I will do my best to fix what I can.
Again, use with Indigo 0.5.6, 0.5.5, 0.5.4, or 0.5.3. Get them at the Indigo forum.
-Matt
bazuka
06-05-2006, 07:46 PM
no my friend script doesnt work
Using Reinhard tone mapping with pre_scale=2.000000, post_scale=1.000000
SceneLoaderExcep: TinyXmlWrapper: could not find element 'lens_radius' in elemen
t 'camera' (around line 35)
Fatal Error: SceneLoaderExcep: TinyXmlWrapper: could not find element 'lens_radi
us' in element 'camera' (around line 35)
MattTheMan
06-05-2006, 08:52 PM
Ok, sorry for the trouble, guys.
Also, this script WONT WORK with indigo 0.4. That's why it won't find Lens Radius, and angle of view.
;)
Link to Indigo 0.5.6-
http://www.flipcode.dxbug.com/board.php?topic=485
And if Indigo 0.5.6 won't start, add this to your ini file "max_num_consec_rejections" "100"
Knock yourself out
-Matt
victor
06-05-2006, 09:12 PM
I've got the 0.5.6 version, and it works with the test scenes.
But I can't get the script in Maya to work. Getting...
// Error: float $FD = sqrt($dist.x*$dist.x+$dist.y*$dist.y+$dist.z*$dist .z); //
// Error: Syntax error //
Yes, I made a camera, aim, and up. Yes, I deleted history and triangulated.
bazuka
06-05-2006, 10:12 PM
victor my friend u didnt read the posts before, problem is in the space before that dot
// Error: float $FD = sqrt($dist.x*$dist.x+$dist.y*$dist.y+$dist.z*$dist .z); //
float $FD = sqrt($dist.x*$dist.x+$dist.y*$dist.y+$dist.z*$dist.z);
got it? :) (u cant see here, dont know why board makes this space)
MattTheMan
06-05-2006, 10:15 PM
Yeah, I just went back and edited the post and rewrote that line, and now the space doesnt show.
So, it works now? :)
I'm adding meshlight support now.
-Matt
bazuka
06-05-2006, 10:18 PM
should work, but im still getting error for:
Fatal Error: SceneLoaderExcep: TinyXmlWrapper: could not find element 'lens_radius' in element 'camera' (around line 35)
bazuka
06-05-2006, 10:21 PM
i dont get it Matt, whats the problem, cant u write one more line in mel for lens radius???
victor
06-05-2006, 10:46 PM
Works for me now.
Bazuka, are you sure you are rendering the right scene?
The test scenes that come with the earlier version are missing some lines in the camera section.
To get it to work, I unzipped the 0.4 version, and then on top of that the 0.5.6 version. Then added the "max_num_consec_rejections" "100" line to the INI file.
Now, I'm just rendering from the command line...
indigo.exe test.xml
Good start! :)
Edit: It's been a while since I got to try Maxwell, and I'm obviously using just simple scenes with this now, but is it just me or is this actually faster than Maxwell?
MattTheMan
06-05-2006, 11:08 PM
Well, looking at samples from Maxwell and my own test scene, it might be that Indigo 0.5.6, especially with Complex IOR materials is faster then Maxwell 1.0. cool, eh?
I coded in meshlights. To enable a meshlight, all you do is you turn up the incandescense value of a material- and that object ceases being an object- and becomes a meshligt ;)
Also, I am gonna start attatching it as a txt file or something, this code thing is still ripping apart that $FD value- $dist. z.
so, when you copy and paste- look for float $FD = sqrt($dist.x*$dist.x+$dist.y*$dist.y+$dist.z*$dist. z);
and replace it with
float $FD = sqrt($dist.x*$dist.x+$dist.y*$dist.y+$dist.z*$dist.z);
EDIT- here it goes again, ripping apart my code :( take away the spaces from the end of $dist.z
//Script by Matt B. (ThatDude33) for export from Maya 6.5+ to Indigo 0.5.3
//Fixed by Arne OOG
//Outputs in script window
//Copy-Paste results into XML file, run using Ini File.
//No edits should be neccesary
//Start Writing:
string $write = "<?xml version='1.0' standalone=no>\n";
proc vector normalize(vector $v){
float $len = sqrt($v.x*$v.x+$v.y*$v.y+$v.z*$v.z);
vector $n = <<$v.x/$len, $v.y/$len, $v.z/$len>>;
return $n;
}
//Will have a prompt window, but now uses settings from render globals
$write +="<scene>\n";
$write += "\n<renderer_settings>\n";
$write += "\t<width>" + `getAttr defaultResolution.width` +"</width>\n";
$write += "\t<height>" + `getAttr defaultResolution.height` +"</height>\n";
$write += "\t<metropolis>true</metropolis>\n";
$write += "\t<large_mutation_prob>0.2</large_mutation_prob>\n";
$write += "\t<max_change>0.025</max_change>\n";
$write += "\t<russian_roulette_live_prob>0.7</russian_roulette_live_prob>\n";
$write += "\t<max_depth>1000</max_depth>\n";
$write += "\t<bidirectional>false</bidirectional>\n";
$write += "\t<strata_width>10</strata_width>\n";
$write += "\t<frame_upload_period>20</frame_upload_period>\n";
$write += "\t<halt_time>-1</halt_time>\n";
$write += "\t<logging>true</logging>\n";
$write += "\t<image_save_period>30</image_save_period>\n";
$write += "\t<save_tonemapped_exr>false</save_tonemapped_exr>\n";
$write += "\t<save_untonemapped_exr>false</save_untonemapped_exr>\n";
$write += "</renderer_settings>\n\n";
$write += "\t<tonemapping>\n";
$write += "\t\t<reinhard>\n";
$write += "\t\t\t<pre_scale>2.0</pre_scale>\n";
$write += "\t\t\t<post_scale>1.0</post_scale>\n";
$write += "\t\t</reinhard>\n";
$write += "\n\t\t<colour_correction>1.0 1.0 1.0</colour_correction>\n";
$write += "\t</tonemapping>\n";
$write += "<background>\n<radiance>1 1 1</radiance>\n</background>\n\n";
$write += "\n<camera>\n";
float $px = `getAttr camera1.tx`;
float $py = `getAttr camera1.ty`;
float $pz = `getAttr camera1.tz`;
vector $pos = <<$px, $py, $pz>>;
float $tx = `getAttr camera1_aim.tx`;
float $ty = `getAttr camera1_aim.ty`;
float $tz = `getAttr camera1_aim.tz`;
vector $target= <<$tx, $ty, $tz>>;
vector $front = $target-$pos;
vector $dist = $front;
$front = normalize($front);
$write += "\t<pos>"+$px+" "+$py+" "+$pz+"</pos>\n";
float $ux = `getAttr camera1_up.tx`;
float $uy = `getAttr camera1_up.ty`;
float $uz = `getAttr camera1_up.tz`;
vector $up = <<$ux, $uy, $uz>>;
$up = $up - $pos;
$up = normalize($up);
$write += "\t<up>"+$up.x+" "+$up.y+" "+$up.z+"</up>\n";
$write += "\t<forwards>"+$front.x+" "+$front.y+" "+$front.z+"</forwards>\n";
float $fstop = 8;
if ($fstop < 1.0){
$fstop = 1.0;
}
if ($fstop > 22){
$fstop = 22;
}
float $aprad = 50/$fstop;
$aprad = $aprad/200;
$write += "\t<aperture_radius>"+$aprad+"</aperture_radius>\n";
float $FD = sqrt($dist.x*$dist.x+$dist.y*$dist.y+$dist.z*$dist.z);
$write += "\t<focus_distance>"+$FD+"</focus_distance>\n";
$write += "\t<aspect_ratio>"+`getAttr defaultResolution.deviceAspectRatio`+"</aspect_ratio>\n";
$write += "\t<sensor_width>0.036</sensor_width>\n";
$write += "\t<lens_sensor_dist>0.0523314</lens_sensor_dist>\n";
$write += "\t<white_balance>D65</white_balance>\n";
$write += "</camera>\n\n";
string $mats[] = `ls -mat`;
for ($one in $mats){
if (`objectType $one` == "lambert"){
float $inc[]=`getAttr ($one + ".incandescence")`;
if ($inc[0] > 0.0){
break;
}
if ($inc[1] > 0.0){
break;
}
if ($inc[2] > 0.0){
break;
}
$write+= "\n<material>\n";
if($one == "initialMaterialInfo"){
$one = "lambert1";
}
$write += "\t<name>"+$one+"</name>\n";
$write += "\t<diffuse>\n";
float $color[] = `getAttr ($one + ".color")`;
$write+="\t\t<colour>"+$color[0]+" "+$color[1]+" "+$color[2]+"</colour>\n";
$write += "\t</diffuse>\n";
$write += "</material>\n";
}
if (`objectType $one` == "phong"){
$write += "\n<material>\n";
$write += "\t\t<name>"+$one+"</name>\n";
$write += "\t<phong>\n";
float $col[] = `getAttr ($one + ".color")`;
$write += "\t\t<diffuse>"+$col[0]+" "+$col[1]+" "+$col[2]+"</diffuse>\n";
float $reflectivity = `getAttr($one +".reflectivity")`;
if ($reflectivity > 0.0){
$write += "\t\t<specular>"+$reflectivity+" "+$reflectivity+" "+$reflectivity+"</specular>\n";
}
if ($reflectivity == 0.0){
float $refl[] = `getAttr ($one +".reflectedColor")`;
$write += "\t\t<specular>"+$refl[0]+" "+$refl[1]+" "+$refl[2]+"</specular>\n";
}
float $exp = `getAttr ($one + ".cosinePower")`;
float $exp = $exp * 10;
$write += "\t\t<exponent>"+$exp+"</exponent>\n";
$write += "\t</phong>\n";
$write += "</material>\n";
}
}
string $shapes[] = `ls -s`;
for ($one in $shapes){
if(`objectType $one` == "mesh"){
int $nV[] = `polyEvaluate -v $one`;
int $nF[] = `polyEvaluate -f $one`;
int $x = 0;
$write += "\n<mesh>\n";
$write += "\t<name>"+$one+"</name>\n";
$write += "\t<embedded>\n";
for($x=0;$x < $nV[0];$x++){
string $cv = $one+".vtx["+$x+"]";
float $pos[] = `pointPosition $cv`;
$write += "\t\t<vertex pos='"+$pos[0]+" "+$pos[1]+" "+$pos[2]+"'";
float $normal[] = `polyNormalPerVertex -q -xyz $cv`;
$normal[0] = -$normal[0];
$normal[1] = -$normal[1];
$normal[2] = -$normal[2];
$write += " normal='"+$normal[0]+" "+$normal[1]+" "+$normal[2]+"'";
string $uv[] = `polyListComponentConversion -fv -tuv $cv`;
float $uvcoord[] = `polyEditUV -q $uv`;
$write += " uv0='"+$uvcoord[0]+" "+$uvcoord[1]+"'/>\n";
}
$write += "\t<triangle_set>\n";
string $sg[] = `listConnections -type shadingEngine $one`;
string $mat[] = `listConnections $sg[0]`;
//$mat[2] holds the actual material.
print(`listConnections $sg[0]`);
if ($mat[2] == "initialMaterialInfo"){
$mat[2] = $mat[0];
}
if ($mat[2] == "renderPartition"){
$mat[2] = $mat[3];
}
$write += "\t<material_name>"+$mat[2]+"</material_name>\n";
for($x = 0;$x < $nF[0];$x++){
string $curface = $one +".f["+$x+"]";
string $vfl[] = `polyListComponentConversion -ff -tvf $curface`;
$vfl = `filterExpand -sm 70 $vfl`;
$write +="\t\t<tri>";
for ($v in $vfl){
string $vert[]=`polyListComponentConversion -fvf -tv $v`;
string $vnum = match("[0-9]+",match("[0-9]+\]",$vert[0]));
int $conv = $vnum;
$write += $conv + " ";
}
$write += "</tri>\n";
}
$write += "\t</triangle_set>\n";
$write += "\t</embedded>\n";
$write += "</mesh>";
}
}
//Models
string $trans[] =`ls -s`;
for ($one in $trans) {
if (`objectType $one` == "mesh"){
string $sg[] = `listConnections -t shadingEngine $one`;
if ($sg[0] == "initialShadingGroup"){
$sg[0] = "lambert1";
}
string $amat[] = `listConnections $sg[0]`;
if ($amat[2] == "renderPartition"){
$amat[2] = $amat[3];
}
if ($amat[2] == "defaultShaderList1"){
$amat[2] = "lambert1";
}
float $inc[] = `getAttr ($amat[2]+".incandescence")`;
print($one + "/:con " + $amat[2]+"\n");
if ($inc[1]+$inc[2]+$inc[0] ==0){
$write += "\n\n<model>\n\t<pos>0 0 0</pos>";
$write += "\n\t<scale>1</scale>";
$write += "\n\t<normal_smoothing>true</normal_smoothing>";
$write += "\n\t<rotation><matrix>1 0 0 0 1 0 0 0 1</matrix></rotation>";
$write += "\n\t<mesh_name>"+$one +"</mesh_name>\n</model>";
}
if ($inc[1]+$inc[2]+$inc[0] >0){
$write += "\n<meshlight>\n";
$write += "\t<pos>0 0 0</pos>\n";
$write += "\t<scale>1</scale>\n";
$write += "\t<rotation>\n";
$write += "\t\t<matrix>1 0 0 0 1 0 0 0 1</matrix>\n";
$write += "\t</rotation>\n";
$write += "\t<mesh_name>"+$one+"</mesh_name>\n";
$write += "\t<spectrum>\n";
float $rgb[3];
$rgb[0] = 256*$inc[0]*5;
$rgb[1] = 256*$inc[1]*5;
$rgb[2] = 256*$inc[2]*5;
$write += "\t<rgb>\n";
$write += "\t\t<rgb>"+$rgb[0]+" "+$rgb[1]+" "+$rgb[2]+"</rgb>\n";
$write += "\t</rgb>\n";
$write += "\t</spectrum>\n";
$write += "</meshlight>\n";
}
}
}
$write += "\n</scene>";
if (`window -exists indOut`) deleteUI indOut;
window -title "Output for Indigo Renderer" indOut;
windowPref -wh 500 600 indOut;
rowLayout -h 600;
scrollField -w 480 -h 560 -editable false -tx $write;
showWindow indOut;
Please test, as always.
Oh, and no I can't add lens radius and angle of view, because 0.5.6 won't read it then.
Just do what victor said.
-Matt
bazuka
06-06-2006, 08:04 AM
found it, :)
MattTheMan
06-06-2006, 01:03 PM
so it works now?
anyway, I'm adding specular materials and sun support now.
-Matt
bazuka
06-06-2006, 02:27 PM
yeah, but :) it's slooooooow, mean render....
MattTheMan
06-06-2006, 02:55 PM
And so is Maxwell :p
bazuka
06-06-2006, 06:58 PM
yeah, but i dont use maxwell :)
MattTheMan
06-06-2006, 11:23 PM
ok, here's an update. You can choose wether to use Skylight, Physical Sky, and none.
If you do choose Physical Sky, you need to create a point light, dont rename it, and position it where the sun is (taking the target as 0 0 0).
//Script by Matt B. (ThatDude33) for export from Maya 6.5+ to Indigo 0.5.3
//Fixed by Arne OOG
//Outputs in script window
//Copy-Paste results into XML file, run using Ini File.
//No edits should be neccesary
//Start Writing:
string $write = "<?xml version='1.0' standalone=no>\n";
global proc vector normalize(vector $v){
float $len = sqrt($v.x*$v.x+$v.y*$v.y+$v.z*$v.z);
vector $n = <<$v.x/$len, $v.y/$len, $v.z/$len>>;
return $n;
}
if (`window -exists In`) deleteUI In;
window -title "Maya->Indigo Settings" In;
windowPref -wh 300 100 In;
columnLayout ColumnLayout;
frameLayout -labelVisible false -marginWidth 5 -marginHeight 5;
columnLayout;
text -label "Render Settings";
rowLayout -numberOfColumns 3;
string $physical = `button -label "Physical Sky"`;
string $sky = `button -label "Skylight"`;
string $none = `button -label "None"`;
button -edit -command ("output physical") $physical;
button -edit -command ("output skylight") $sky;
button -edit -command ("output none") $none;
showWindow In;
global proc output(string $selected){
string $write;
print $selected;
$write +="<scene>\n";
$write += "\n<renderer_settings>\n";
$write += "\t<width>" + `getAttr defaultResolution.width` +"</width>\n";
$write += "\t<height>" + `getAttr defaultResolution.height` +"</height>\n";
$write += "\t<metropolis>true</metropolis>\n";
$write += "\t<large_mutation_prob>0.2</large_mutation_prob>\n";
$write += "\t<max_change>0.025</max_change>\n";
$write += "\t<russian_roulette_live_prob>0.7</russian_roulette_live_prob>\n";
$write += "\t<max_depth>1000</max_depth>\n";
$write += "\t<bidirectional>false</bidirectional>\n";
$write += "\t<strata_width>10</strata_width>\n";
$write += "\t<frame_upload_period>20</frame_upload_period>\n";
$write += "\t<halt_time>-1</halt_time>\n";
$write += "\t<logging>true</logging>\n";
$write += "\t<image_save_period>30</image_save_period>\n";
$write += "\t<save_tonemapped_exr>false</save_tonemapped_exr>\n";
$write += "\t<save_untonemapped_exr>false</save_untonemapped_exr>\n";
$write += "</renderer_settings>\n\n";
$write += "\t<tonemapping>\n";
$write += "\t\t<reinhard>\n";
$write += "\t\t\t<pre_scale>2.0</pre_scale>\n";
$write += "\t\t\t<post_scale>1.0</post_scale>\n";
$write += "\t\t</reinhard>\n";
$write += "\n\t\t<colour_correction>1.0 1.0 1.0</colour_correction>\n";
$write += "\t</tonemapping>\n";
if ($selected == "skylight"){
$write += "<background>\n<radiance>1 1 1</radiance>\n</background>\n\n";
}
if ($selected == "physical"){
float $x = `getAttr pointLight1.tx`;
float $y = `getAttr pointLight1.ty`;
float $z = `getAttr pointLight1.tz`;
vector $sun = <<$x, $y, $z>>;
$sun = normalize($sun);
$write += "\n<skylight>\n\t<sundir>"+$sun.x+" "+$sun.y+" "+$sun.z+"</sundir>\n\t<turbidity>2.0</turbidity>\n\t<sky_gain>0.02</sky_gain>\n</skylight>\n";
}
$write += "\n<camera>\n";
float $px = `getAttr camera1.tx`;
float $py = `getAttr camera1.ty`;
float $pz = `getAttr camera1.tz`;
vector $pos = <<$px, $py, $pz>>;
float $tx = `getAttr camera1_aim.tx`;
float $ty = `getAttr camera1_aim.ty`;
float $tz = `getAttr camera1_aim.tz`;
vector $target= <<$tx, $ty, $tz>>;
vector $front = $target-$pos;
vector $dist = $front;
$front = normalize($front);
$write += "\t<pos>"+$px+" "+$py+" "+$pz+"</pos>\n";
float $ux = `getAttr camera1_up.tx`;
float $uy = `getAttr camera1_up.ty`;
float $uz = `getAttr camera1_up.tz`;
vector $up = <<$ux, $uy, $uz>>;
$up = $up - $pos;
$up = normalize($up);
$write += "\t<up>"+$up.x+" "+$up.y+" "+$up.z+"</up>\n";
$write += "\t<forwards>"+$front.x+" "+$front.y+" "+$front.z+"</forwards>\n";
float $fstop = 8;
if ($fstop < 1.0){
$fstop = 1.0;
}
if ($fstop > 22){
$fstop = 22;
}
float $aprad = 50/$fstop;
$aprad = $aprad/200;
$write += "\t<aperture_radius>"+$aprad+"</aperture_radius>\n";
float $FD = sqrt($dist.x*$dist.x+$dist.y*$dist.y+$dist.z*$dist.z);
$write += "\t<focus_distance>"+$FD+"</focus_distance>\n";
$write += "\t<aspect_ratio>"+`getAttr defaultResolution.deviceAspectRatio`+"</aspect_ratio>\n";
$write += "\t<sensor_width>0.036</sensor_width>\n";
$write += "\t<lens_sensor_dist>0.0523314</lens_sensor_dist>\n";
$write += "\t<white_balance>D65</white_balance>\n";
$write += "</camera>\n\n";
string $mats[] = `ls -mat`;
for ($one in $mats){
if (`objectType $one` == "lambert"){
float $inc[]=`getAttr ($one + ".incandescence")`;
if ($inc[0] > 0.0){
break;
}
if ($inc[1] > 0.0){
break;
}
if ($inc[2] > 0.0){
break;
}
$write+= "\n<material>\n";
if($one == "initialMaterialInfo"){
$one = "lambert1";
}
$write += "\t<name>"+$one+"</name>\n";
$write += "\t<diffuse>\n";
float $color[] = `getAttr ($one + ".color")`;
$write+="\t\t<colour>"+$color[0]+" "+$color[1]+" "+$color[2]+"</colour>\n";
$write += "\t</diffuse>\n";
$write += "</material>\n";
}
if (`objectType $one` == "phong"){
$write += "\n<material>\n";
$write += "\t\t<name>"+$one+"</name>\n";
$write += "\t<phong>\n";
float $col[] = `getAttr ($one + ".color")`;
$write += "\t\t<diffuse>"+$col[0]+" "+$col[1]+" "+$col[2]+"</diffuse>\n";
float $reflectivity = `getAttr($one +".reflectivity")`;
if ($reflectivity > 0.0){
$write += "\t\t<specular>"+$reflectivity+" "+$reflectivity+" "+$reflectivity+"</specular>\n";
}
if ($reflectivity == 0.0){
float $refl[] = `getAttr ($one +".reflectedColor")`;
$write += "\t\t<specular>"+$refl[0]+" "+$refl[1]+" "+$refl[2]+"</specular>\n";
}
float $exp = `getAttr ($one + ".cosinePower")`;
float $exp = $exp * 10;
$write += "\t\t<exponent>"+$exp+"</exponent>\n";
$write += "\t</phong>\n";
$write += "</material>\n";
}
}
string $shapes[] = `ls -s`;
for ($one in $shapes){
if(`objectType $one` == "mesh"){
int $nV[] = `polyEvaluate -v $one`;
int $nF[] = `polyEvaluate -f $one`;
int $x = 0;
$write += "\n<mesh>\n";
$write += "\t<name>"+$one+"</name>\n";
$write += "\t<embedded>\n";
for($x=0;$x < $nV[0];$x++){
string $cv = $one+".vtx["+$x+"]";
float $pos[] = `pointPosition $cv`;
$write += "\t\t<vertex pos='"+$pos[0]+" "+$pos[1]+" "+$pos[2]+"'";
float $normal[] = `polyNormalPerVertex -q -xyz $cv`;
$normal[0] = -$normal[0];
$normal[1] = -$normal[1];
$normal[2] = -$normal[2];
$write += " normal='"+$normal[0]+" "+$normal[1]+" "+$normal[2]+"'";
string $uv[] = `polyListComponentConversion -fv -tuv $cv`;
float $uvcoord[] = `polyEditUV -q $uv`;
$write += " uv0='"+$uvcoord[0]+" "+$uvcoord[1]+"'/>\n";
}
$write += "\t<triangle_set>\n";
string $sg[] = `listConnections -type shadingEngine $one`;
string $mat[] = `listConnections $sg[0]`;
//$mat[2] holds the actual material.
print(`listConnections $sg[0]`);
if ($mat[2] == "initialMaterialInfo"){
$mat[2] = $mat[0];
}
if ($mat[2] == "renderPartition"){
$mat[2] = $mat[3];
}
$write += "\t<material_name>"+$mat[2]+"</material_name>\n";
for($x = 0;$x < $nF[0];$x++){
string $curface = $one +".f["+$x+"]";
string $vfl[] = `polyListComponentConversion -ff -tvf $curface`;
$vfl = `filterExpand -sm 70 $vfl`;
$write +="\t\t<tri>";
for ($v in $vfl){
string $vert[]=`polyListComponentConversion -fvf -tv $v`;
string $vnum = match("[0-9]+",match("[0-9]+\]",$vert[0]));
int $conv = $vnum;
$write += $conv + " ";
}
$write += "</tri>\n";
}
$write += "\t</triangle_set>\n";
$write += "\t</embedded>\n";
$write += "</mesh>";
}
}
//Models
string $trans[] =`ls -s`;
for ($one in $trans) {
if (`objectType $one` == "mesh"){
string $sg[] = `listConnections -t shadingEngine $one`;
if ($sg[0] == "initialShadingGroup"){
$sg[0] = "lambert1";
}
string $amat[] = `listConnections $sg[0]`;
if ($amat[2] == "renderPartition"){
$amat[2] = $amat[3];
}
if ($amat[2] == "defaultShaderList1"){
$amat[2] = "lambert1";
}
float $inc[] = `getAttr ($amat[2]+".incandescence")`;
print($one + "/:con " + $amat[2]+"\n");
if ($inc[1]+$inc[2]+$inc[0] ==0){
$write += "\n\n<model>\n\t<pos>0 0 0</pos>";
$write += "\n\t<scale>1</scale>";
$write += "\n\t<normal_smoothing>false</normal_smoothing>";
$write += "\n\t<rotation><matrix>1 0 0 0 1 0 0 0 1</matrix></rotation>";
$write += "\n\t<mesh_name>"+$one +"</mesh_name>\n</model>";
}
if ($inc[1]+$inc[2]+$inc[0] >0){
$write += "\n<meshlight>\n";
$write += "\t<pos>0 0 0</pos>\n";
$write += "\t<scale>1</scale>\n";
$write += "\t<rotation>\n";
$write += "\t\t<matrix>1 0 0 0 1 0 0 0 1</matrix>\n";
$write += "\t</rotation>\n";
$write += "\t<mesh_name>"+$one+"</mesh_name>\n";
$write += "\t<spectrum>\n";
float $rgb[3];
$rgb[0] = 256*$inc[0]*5;
$rgb[1] = 256*$inc[1]*5;
$rgb[2] = 256*$inc[2]*5;
$write += "\t<rgb>\n";
$write += "\t\t<rgb>"+$rgb[0]+" "+$rgb[1]+" "+$rgb[2]+"</rgb>\n";
$write += "\t</rgb>\n";
$write += "\t</spectrum>\n";
$write += "</meshlight>\n";
}
}
}
$write += "\n</scene>";
if (`window -exists indOut`) deleteUI indOut;
window -title "Output for Indigo Renderer" indOut;
windowPref -wh 500 600 indOut;
rowLayout -h 600;
scrollField -w 480 -h 560 -editable false -tx $write;
showWindow indOut;
}
Same $dist. z problem, but you can fix that yourself ;)
-Matt
wedge
06-07-2006, 04:19 AM
i was able to get a successful render from Maya to Indigo, but with a small discrepancy.
on the right is an indigo render after 2 minutes of rendering. on the left is the viewport. the object is well within the camera boundaries, but when rendered i only get the bottom half. strange, no?
the odd shadow is not an error - the object was accidentally off the ground.
rendered with physical sky.
http://orangesherbert.com/images/indigo_test.png
MattTheMan
06-07-2006, 02:55 PM
Yeah, well that's the difference between Maya camera and Indigo camera. Just zoom out a bit, shouldn't be too much of a problem. I'm sorry, I'll look into any way to fix that.
In the meanwhile, I'm trying to convert this script to c++ and make a Maya Plugin, since MEL is toooo sloooow. It actually crashed my Maya yesterday... trying to export 50,000 polys
-Matt ;)
wedge
06-07-2006, 04:09 PM
okay, that's probably why it crashed maya when I tried to export the Jotero ajax bust.
but, hey, at least it works, right?
Higher
06-16-2006, 12:55 AM
i was able to get a successful render from Maya to Indigo, but with a small discrepancy.
on the right is an indigo render after 2 minutes of rendering. on the left is the viewport. the object is well within the camera boundaries, but when rendered i only get the bottom half. strange, no?
the odd shadow is not an error - the object was accidentally off the ground.
rendered with physical sky.
http://orangesherbert.com/images/indigo_test.png
I had the same problem, it's the way the camera is setted up. Just like Matt said zoom out a bit.
Btw, Matt it's blitzmaya. :thumbsup:
MattTheMan
07-02-2006, 11:08 PM
hey people, long time no update :D
arneoog (from simply maya or indigo forum) and I have been working together since the last update- trying to bring some flexibility into this script. Now with an actual UI!
however, I have not tied most of the UI into the actual core YET- but the basics work. (skylight, background light, and the bidirectional setting :p)
anyway- it's a zip file as of now. images go to your maya->6 or 7-> prefs->icons/ folder.
please read the readme file first... it will tell you what to do, since there are 2 mel files.
edit/ in the UI- go to lights- and click the sun icon for the sunposition (that's right, no more point light) and also you can create a camera through the UI too /edit
bazuka
07-03-2006, 08:55 AM
nice man, i have only one objection u must make indigo to support HT...
MattTheMan
07-03-2006, 12:38 PM
oh, that's not me, I don't make Indigo, just the maya plugin :D
but I think HT DOES speed up the render significantly.
CGTalk Moderation
07-03-2006, 12:38 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
vBulletin v3.0.5, Copyright ©2000-2009, Jelsoft Enterprises Ltd.