Saudações, pessoal! Eu acho que esse problema não é nenhuma novidade aqui, a maioria dos que trabalham com computação gráfica para qualquer finalidade já deve ter se deparado com a desconfortável situação de se renderizar algo com mais de 300dpi no MAX.
A questão é que apesar de simples na teoria, esse processo é um pesadelo na prática. Dificilmente significará um simples ajuste na resolução e um clique saudável no bulezinho do MAX e sair pra tomar um café. A quantidade de memória que uma cena desta resolução consome é um absurdo para a maioria dos PCs da turma que trabalha com maquete eletrônica por exemplo.
Há muito tempo eu venho procurando uma solução para esse problema - com pouca devoção, eu confesso, pois não tenho muito tempo - mas ultimamente resolvi terminar de uma vez por todas com isso. Porém, em todas as discussões que participei sobre o assunto, não cheguei em conclusão alguma.
Dependendo da cena, do render, iluminação e etc... o PC pode até tocar de uma vez. Mas se utilizar o Mental Ray, com displace na grama e FG, com certeza a coisa será mais complicada.
Quando se tem essa dúvida, uma das primeiras sugestões que se recebe é: "Coloque mais memória". Sim! Realmente memória é essencial, mas isso não resolve o problema, apenas alivia a dor (além de ser caro). Meu sistema tem 2gb de ram e utilizo o esquema dos 3gb do Windows para poder rodar o programa com o máximo de memória possível em um sistema 32bits (contando a memória virtual).
Ok, problema resolvido! Não, não... Por incrível que pareça, a coisa mais fácil que tem é estourar esses 3gb (e olha que eu já otimizei ao máximo que pude a minha cena, deletei os objetos que não aparecem na perspectiva, diminuí a resolução do displace do Mental, ativei o bitmap Pager e Proxies para texturas grandes)...
Precisava encontrar uma forma de renderizar uma cena em varios passos, automaticamente, demoraria mais, mas aliviaria a memória.
Eu poderia abandonar o Mental Ray, fazer a cena no Vray ou Skyline e tentar conseguir o mesmo resultado, mas eu não quero abrir mão da qualidade que consegui obter com tanto tempo de estudo esse Render, descartei essa opção.
Então resolvi procurar eu mesmo no programa uma forma de resoler isso, se encontrasse, poderia divulgar aqui e acabar de uma vez por todas com esse dilema de uma forma objetiva e viável para todos nós, no Render que seja, no PC que seja...
Encontrei basicamente duas soluções:
- A primeira consiste em um recurso do Mental Ray chamado ''Render Passes''. Aqui, pode-se renderizar a cena em vários passos e, no final, mandar o Render unir tudo em uma cena completa. Quando li isso fiquei feliz da vida, resolvi meu problema, era exatamente o que eu procurava! Minha decepção surgiu, porém, quando descobri que não existe outra forma de faze-lo que não seja selecionando parte por parte da cena com o ''Region'' do ''Render Type''.
Eu gosto desse ultimo recurso, o Render Type é minha salvação para fazer testes em que não é necessária uma renderização da cena por completo, mas é pouco prático para compor a cena da maneira que procuramos. Dessa forma, a única novidade desse Render Passes em relação ao que sempre fiz é que ele une tudo sozinho no final, poupando-nos da junção das partes no Photoshop.
Sem contar a imprecisão do "Region". Inevitavelmente, ao selecionar as partes da imagem a serem renderizadas, você estará selecionando um pedacinho da anterior, para não correr o risco de deixar uma parte sem render, e tem que tomar cuidado para não selecionar um pedaço grande demais, extrapolando a memória... e tem o desconforto de precisar acompanhar o render de todas as partes, do começo ao fim porque não há um recurso que automatize o processo.
Mas se esses fossem os únicos inconvenientes, estaria satisfeito até.. o problema maior é que renderizando a cena em partes selecionadas com o ''Region'', surgem artefatos no FG do Mental Ray. Creio que isso se deve ao fato do render calcular o FG somente para a parte selecionada. Ao juntar as partes, surgem visíveis ''emendas'' na imagem, com diferenças de iluminação.
- A segunda me atraiu bastante. Trata-se de uma maneira de renderizar em rede, dividindo as tarefas.. porém com somente um PC. Pelo que eu li, poderia-se mandar as tarefas para um mesmo computador para que ele fizesse em ordem e unisse tudo ao fim, como se fosse uma rede com vários PCs (que fariam ao mesmo tempo tarefas diferentes cada um). O problema é que não obtive sucesso ao tentar configurar o Backburner Manager (programa para configurar a rede com o Max). Mas isso deve ser algo que não tenha a ver com o MAX, e sim com meu sistema, o programa simplesmente não abre, preciso estudar mais isso.
Bom, nesse impasse, tenho um trabalho para entregar na segunda feira. 7 ângulos diferentes em 300dpi em uma A4, terei de fazer unindo as partes com o Region mesmo, e corrigindo os artefatos no Photoshop... É lamentável que se tenha de perder tanto tempo com processos que poderiam ser automatizados pelo MAX. Nem deixar o PC renderizando à noite eu posso, pois tenho que acompanhar cada pedaço da cena, que fica pronto de 20 em 20 minutos, para selecionar o próximo.
Talvez eu nem tenha razão para estar me queixando aqui, sem ter conhecimento pleno do programa mas dificilmente eu me contento com esse tipo de solução para meus problemas, não descanso até encontrar a forma correta de se fazer algo, foi assim que aprendi o que eu sei hoje. Talvez não tenha habilidade o bastante para otimizar meus projetos, apesar de sempre ter me preocupado com o mínimo excesso de vértices, complexidade da iluminação, configuração do FG, GI e tamanho das texturas, procurando sempre o caminho mais leve... Peço desculpas pelo desabafo, pessoal.
Se alguém souber ou encontrar a solução para esse problema, peço que divulgue aqui para nós. Vou continuar pesquisando sobre isso e, assim que conseguir algo concreto, colocarei um tutorial aqui... Abraços.