Cursos e Bibliotecas Ver Mais

Galeria 3D1 Ver Mais

Fireworks   Jaraguá do Sul - SC
Jomar Machado   Rio de Janeiro - RJ
MARCELO HS   PINHAL - SP

Portfólios Ver Mais

Rolnei   São Paulo - AC
luizhmj   Capivari de Baixo - AC
Tina.m   Sao Paulo - AC

Como renderizar animações rapidamente no metal ray?

Por: lu.matos  

Em: 15/09/2014 21:17

Boa noite, pessoal!
Estou fazendo o projeto de um restaurante no qual preciso fazer um passeio virtual por ele, porém por ter tantos detalhes e tantos materiais diferentes está demorando muito pra renderizar e o meu prazo é curto!
Alguém poderia me ajudar? Se alguém souber qualquer forma de renderizar um tour virtual de forma mais rápida seria de imensa ajuda!
Desde já agradeço.
Geralmente, no caso de uma animação desse tipo, em mentalray (ou v-ray, etc..) vai custar muito mais caro do que algumas simples imagens estáticas (o que, na maioria dos casos, é um tanto fantasioso, embora seja também praticado, porem não o que eu recomendaria)...

Quando é assim, vc vai usar uma renderfarm, pra renderizar rapidamente, e, uma vez que o preço pra animação vai ser mais caro que o preço pra uma imagem estática, o seu preço deve cobrir as despesas com renderfarms.. (ou alargar o prazo pra renderizar vc mesmo com um pc caseiro, etc..)..

Alternativamente, vc pode realizar o \'bake\' das texturas pra agilizar render em tempo real, assim como se faz pra games..

Nos dois casos vai ter um gasto (o que, caso vc tenha respeito-proprio, vai fazer parte dos seus conceitos, à elaborar o seu preço-pelo-trampo..).. No primeiro (acionar renderfarm) vai ser meramente financeiro e no segundo (RTT) vai ser questão de mais trampo... Aí vc escolhe..




Claro q vc vai poder reduzir questões de qualidade no seu render.. Mas uma redução de qualidade, mesmo que minima, vai ser ainda, de fato, uma redução de qualidade.. etc.. etc.




@edit: Veja muito bem e medite um pouco sobre essa questão grifada...que eu deixei em \'negrito\' o \"muito\".. No que tange ao \"caro\"... Se um frame demora muito pra renderizar.. Tanto (muito) mais seriam dez mil frames disso não é? Então, uma animação, sobretudo pos-produzida (com uns logos da empresa, etc, etc.. trabalhado certinho a animação na pos com cortes, etc, etc..) vai ser muito mais caro realmente (imagina assim, resumindo de uma maneira bastante infantil.. \"cada render desse é como um soco na sua CPU\".. Aí então, vc cobrando de uma maneira proporcional a isso (o que, com a qualidade típica dos Artistas Brasileiros do 3d, já vai bastar ou exceder o necessário), acho q já vai ser muito proximo a um ideal aí... Se vc \'der uma de bonzinho\' vão querer te pagar por uma animação assim olha hehe : \"ooh! é que é assim é, animação geralmente se paga o dobro de um render comum, pq o trampo mesmo do cara é a modelagem e tal né...\" (...se todos os renders fossem instantâneos, eu até concordaria com isso XDD...)



@edit2 (obs: Não-sou-bolchevista-ok): Adicionando (ou até, \'acionando\' XDD (pensei nisso errando a escrita heheh.. \'humor ácido\' =DD XDD) ao ultimo parágrafo... Alem da questão de vc \'agredir\' à (sua) maquina com o render de varios e varios frames de render arquitetônico, vai ter a questão de pos-produzir a animação, com cortes de cena, logos com transparência, eventuais vinhetas, etc... Ou seja, (isso na minha opinião mesmo), eu diria que vc \'pode enfiar a faca\', e \'com cara-de-mau\'... Esse \'enfiar-de-facas\' q eu tô falando, é claro, vai ser proporcional ao \'soco\' q vc deu na CPU (quando seu PC esquenta, é como qualquer coisa quando esquenta.. não vai ser mais o mesmo equipamento que saíu da fabrica.. Isso é de uma lógica primitíva.. Qualquer coisa q vc força varias vezes vai se extenuar... Isso constitui perfeita e plena verdade também, em se tratar de quase qualquer coisa...) e com o adicional nobre do seu esforço humano, que é o que finalmente vai compor À Arte que o cliente finalmente deseja.


(E \'pior\' (politicamente falando) que eu dou um pouco \'de bonzinho\' as vezes... Mas, piór.. sabe o que acontece.. Ao invés de te \'valorizarem\' e pensarem assim : \"Oh, o cara tá fazendo um trampo bacana, vamos pagar um pouco mais a ele\", não... Os caras te dizem assim, \"Ah, c faz mais rápido agora, então dá pra fazer por menos né?..\", etc... Um conselho bom, pelo menos pro pessoal BR que costuma realmente aplicar preços absurdamente baixos pra trampos 3d é esse.. \"Não se faça de \'bonzinho\'\"...(essa lógica comercial não permite muita \'bondade\'.. quem, num espírito comercial, vê \"bondade\", entende como \"fraqueza\" ou como \"uma commoditie a ser explorada\", etc....)


@edit3 (ou, \'pra \"des-chatear\" quem eu chateei com os outros edits =D): É \"tipo assim\"... Vc poderia ter essa frase a seguir como o \'santo-Graal\' de qualquer um que renderiza:
- \"O Render Perfeitamente Aceitavel, Com o Mínimo de Tempo o Possível\"...


Aí então (isso na minha experiência, etc.. não tenho experiência plena ainda no 3d..), isso vc vai conseguir, realmente mesmo, ou articulando varios render-to-texture específicos, ou simplesmente pagando uma renderfarm.. Se o cliente é respetável, vai entender essa questão. :)...




@edit(final): A palavra \"verdade\", dita antes dessa entre aspas, poderia ter sido escrita em negrito e com a primeira letra em maiusculo..

(musica que eu ouço, geralmente depois de ter sido \"comercialmente bonzinho\" XDD)
https://www.youtube.com/watch?v=UdZEkth4m68
A Beleza está entre a Ética e a Razão!..
Não resistí =D...

Mas, complementando a resposta desse e do tópico anterior:




\"Como poderia o seu cliente, considerar-lhe, acima de vc mesmo\"?!?..





Ceda, gentilmente, ao seu cliente, à sua Unicitude..
E cobre dele, nada menos que o seu Amanhã..




@edit: Gostei dessa ultima frase =D...

@edit: Eu resumi, filosofica, e um tanto poéticamente, à questão, com a música.. Muitas vezes existe um \'impasse\' quanto a \"cobrar o suficiente pra comer\" ou \"continuar fazendo o que gosta\", mas, se \"cobrar o suficiente pra comer\" chegar aos umbrais do \"continuar fazendo o que gosta\" (..no caso de gostar de fazer um 3d..), alguma coisa está muito errada, ou existe um lado realmente fazendo \'o outro\' de \'bobo\'.. (um monte de gente me manda email falando pra modelar coisa por 60 conto, etc..(e aí vão vender por 300 =D (boa né.. é isso q eu quis dizer quando falei de \'commodities\' (usar VOCÊ como commoditie, olha que legal, eu te passo um trampo, ganho 500 e vc ganha 100 =DD)).. Talvez existam pontos de vista que não tenhamos considerado de uma maneira plenamente pertinente.
A Beleza está entre a Ética e a Razão!..
E, há homens que lutam um dia,
E são bons,
E há homens que lutam um ano,
E são melhores..
Há aqueles que lutam muitos anos,
E são Muito Bons..
Mas há aqueles que lutam por toda a vida,
Estes,
São os Imprescindíveis..

(Bertold Brecht)



(..Te disse o que disse, porque eu..)


Sonho com serpentes,
Com serpentes do Mar,
Ligeiramente mareado, com serpentes,
Sonho eu..

Largas, \'transparentes\', e,
Com suas barrigas a levar
Tudo o que podem, a arrebatar de nosso Amor...

Oh, Oh, Oh..
E eis que eu as mato, e me reaparecem muito maiores..
E com muito mais Inferno a se digerir...

Não cabemos nessa \'boca\'..
Ao contrario disso, entrevamo-nos, ao céu da boca destas (serpentes)..
Cogitamos a loucura, demo-nos-lhe de mastigar,
Uma \'pomba\', e lhes envenenamos, de nosso bem...




https://www.youtube.com/watch?v=f06LvRjKD90





Com esses \'versos\', tento plantar-lhe uma \'verdade\'... E, oh, oh, oh... Eu a mato, e me aparece uma maior XDD...(e com muito mais \'inferno a se digerir\' :0)

A Beleza está entre a Ética e a Razão!..
Oi Lu, tudo bem?

Enviei sua pergunta para o André abaixo vou colar a resposta dele.

Att, Elis

------------------------------------

Oi, tudo bem?

Realmente o que mais pesa na renderização são os materiais e não a geometria como muita gente pensa, as luzes também influem muito no tempo de render, pois quanto mais luzes na cena, maior será o tempo de render.

As luzes podem ser otimizadas reduzindo os Samples das sombras até o ponto onde começam a granular, pois o Antialiasing (Menu Sampling Quality da aba Renderer) consegue suavizar no final, então, não vale a pena configurar as sombras para ficarem totalmente suaves antes de configurar o Antialiasing, pois vai gastar mais tempo que o necessário na renderização.

Luzes área, que possuem uma determinada forma como retangular ou esférica, gastam muito mais tempo no render do que luzes pontuais, porque nestas luzes os raios saem sempre do mesmo lugar e não precisa traçar sombras difusas, então, sempre que possível use luzes pontuais escolhendo a opção Point no menu Shape/Area Shadows, principalmente nas luzes menos importantes, pois não vão influir no visual geral da cena e vai ganhar um bom tempo de render.

Agora, no caso dos materiais depende muito de cada material, pois tem materiais que são super pesados para renderizar e fica difícil otimizar sem perder qualidade, caso tenha configurado bem os materiais.
Qualquer material com reflexo e refração borrada (difusa) aumenta muito o tempo de render porque precisa traçar muitos raios para descrever o reflexo, fica pior ainda se colocar um objeto com reflexão borrada na frente de outro, pois assim um vai refletir o reflexo borrado do outro e gastará muito tempo para renderizar.

O que pode ser feito nestes materiais é reduzir o Glossy Samples até começar a granular, pois o Antialiasing vai ajudar a suavizar igual nas luzes, então, não vale a pena deixar o material perfeitamente suave antes de acertar o Antialiasing para não desperdiçar tempo de render.
Porém, se o material tem reflexão muito baixa e Glossiness também, como pneu, borrachas e similares, não vale a pena traçar a reflexão de verdade para não gastar tempo de render, é melhor habilitar a opção Highlights + FG Only para simular em vez de traçar de verdade.

OBS: Nunca use a opção Fast Interpolate em animações porque vai criar artefatos indesejados nos reflexos, é melhor deixar o reflexo um pouco granulado em vez de aplicar o Fast Interpolate.

Outro detalhe muito importante é a configuração do Final Gather, hoje em dia não usamos mais o Final Gather para criar o sombreado refinado da iluminação indireta, porque gasta muito tempo de render e o recurso de Ambient Occlusion faz exatamente a mesma coisa bem mais rápido.
Portanto, nunca vai usar os Presets Medium ou High para renderizar, sempre vai usar o Draft ou o Low, pois o Final Gather precisa calcular apenas o rebatimento da iluminação.
Já o sombreado refinado da iluminação indireta você vai criar com o recurso de Ambient Occlusion no menu Special Effects no material Arch&Design.
O segredo para funcionar direito é sempre habilitar a opção Exact AO, assim, ele vai respeitar os efeitos de luzes e materiais.

Quanto as técnicas de renderização, o Mental Ray é o único render que oferece diversos métodos diferentes para agilizar a renderização de animações, principalmente de maquetes, porém, para definir qual método usar depende do tipo da animação.

A melhor situação de todas é quando nada se move, apenas a câmera, e as luzes também não mudam.

Neste caso você consegue diminuir muito o tempo de render e tem várias formas de fazer, a escolha da forma depende do tipo da cena, pois tem cenas mais propensas a criar Flicker do que outras.

Primeiro tem que entender como o FG trabalha, ele gera pontos por toda a imagem e usa estes pontos para traçar os raios pela cena 3D que definem as cores que influem naquele ponto, assim, baseado nestas informações ele gera a cor dos pixels próximos deste ponto.

Então, se tiver alguma coisa com detalhes pequenos na frente de uma parede, por exemplo uma árvore, em cada Frame os pontos do FG vão pegar alguns na parede e alguns nas folhas da árvore, isso vai mudar de um Frame para o outro e vai criar Flicker no sombreamento do FG, mesmo que apenas a câmera se mova, porque os pontos mudam de lugar de um Frame para o outro.

Por isso existem formas para fazer os pontos permanecerem no mesmo lugar e só funcionam quando nada se move, somente a câmera.

O primeiro método é a incrementação do FG, então, em vez de gerar pontos novos em cada Frame, você vai gerar apenas os pontos que precisam, os que estão faltando, reutlizando os outros que já foram emitidos.

Essa técnica é boa quando tem um Pan de câmra, quando faz um giro suave da câmera para mostrar todo o ambiente, assim, conforme for aparecendo partes novas da cena, o FG vai criar novos pontos somente nestas partes, usando os pontos já emitidos nas outras partes.

Para usar essa técnica é só acessar o menu Reuse no final da aba Global Illumination e escolher na lista do Final Gather Map a opção Incrementally Add FG Points to FG Map Files.

Então, vai renderizar o mapa de FG em todos os Frames, mas apenas para emitir os novos pontos que faltam em cada Frame, será bem mais rápido do que calcular todo o FG do Frame.

Lembrando que o mapa de Photons serve para a cena toda quando nada se move, apenas a câmera, então, basta renderizar o mapa de Photons uma vez no primeiro Frame, salvar e reutilizar.

As opções para salvar o mapa de Photons ficam logo abaixo do FG Map.
É só escolher a opção Read/Write Photons to Photon Map Files e escolher um nome e local para salvar.
Depois de renderizar o mapa de Photons, que pode ser feito sem renderizar a imagem toda clicando no botão Generate Photon Map File Now, você muda para a opção Read Photons Only From Existing Photons Map Files para ler o mapa salvo na renderização.

A outra opção para passeios de câmera é projetar o mapa de FG pelo caminho da câmera.
Para usar é só mudar para a opção Project FG Points From Positions Along Camera Path, que fica logo abaixo da barrinha de Presets do FG.
Assim que colocar nessa opção vai habilitar o parâmetro Divide Camera Path By Num. Segments, logo abaixo, e na frente terá uma lista de valores.
Nesta lista você define quantos passos de FG vai fazer pelo caminho, quanto mais melhor, mas aumenta o tempo de render, o ideal é usar um valor próximo de 10% da quantidade de Frames na animação.

Quando mandar renderizar com essa opção vai criar uma imagem do FG com várias miniaturas dentro, de acordo com o número de Paths que definiu.
Você pode salvar esse mapa de FG igual antes e usá-lo para renderizar todos os Frames.
Como nesta técnica são criados mapas de FG em menor resolução, é melhor aumentar a qualidade do FG para renderizar com este método, não vai aumentar o tempo de render porque o FG será calculado apenas uma vez.
É possível usar esta técnica também quando algum objeto se movimenta pela cena, mas é melhor que sejam movimentos suaves.

A outra opção para quando algum objeto se move suavemente na animação além da câmera, é usar a interpolação do mapa de FG para ganhar tempo de render, desta forma o Mental Ray não vai gerar um mapa de FG para cada Frame, vai gerar o mapa de alguns Frames e interpolar nos Frames que faltam.
Essa técnica também serve para quando apenas a câmera se move.

Isso é feito da mesma forma que expliquei na primeira técnica, usando o Incrementally Add FG Points to FG Map Files, mas precisa modificar a opção Mode que aparece logo no início do menu Reuse, passando para One File Per Frame (Best For Animated Objects).
Assim, em vez de criar apenas um FG Map, ele vai criar vários para poder interpolar entre eles.

Você pode gerar os mapas de FG sem ter que renderizar toda a imagem, é só clicar no botão Generate Final Gather Map File Now, mas antes tem que definir de quantos em quantos Frames vai gerar o mapa de FG.
Isso pode ser feito na aba Common habilitando o Range para definir o Frame inicial e o final da animação, depois marcando o Every Nth Frame e colocando nele o valor de quantos em quantos Frames deseja calcular o FG, por exemplo, se colocar 5 ele vai gerar o FG a cada 5 Frames.

Mas não precisa fazer isso pela aba Common, pois do lado do botão Generate FG Map Files Now tem uma setinha e clicando nela tem Presets de Nth Frames, porém, como são Presets vão sempre do quadro zero até o 100.
Então, quando isso não for suficiente, configure pela aba Common e depois clique no Generate FG Map Files Now.

No final você vai mudar para a opção Read FG Points Only From Existing FG Map Files no menu Reuse para renderizar usando os mapas salvos.
Quando fizer isso verá que logo abaixo fica habilitado o parâmetro Interpolate Over N Frames para definir de quantos em quantros Frames renderizou o FG Map para interpolar, então, se renderizou de 5 em 5 Frames, deve colocar 5 nesse valor.
Depois disso pode renderizar normalmente.

Por fim, é raro uma animação onde tudo se move, objetos, luzes e câmeras, mesmo assim, o normal é que tenha um ambiente fixo onde algumas coisas se movem, como pessoas e carros.
Então, é comum fazer renderizações separadas de elementos da cena para compor depois.
Assim, pode renderizar o ambiente com a técnica de incrementar o FG ou interpolar, pois o ambiente é fixo.
Depois cria uma HDRI deste ambiente para usar no Environment e refletir nos objetos que se movem, deixando apenas estes objetos que se movem na cena para renderizar com a técnica normal gerando o FG a cada Frame.
Desta forma terá perfeição de GI no ambiente e nos personagens ganhando muito tempo de render, só tem o trabalho de fazer dois renders, que mesmo assim sai mais rápido do que renderizar tudo junto com FG completo.

Qualquer dúvida que tiver sobre o que eu falei, é só me enviar um email.

Abração e tudo de bom.

André Vieira
Olá pessoal da 3d1... boa tarde a todos!!

André Vieira: olá mestre André Vieira! tudo bem?? É muito bom mesmo rever as suas mensagens aqui pelo site 3d1.

Mesmo que não seja sua participação direta aqui no site 3d1, mas mesmo assim é muito bom rever as suas maravilhosas mensagens de Computação Gráfica.

Todas muito bem detalhadas como sempre, e muito bem explicadas.

Parabéns, André.

Abraços e sucesso!

______________________________
\"FORÇA & CORAGEM SEMPRE\"...
Já coloquei nos favoritos aqui para quando precisar.
Valeu
Oi pessoal,

Se precisarem de mais alguma coisa postem aqui que envio pra ele.

Att, Elis
Olá Lu. Matos,

Além das dicas preciosas do André, você pode optar por renderizar no tamanho 720x480 pixels. Não vai ficar tão bom quanto 1280x720, mas ajuda bastante no tempo de cada frame. O que pega em render de restaurante são os copos de vidro. Tenta reduzir o ior (índice de refração) dos vidros. Ajusta os parâmetros de trace depht na aba de FG e tbm na aba do renderer para o mínimo necessário.

Eu consigo bons resultados com 2 reflexões e 4 refrações. Utiliza proxy nos objetos pesados. Reduza a quantidade de luzes apenas para o suficiente para iluminar. Você pode colocar as luminárias no teto apenas como representação, com material self ilumination e não ter necessariamente uma luz logo abaixo. Como o André comentou, usa shape \"point\" em quase todas as luzes, e tenta testar shapes retangular ou mesmo \"disc\", só que com valores bem pequenos apenas para as sombras não ficarem muito nítidas.

Se usar luzes com distribuição IES, use sempre o shape em point. E se com tudo isso, somando às dicas que o André passou de otimizar os materiais ainda ficar pesado, tenta usar sombras mrshadowmap mudando para 1024 o \"map size\" dela (vá em light lister). A setagem do anti aliasing conta bastante. Se estiver usando as versões mais novas do max muda o modo unifield para o modo clássico. Algo como 1 - 16 no mínimo e máximo com filtro mitchell e valores de 0.031 nas cores do contraste podem ser suficientes. Como se trata de uma interna utilize o método de GI com photons e otimizando o cálculo com o fastlookup.

Desta forma você poderá reduzir pela metade o tempo de render. Com isso, o tempo de cada frame poderá ficar abaixo dos 3 minutos, o que é um bom tempo para animação. Durante o render de cada frame, verifica se os buckets ficam muito tempo parados em alguma área da imagem e se essa área pode ser melhor otimizada. O ideal é que o render flua sem maiores \"obstáculos\".

Perceba que setagem para animação requer muito mais conhecimento comparada com a setagem de imagens still. Se você ainda não tem esse conhecimento, sugiro que vá aos poucos, fazendo pequenos projetos, tentando ganhar tempo animando várias técnicas com luzes e materiais diferentes.

Mesmo que você venha a utilizar renderfarm, uma boa setagem ainda será necessária porque é um serviço caro. Eu já fiz um monte de animações usando o mentalray e acho ele um super renderizador para esta finalidade, pois é bem fácil de usar e possui muitos controles que possibilitam ajustes de otimização. Veja algumas nesse demoreel 2011 (tá meio velhinho, mas ainda vale..heheheh)

https://www.youtube.com/watch?v=1eiuU-sE2uI



Se possível compartilha as informações do seu render com imagens dos frames e tempo. Às vezes só de olhar para um frame dá pra saber se algo pode dar errado como flicker por falta de AA ou mesmo algo que possa ser melhor otimizado.

abraços

Faça o login para poder comentar

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 711081.

Total de membros registrados: 138565

Últimos membros registrados: Antonio Jorge, felipefariasss, rafacamposfp, slin, osteaction, NaturesGardenCBDKapselnde, hetherfley, Ankusi026.

Usuário(s) on-line na última hora: 1094, sendo 12 membro(s) e 1082 visitante(s).

Membro(s) on-line na última hora: felipefariasss, rafacamposfp, jessicatorres, SERPA, Luana Chen, Pedro, Antonio Jorge, Rodrigo, JMDesign, marcio.alain, Alexandre Longo, Vlady.

Legenda: Administrador, Especial, Moderador, Parceiro .

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