FROM THE BLOG

Maya Mental Ray: Qualidade do Anti-Aliasing no Maya

O que é anti-aliasing?

Acho mais fácil entender primeiro o que é aliasing: é aquele “serrilhado” que aparece entre os pixels, principalmente, quando existe uma linha inclinada e manchas provenientes da falta de suavização entre pixels que ficam em toda a parte da imagem. Anti-aliasing, á a suavização desses pixels. Por isso, as configurações que controlam a qualidade do anti-aliasing do Mental Ray, suavizarão também os efeitos de reflexão borrada, sombra derivada de luz tipo area e até o efeito gerado pelo Final Gather (não mostrarei isso neste tutorial). A baixa ou incorreta configuração do anti-aliasing, numa animação, pode criar “flickerings”, ou seja, haverão áreas que ficarão “piscando” de um frame para outro.

OBS.: mesmo sendo este um tutorial de Maya, os conceitos passados aqui devem ajudar usuários de 3ds Max e Softimage também, pois o Mental Ray é o mesmo.

fig01

Logo, saber configurar o Anti-Aliasing é muito importante para a qualidade final do render. Lembrando que, quanto mais qualidade, maior o tempo de render.

Acessando as opções do Anti-Aliasing

Os atributos que controlam a qualidade do anti-aliasing no Mental Ray, estão dentro do Render Settings: Window > Rendering Editors > Render Settings > aba Quality > grupo Anti-Alising Quality.

fig02

Sampling Mode

Permite configurar a quantidade de “sampleamento” do anti-aliasing. Quanto mais samples (amostras) por pixel, melhor será a fusão dos pixels, gerando a suavização dessas áreas. Os atributos Min Sample Level e Max Sample Level, definem a faixa de níveis em que deve acontecer o sampleamento (do valor mínimo ao valor máximo).

Funciona assim: se o valor mínimo (Min Sample Level) for -1 e o valor máximo (Max Sample Level) for 2, significa que os pixels que puderem ser suavizados usando nível -1, serão suavizados nesse nível. Os que precisarem de um nível maior, serão suavizados em níveis maiores que -1, não ultrapassando o nível 2 (definido como valor máximo).

OBS: O atributo Min Sample Level é influenciado pelo atributo Anti-aliasing Contrast (ver mais abaixo). O valor configurado é o nível mínimo de samples garantido, porém dependendo do valor de Anti-aliasing Contrast, o Mental Ray pode aumentar o nível mínimo de samples (definido em Min Sample Level). Valores negativos são denominados Infra-Sampling e, positivos, Super Sampling.

Normalmente, valores -2 (Min) e 2 (Max) são uma boa configuração para renders finais. Mas se houverem falhas em objetos muito finos, como a tela de uma grade, por exemplo, então será necessário aumentar o valor de Min Sample Level.

Existem três opções no Sampling Mode. O que muda entre elas é a relação do valor de Min Sample Level e Max Sample Level, se usa ou não o atributo Anti-aliasing Contrast e a relação com o atributo Filter (ver mais abaixo):

Fixed Sampling: usa um número fixo de samples, ou seja, os valores de Min e Max Sample Level são sempre iguais (Exact). Esse modo ignora o atributo Anti-alising Contrast e habilita os atributos do grupo Multi-Pixel Filtering.

Adaptive Sampling (modo padrão): só é possível ajustar o valor de Max Sample Level. O valor de Min Sample Level é ajustado automaticamente. A relação entre esses valores é sempre de dois níveis. Exemplo: se ajustar o Max para 2, o Min será 0 (zero). Se o Max for 1, o Min será -1, e assim por diante. Esse modo trabalha junto com Anti-aliasing Contrast e só usa os atributos do grupo Multi-Pixel Filtering a partir do nível 1 de Max Sample Level.

Custom Sampling: permite configurar valores independentes para Min e Max Sample Level, mantendo o modo Adaptive Sampling (exceto se os dois valores forem iguais, resultando no modo Fixed). Em geral, a relação entre os valores de Min e Max não deve ser maior que 3 níveis. Esse modo trabalha junto com o Anti-aliasing Contrast e só usa os atributos do grupo Multi-Pixel Filtering a partir dos níveis -1 e 0 (zero) de Min e Max Sample Level, respectivamente.

O modo Custom Sampling é a forma manual de se configurar o sampleamento, enquanto as outras duas funcionam como pré-configurações (modos automáticos).Number os Samples: mostra a quantidade de amostras por pixel que está sendo usada na suavização da imagem. Os valores dos atributos Min e Max Sample Level, demonstram os níveis. Enquanto os níveis vão de -2 à 4, o número de samples varia de 1/16 à 256 amostras por pixel.

Abaixo, seguem alguns testes mostrando diferentes configurações versus o tempo de render. Todas foram renderizadas em 800×600 pixels. Os materiais da cena são todos mia_material _x:

fig03

Perceba que a partir de um determinado nível, a suavização das linhas retas não dá tanta diferença (ou nenhuma) de um configuração para outra. O que não suaviza totalmente são as áreas borradas da sombra e do reflexo do cromado. A única imagem que suavizou tudo 100% foi a que está usando o modo Fixed no nível 4. Com essa configuração, a imagem está perfeita (em termos de anti-aliasing), usando 256 samples por pixel na imagem inteira (nível máximo). Porém, o tempo de render foi de absurdos 16 minutos e 46 segundos! Muito tempo para uma imagem simples como essa… O Mental Ray gastou tempo usando 256 amostras em pixels que não precisavam de tudo isso, como nas áreas com cor chapada. Valeu a pena somente na sombra e reflexo. Porém, tanto a sombra tipo area quanto o reflexo borrado, possuem seus próprios atributos de controle de samples. Não preciso delegar unicamente ao Sampling Mode que faça isso. O tempo de render vai ser menor e com boa qualidade se eu baixar as configurações do Sampling Mode e aumentar o sampleamento da sombra e reflexo:

fig04

Observando as imagens acima, com uma configuração suficiente e mais baixa que a Fixed em nível 4, e aumentando a qualidade da sombra e reflexo do material cromado, obtive uma boa imagem que levou 8 segundos para renderizar… Lembrando que ainda não utilizei o Contrast e nem o Filter, ainda.

Anti-aliasing Contrast

O Contrast controla a intensidade do sampleamento, aumentando a quantidade de amostras a partir do valor determinado em Min Sample Level até o valor máximo configurado em Max Sample Level. É como se ele aumentasse a densidade das amostras. Quanto menor o valor do Contarst, melhor a qualidade da imagem.

A ação do Contrast é mais fácil de visualizar usando a opção Diagnose samples (ver abaixo).

Diagnose SamplesMostra a localização e a densidade dos supersamples na imagem em tons de cinza. É útil para visualizar o sampleamento quando se está configurando o Sampling Mode e o Contrast.A imagem abaixo mostra o comparativo entre as configurações do Contrast e a visualização do sampleamento. A qualidade da sombra e do reflexo está com 8:

fig05

Note que quanto maior a qualidade do Contrast, maior a suavização da sombra e do reflexo, mostrando mais uma vez, que sabendo lidar com os atributos, pode-se chegar numa imagem de alta qualidade, gastando menos tempo de render. As imagens do Diagnose Samples mostram com clareza a localização dos supersamples, a densidade e o contraste, que quanto maior, maior a qualidade imposta pelo atributo Contrast.

Filter

A função do Filter é mesclar os pixels vizinhos, ajudando a suavizar a imagem. Existem 5 tipos de filtros diferentes. A melhor maneira de saber qual filtro usar é testando, mas abaixo seguem algumas dicas para ajudar na escolha:

  • Box (padrão): é o que renderiza mais rápido.
  • Triangle: mais lento que o Box, produz resultados melhores. Amostras que estejam no centro do pixel terão mais peso, ao passo que as amostras que estiverem mais nas bordas do pixel se mesclarão mais com as do pixel vizinho. Isso faz com que os detalhes no centro do pixel estejam mais presentes na imagem final.
  • Gauss: as amostras se mesclam mais suavemente que os outros filtros, deixando a imagem mais borrada. Gauss requer, no mínimo, um Filter Size (veja abaixo) valor 3.
  • Mitchell e Lanczos: esses dois filtros tendem a aumentar o contraste da imagem (o Mitchell aumenta menos que o Lanczos) e resulta numa imagem mais nítida, sobressaltando os detalhes.

Segue um comparativo entre os filtros:

fig06

Filter Size

Controla o tamanho do filtro usado para mesclar cada pixel. Quanto maior o valor, mais informações são tomadas dos pixels vizinhos e mais borrada será a imagem final. O valor mínimo recomendado é 1,1.

OBS.: tanto o Filter quanto o Filter Size só serão habilitados se o Min e o Max Sample Level tiverem, no mínimo, valores de -1 e 0 (zero), respectivamente.

Comparativo entre valores do Filter Size usando filtro Mitchell:

fig07

Jitter

Reduz o aparecimentos de artefatos (manchas ou defeitos), redistribuindo as amostras localizadas nos cantos dos pixels.Sample LockQuando habilitado, essa opção se certifica de que as amostras de sub-pixel ocorram no mesmo lugar dentro de cada pixel, o que ajuda a reduzir problemas de flickering em animações. Só desligue essa opção caso você esteja tendo problemas no sampleamento do tipo padrão moiré.

Conclusão

1 – Entender o que cada atributo faz é importante, pois dependendo da imagem ou animação, as configurações finais podem ser diferentes.

2 – Faça sempre testes de render para saber qual a melhor configuração usar para obter boa qualidade e menor tempo de render.

3 – O tamanho final da imagem interfere nas configurações. Por exemplo, num objeto gradeado, quanto maior a imagem, menos necessidade de aumentar o valor de Min Sample Level, para eliminar possíveis falhas de render, comumente corriqueiros em objetos muito finos.

4 – Em animações, normalmente, é necessário maior qualidade de anti-aliasing, para evitar flickering. Faça testes de render em alguns frames para certificar que a configuração está adequada.

Um abraço,