-긴 글은 유감이지만 " Devil is in the detail. ":)
나는 처음부터 경로 추적 프로그램을 작성하고 있으며 완벽하게 확산 된 (Lambertian) 표면을 위해 훌륭하게 작동합니다 ( 즉 , 퍼니스 테스트는 적어도 시각적으로 에너지를 절약하고 렌더링 된 이미지가 동일한 Mitsuba 렌더러로 생성 된 이미지와 일치 함을 나타냅니다) 매개 변수). 이제 일부 금속 표면을 렌더링하기 위해 원래 Cook-Torrance 마이크로 패싯 모델의 반사 기간에 대한 지원을 구현하고 있습니다. 그러나이 BRDF는 수신 된 것보다 더 많은 에너지를 반영하는 것 같습니다. 아래 이미지 예를 참조하십시오.
위 이미지 : 미쓰 바 참조 (정확한 것으로 가정) 이미지 : 직접광 샘플링, 중요 반구 샘플링, 최대 경로 길이 = 5, 32 층화 spp, 박스 필터, 표면 거칠기 = 0.2, RGB를 사용한 경로 추적.
위의 이미지 : 실제 렌더링 된 이미지 : 무차별 고유 한 경로 추적, 균일 한 반구 샘플링, 최대 경로 길이 = 5, 4096 계층화 된 spp, 박스 필터, 표면 거칠기 = 0.2, RGB. 렌더링 설정과 관련하여 약간의 차이가 있지만 렌더링 된 이미지는 이전에 표시된 참조로 수렴되지 않습니다.
나는 그것이 구현 문제가 아니라 렌더링 방정식 프레임 워크 내에서 Cook-Torrance 모델의 올바른 사용에 관한 문제라고 생각하는 경향이 있습니다. 아래에서는 specular BRDF를 평가하는 방법을 설명하고 올바르게 수행하고 있는지, 그렇지 않은 경우 이유를 알고 싶습니다.
중요한 세부 사항으로 들어가기 전에 렌더러가 매우 간단하다는 점에 주목하십시오. 1) 직접적인 빛 샘플링, 양방향 경로 추적, MLT 없음; 2) 모든 샘플링은 교차점 위의 반구에서 균일합니다. 전혀 샘플링이 중요하지 않으며 확산 표면도 마찬가지입니다. 3) 광선 경로의 고정 최대 길이는 5-러시아 룰렛이 없습니다. 4) 광도 / 반사율은 스펙트럼 렌더링없이 RGB 튜플을 통해 알립니다.
쿡 토 런스 마이크로 패싯 모델
이제 specular BRDF 평가 표현식을 구현하기 위해 따라온 경로를 구성하려고합니다. 모든 것은 렌더링 방정식으로 시작합니다. 여기서 는 표면의 교점이며 는 관측 벡터이고 는 라이트 벡터입니다. 는 따른 발신 광도 , 는 및 따른 에 대한 광도 사건 입니다.p cos θ = n ⋅ w i
위의 적분 ( 즉 , 렌더링 방정식의 반사 항)은 다음 Monte Carlo Estimator 여기서 는 샘플링 분포를 나타내는 확률 밀도 함수 (PDF)입니다. 벡터 . pwk
실제 렌더링을 위해서는 BRDF 및 PDF를 지정해야합니다. Cook-Torrance 모델의 정기 항의 경우 다음 BRDF 여기서 위의 방정식에서 D=1
매끄러운 반사 표면을 렌더링하는 경우 중요도 샘플링을 사용해야합니다. 그러나 나는 상당히 거친 표면 ( ) 만 모델링 하므로 렌더링 시간이 길어질 때까지 일정한 샘플링을 일정하게 유지하기로 결정했습니다. 이 경우, PDF는 . 균일 한 PDF 및 Cook-Torrance BRDF를 Monte Carlo 추정기로 대체하여 는 임의 변수 인 대체 하면 p ( w k ) = 1 wiwk1
이것이 광선이 반사율이 Cook-Torrance BRDF에 의해 묘사 된 거울 표면에 닿을 때 평가하는 표현입니다. 그것이받은 것보다 더 많은 에너지를 반영하는 것 같습니다. 나는 그것이 (또는 파생 과정에서) 문제가 있다고 거의 확신하지만, 그것을 발견 할 수는 없습니다.
흥미롭게도 위의 표현식에 곱하면 결과가 정확 해집니다. 그러나 나는 그것을 수학적으로 정당화 할 수 없기 때문에 그것을 거부했습니다.
어떤 도움이라도 대단히 환영합니다! 고맙습니다!
최신 정보
@wolle 이 아래에서 지적한 것처럼, 이 백서 는 정규 분포 함수 (NDF) 에 요소가 포함되고 BRDF 에 포함 된 경로 추적에 더 적합한 새로운 공식을 제시합니다. 요소. 따라서 및 위의 방정식을 다음 식에 포함 시키십시오 렌더링 방정식, 나는 결국
업데이트 2
PeteUK가 지적한 바와 같이 , 내 질문의 원본에 제시된 프레 넬 공식의 저자는 Cook and Torrance에 잘못 귀속되었습니다. 위에서 사용 된 프레 넬 공식은 실제로 Schlick의 근사치 로 알려져 있으며 Christophe Schlick의 이름을 따서 명명되었습니다. 질문의 원문이 그에 따라 수정되었습니다.