Estoy intentando bakear de forma automática los Normal Maps de un Mesh de alta resolución a uno de baja resolución. En la escena tengo 4 Mesh de alta y 4 de baja. Si selecciono manualmente el Mesh high después el Low y ejecuto este código. El Normal Map se bakea correctamente.
Si se ejecuta correctamente seleccionando manualmente, no entiendo por qué dentro del script, seleccionando los Mesh automáticamente no funciona. Un saludo a todos y gracias por vuestra ayuda y tiempo.
No porque discrepe de tu opinión intento ofenderte.
¿Y cada plano low, ya tiene creada, la textura de imagen y desplegado el UV correspondiente?
Por cierto, el Blend que has subido no lleva las texturas Tif empaquetadas.
Si cada plano tiene sus UV desplegadas, con su imagen asignada.
Este es el error que da en la consola:
Error: Circular reference in texture stack
Traceback (most recent call last):
File I:\catalunyaMetOrtoPru\demOrto\1\bakeNormals_03.bl end\Text, line 23, in
<module>
File H:\software\Blender\Blender-2.79-77dccbf-win64\Blender-2.79.0-git.77dccb
f-Windows64\2.79\scripts\modules\bpy\ops, py, line 189, in __call__
ret = op_call(self, idname_py(), None, kw)
RuntimeError: Error: Circular reference in texture stack.
Error: Python script fail, look in the console for now.
No porque discrepe de tu opinión intento ofenderte.
Buenas, las dos ultimas líneas de código no deben ir indentadas tu las tienes puestas dentro del for, pégalas al principio sin identificación para qué no las ejecute el for, te pongo una captura. Saludos.
RuntimeError: Error: Circular reference in texture stack.
Yo no entiendo casi nada de Python, pero el error ese que pone de referencia circular, se refiere a qué cuando hace el Bake, la textura debe estar desactivada para qué no se cree un especie de repetición.
Juani si saco esas líneas del for solo me aplicara el bake en la ultima pareja de high y low seleccionada, y yo quiero que lo aplique en todos los pares de high y low.
Si parece que el error es por eso Solimán.
Me centro en ese error para ver si lo soluciono.
Gracias a los dos por vuestro tiempo y ayuda.
No porque discrepe de tu opinión intento ofenderte.
Borro las texturas que he utilizado para crear los mesh, los materiales creados por defecto.
Creo una textura para las UV para cada mesh Low Poly.
Ejecuto un script que los seleccione por nombre.
Pero solo me hace el bake del ultimo mesh.
?
Si selecciono manualmente el Hig y después el low y ejecuto este código funciona correctamente:
Import bpy, os
bpy, context, scene, render, bake_type = NoRMALS\nbpy, context, scene, render, use_bake_selected_to_active = True
bpy, ops, object, bake_image().
Pero a la qué los selecciono con el script.parece que no es lo mismo seleccionar desde script que hacerlo desde el entorno gráfico. Un saludo.
No porque discrepe de tu opinión intento ofenderte.
Miré a ver cual de los objetos en el script era el activo y siempre me salía el 260-105, entonces lo que hecho ha sido declarar la escena y decir cual de los objetos seleccionados tiene que ser el activo, total 2 líneas de código que me han vuelto loco, pero FUNCIONA.