Olá pessoal, tudo bem?
Em primeiro lugar gostaria de avisar à todos que esta é uma tradução para uso em estudo pessoal, portanto, poderá conter erros de tradução e/ou digitação. Todos os créditos por essa matéria pertencem à Neil Blevins. Vamos ao que interessa:
[i:9426ec6765]Reduzindo Consumo de Memória para renderizar uma cena faminta de memória![/i:9426ec6765]
Por Neil Blevins
Criado em: 19 de Maio de 2006
Atualizado em: 21 de Janeiro de 2008
Traduzido em: 10 de Abril de 2008
Aqui estão algumas dicas para ajudar você a renderizar uma cena realmente grande, ou para renderizar aquele bitmap realmente gigante de sua cena no 3ds Max. É muito comum trabalhar em uma cena por algum tempo, fazendo renderizações de teste de 640x480 pixels, e então conseguir o resultado que você quer para depois renderizar uma cena com 2048 pixels ou mais. Você dispara o render, e “Bam!”, você é apresentado ao erro de memória, e o Max fecha na sua cara. Aqui estão algumas coisas para tentar evitar isso.
[i:9426ec6765]Reboot:[/i:9426ec6765] Antes de fazer um novo render, reinicie o seu sistema, para fechar todos os processos extras que acumulam na memória RAM conforme você vai usando o seu computador. Feche todas as outras aplicações. Pode parecer óbvio, mas é surpreendente como outras aplicações podem “sugar” a memória RAM. Por exemplo, o iTunes parece engolir cerca de 0.1GB de RAM, mesmo que não aparente isso, e mesmo que pareça não ser muita coisa, mas faz uma grande diferença!
[i:9426ec6765]Desligar a VFB:[/i:9426ec6765] A “Virtual Frame Buffer” (vfb) à qual é chamada de “Rendered Frame Window” consome muita memória. Então, pelo privilégio de ter um preview de seu render em tempo real, você está doando aproximadamente 200 à 300mb da sua memória RAM para alguma instituição de caridade, especialmente quando você está renderizando uma imagem com 2000 ou 3000 pixels. Vá até as opções de render e desative a opção Rendered Frame Window. Se estiver usando renderizadores externos, como o Brazil, certifique-se de que você também desligou seu frame buffer. Então configure o renderizador para salvar o resultado como um arquivo na seção Render Output. Isto vai economizar toneladas de RAM!
[i:9426ec6765]Faça um netrender:[/i:9426ec6765] Mesmo para imagens still, mesmo se você só tiver um computador, usando o backburner ou um netrender diferente, você pode economizar toneladas de RAM, porque isso não necessariamente abre o Max para renderizar sua cena. Então eu configurei meu computador pessoal como ambos, como um manager e como um server. Eu entro no Max, configuro o netrender, tendo a certeza de que eu ativei a opção “Initially Suspended”, fecho o Max, aí vou até o Monitor e inicializo o trabalho (se você esqueceu de enviar o trabalho desinicializado, seu computador vai tentar carregar 2 cópias da cena, uma no netrender, e a cópia da cena que já está aberta no Max, e isso é uma coisa muito ruim!) Verifique o manual para maiores informações sobre como usar o backburner, ou qualquer outro network render que você usa.
[i:9426ec6765]Renderizando através da linha de comando:[/i:9426ec6765] Você também pode usar uma renderização por linha de comando para renderizar seu arquivo. Basta olhar o arquivo de ajuda Command Line Rendering (Renderizando através da linha de comando).
[i:9426ec6765]Usando o Max 64bit:[/i:9426ec6765] Começando com o Max9, o Max agora vem com dois “sabores”, 32bit e 64bit. Para usar a versão de 64bit do Max, você precisa de um computador de 64bits com um sistema operacional de 64bits, como o Windows XP64 ou o Windows Vista64. Esta versão do Max pode usar muito mais memória RAM do que o sistema convencional de 32bits. Então você pode adicionar 4gb, 8gb, muito mais, conforme muito mais RAM você precisar para a sua cena, muito mais do que os 2gb convencionais que o sistema 32bits permite. Uma observação é importante de ser levada em conta: Muitos plugins compilados para o Max 32bit não foram compilados para o Max 64bit ainda, apesar que isso vai mudar conforme o tempo passar, então antes de fazer a mudança, certifique-se de que todos os plugins que você precisa têm versões 64bit também.
[i:9426ec6765]Desligar bitmaps exibidos na viewport:[/i:9426ec6765] Isso não reduz a memória para um netrender, mas se você quiser fazer um render interativo dentro do Max, é bem possível que uma boa quantidade de memória está sendo comida por que está sendo exibido mapas em sua cena na viewport (eu fui surpreendido outro dia quando eu percebi que metade de 1gb de RAM estava sendo usado para exibir alguns mapas pesados na viewport). Vá até o menu Views e clique na opção “Deactivate all maps”. Nota: No Max 2008, esta ferramenta parece ter sido removida. Neste caso, infelizmente, você vai ter que desativar os mapas manualmente.
[i:9426ec6765]Ativando a opção Conserve Memory:[/i:9426ec6765] Se estiver renderizando no Scanline, vá até a janela Render, Renderer, Memory Management, e ative a opção “Conserve Memory”. O arquivo de ajuda é um pouco vago sobre esta ferramenta, mas ele avisa “Quando ativada, renderização usa menos memória com um pequeno custo de tempo de memória. A memória é economizada na média de 15 a 25%. O consumo de tempo é de cerca de 4%.”
[i:9426ec6765]Bitmap Pager:[/i:9426ec6765] Vá em Customize, Preferences, Rendering, Bitmap Pager, ative-a, e brinque com as configurações desta opção. Isso pode reduzir drasticamente a quantidade de memória necessária para suas cenas com bitmaps enormes, ou para renderizar imagens muito grandes.
[i:9426ec6765]Buckets Menores:[/i:9426ec6765] Se estiver usando um renderizador baseado em buckets tais como Brazil ou Mental Ray, tente diminuir o tamanho do bucket. Um bucket menor vai significar menos coisas necessárias para serem renderizadas por aquele bucket. Isso deve deixar o render um pouco mais lento, porém pode reduzir a exigência de memória, especialmente se você estiver usando altas taxas de sample.
[i:9426ec6765]Janela de configuração de blocos:[/i:9426ec6765] Esta ferramenta permite à você renderizar sua imagem em pedaços, ou blocos, e vai ser útil para renderizar bitmaps muito grandes. Primeira, faça um netrender, e quando a janela Network Job Assignment aparecer, vá em Options > Split Scan Lines, então clique em Define para configurá-lo. Faça uma busca por “Strips Setup Dialog” no arquivo de ajuda para maiores informações sobre como esta ferramenta funciona.
Espero que algumas destas dicas possam ajudar você à renderizar aquelas cenas difíceis de serem renderizadas. ;)
[]'s
Always Outnumbered, never outgunned!
3daulas.wordpress.com - Em construção.