Neste tutorial, veremos como usar View Layers para obter máscaras de objetos que, na verdade, não precisam ser renderizados, mas cujas formas e posições são de interesse para alcançarmos outros efeitos.
Transcrição do vídeo
Olá, pessoal! Este é um adendo ao meu videotutorial sobre View Layers e Z-Combine, publicado há alguns dias.
Naquele tutorial, mostrei como definir View Layers no Blender 4.1 para renderizar separadamente os objetos pertencentes a uma cena e como misturá-los depois usando o node Z-Combine, exibindo os pixels com base na distância deles até a câmera.
Neste tutorial, veremos como usar View Layers para obter máscaras de objetos que, na verdade, não precisam ser renderizados, mas cujas formas e posições são de interesse para alcançarmos outros efeitos.
Na cena que estou usando, há, em particular, três View Layers, cada uma contendo um objeto; especificamente, temos uma aeronave, um cone representando os gases de exaustão e um objeto mesh feito com alguns cilindros representando os shock diamonds.
Se renderizarmos apenas a View Layer contendo a aeronave, perceberemos que ela é renderizada contra o fundo do universo virtual, que foi obtido com Nishita Sky, sem os gases de exaustão e os shock diamonds.

A mesh que representa os shock diamonds está parentada ao cone que representa os gases de exaustão, que por sua vez está parentado à aeronave; assim, esses dois elementos seguirão a aeronave em todos os seus movimentos.

Se renderizarmos todas as View Layers, obteremos as três renderizações separadas, que depois serão combinadas no Compositing. Vamos ver como.

Como não estamos interessados na renderização real desses dois elementos, mas sim em duas máscaras em preto e branco representando-os, vamos ativar o Object Index Render Pass nas duas View Layers que contêm os objetos e atribuir um índice numérico a esses dois objetos na seção Relations da aba Object Data. Vale observar que também podemos atribuir o mesmo índice a eles, já que ainda estão em duas View Layers diferentes, então podemos distingui-los sem problemas.

Nas abas View Layer dessas duas View Layers, também precisamos ativar o Z Render Pass para obter as informações de Depth no Compositing.
As informações de Depth são, de fato, necessárias para combinar as várias View Layers com o node Z-Combine.
Vamos dar uma olhada no setup de Compositing que criei para obter a renderização final, que mostrei no início deste tutorial.

No lado esquerdo do setup, temos as entradas.
Como vocês podem ver, temos três nodes Render Layers, cada um com sua própria View Layer. Nos dois Render Layers dedicados aos gases de exaustão e aos shock diamonds, também há as saídas IndexOB.

No lado direito do setup, temos os dois nodes Z-Combine, com os quais vocês já devem estar familiarizados. Em particular, os gases de exaustão e os shock diamonds são combinados primeiro, nessa ordem, e depois o resultado dessa combinação é passado como Foreground para outro node Z-Combine, onde o Background é representado pela renderização da aeronave.

Como mencionei no tutorial básico sobre View Layers e Z-Combine, as duas entradas do node Z-Combine são, na verdade, diferenciadas entre Background, a primeira, e Foreground, a segunda, porque se a informação que chega ao Foreground for semitransparente, então a informação do node Background também será exibida parcialmente.
Para obter apenas a máscara dos dois objetos adicionais, sem renderizá-los, extraímos apenas as informações de IndexOB dos nodes Render Layers deles, fornecendo essas informações aos nodes ID Mask, onde precisamos especificar o mesmo número que atribuímos aos objetos nas abas Object Data.

As máscaras recebidas são brancas sobre um fundo preto.
Para obter máscaras sobre um fundo transparente, vamos fornecer a saída do ID Mask a um node Set Alpha, conectando a máscara às duas entradas; dessa forma, a parte preta da máscara será renderizada como transparente.

Depois, há os nodes que nos permitem implementar os glows da maneira que desejarmos, mas neste caso cabe a vocês usar os nodes e parâmetros de Compositing para alcançar o efeito desejado: eu só posso fornecer algumas orientações sobre aqueles que usei para mostrar a renderização final aqui, mas essas indicações de forma alguma são “obrigatórias”!

O setup de nodes para os shock diamonds é o mais simples, porque a máscara é apenas desfocada com um node Blur e seu brilho é modificado usando um node RGB Curves.
Dentro do node RGB Curves, também ajustei a curva B para dar um tom levemente azulado à imagem final.

O setup de nodes para os gases de exaustão é um pouco mais complicado porque eu queria obter apenas o contorno do cone que representa os gases de exaustão.

Para criar esse contorno, subtraí da máscara uma versão reduzida dela, obtida usando um node Dilate Erode com um valor negativo.
Sobre o uso do node Dilate Erode para obter apenas os contornos de uma máscara, fiz um videotutorial há algum tempo chamado “Glowing Edges”, que recomendo que vocês assistam, caso ainda não tenham visto, pois ele contém algumas observações que podem interessar a vocês.

De qualquer forma, depois desfiquei a máscara, alterei seu brilho e cor usando um node RGB Curves, neste caso modificando a curva R, mas isso é uma escolha pessoal, e adicionei um glow adicional usando um node Glare no modo Fog Glow.

Como são objetos 3D, os gases de exaustão e os shock diamonds sempre seguirão a aeronave; no Compositing, vocês podem modificar a intensidade e a aparência deles como quiserem; por fim, configurando os nodes Z-Combine dessa maneira, eles serão renderizados corretamente em cada frame, ou seja, sem serem sobrepostos à aeronave.


Bem, isso é tudo para este tutorial! Espero que ele possa ser útil para vocês! Até a próxima!