Qual é o método aceito para converter brilho em rugosidade e vice-versa?

12

A maioria dos renderizadores modernos usa materiais com base física e seus modelos são frequentemente parametrizados sobre a rugosidade. Como esse nem sempre foi o caso dos renderizadores, os ativos convencionais geralmente não têm noção de rugosidade. Em vez disso, vemos "brilho" ou "poder especular" como um parâmetro material comum.

Entendo que não há uma conversão exata entre os dois, mas existe uma maneira prática / aproximada de obter rugosidade para um material cujo poder especular ou brilho seja conhecido?

ap_
fonte
1
Que tal renderizar uma série de amostras de comparação e tentar ajustar uma curva de conversão?
Joojaa 18/09/2015

Respostas:

10

Como você já observou, não há interpretação / conversão clara para esses valores. Eu acho que é ainda pior: dependendo do BRDF e das limitações internas (como definir expoentes que variam de 2 a 2048), a interpretação é completamente diferente. Como sugerido nos comentários, pode ser o melhor para renderizar uma série com valores diferentes e ajustar uma curva de conversão até que o valor pareça intuitivo.

Alguns exemplos foram capazes de encontrar algumas postagens de blog que mencionam algo sobre esse tópico:

  • No entretenimento de Dontnod, eles usam uma "distribuição linear perceptiva". Sébastien Lagarde reconhece o problema nesta postagem do blog e escreve algumas notas sobre isso.
  • Brian Karis usa valores de rugosidade ao quadrado nesta visão geral do Microfacet BRDF . Isso também ilustra bem como a rugosidade é usada de maneira diferente em diferentes funções de distribuição normal. O poder de Blinn-Phong é aqui definido como 2/roughness^4 - 2.
  • Frostbite usa um remapeamento ao quadrado. ie Rugosidade = (1 - Suavidade) ^ 2 Detalhes sobre ele e seu sistema material inteiro são explicados na seção 3.2 do relatório de Sebastien Lagarde .
  • Esta postagem do blog sugere definir a rugosidade de uma distribuição Beckmann a partir da rugosidade alfa como:

insira a descrição da imagem aqui

Wumpf
fonte
1
Gostaria de saber se será útil plotar os vários métodos em um único gráfico. Por exemplo - plotei
ap_