Resultados 1 al 5 de 5

Tema: Framebuffer en Mental Ray

  1. #1
    Fecha de ingreso
    Oct 2004
    Mensajes
    687

    Maya Framebuffers en mr-maya

    Hace unos días encontré desesperados Shaders que permiten sacar render buffers en Mental Ray 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 humilde las luces spot, direccional y point, y los Shaders Lambert, Phong y Blinn, lo único que tiene una correlación directa entre este Shader y los de Maya y te crea el dummie 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 dummie 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, tsetattr ($shaderfin+.use_ambient) 1;
    Setattr ($shaderfin+.camb) 1.0;
    Cambiaatributo3($shaderini,ambientcolor,$shaderfin,ambient_color), tsetattr ($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;
    $dummie=`Polycube -n dummiecube -ch on -o on -w 1.0 -d 1.0 -cuv 4`;
    Setattr ($dummie[0]+.miexportgeoshader) 1;
    $pass=`shadingnode -asshader p_megatk_pass -n ($dummie[0]+_pass)`.
    
    Connectattr -force ($pass+.message) ($dummie[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),
     tcambiaatributo3($elemento,color,$shadow,color),
    Cambiaatributo3($elemento,transparency,$shadow,transparent),
    }
    }.
    $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+.specularrollof)`;
    Setattr ($nombre+.b_specularrollof) $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),
     tcambiaatributo3($elemento,color,$shadow,color),
    Cambiaatributo3($elemento,transparency,$shadow,transparent),
    }
    }.
    $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;
     t}.
    $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 veáis o sugerencia comentarla, a ver qué se puede hacer.
    Larry vizoso
    Pipeline developer/technical director
    el ranchito : mi blog

  2. #2
    Fecha de ingreso
    Aug 2005
    Mensajes
    619

    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 echaré un ojo al Mel a ver si saco algo en claro y de paso aprendo. Un saludo.

  3. #3
    Fecha de ingreso
    Oct 2004
    Mensajes
    687

    Framebuffers en mr-maya

    Con Mental Ray me refiero a Mental Ray, no RenderMan. Un saludo tío.
    Larry vizoso
    Pipeline developer/technical director
    el ranchito : mi blog

  4. #4
    Fecha de ingreso
    Aug 2005
    Mensajes
    619

    Framebuffers en mr-maya

    Con Mental Ray me refiero a Mental Ray, no RenderMan. Un saludo tío.
    Oops confundí Mental Ray por rm, entonces lo pruebo insofacto.

    Otro saludo para ti compañero.

  5. #5
    Fecha de ingreso
    Apr 2006
    Mensajes
    56

    Maya 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. Cómo controlar parámetros Phisical Cam en el Framebuffer de corona
    Por Loggia3d en el foro Render, Iluminación y Cámaras
    Respuestas: 1
    : 03-05-2017, 17:11
  2. Mental Ray
    Por kukoh en el foro Render, Iluminación y Cámaras
    Respuestas: 0
    : 03-02-2011, 22:45
  3. Mental Ray Sun
    Por 3dpoder en el foro 3DStudio Max
    Respuestas: 0
    : 09-06-2009, 23:06
  4. Framebuffer del Combustion 4 en macosx
    Por xeondv en el foro Postproducción
    Respuestas: 0
    : 13-11-2006, 13:27
  5. Mental Ray
    Por molko en el foro Programas de Diseño 3D y CAD
    Respuestas: 2
    : 27-03-2004, 04:46

Etiquetas para este tema