Nesta postagem irei compartilhar os meus estudos sobre mapas de cobertura de HDRIs no Nuke. O que me fez pesquisar sobre este assunto foi uma ideia de projeto autoral, fazer a substituição de céu em um vídeo e trocar toda a atmosfera para que se tornasse um dia nublado.

Inicialmente isto parecia uma tarefa simples, mas lidando com problemas da camera e HDRI projetada em esfera eu acabei me deparando com o seguinte vídeo que me serviu como principal guia:

Vendo o mapa de HDRI gerado pelo setup de nodes que o autor do vídeo desenvolveu, decidi que iria me aprofundar e aprender tudo que este conteúdo tinha a me oferecer, mesmo que o nível de experiência para entender bem este vídeo fosse acima do meu nível naquele momento.

Sendo um aspirante a Nuke Compositor Midder que ainda tem muita coisa para aprender, eu precisei da ajuda do Copiloto Nuke feito no Chat GPT. Ele tem uma base de dados sólida e controlada por profissionais da área, ele foi desenvolvido como base de conhecimento e por esse motivo não inventa informações aleatórias para te dar uma resposta. Ele procura na base de dados e caso não encontre te indica onde você mesmo pode procurar para encontrar informações confiáveis.

A resposta que ele me deu foi esta:

Basicamente, as aplicações do processo de geração de Coverage Maps são mais para sequências de shots onde as câmeras mudam constantemente de posição, dessa forma é necessário saber a posição onde o HDRI estava nos shots anteriores para não acabar quebrando o realismo das cenas por acidente. Recomendo muito que assistam também o vídeo do canal Comp Lair que deixei anexado acima. Eu reproduzi todo o setup do vídeo já no shot em questão.

Eu reproduzi todo o setup que aprendi no vídeo já no shot que eu precisava substituir o céu, e para isto eu precisei fazer um bom camera tracker da cena.

Logo após o rastreamento da câmera eu projetei em uma esfera um node Constant com os mesmos limites da lente da câmera rastreada. Aqui é importante que a esfera onde o Constant está projetado esteja na escala de tamanho certa. Para isso pode ser interessante utilizar um node PointClouds.

Agora, posicionando 6 câmeras com as mesmas configurações de projeção da camera rastreada em ângulos diferentes, todas com um scaline render com o input de BG conectado a um node Reformat configurado para square256.

Abaixo do ScalineRender vamos posicionar um node TimeEcho e um Framehold, ambos configurados para o último frame do shot. O TimeEcho precisa estar configurado para Plus. Aqui já conseguiremos ver em algum dos scaline renders um shape branco no canal alpha.

Abaixo de cada FrameHold vamos mesclar um CheckerBoard com Reformat square256 que servirá de orientação. O merge precisa estar como Under e com a entrada A em apenas rgb.

Agora só resta conectar tudo a um node SphericalTransform, com saída configurada para a mesma resolução do mapa de HDRI que será usado, em cada eixo respectivo.

O resultado obtido será um mapa com alpha da HDRI, marcado exatamente na posição para onde a câmera rastreada está apontada. Por isso foi importante utilizar a esfera no mesmo tamanho que será utilizado no shot.

Com isto em mãos agora podemos saber exatamente onde a câmera ficou apontada e até fazer marcações na HDRI.

Utilizando a mesma esfera e câmera do começo do setup conseguiremos projetar a HDRI e conferir se as marcações estão realmente corretas.

Como podemos ver as marcações batem perfeitamente, o mapa de Cobertura ficou pronto e funcional. Este processo me ajudou a pintar e corrigir detalhes sutis na HDRI que usei, porém, suas aplicações são amplas em MattePainting por exemplo.

Apesar de ter gastado boas horas para realmente entender tudo que nao foi demonstrado detalhadamente no vídeo original, eu consegui por fim concluir todo o processo e realmente entender cada etapa. Isso me gerou muita intimidade com o tema além de compreender mais profundamente alguns nodes que eu não conhecia.

Eu espero que este post juntamente com o vídeo tutorial te ajude a reproduzir este mesmo estudo sozinho! Obrigado por ter lido até aqui.