정반사 음영에서 R (퐁) 대신 H (blinn)가 사용되는 이유는 무엇입니까?


22

나는 이것에 대한 좋은 이유를 찾을 수 없습니다. phong에 사용 된 반사 벡터는 물리학에서 간단한 기초를 가지고 있습니다. 그러나 blinn에 사용 된 반 벡터는 겉보기에 합리적인 근거가 없으며 적절한 반사를 구성하지 않습니다. 그럼에도 불구하고 그것은 모든 소위 "물리 기반"쉐이딩 기능에서 사용됩니다. 그것에 대한 좋은 물리적 근거가 있다면 알고 싶습니다.

내가 찾은 것은 몇 가지 이유입니다.

더 빠릅니다 . 이것에 대한 정보가 혼합되어 있지만 1998 년에 큰 이유가 있었을 것입니다.

90도 이상의 각도를 더 잘 처리 합니다. 단, 이유는 phong 항이 잘못 사용 되었기 때문입니다. 반사와 시야의 내적은 -1과 +1 사이의 각도를 제공합니다. 일반적으로이 각도는 0에서 1로 고정되며 이것이 90도 문제의 직접적인 원인입니다. 고정하는 대신 각도를 다시 정규화하면 전체 180도 범위를 확보 할 수 있습니다. 나는 단순한 x * 0.5 + 0.5 작업이 40 년 동안 그래픽 세계를 뛰어 넘었다 고 믿지 않습니다.

가장자리를 더 잘 처리합니다 . 가장자리 "문제"는 블린 솔루션에도 존재합니다. 주요 원인은 터미네이터에서 영역 조명의 부적절한 시뮬레이션으로, "물리 기반"쉐이더에 필수적입니다. 그러나 간단한 상황에서도 S 자형 함수는 소프트 터미네이터 라인을 정확하게 근사 할 수 있습니다. 램버트 항에 곱하면 정반사 항을 부적절하게 감쇠시키기 때문에 부정확하며, 이는 프레 넬 항을 상쇄하고 추가 오류를 야기 할 수 있습니다.

가장자리에 긴 반사가 있습니다 -비 등방성 반사는 현실적 일 수 있지만, blinn은 가장자리에만 나타나기 때문에이를 구현하는 올바른 방법이 아닙니다. H 항의 오류가 현실적으로 보이는 것은 단지 우연의 일치 일뿐입니다.

이 이유들 중 어느 것도 만족스럽지 않습니다. 나는이 광기를 정리하고 싶습니다.

나는 blinn과 phong에 대해 구체적으로 이야기하는 것이 아니라 대신 이러한 셰이더와 다른 것들의 기초로 사용되는 벡터 구성 요소 H와 R에 대해 이야기하고 싶습니다 .

답변:


24

완벽하게 반사되는 표면의 경우 Phong 모델이 적합합니다. 그러나 거친 표면을 근사화하기위한 Phong 모델의 n in (RV) ^ n은 어디에서 오는가? 내적 결과가 적절한 결과를 제공하는 것만 제외하고 내적 결과를 거듭 제곱해야한다는 이론은 어디에 있습니까?

Blinn 모델의 경우 방정식의 모든 구성 요소를 지원하는 물리적 기반의 마이크로 패싯 이론 이 있으며 모델이 실제 표면을 더 가깝게 근사함을 보여주는 경험적 증거도 있습니다 (완벽하지는 않지만). Blinn 모델의 반 벡터는 정규 분포 함수 (NDF)에 대한 입력으로 사용되며, 표면 거칠기의 함수로 미세면이 표면 법선에 대해 분포되는 방법과 비슷합니다. 즉, H- 벡터가 법선 방향을 가리키면 대부분의 미세면이 그 방향을 가리 키기 때문에 값이 가장 높으며 법선과 H- 벡터 사이의 각도가 증가하면 확률이 감소합니다.

Blinn-model은 어떤 방법으로도 완벽하지는 않으며, 예를 들어 microfacet 모델의 지오메트리 항을 고려하지 않습니다 (예 : 방목 각도에서 중요성이 증가하는 microfacet의 그림자 및 마스킹).


실제로 물리적 기반이없는 phong의 특정 구현에 대해서는 이야기하지 않습니다. 그러나 미세면 이론이 반사 벡터의 기초로 R보다 H를 어떻게 더 잘 지원하는지 알 수 없습니다. 음영 처리 모델은 경험적으로 지원되지 않으며, 모든 단일 모델은 "BRDF의 실험적 검증"addy 2005에 따라 실제 재료를 재생산하는 데 실패합니다. 리매핑 기능 또는 램프를 통해보다 물리적으로 정확한 하이라이트를 제공합니다. 전원 기능은 가장 단순하고 가장 잘못된 리매핑입니다.
BmB

2
@BmB 아니요, 마이크로 패싯은 "퐁 (phong)"으로 모델링되지 않지만 NDF로 정의 된 마이크로 패싯의 확률 분포를 사용합니다. 즉 H- 벡터로 "샘플링"됩니다. NDF는 일반적으로 법선 (등방성 / 이방성)에 대해 대칭이므로 H- 벡터를 사용하는 것이 좋습니다. 나는 Blinn 모델 이 Phong보다 실제 재료에 가깝다 는 경험적 증거가 있다고 말했다 .
JarkkoL

반사 벡터를 따라 있지 않은 반사는 완벽한 거울 반사가 아닙니다. 내적은 완벽하지 않은 각도에 대한 반사율 값을 생성합니다. 필연적으로, 이들은 미세면에 의해 생성되어야합니다. 따라서 내적은 미세면을 모델링합니다. 간단한 점은 선형 분포를 생성합니다. 그러나 분포는 R뿐만 아니라 H를 포함한 모든 함수로 모델링 할 수 있습니다. 이것은 R에 대한 H의 유효성에 대해서는 아무 것도 설명하지 않습니다.
BmB

1
@BmB 나는 당신이 개념을 이해하기 위해 microfacet 이론과 NDF 부분에 대해 읽을 것을 제안합니다. 질문에 대한 답변을 얻는 데 도움이됩니다.
JarkkoL

1
마이크로 패싯과 NDF에 대한 새로운 질문을 열어야합니다. 이러한 개념에 대해 이해하지 못하는 부분이 많고 설명이 올바른 설명이 아니기 때문입니다.
JarkkoL

6

실제로 Blinn이 Phong의 기본이 아닌 이유를 직접 나열했다고 생각합니다.

당신이 거기에 올린 모든 이유는 사실 Blinn이 Phong보다 우월한 지역입니다.

전체적으로 볼 때, 이러한 모든 것은 Blinn이 Phong보다 더 나은 채무 불이행으로 이어집니다.

Blinn은 완벽합니까? Phong보다 낫습니까?

아니.

그러나 그것은 이다 합리적인 기본. 작성한 렌더러 / 셰이더에서 Plin을 Blinn으로 자유롭게 대체하십시오.


동의합니다. 두 모델 모두 완벽하지는 않습니다. 반각을 계산하는 것이 훨씬 저렴하기 때문에 Blinn의 근사는 무엇보다도 성능 최적화였습니다. 대부분의 시간이 더 좋아 보였습니다.
Damon

-2

H 벡터가 사용되는 이유를 발견했습니다. 불행히도 대부분의 쉐이딩 모델에서 사용되는 방식이 아니므로 잘못된 것으로 결론을 내릴 수 있습니다.

물리적으로 음영 처리를하려면 반사광이 프레 넬 방정식을 따라야합니다. (대부분의 "물리적 기반"쉐이더는 그렇지 않습니다.) 마이크로 패싯은 프레 넬 방정식을 준수해야합니다. 프레 넬 방정식은 빛의 입사각과 인터페이스의 굴절률에 따라 정확한 결과를 생성해야합니다.

반사 법칙에 따라 입사각은 표면 법선을 따른 반사각과 미러링되어야합니다. 빛의 광선이 카메라에 닿게하려면 (우리가 알고있는) 빛의 방향으로 반사되어야합니다. 따라서 표면 법선은이 두 방향에 대한 거울 축이어야합니다. 이것은 그들 사이에있는 반 벡터 H를 제공합니다. 두 합계를 정규화하여 계산합니다.

이제 빛 방향 L과 반 벡터 H 사이의 각도를 계산하여 미세면의 정반사에 대한 입사각을 획득하고 프레 넬 항을 사용하여 정확하게 감쇠시킬 수 있습니다.

마이크로 패싯에 대한 뷰 방향은 R과 동일하며, H는 반사 항이 아닙니다. Blinn, Cook, Torrance 및 Sparrow가이를 흡입 할 수 있습니다. Phong과 Fresnel이 옳았습니다.


프레 넬 항은 미세면 BRDF 방정식의 일부이며 개별 미세면은 완벽한 반사판으로 모델링되므로이를 고려하지 않습니다. 또한 L과 H 벡터 사이의 각도를 계산하지 않고 N과 H 벡터를 계산합니다. 이것은 왜 H가 사용되고 있는지 힌트를 줄 것입니다. 누가
옳은지

재료의 미세면은 재료와 동일한 특성을 갖습니다. 따라서, 불완전한 반사기의 미세면은 그 자체가 완벽한 반사 기일 수는 없다. 당신의 논리는 불건전하고 도움이되지 않습니다. N dot H는 물리적 의미가 없습니다.
BmB

4
아니요, 마이크로 패싯 모델이 작동하는 방식이 아닙니다. 마이크로 패싯 모델의 기본을 이해하는 사람이라면 누구나 확인할 수 있기 때문에 제 논리는 완벽하게 들립니다. 각각의 미세면은 완벽한 반사기 (즉, 광학적으로 평평함)이며 재료의 불완전한 반사는 NDF에 의해 정의 된 미세면 법선의 분산에서 비롯됩니다. 완벽하게 유효한 충고를 무시하려는 당신의 끈기는 재미 있습니다;)
JarkkoL

당신은 조언을 제공하지 않았습니다, 당신이 한 모든 것은 당신이 그것을 백업 할 어떤 것도 옳지 않다고 주장하고 모욕을 던지는 것입니다. H는 반사가 아닌 미세면의 법선입니다. 반사는 법선으로 계산할 수 있습니다. 기본 물리학은 당신과 동의하지 않습니다.
BmB
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.