Gracias Gracias:  0
Resultados 1 al 5 de 5

Tema: framebuffers en mr-maya

  1. #1
    Senior Member Avatar de larryvm
    Fecha de ingreso
    Oct 2004
    Ubicación
    madrid
    Mensajes
    688

    Maya framebuffers en mr-maya

    hace unos días encontré estos shaders que permiten sacar render buffers en mr con unos pocos pasos, aun así era un poco lioso convertir una escena de maya así que en un rato que saque he escrito un script que ejecuta los pasos complicados para activarlo.

    por ahora convierte las luces spot, direccional y point, y los shaders lambert, phong y blinn, lo único que tiene una correlacion directa entre este shader y los de maya y te crea el dummy para la selección de los renders buffers y los directorios de salida.

    también te crea un shader de sombra para los objetos con refracción.

    así que ahora lo único que hay que hacer es cargar la escena, ejecutar el script y modificar el dummy para que funcione.

    el script

    Código:
    global proc cambiaAtributo3(string $shaderIni,string $atributoIni,string $shaderFin,string $atributoFin)
    {
    $conexiones=`listConnections -p 1 ($shaderIni+"."+$atributoIni)`;
    if (`size $conexiones`>0)
    		{
    		connectAttr -f ($conexiones[0]) ($shaderFin+"."+$atributoFin) ;
    		}
    		else
    		{
    		$Color=`getAttr ($shaderIni+"."+$atributoIni)`;
    		setAttr ($shaderFin+"."+$atributoFin) -type double3 $Color[0] $Color[1] $Color[2];
    		} 
    }
    global proc baseShader(string $shaderIni,string $shaderFin)
    {
    	cambiaAtributo3($shaderIni,"color",$shaderFin,"cSurface");
    	cambiaAtributo3($shaderIni,"transparency",$shaderFin,"cOpacity");
    	
    	setAttr ($shaderFin+".use_simple_diffuse") 1;
    	$dif=`getAttr ($shaderIni+".diffuse")`;
    	setAttr ($shaderFin+".cds") $dif;
    
    	setAttr ($shaderFin+".use_ambient") 1;
    	setAttr ($shaderFin+".cAmb") 1.0;
    	cambiaAtributo3($shaderIni,"ambientColor",$shaderFin,"ambient_color");
    
    	setAttr ($shaderFin+".use_incandescence") 1;
    	setAttr ($shaderFin+".cInc") 1.0;
    	cambiaAtributo3($shaderIni,"incandescence",$shaderFin,"incandescence");
    $bump=`listConnections -p 1 ($shaderIni+".normalCamera")`;
    	if (`size $bump`>0)
    		{
    		setAttr ($shaderFin+".use_normal") 1;
    		connectAttr -f $bump[0] ($shaderFin+".input_normal") ;
    		}
    
    
    }
    global proc fvshaderMegaTK()
    {
    string $nombre;
    string $lambert[],$phong[],$blinn;
    string $spot[],$directional[],$point;
    
    
    $dummy=`polyCube -n "dummycube" -ch on -o on -w 1.0 -d 1.0 -cuv 4`;
    setAttr ($dummy[0]+".miExportGeoShader") 1;
    $pass=`shadingNode -asShader p_MegaTK_pass -n ($dummy[0]+"_pass")`;
    
    connectAttr -force ($pass+".message") ($dummy[0]+".miGeoShader");
    
    
    string $SG[];
    $lambert=`ls -et lambert`;
    for ($elemento in $lambert)
    	{
    	if ($elemento!="lambert1")
    		{
    		print ("lambert"+$elemento+"\n");
    		$SG=`listConnections -p 0 ($elemento+".outColor")`;
    		setAttr ($SG[0]+".miExportMrMaterial") 1;
    		$nombre=$elemento+"_MTK";
    		$nombre=`shadingNode -asShader p_MegaTK -n $nombre`;
    		connectAttr -f ($nombre+".message") ( $SG[0]+".miMaterialShader");
    		baseShader ($elemento,$nombre); 
    		setAttr ($nombre+".use_phong_specular") 0;
    		}
    	}
    
    $Phong=`ls -et phong`;
    for ($elemento in $Phong)
    	{
    	print ("phongs->"+$elemento+"\n");
    	$SG=`listConnections -p 0 ($elemento+".outColor")`;
    	setAttr ($SG[0]+".miExportMrMaterial") 1;
    	$nombre=$elemento+"_MTK";
    	$nombre=`shadingNode -asShader p_MegaTK -n $nombre`;
    	connectAttr -f ($nombre+".message") ( $SG[0]+".miMaterialShader");
    	baseShader ($elemento,$nombre); 
    	setAttr ($nombre+".use_blinn_specular") 0;
    	setAttr ($nombre+".use_phong_specular") 1;
    	setAttr ($nombre+".p_cS") 1;
    	cambiaAtributo3($elemento,"specularColor",$nombre,"p_specular");
    	$cp=`getAttr ($elemento+".cosinePower")`;
    	setAttr ($nombre+".p_exponent") $cp;
    	setAttr ($nombre+".use_reflection") 1;
    	$cp=`getAttr ($elemento+".reflectivity")`;
    	setAttr ($nombre+".cReflect") $cp;
    	$cp=`getAttr ($elemento+".refractions")`;
    	setAttr ($nombre+".use_refraction") $cp;
    	if ($cp==1)
    		{
    	$cp=`getAttr ($elemento+".refractiveIndex")`;
    	setAttr ($nombre+".ior_in_refr") $cp;
    	$shadow=`shadingNode -asShader mib_shadow_transparency -n ($nombre+"shadow")`; 
    	connectAttr -f ($shadow+".message") ( $SG[0]+".miShadowShader");
    
    
    	cambiaAtributo3($elemento,"color",$shadow,"color");
    	cambiaAtributo3($elemento,"transparency",$shadow,"transp");
    		}
    	}
    
    $Blinn=`ls -et blinn`;
    for ($elemento in $Blinn)
    	{
    	print ("Blinn->"+$elemento+"\n");
    	$SG=`listConnections -p 0 ($elemento+".outColor")`;
    	setAttr ($SG[0]+".miExportMrMaterial") 1;
    	$nombre=$elemento+"_MTK";
    	$nombre=`shadingNode -asShader p_MegaTK -n $nombre`;
    	connectAttr -f ($nombre+".message") ( $SG[0]+".miMaterialShader");
    	baseShader ($elemento,$nombre); 
    	setAttr ($nombre+".use_phong_specular") 0;
    	setAttr ($nombre+".use_blinn_specular") 1;
    	setAttr ($nombre+".b_cS") 1;
    	cambiaAtributo3($elemento,"specularColor",$nombre,"b_specular");
    	$cp=`getAttr ($elemento+".eccentricity")`;
    	setAttr ($nombre+".b_eccentricity") $cp;
    	$cp=`getAttr ($elemento+".specularRollOff")`;
    	setAttr ($nombre+".b_specularRollOff") $cp;
    	setAttr ($nombre+".use_reflection") 1;
    	$cp=`getAttr ($elemento+".reflectivity")`;
    	setAttr ($nombre+".cReflect") $cp;
    	$cp=`getAttr ($elemento+".refractions")`;
    	setAttr ($nombre+".use_refraction") $cp;
    	if ($cp==1)
    		{
    	$cp=`getAttr ($elemento+".refractiveIndex")`;
    	setAttr ($nombre+".ior_in_refr") $cp;
    	$shadow=`shadingNode -asShader mib_shadow_transparency -n ($nombre+"shadow")`; 
    	connectAttr -f ($shadow+".message") ( $SG[0]+".miShadowShader");
    
    
    	cambiaAtributo3($elemento,"color",$shadow,"color");
    	cambiaAtributo3($elemento,"transparency",$shadow,"transp");
    		}
    	}
    
    $spot=`ls -typ spotLight`;
    for ($elemento in $spot)
    	{
    	$nombre=`shadingNode -asShader p_SpotTK -n $nombre`;
    	connectAttr -f ($nombre+".message") ( $elemento+".miLightShader");
    	cambiaAtributo3($elemento,"color",$nombre,"color");
    	$cp=`getAttr ($elemento+".intensity")`;
    	setAttr ($nombre+".intensity") $cp;
    	
    	$cp=`getAttr ($elemento+".coneAngle")`;
    	setAttr ($nombre+".cone") $cp;
    
    
    	}
    
    $directional=`ls -typ directionalLight`;
    for ($elemento in $directional)
    	{
    	$nombre=`shadingNode -asShader p_DirectTK -n $nombre`;
    	connectAttr -f ($nombre+".message") ( $elemento+".miLightShader");
    	cambiaAtributo3($elemento,"color",$nombre,"color");
    	$cp=`getAttr ($elemento+".intensity")`;
    	setAttr ($nombre+".intensity") $cp;
    	}
    
    $pointL=`ls -typ pointLight`;
    for ($elemento in $pointL)
    	{
    	$nombre=`shadingNode -asShader p_PointTK -n $nombre`;
    	connectAttr -f ($nombre+".message") ( $elemento+".miLightShader");
    	cambiaAtributo3($elemento,"color",$nombre,"color");
    	$cp=`getAttr ($elemento+".intensity")`;
    	setAttr ($nombre+".intensity") $cp;
    	}
    
    
    }
    copiarlo y grabarlo como fvshaderMegaTK.mel

    para ejecutarlo escribir fvshaderMegaTK

    cualquier fallo que veais o sugerencia comentarla, a ver que se puede hacer
    Larry vizoso
    Pipeline developer/technical director
    el ranchito : mi blog

  2. #2
    Senior Member
    Fecha de ingreso
    Aug 2005
    Mensajes
    621

    Re: framebuffers en mr-maya

    Gracias por compartir el script. La verdad es que no podré probarlo ya que uso win2K y no funciona el renderman, pero le hecharé un ojo al Mel a ver si saco algo en claro y de paso aprendo.

    Un saludo

  3. #3
    Senior Member Avatar de larryvm
    Fecha de ingreso
    Oct 2004
    Ubicación
    madrid
    Mensajes
    688

    Re: framebuffers en mr-maya

    con mr me refiero a mental ray, no renderman.

    un saludo tío
    Larry vizoso
    Pipeline developer/technical director
    el ranchito : mi blog

  4. #4
    Senior Member
    Fecha de ingreso
    Aug 2005
    Mensajes
    621

    Re: framebuffers en mr-maya

    Cita Iniciado por larryvm
    con mr me refiero a mental ray, no renderman.

    un saludo tío
    Oops confundi mr por rm, entonces lo pruebo insofacto.

    Otro saludo para ti compañero

  5. #5
    Miembro Avatar de Joeking
    Fecha de ingreso
    Apr 2006
    Mensajes
    56

    Maya Re: framebuffers en mr-maya

    Hola Larryvm, en estos momentos no puedo probarlo, pero me lo guardo y lo probaré más adelante, me he guardado también tu correo, así cuando lo pruebe te contestaré a ver qué.

    Muchas gracias.

Temas similares

  1. Maya Abrir archivo .mb de Maya 2014 en Maya 2016
    Por Moritz en el foro Animación y Rigging
    Respuestas: 1
    Último mensaje: 22-12-2016, 13:15
  2. Maya Importar personajes de maya en escenas distintas de maya
    Por conisco en el foro Animación y Rigging
    Respuestas: 2
    Último mensaje: 12-03-2014, 23:54
  3. Respuestas: 5
    Último mensaje: 07-04-2013, 20:41
  4. Respuestas: 0
    Último mensaje: 06-04-2013, 01:22
  5. Maya Comandos de acceso rapido a los kek frames en maya en maya
    Por robby en el foro Peticiones y Búsquedas
    Respuestas: 0
    Último mensaje: 14-07-2009, 22:28

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •