PBR 구현과 혼동


13

나는 훌륭한 수학 세계를 발견하고 있으며 PBR과 이름으로 거대한 벽에 부딪 치면서 몇 가지 질문이 있습니다. 그러나 "Cook-Torrance"에서는 반사에 대해 아무것도 보지 못합니다. 반사를 통합하는 방법을 이해하지 못하므로 확산 된 빛과 반사 만 얻습니다.

나는 "Oren-Nayar"와 같은 다른 "확산 용어"에 대해 많이 읽었습니다. DFG 후보에서 다른 "D"와 같은 Cook-Torrance의 일부입니까? 그것은 거울 계산없이 그것을 대체합니까?

블렌더 아티스트 배경에서 "GGX"에 대해 많이 읽었습니다. 흐릿한 반향을 일으키는 것으로 생각했지만 잘못되었습니다. 이제이 GGX 용어는 마이크로 패싯 일반과 같은 다양한 상황에서 발견됩니다. 이 튜토리얼의 배포

간단히 말해서 문제는 "Oren-Nayar"와 "GGX"와 "Cook-Torrance"가 서로 어떻게 관련되어 있고 어떻게 "vec3 리플렉션"을 해당 알고리즘에 통합합니까?

내가 수학에 초보자이기 전에 내가 말했듯이 당신의 대답이 "math heavy"라면 방정식의 glsl / hlsl 버전을 작성하십시오. 나를 이해하는 것이 훨씬 쉽기 때문에 동등성이 나에게 많은 도움이 될 것입니다

추신 : 나는 내 질문이 모호하다는 것을 이해하지만 주제에 대한 나의 이해만큼 모호합니다.


1
당신을 도울 수있는 것은 "스페 큘러"는 "미러 같은"을 의미한다는 것입니다. 따라서, 정반사 및 확산 반사에 관해 말할 때, 정반사 란 사람들이 일반적으로 반사라고 부르는 반사와 같은 거울을 의미합니다. 확산은 단지 "점등하는 것"입니다. 그것들은 빛을 반사하고 있지만, 여러 다른 방향에서 반사하고 있기 때문에 결과는 이미지를 인식 할 수있는 것이 아닙니다. 실제 물체의 반사와 확산 반사 사이에는 스케일이 있으며, 이것은 PBR 컨트롤의 "거칠기"파라미터.
Alan Wolfe

원본 Cook-Torrance 용지를 읽으십시오 : inst.cs.berkeley.edu/~cs294-13/fa09/lectures/cookpaper.pdf- 가능하면 끝 부분에있는 참조도 확인하십시오 (대부분은 사용 가능한 온라인). 시간이 좀 걸리지 만, 무슨 일이 일어나고 있는지 "깊이"이해하는 확실한 방법입니다.
wip

답변:


12

DFG는 마이크로 패싯 기반 BRDF 제품군에 나타납니다. 그것은 단순히 세 용어의 곱입니다.

  • D : 미세면 분포.
  • F : 프레 넬 계수.
  • G : 미세면 사이의 기하학적 감쇠.

누군가 Cook-Torrance를 말할 때, 그들은 일반적으로 분포 (D)가 Beckmann 인 microfacet BRDF를 의미합니다. 저는 원래 Cook-Torrance 용지에 관한 것이라고 생각합니다.

GGX는 실제로 다른 분포 (D 항)입니다. GTR은 또 하나입니다. 이름은 종종 해당 배포를 사용하는 BRDF를 의미하는 바로 가기로 사용됩니다.

이제 이들 모두는 미세면에 대한 정반사 (또는 굴절)를 가정하여 프레 넬 항을 가정합니다. 비슷한 생각을했지만 확산 (라버 식) 미세면을 사용하면 Oren-Nayar BRDF를 얻게됩니다. 나는 마이크로 패싯의 가우스 분포를 기반으로한다고 생각하지만 세부 사항에는 익숙하지 않습니다.


좋아, 그것은 좀 더 명확하지만 여전히 레이트 레이싱 / 마칭에서 광선을 다시 시작하거나 SSR / 큐브 맵을 사용하여 얻는 "vec3 reflectionColour"로 무엇을하는지 설명하지 않습니다. 마치 방정식이 스포트라이트 / 스포트라이트 만 고려하지만 영역 조명이나 반사에 대해서는 전혀 모르는 방정식과 같습니다. 또한 "스페 큘러"는 의미가 맞지 않기 때문에 리플렉션 대신 "화이트 도트"와만 관련이있는 것 같습니다 = /
newin

@newin PBR 모델에서 specular와 reflection은 같은 이름으로 다른 이름입니다. 광선이 빛에 닿으면 반사되는 하이라이트, 다른 물체 (또는 환경)에 닿으면 반사됩니다. 귀하의 reflectionColour는 광선 생성 방법에 따라 다릅니다. 직접 조명을 샘플링하고 있습니까? 지역 조명? BRDF와 환경 맵을 통합 하시겠습니까? Explicit Light Sampling을 사용한 Progressive Path Tracing을 읽으십시오 . 프로세스에 대한 몇 가지 사항이 명확해질 수 있습니다.
Olivier

"vec3 reflectionColour"가 빛으로 취급되어야하고 메쉬 방출 빛을 만들고 싶다면 알베도에 1보다 큰 값을 넣어야합니다. (저는 PBR을 다른 시나리오에 통합하려고합니다. 첫 번째는 빛을 방출하는 메시를 원하는 레이 처처이고 다른 하나는 SSR을 사용하고 아마도 큐브 맵을 사용하는 게임 엔진입니다)
new in

@newin 방출 된 빛은 다른 모든 것 위에 추가됩니다. BRDF와 관련이 없습니다. 메시가 빛만 방출하면 더 이상 광선을 추적 할 필요가 없습니다. 큰 알베도는 빛을 증폭시키지 않고 (물리적으로 잘못) 만듭니다.
Olivier
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.