Ola pessoal,
Li alguns documentos a respeito do PBR, onde teoricamente, seria uma representação mais precisa de como a luz interage com as superfícies dos objetos(Acho). Porem, ainda tenho algumas duvidas.
PBR é um modelo de iluminação/renderização baseado em física. O que você disse está correto, o objetivo do PBR é representar de forma fisicamente correta como as superfícies reagem à luz. No entanto, para entender as técnicas envolvidas no PBR é preciso considerar as três condições no qual ele se baseia.
- Superfícies microfacetadas
- Aplicar conservação de energia da luz
- Calcular a reflexão da luz usando BRDF
A primeira diz que toda superfície é microfacetada. Ou seja, por mais que uma superfície possa parecer perfeitamente lisa a olho nu, quando vista em um microscópio é possível perceber que há imperfeições. A segunda diz que todo material conserva parte da luz recebida, através da absorção das ondas de calor. A terceira diz que para calcular corretamente, através da física óptica, a reflectância (reflexão x obsorção da luz) de um objeto é necessário usar uma fórmula da distribuição de reflectância bidirecional.
Os shaders convencionais que conhecemos (Blinn, Phong, Lambert, etc) não são fisicamente corretos, ou seja, não são baseados nas propriedades físicas dos materiais. Isso quer dizer que para atingir resultados realistas, é preciso fazer gambiarras e ajustes irreais nesses materiais. O PBR veio para resolver essa questão pois, com os materiais PBR, podemos trabalhar usando as mesmas propriedades encontradas no mundo real tais como difusão, reflexão, transparência, translucência, aspereza (roughness), conservação, metalicidade, albedo, fresnel, entre outras.
Com o PBR não há gambiarras. Por esse motivo, quem pretende usar PBR deve estudar e conhecer bem as propriedades físicas dos materiais.
O PBR é gerado pelas texturas ou seria uma opção de configuração da cena?
Internamente o PBR é alcançado através de shaders e de funções no raytracer (renderizador). Quando um renderizador diz que é um \"renderizador baseado em física\", ou então, que é \"compatível com materiais baseados em física\" significa que ele é um PBR. Nesse caso, não é necessário mexer em nenhuma configuração da cena. Mas ainda assim é necessário criar materiais que sejam do tipo PBR, para que o renderizador possa calcular a iluminação/renderização baseada em física dos materiais.
Vi alguns tópicos de modelagem, onde a pessoa comenta que para a criação de um tal modelo, é preciso utilizar texturas achatadas(flattened) PBR.
Isso quer dizer que quando estivermos usando materiais PBR devemos usar texturas \"chapadas\", ou seja, sem nenhum detalhe de sombra, brilho, reflexo, relevo, etc. O motivo é que se nós imbuirmos esses detalhes na textura, o PBR perde o seu sentido original (que é proporcionar o máximo de realismo no comportamento dos materiais em relação à luz). Este link do site do Andrew Maximov possui uma breve explicação sobre o assunto.
http://artisaverb.info/PBT.html
Para um resumo de PBR, recomendo também o seminário ministrado pelo mesmo autor:
http://artisaverb.info/PBR.html
Recomendo também o guia de PBR (dividido em dois arquivos PDF), da allegorithmic:
https://www.allegorithmic.com/pbr-guide
Se quiser se aprofundar na parte científica do assunto, recomendo a leitura deste excelente artigo (que inclui trechos de código em OpenGL):
https://learnopengl.com/#!PBR/Theory