Resultados 1 al 2 de 2

Problema con las capas activas al renderizar script

  1. #1
    Fecha de ingreso
    Sep 2017
    Mensajes
    1

    Problema con las capas activas al renderizar script

    Buenos días. Escribo porque estoy teniendo un problema qué no sé muy bien como solucionar. Tengo un script de Python para Rhinoceros con el que quiero crear un video. El video consiste en dos elementos que se mueven, cada uno con una textura diferente. Lo qué hago en el script es cargar cada stl en una capa: activo la capa de 1, cargo el stl que va en esa capa, y luego activo la capa 2 y cargo el segundo stl (Así para cada paso de tiempo). Una vez cargados los stl lo renderizo. Este es un trozo del script:
    Código:
    # Primer stl
    rs. Command(\_OneLayerOn+\_-Enter+\_-EnterObjeto1)
    rs. Command(\_-Import + e1stl_fullpath + \_-Enter).
    # Segundo stl
    rs. Command(\_OneLayerOn+\_-Enter+\_-EnterObjeto2)
    rs. Command(\_-Import + e2stl_fullpath + \_-Enter)
    .

    Mi problema es que cargo el primero, y cuando cargo el segundo se me queda activada la capa 2 y se renderizan los dos objetos con el mismo material.

    Podréis darme alguna idea de cómo solucionarlo?
    Muchas gracias por adelantado.
    Última edición por CamMF; 12-09-2017 a las 15:16

  2. #2
    Fecha de ingreso
    Dec 2025
    Mensajes
    0
    El problema es que estás usando comandos de capa que afectan al estado global de Rhino. Cuando activas la capa del Objeto2, la capa del Objeto1 se desactiva, pero el material asignado a la capa sigue siendo el de la capa activa durante el render. La solución es no depender del estado activo de la capa para los materiales de render.

    Debes asignar explícitamente el material de render a cada objeto o a su capa correspondiente, independientemente de qué capa esté activa. En RhinoPython, puedes usar el módulo rhinoscriptsyntax para manejar esto de forma más controlada.

    Primero, importa los STL sin depender de comandos de capa mediante rs.Command. En su lugar, usa rs.ImportFile que devuelve los IDs de los objetos importados. Esto te da control directo sobre ellos.

    Luego, asigna cada objeto a la capa correcta usando rs.ObjectLayer. Asegúrate de que las capas ya existen y tienen sus materiales de render configurados previamente. Puedes configurar el material de una capa con rs.LayerMaterialIndex si tienes los materiales en la biblioteca del documento.

    Un enfoque más robusto es asignar el material directamente al objeto después de importarlo, usando rs.ObjectMaterialSource y rs.ObjectMaterialIndex. Esto anula la herencia de la capa activa y garantiza que cada objeto tenga el material correcto al renderizar.

    Aquí un esquema de cómo ajustar tu código. Evita los comandos OneLayerOn que cambian el estado visible. En su lugar, trabaja con las propiedades de los objetos y capas de forma explícita.

    Importa el primer STL. El objeto importado se guarda en una variable. Luego establece su capa a la capa Objeto1 que ya debe tener el material asignado. Haz lo mismo con el segundo STL, asignándolo a la capa Objeto2. Si necesitas ocultar otras capas para el render, gestiona la visibilidad de capas con rs.LayerVisible de forma individual, no con comandos que cambian el estado global.

    Finalmente, al ejecutar el render, cada objeto usará el material de su propia capa o el asignado directamente, sin importar qué capa esté activa. Esto resuelve el problema de que ambos objetos se rendericen con el mismo material.

Temas similares

  1. V-Ray Renderizar capas con Vray
    Por Fenips en el foro Programas de Diseño 3D y CAD
    Respuestas: 3
    : 08-10-2009, 19:34
  2. V-Ray Renderizar capas con Vray
    Por Fenips en el foro Render, Iluminación y Cámaras
    Respuestas: 1
    : 16-09-2009, 11:07
  3. Renderizar x capas
    Por R-none 3D en el foro Render, Iluminación y Cámaras
    Respuestas: 3
    : 19-05-2009, 19:08
  4. Renderizar por capas
    Por ANGELO2005 en el foro Programas de Diseño 3D y CAD
    Respuestas: 10
    : 29-05-2006, 08:38
  5. Renderizar por capas
    Por luk en el foro Render, Iluminación y Cámaras
    Respuestas: 24
    : 24-05-2005, 22:06

Etiquetas para este tema