Batch render blender

Boa tarde
Uso o blender como software para modelagem 3D, no windows eu uso o seguinte código para renderizar vários arquivos em seguência:

cd C:\Program Files\blender-2.93.3-windows-x64
blender -b “Local do aquivo\arquivo1.blend” -a -x 1 -o //render “Local do aquivo\arquivo2.blend” -a -x 1 -o //render “Local do aquivo\arquivo3.blend” -a -x 1 -o //render “Local do aquivo\arquivo4.blend” -a -x 1 -o //render (etc…)

Há posibilidade de usar este recurso no Ubuntu?

Sim, só abrir o terminal e digitar a mesma linha de comando que você usa no Windows.

Lembrando para trocar o nome dos arquivos, e atentar que no Windows se usa \ para delimitar pastas e no Linux/Unix se usa / (-b /home/usuario/arquivo.blend, -o ./render), etc.

Se quiser ter um comportamento tipo .bat do Windows, basta criar um arquivo de texto com o cabeçalho #!/bin/bash, seguido do(s) comando(s) digitados no terminal, e em seguida marcá-lo como executável (assim como se faz com arquivos executáveis baixados da internet):

#!/bin/bash
blender -b "$HOME/blends/arquivo1.blend" -a -x 1 -o ./render (etc.)

Estou fazendo alguns teste e usei esta linha de comando:

#!/bin/bash
blender -b “$home/vander/Documentos/teste.blend” -a -x 1 -o ./render

Recebo:

Blender 2.93.4 (hash b7205031cec4 built 2021-08-31 23:36:18)
Read prefs: /home/vander/.config/blender/2.93/config/userpref.blend
Error: Cannot read file ‘/vander/Documentos/teste.blend’: No such file or directory

Blender quit
O que pode estar errado?

Duas coisas deram errado aqui:

  • $HOME é uma variável que se refere à pasta do seu usuário, não é preciso fazer $HOME/vander$HOME já equivale a /home/vander.
  • $HOME é uma deve estar em maiúsculas (variáveis do bash diferenciam maiúsculas de minúsculas). Como você especificou uma variável que não existe, foi substituída por um vazio.
1 curtida

No terminal funcionou redondo, já no editor de texto não deu certo, veja o código:
#!/bin/bash
blender -b “/home/vander/Documentos/blends/teste.blend” -a -x 1 -o ./render

Salvei o arquivo como .exe, onde está errado?

Precisa salvar como .sh

Mudei de .exe para .sh, ainda não executa, mais algum procedimento a fazer?

O . significa “pasta atual”. Veja se não surgiu uma pasta chamada render sob a sua home (ou seja qual for a pasta de onde você está rodando o script).

Se possível, poste a mensagem de erro (se alguma) que aparace.

Não é preciso isso no Linux. Os arquivos com um cabeçalho #!/bin/bash tornam a extensão redundante.

2 curtidas

Se executado no .exe ou no .sh com a opção “Abrir com outro Aplicativo ->Executar software” o arquivo é processado por alguns segundos, mas não obtém nenhum resultado.

Apenas para confirmar, quando você dá cd na pasta onde está o .exe/.sh/seja o que for, e faz ./batch_render.exe (nome do arquivo depois do ./), o que é mostrado?

Qualquer coisa, é possível ir no arquivo oculto /home/vander/.bashrc (crie-o se não existir) e adicionar a linha:

alias batch_blender='blender -b "/home/vander/Documentos/blends/teste.blend" -a -x 1 -o ./render'

Daí, fechando e abrindo o terminal, digitar batch_blender no terminal se torna o equivalente a copiar e colar a linha de comando.

Esta parte não entendi…

Aqui o acesso é negado

vander@vander-System-Product-Name:~$ sudo ~/.bashrc
sudo: /home/vander/.bashrc: comando não encontrado
vander@vander-System-Product-Name:~$ ~/.bashrc
bash: /home/vander/.bashrc: Permissão negada
vander@vander-System-Product-Name:~$

Você então não deu permissão de execução. Tem o método gráfico (botão direito, Propriedades, Permissões, Executável) e o terminal chmod +x ./batch_render.exe.

Você deve editar o arquivo (com nano ~/.bashrc, gedit ~/.bashrc, etc.) e adicionar a linha sugerida.

Permissão ativada, processa, mas não executa

Mande a saída exata que sai quando você tenta executar o ./04.exe.

Cara, não consigo acompanhar seu raciocino, vou precisar mais um pouco de experiência nesta parada , sou iniciante e pra mim tudo é novidade…

É bem simples, eu só gostaria de saber o que sai no terminal quando você faz:

cd /pasta/do/arquivo
./04.exe

Isso?
vander@vander-System-Product-Name:~$ cd /home/vander/Documentos/Batch_Render/04.exe
bash: cd: /home/vander/Documentos/Batch_Render/04.exe: Não é um diretório

No caso:

cd /home/vander/Documentos/Batch_Render/
./04.exe

Agora o comando foi executado corretamente , como no terminal

vander@vander-System-Product-Name:~$ cd /home/vander/Documentos/Batch_Render/
vander@vander-System-Product-Name:~/Documentos/Batch_Render$ ./04.exe
Blender 2.93.4 (hash b7205031cec4 built 2021-08-31 23:36:18)
Read prefs: /home/vander/.config/blender/2.93/config/userpref.blend
Read blend: /home/vander/Documentos/teste.blend
Fra:1 Mem:88.54M (Peak 89.21M) | Time:00:00.32 | Syncing Cube
Fra:1 Mem:88.90M (Peak 89.24M) | Time:00:00.39 | Syncing Light
Fra:1 Mem:88.90M (Peak 89.24M) | Time:00:00.39 | Syncing Camera
Fra:1 Mem:88.90M (Peak 89.24M) | Time:00:00.40 | Rendering 1 / 64 samples
Fra:1 Mem:88.91M (Peak 89.24M) | Time:00:00.46 | Rendering 26 / 64 samples
Fra:1 Mem:88.91M (Peak 89.24M) | Time:00:00.49 | Rendering 51 / 64 samples
Fra:1 Mem:88.91M (Peak 89.24M) | Time:00:00.51 | Rendering 64 / 64 samples
Saved: '/home/vander/Área de Trabalho/teste_1.png'
 Time: 00:00.97 (Saving: 00:00.42)

Blender quit
vander@vander-System-Product-Name:~/Documentos/Batch_Render$

Obrigado pela ajuda!
Valeu!!! :facepunch: