Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 10 de 13

Tema: Cambiar una característica en distintos objetos y materiales

  1. #1
    Usuario Senior
    Fecha de ingreso
    Jul 2023
    Mensajes
    30
    Gracias (Dadas)
    3
    Gracias (Recibidas)
    1

    Cambiar una característica en distintos objetos y materiales

    En mi escena, tengo numerosos objetos con diferentes materiales asignados. Quiero modificar en todos ellos una característica, digamos "especular", y, por ejemplo, sumar 0.25 al valor que ya tienen en el especular de todos esos materiales en todos esos objetos, sin tener que ir uno por uno para modificarlos.

    ¿Cómo se puede hacer? Gracias.

  2. #2
    Usuario Legendario Avatar de Soliman
    Fecha de ingreso
    Aug 2004
    Mensajes
    22,360
    Gracias (Dadas)
    693
    Gracias (Recibidas)
    7237

    Cómo crear y asignar un Material Shader con Python

    Supongo que se podría hacer por medio de un script de Phyton, pero no sabría decirte como...


  3. #3
    Usuario Legendario Avatar de Soliman
    Fecha de ingreso
    Aug 2004
    Mensajes
    22,360
    Gracias (Dadas)
    693
    Gracias (Recibidas)
    7237

    Materiales Python


  4. #4
    Usuario Legendario Avatar de Soliman
    Fecha de ingreso
    Aug 2004
    Mensajes
    22,360
    Gracias (Dadas)
    693
    Gracias (Recibidas)
    7237
    ((off topic))

    A ver si mejoran el chatGPT y con solo escribir lo que quieras te lo hace.

    Yo probé hace tiempo crear unos scripts para añadir objetos a la escena y lo hace bien, aunque al principio le cuesta y se equivoca.
    Parece ser que este es el futuro de la programación..


  5. #5
    Administrador, fundador y milenario... Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    27,513
    Gracias (Dadas)
    3604
    Gracias (Recibidas)
    5133

    Cambiar el valor de especular en todos los objetos de una escena de Blender

    Para modificar el valor del especular de todos los materiales en todos los objetos de una escena de Blender, puedes seguir estos pasos:

    1. En modo objeto, selecciona todos los objetos que quieras modificar. Puedes hacerlo haciendo clic en ellos mientras mantienes pulsada la tecla Ctrl.
    2. En el panel de propiedades, en la pestaña Materiales, haz clic en el botón Editar. Esto abrirá el editor de materiales.
    3. En el editor de materiales, selecciona todos los materiales que quieras modificar. Puedes hacerlo haciendo clic en ellos mientras mantienes pulsada la tecla Ctrl.
    4. En el panel de propiedades, en la pestaña Especular, aumenta el valor del especular en 0.25.
    5. Haz clic en el botón Aceptar para cerrar el editor de materiales.


    Todos los materiales seleccionados se modificarán para aumentar el valor del especular en 0.25.

    Aquí tienes los pasos detallados:

    Paso 1: Seleccionar los objetos

    En modo objeto, selecciona todos los objetos que quieras modificar. Puedes hacerlo haciendo clic en ellos mientras mantienes pulsada la tecla Ctrl.

    Paso 2: Abrir el editor de materiales

    Para abrir el editor de materiales, haz clic en el botón Editar en el panel de propiedades, en la pestaña Materiales.

    Paso 3: Seleccionar los materiales

    En el editor de materiales, selecciona todos los materiales que quieras modificar. Puedes hacerlo haciendo clic en ellos mientras mantienes pulsada la tecla Ctrl.

    Paso 4: Modificar el valor del especular

    En el panel de propiedades, en la pestaña Especular, aumenta el valor del especular en 0.25.

    Paso 5: Cerrar el editor de materiales

    Para cerrar el editor de materiales, haz clic en el botón Aceptar.

    También puedes utilizar un script para modificar el valor del especular de todos los materiales en todos los objetos de una escena de Blender. El siguiente script aumentará el valor del especular en 0.25 de todos los materiales en todos los objetos de la escena actual.

    Para ejecutar este script, abre la consola de Python de Blender y pega el script. A continuación, pulsa Enter para ejecutar el script.

    Código:
    import bpy
    def modify_specular(amount):
    for obj in bpy.context.scene.objects:
    for mat in obj.data.materials:
    mat.specular.alpha = mat.specular.alpha + amount
    modify_specular(0.25)
    A ver si esto te ayuda en algo, un saludo.
    |Agradecer cuando alguien te ayuda es de ser agradecido|

  6. #6
    Usuario Legendario Avatar de Soliman
    Fecha de ingreso
    Aug 2004
    Mensajes
    22,360
    Gracias (Dadas)
    693
    Gracias (Recibidas)
    7237
    Cita Iniciado por 3dpoder Ver mensaje
    Para modificar el valor del especular de todos los materiales en todos los objetos de una escena de Blender, puedes seguir estos pasos:

    1. En modo objeto, selecciona todos los objetos que quieras modificar. Puedes hacerlo haciendo clic en ellos mientras mantienes pulsada la tecla Ctrl.
    2. En el panel de propiedades, en la pestaña Materiales, haz clic en el botón Editar. Esto abrirá el editor de materiales.
    3. En el editor de materiales, selecciona todos los materiales que quieras modificar. Puedes hacerlo haciendo clic en ellos mientras mantienes pulsada la tecla Ctrl.
    4. En el panel de propiedades, en la pestaña Especular, aumenta el valor del especular en 0.25.
    5. Haz clic en el botón Aceptar para cerrar el editor de materiales.


    Todos los materiales seleccionados se modificarán para aumentar el valor del especular en 0.25.

    Aquí tienes los pasos detallados:

    Paso 1: Seleccionar los objetos

    En modo objeto, selecciona todos los objetos que quieras modificar. Puedes hacerlo haciendo clic en ellos mientras mantienes pulsada la tecla Ctrl.

    Paso 2: Abrir el editor de materiales

    Para abrir el editor de materiales, haz clic en el botón Editar en el panel de propiedades, en la pestaña Materiales.

    Paso 3: Seleccionar los materiales

    En el editor de materiales, selecciona todos los materiales que quieras modificar. Puedes hacerlo haciendo clic en ellos mientras mantienes pulsada la tecla Ctrl.

    Paso 4: Modificar el valor del especular

    En el panel de propiedades, en la pestaña Especular, aumenta el valor del especular en 0.25.

    Paso 5: Cerrar el editor de materiales

    Para cerrar el editor de materiales, haz clic en el botón Aceptar.

    También puedes utilizar un script para modificar el valor del especular de todos los materiales en todos los objetos de una escena de Blender. El siguiente script aumentará el valor del especular en 0.25 de todos los materiales en todos los objetos de la escena actual.

    Para ejecutar este script, abre la consola de Python de Blender y pega el script. A continuación, pulsa Enter para ejecutar el script.

    Código:
    import bpy
    def modify_specular(amount):
    for obj in bpy.context.scene.objects:
    for mat in obj.data.materials:
    mat.specular.alpha = mat.specular.alpha + amount
    modify_specular(0.25)
    A ver si esto te ayuda en algo, un saludo.
    Eso tira un error....

    Python: Traceback (most recent call last): File "\Text", line 8, in <module>
    File "\Text", line 6, in modify_specular
    AttributeError: 'Material' object has no attribute 'specular'


  7. #7
    Administrador, fundador y milenario... Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    27,513
    Gracias (Dadas)
    3604
    Gracias (Recibidas)
    5133
    Cita Iniciado por Soliman Ver mensaje
    Eso tira un error....
    El error que estás recibiendo indica que Blender no puede encontrar el atributo specular en la clase Material. Esto se debe a que el atributo specular solo está disponible en Blender Internal (BI), el antiguo motor de renderizado de Blender. Blender Cycles, el motor de renderizado actual, no tiene el atributo specular.

    Para solucionar este error, puedes usar el atributo diffuse en lugar del atributo specular. El atributo diffuse controla el color base del material, y también puede controlar su reflectividad. Para aumentar la reflectividad del material, puedes aumentar el valor del atributo diffuse.

    Código:
    import bpy
    def modify_diffuse(amount):
    for obj in bpy.context.scene.objects:
    for mat in obj.data.materials:
    mat.diffuse.alpha = mat.diffuse.alpha + amount
    modify_diffuse(0.25)
    Para usar este código, simplemente cópialo y pégalo en la consola de Python de Blender y presiona Enter. Todos los materiales en la escena tendrán su reflectividad aumentada en un 25%.

    También puedes usar este código para crear un script de Python que modifique la reflectividad de los materiales en tu escena. Para ello, crea un nuevo archivo de Python y pega el código anterior en él. Luego, guarda el archivo con un nombre como modify_reflectivity.py.

    Para ejecutar el script, abre la consola de Python de Blender y escribe el siguiente comando:

    Código:
    import modify_reflectivity
    modify_reflectivity.modify_diffuse(0.25)
    Esto modificará la reflectividad de todos los materiales en la escena en un 25%.

    Si lo pruebas ya me dirás si funciona o no, un saludo.
    |Agradecer cuando alguien te ayuda es de ser agradecido|

  8. #8
    Usuario Legendario Avatar de Soliman
    Fecha de ingreso
    Aug 2004
    Mensajes
    22,360
    Gracias (Dadas)
    693
    Gracias (Recibidas)
    7237
    Para cambiar el SPECULAR

    import bpy# Itera a través de todos los objetos de la escena
    for obj in bpy.context.scene.objects:
    # Verifica si el objeto es una malla (Mesh)
    if obj.type == 'MESH':
    # Verifica si el objeto tiene un material
    if obj.data.materials:
    # Itera a través de los materiales del objeto
    for material in obj.data.materials:
    # Verifica si el material tiene un nodo Principled BSDF
    if material.node_tree:
    principled_bsdf = material.node_tree.nodes.get("Principled BSDF")
    if principled_bsdf:
    # Modifica el valor de Specular (specular_intensity)
    principled_bsdf.inputs["Specular"].default_value = 0.5 # Cambia 0.5 al valor que desees


    # Actualiza la vista de la escena
    bpy.context.view_layer.update()


    Archivos adjuntados Archivos adjuntados

  9. #9
    Usuario Senior
    Fecha de ingreso
    Jul 2023
    Mensajes
    30
    Gracias (Dadas)
    3
    Gracias (Recibidas)
    1

    Wink Es mejor con custom Properties

    No me resultó útil toda esta complicación, cuyo inflexible resultado impone un solo valor a la característica, lo cual no era lo que esperaba. La idea era tener acceso rápido desde un solo lugar a características de objetos y materiales con distintos valores de base.

    Por ejemplo para animarlos.

    Resulta que eso lo puedo hacer con custom Properties, que según lo que vi en este video, me resulta mucho más práctico, entendible y no tengo que andar haciendo trabajosas depuraciones.

    https://www.youtube.com/watch?v=yYCDGgsQnb0


    Lo resolveré así hasta que todos nosotros y no sólo la IA, subamos unos peldaños en el entendimiento de programación.

  10. Gracias Soliman Agradece este post
  11. #10
    Usuario Legendario Avatar de Soliman
    Fecha de ingreso
    Aug 2004
    Mensajes
    22,360
    Gracias (Dadas)
    693
    Gracias (Recibidas)
    7237
    Cita Iniciado por gonzapert Ver mensaje
    No me resultó útil toda esta complicación, cuyo inflexible resultado impone un solo valor a la característica, lo cual no era lo que esperaba
    la idea era tener acceso rápido desde un solo lugar a características de objetos y materiales con distintos valores de base
    Por ejemplo para animarlos
    Resulta que eso lo puedo hacer con custom Properties, que según lo que vi en este video, me resulta mucho más práctico, entendible y no tengo que andar haciendo trabajosas depuraciones
    https://www.youtube.com/watch?v=yYCDGgsQnb0

    Lo resolveré así hasta que todos nosotros y no sólo la ia, subamos unos peldaños en el entendimiento de programación

Página 1 de 2 12 ÚltimoÚltimo

Temas similares

  1. Cinema 4D Unir varios objetos muy distintos
    Por DPROZ en el foro Modelado
    Respuestas: 0
    Último mensaje: 03-05-2021, 21:09
  2. Respuestas: 1
    Último mensaje: 10-03-2021, 15:22
  3. Blender UVS de distintos objetos en la misma imagen
    Por Bebilina en el foro Materiales y Texturizado
    Respuestas: 5
    Último mensaje: 01-02-2021, 07:13
  4. ZBrush Distintos objetos en ZBrush
    Por NICUSPOCUS en el foro Infografía General
    Respuestas: 2
    Último mensaje: 22-03-2011, 14:05
  5. Distintos renders sin cambiar nada en la escena
    Por carlosall en el foro Render, Iluminación y Cámaras
    Respuestas: 5
    Último mensaje: 29-06-2005, 02:56

Etiquetas para este tema