Cursos e Bibliotecas Ver Mais

Galeria 3D1 Ver Mais

An3dre   Araras / SP - SP
Designer RS   Bento Gonçalves - RS - RS
Gaona   Brasil - AC
mdpontes   Macapá - AP
EvandroGP   Paraná - PR

Portfólios Ver Mais

AdrianoAR3   São Paulo - AC
DeivsDesign   Cuiaba MT - AC
Rhankorr   Carapicuíba - SP
Gabriel   Itapema - SC - SC

Reduzindo Consumo de Memória ao renderizar uma cena grande.

Por: Serial  

Em: 10/04/2008 17:14

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.
Muito útil as dicas!! Obrigado! Abraços.
Serial, ótimas dicas! A cena da cozinha está começando a ficar pesada, e estas dicas caíram muito bem! Muita coisa eu não sabia, como renderizar por linhas de comando... Nota dez mesmo!
Doe medula óssea! Doe vida!
Opa, obrigado pessoal, mas como eu disse antes, os créditos pelas dicas cabem ao grande Neil Blevins, só tive o trabalho de traduzir. Eu tô pensando em dar uma atualizada nestas informações, por exemplo, aumentando as informações à respeito de como renderizar por linha de comando... []'s
Always Outnumbered, never outgunned! 3daulas.wordpress.com - Em construção.
Legal as dicas Serial, valeu!!!
Bom, vou contribuir com a lista tbm... -Se possivel collapse os objetos em editable mesh, porque no editable poly quarda um cache de modificações que consome memoria . Nao esqueça de fazer uma copia do seu arquivo original antes de sair colapsando tudo. -Deformadores como Skin, displacement e etc consomem muita memoria porque tem que calcular a cada frame a posição de cada vertex da malha. Entao eh muito legal que voce faça um Point Cache (que vai calcular o deslocamento desses vertex e salvar num arquivo) então collapse o objeto e use o Point Cache para as deformações. -Trabalhe com varios tamanhos da mesma textura, um mipmapping é bem vindo. -Na lista de Paths de textura nao deixe nada alem do que vem de fabrica, porque o max fica buscando em cada pasta as texutras que o modelo pede. -Por ultimo, depois de tudo colapsado e com point cache nos devidos objetos, salve as suas configurações de render , abra uma nova cena, do zero mesmo, e faça um merge da cena colapsada. O arquivo de max fica muito menor e o max deixa de procurar texturas que nao serão utilizadas na cena. Não equeçca de carregar novamente suas configurações de render. Acho que eh soh isso, se me lembrar mais de alguma coisa posto aqui . Abraço
Thundro, como você postou agora o mesmo texto, porém com mais uma informação, apaguei o post anterior... Gostei muito mesmo das dicas! Eu não sabia desta diferença do cunsumo de memória entre as malhas mesh e poly! Grande dica! Mas o que seria o mipmapping? abraços e obrigado pela excelente colaboração!
Doe medula óssea! Doe vida!
timey, sempre que puder contrubuir aqui no forum, como já disse antes: podem contar comigo ! Mipmapping eh uma tecnica usada em games onde consiste em : quando o objeto tah perto da camera ele usa uma textura muito maior do que quando ele tá longe, no max nao tem como fazer isso direto sem usar um script pra ter essa função. O que pode ser feito sem isso eh nos objetos longe da camera usar uma versão menor da textura, por exemplo: vc tem uma textura de 4k (4096x4096) , quando o objeto tiver mais ao longe , e a textura nao precisaria de ter esse tamanho troque por uma de 512 x 512 por exemplp; Não sei , nunca vi script na internet que faça isso pro max, eu tenho um que fiz tem um tempo que nao tem interface, dai pra mudar a texutra e os slots teria de ser feito alterando o codigo do script, vou ver se tomo vergonha na cara e arrume tempo pra fazer uma interface pra ele dai posto aqui pra vcs. abraço
Poxa thunndro, isso aí ajudou pra caramba! Grande acréscimo de conteúdo à este assunto! Parabéns e obrigado, creio que isso será de ajuda para muita gente. Essa de resetar a cena para evitar que o Max busque por texturas que já não serão mais usadas na cena eu não sabia, obrigado pela dica. :D []'s
Always Outnumbered, never outgunned! 3daulas.wordpress.com - Em construção.
tirmey, sobre o cache do editable poly, ele nao eh tão grande assim, mas quando o modelo eh muito grande faz uma baita diferença. uma coisa legal eh que o editable mesh a malha fica triangularizada, isso faz o renderizador gastar menos memoria e menos tempo de render pois nao precisa trinagularizar novamanete a malha. Toda a malha 3d, mesmo em nurbs , vira polgonal de 3 lados na hora de renderizar, se voce puder fazer isso pra o renderizador nao perder tempo nem memoria ajuda muito. O unico software que nao transforma a malha em polygono na hora do render eh o Animation Master , mas sinceramente nao sei como eles fazem isso. Essas dicas acima nao servem somente pra max, fora o lance dos paths de texturas, outras plataformas 3d também usam o mesmo principio como o maya, o softimage e o lightwave. No XSI e lightwave o comando eh FREEZE na malha, no Maya eu vou ficar devendo pq nao lembro mais...ehhehe faz tempo que na mexo com ele. Estão se esgotando minhas dicas sobre melhora de perfomance no 3d....ahuuhauhaha se lembra de mais coisa posto aqui.... vlw !!!

Faça o login para poder comentar

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 711055.

Total de membros registrados: 138526

Últimos membros registrados: erotique, Amândio Augusto Tavares , miteoelon, JointCare11, LumiLeanAvis Prix, psoriol, Miltonsroberts, degmon026.

Usuário(s) on-line na última hora: 1187, sendo 15 membro(s) e 1172 visitante(s).

Membro(s) on-line na última hora: Reinaldo Silva, Gabriel.C, Eduardo Ramos, robsonhti, klogg, Ronaldo, tsmodelagem3d, renaz, Frederico Wagner N. R., Rodrigo, Junior, ale.bs1, Duda, Pedro Juliato, Osires Mathoso.

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2024. Todos direitos reservados.