확산 및 정반사 항을 올바르게 결합하는 방법은 무엇입니까?


18

내가 이해하는 한, BRDF에서 Fresnel 항은 광자가 표면에 닿을 때 반사되거나 굴절 될 확률을 알려줍니다.

반사 된 광자는 정반사 항에 기여하고, 굴절 된 광자는 확산 항에 기여합니다. 따라서 물리적 기반으로 재료의 색상에 대한 빛의 기여를 결정할 때, 나는 단지 다음과 같이 쓰고 싶은 유혹을 느낍니다.

// Assuming for example:
//   diffuse = dot(L, N);
//   specular = pow(dot(H, N), alpha) * (alpha + 2.0) / 8.0;
//   fresnel = f0 + (1.0 - f0) * pow(1.0 - dot(E, H), 5.0);
color = lightIntensity * Lerp(diffuse * albedo, specular, fresnel);

그러나 나는 이것이 이런 식으로 쓰여진 것을 본 적이 없다고 생각합니다. 나는 스펙 큘러 항이 프레 넬 항에 따라 가중되는 것을 보았지만 확산 항은 아닙니다. PBR에 대한 그의 많은 논문에서 Sébastien Lagarde는 심지어 확산 항의 가중치를 위해 를 사용하는 것이 잘못되었다고 말합니다 .(1에프)

내가 무엇을 놓치고 있습니까?
나는 이것이 왜 틀릴 것인지 분명하게 강조하는 설명을 환영합니다.

답변:


14

주어진 확산 경로가 표면을 두 번 통과한다는 의미에서 두 프레 넬 항을 사용하는 것이 정확합니다. 다시 튀어 나올 때까지 매체를 통과하는 경로를 추적하여 확산을 해결하는 경우 표면과 상호 작용할 때 해당 경로에 대해 두 개 이상의 프레 넬 항을 얻게됩니다.

그러나 이것이 확산 BRDF로 수행하는 것은 아닙니다. 확산 BRDF는 가능한 모든 확산 경로의 평균을 나타 내기위한 것입니다. Lambertian의 경우 평균은 균일 한 반사와 확산 동안 내부 에너지 손실을 측정하는 단일 알베도 값으로 모델링되지만 더 복잡한 모델이 가능합니다. 결정적으로 : 확산 BRDF는 이미 일부 경로가 매체로 다시 반사되어 추가로 확산되고 일부는 즉시 빠져 나가는 효과를 포함합니다. 가 BRDF¹에 이미 "구워 져"있으며 다시 고려할 필요가 없습니다.1에프영형

램버 시안 용어에 포함되지 않은 것은 빛이 확산 매체로 들어가기 전에 반사되어 손실되는 에너지 부분입니다. 이것은보기에 따라 다르지만 그 위의 정확한 광택 엽에 달려 있습니다. A (비금속)에서 더 에너지 손실 당신이 실제로 원하는 것은 즉, 모든 발신 방향을 통해 표면에서의 총 에너지 손실을 통합하는 것을 의미 굴절됩니다 반영되지 않습니다 모든 때문에 표면 인터페이스가 없습니다 .1glossy_bsdf(,)

특정 BRDF에 대한 근사값에 대한 근사값을 사전 계산할 수 있습니다. 최종 결과는 일반적으로 시야 방향, 재료 거칠기 및 IOR에 따라 달라집니다. 첫 번째 근사치로, 광택 엽이 완벽하게 반사되는 반사판이라고 가정 할 수 있습니다. 이는 의 가중치를 부여합니다 이것은 정확히 당신이 처음 제안한 것입니다.1광택=1에프나는

또한 Lambertian BRDF는 로 나눈 알베도 이며 코사인 항은 들어오는 빛이 표면에서 얼마나 감쇠되는지를 나타내는 척도입니다. 광택 및 확산 반사에 모두 적용됩니다.π

대략적으로 :

// Assuming for example:
//   diffuse = albedo / PI;
//   specular = my_favorite_glossy_brdf(in_dir, out_dir, roughness);
//   fresnel = f0 + (1.0 - f0) * pow(1.0 - dot(E, H), 5.0);
//   total_surface_reflection = fresnel
color = lightIntensity * dot(L, N) * Lerp(diffuse, specular, total_surface_reflection);

¹ 가능한 모든 입사 내부 확산 출구 경로에 대해 의 적분은 바깥 방향으로 이어지지 만 난탈합니다.에프


8

내 질문을 올바르게 작성하기 위해 탐색하는 동안 실제로 답변을 찾았습니다 . 매우 간단합니다.

또 다른 프레 넬 항은 광자가 물질을 빠져 나가서 (공기로 굴절 됨) 확산 항이 될 때 무게가 가중됩니다. 따라서 산포 항에 대한 올바른 요인은 다음과 같습니다.

(1에프나는)(1에프영형)

1
디즈니 BRDF 용지 5.3 당신의 대답에 방정식을 의미하고 다른 모델을 지정에 간다. 방금 광택 BRDF 구현을 시작했을 때 그 중 어느 것도 이해한다고 주장하지 않습니다!
PeteUK

나는 이것이 내부에서 다시 반사 된 빛이 다시 안쪽에서 반대편으로 다시 표면에 닿을 때마다 계속해서 감소 할 것이라고 생각합니다. 지상 산란 hehe)
Alan Wolfe

다른 프레 넬 항을 어떻게 계산합니까?
plasmacel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.