Por que o nó Alpha Over torna minha imagem mais brilhante?

Dec 11 2020

Em um projeto Cycles no Blender 2.9, eu quero que todos os objetos recebam luz branca do ambiente, então eu defino World Properties -> Surface -> Color para white.

Mas eu quero que o fundo do resultado final seja azul escuro, então marquei Propriedades de renderização -> Filme -> Transparente, e usei um nó Alfa Sobre no compositor para obter meu fundo azul.

Esta é a imagem renderizada original com um fundo transparente:

E esta é a imagem com o fundo azul composto em:

Como você pode ver, o modo Alpha Over torna a imagem muito mais brilhante. Mas eu não quero isso: quero apenas a imagem original com um fundo azul.

O que eu tentei:

  1. Marcar "Converter Premul" (não deve ser necessário, porque a imagem renderizada já contém um canal alfa pré-multiplicado)
  2. Alterar manualmente "Fac" (que tem um comportamento inesperado: leva um valor extremamente baixo (0,0001) para tornar o primeiro plano transparente. Eu esperava que o primeiro plano fosse 50% transparente em Fac = 0,5)
  3. Conecte a saída Alpha do nó Render Layers à entrada Fac do nó Alpha Over (não deve ser necessário, porque o canal alfa já deve estar na própria imagem)
  4. Definir o brilho da lâmpada do Sol, que também está na minha cena, para 0. Tudo isso não resolveu meu problema.

Minha pergunta: Como faço para obter a imagem renderizada na frente de um fundo azul, sem tornar a imagem renderizada mais brilhante?

Qualquer ajuda é muito apreciada!

Respostas

1 GordonBrinkmann Dec 11 2020 at 19:31

Uma coisa que você pode fazer para reduzir o brilho exagerado nas partes semitransparentes é usar o Alpha Convert Node no Compositor . Coloque-o entre Render Layers e Alpha Over e defina-o como "Straight to Premul". Isso reduz muito o brilho em áreas transparentes.

A transparência na renderização ainda não se parecerá com a transparência no do visualizador .

Para obter esse resultado, você precisa fixar os valores RGB da imagem, por exemplo, usando um nó Color> Mix com Clamp ativado. Então você pode multiplicar a imagem por branco puro ou adicionar preto puro e então a saída terá todos os pixels brilhantes fixados em branco e a transparência alfa funcionará nisso. A questão é, se você quer isso, por que o brilho é tão alto?

Embora você tenha dito, você ajustou a força da Lâmpada Solar para 0 e mesmo isso não mudou muito, o arquivo que você forneceu tinha um sol com uma força de 1000. No Blender, um sol mesmo com apenas uma força de 10 é muito brilhante.

Portanto, renderizar seu arquivo com o cubo e um sol de 1000 resultou em áreas semitransparentes ao redor do cubo, que tinham valores RGB acima de 150 ou mesmo 200 em uma transparência de 60% -80%, o que dá pixels muito além do branco. E é por isso que tudo é muito mais claro do que na visualização Pano de fundo.

Você deve definir o sol bem mais baixo para obter o resultado desejado. Se seus objetos parecem cinzas em vez de brancos e é por isso que você aumentou o valor do sol, tente definir View Transform> Standard em vez de Filmic no Gerenciamento de cores .