본문 바로가기
SHADER

물리 기반 렌더러의 이론 이해(physically-based-rendering)

by tartist 2015. 12. 10.

1. Sebastien LagardePBS -> 언리얼4 물리기반의 기초가 되는 이론

2. Ambient Light의 이해

  • a가 물체 A에 부딪혀, 반사되어진 빛 a가 물체 B에 다시 부딪혔을 때, a는 물체 B에 대하여 환경광(Ambient Light)라고 할 수 있다.

    이런 빛을 다른 말로 간접광이라고도 하는데, 물체 B에게 빛 a는 간접적인 빛이기 때문이다. 이런 특성으로 인하여, 한 물체에 환경광은 복잡하게 부딪히게 되며, 여러 방향에서 발견되어 진다.  어찌보면 물체의 전반적인 부위에 평균적인 환경 광량 만큼 물체에 부딪히게 되는 것이다.

    http://nizainar.tistory.com/tag/3ds%20max

     

3. Phong 쉐이딩의 이해

  • 1975년 퐁 뷰이통에 의해 개발된 기술이다. 3차원 그래픽에서 각각의 화소 컬러에 조명에 기초하여 음영이 있는 표면을 계산한다. 퐁 쉐이딩은 면 단위가 아닌 화소 단위로로 오브젝트를 렌더링 하므로 텍스쳐의 질감, 반사 투명도, 범프등의 효과를 정교하게 반영한다. 폴리곤으로 구성되어 있는 각진 면을 부드럽게 처리하는데 효과적이다.

  • 고러드 쉐이딩의 업그레이드 버전. 정점들 사이의 표면 노말들을 하나의 표면 노말로 분해하여 면의 모든 픽셀에 대한 노말을 계산

  • http://cglink.com/terms/1085

     

4. 램버트 쉐이더의 이해

  • 퐁쉐이더는 사물에는 좋지만, 사람에게 쓰이기엔 부족한게 많은 쉐이더이다.

    그래서 등장한 것이 램버트 쉐이더이다. 밸브에서 개발했으며 하프라이프에 처음 사용되었다.

  • Dot(L,N)이 됩니다. L은 라이트 벡터, N은 법선 벡터를 말합니다. 이 둘을 dot프로덕트하면 램버트 라이팅이 된다. 법선 벡터(노말맵)가 곱해지면서 표면에 굴곡진 라이팅이 생성됐습니다.

  • 이 쉐이더의 가장 큰 문제점은 명암차가 너무 뚜렷하다는 것입니다.

  • 이러한 단점을 처리한 것이 바로 하프 램버트입니다. 램버트에 0.5를 곱해 평준화 시킨 다음 0.5를 더해서 x축으로 들어 올리는 겁니다. Dot(L,N) *0.5f + 0.5f

  • 하지만, 하프 램버트에도 단점이 있다. 명이 너무 넓고 암이 너무 좁습니다. , 음영 콘트라스트가 거의 없습니다. 이것을 해결하기 위해 추가된 것이 계수입니다.

    하프 램버트를 몇 번 제곱해서 콘트라스트를 올려 주는 겁니다.

    Pow((dot(L, N) *0.5f + 0.5F, n)   스몰n은 임의의 계수이며 일반적으로 4이다.

    http://donggas90.blog.me/100133823753


--------------------------- 아래부터 물리 기반 렌더러의 이론들--------------------------- 


5. Oren-Nayar 조명 모델이란..(물리 기반 렌더링에서 가장 중요한 이론!!)

http://www.gamedevforever.com/93  a반드시 필독요망!!!

  • Lambertdiffuse model은 모든 방향에서 같은 복사량을 취하게 된다는 가정을 깔고 있으며, 플라스틱이나 모래와 같이 반들반들한 표면을 가진 재질에 적합하다고 할 수 있습니다. 하지만, 현실세계에서 거친 표면을 가진 재질들이 많이 있지요.

  • Oren-Nayar Model의 공식을 유도할 때 사용되는 거친 표면(roughbess Surface)이라는 것은 서로 다른 각도를 가진 Torrance Sparrow에 의해 제안된 미세면(microfacet)들의 집합으로서 설명될 수 있습니다.

    여기에서 미세면의 표면은 길고 대칭적인 V 자 형태의 굴곡(cavity)으로 구성된다고 가정합니다. 또한, cavity는 두 개의 평면의 면으로 구성됩니다.

    면의 거친 정도는 경사진 면의 분산을 위한 확률 함수로 결정되는데, 보통 Gaussian distribution 이 사용됩니다.

 

6. 프레넬(Fresnel)에 대한 이해 (물리 기반 렌더러에 사용되는 이펙트 효과)

  • 투명하게 반사되는 물질이라 하더라도 시야각이 얕으면 투명함이 사라지는 효과를 말합니다.(광택이 되어 있는 마루바닥..?) 수학적으로는 되게 복잡한 이론인데 간단히 설명하면 물이 깨끗한 호수가에 서서 바로 아래를 내려다 보면 바닥이 다 보입니다. 하지만 멀리서 바라보면 호수물이 거울 반사처럼 반사됩니다. 이것이 프레넬 효과

  • 스마트폰을 비스듬하게 볼때와 정면에서 볼때의 차이점을 이해하자.

    http://www.gamedevforever.com/35

 

7. Blinn-Phong Specular (물리기반 렌더러에 사용되는 스펙큘러)

    http://ikpil.com/641

    http://blog.naver.com/tepet/140064908839

    http://blog.naver.com/imalone1/70088285161

    짐 블린이 시그라프 98에서 발표한 블린 퐁 쉐이딩.

    쉽게 말해 퐁 방정식과 블린 방정식을 합쳐서 장점만 취한 쉐이딩

 

8. 각 물체 별 거칠기와 미세 표면(Oren-Nayar의 수식을 뒷받침하는 물리기반 렌더러에 기초적인 이론)

    각 물체에는 거칠기와 미세표면이 존재한다.

    그것들을 수식화하여 표현하는 것이 물리기반 렌더링

http://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=14&ved=0CFQQFjAN&url=http%3A%2F%2Fjournal.kap.or.kr%2Finc%2Fdownload.php%3Fpubyear%3D2006%26volume%3D44%26issue%3D4%26f_name%3Dkap44-4-9.pdf%26convert%3DY&ei=H7lyVejBEc3h8AX9z4GAAw&usg=AFQjCNEnjYKatrxb_5f3BzaGe_Tn5mU9lQ&bvm=bv.95039771,d.dGc&cad=rjt

  • 참고 문헌(티타늄의 미세표면 구조 논문)


9. Image Base Lighting(물리 기반 렌더러의 라이트 방식)

주로 프리렌더링에서 gi용으로 사용하는 hdri를 생각하면 쉽게 이해할 수 있다.(멘탈레이.. 브이레이..등등)

베이스로 삼는 이미지의 색상만이 아니라 밝기 자체를 광원으로 처리하는 방식이다.

멘탈레이, 브이레이 등등..을 생각하면 이해가 빠를 듯 합니다.

 

10. 에너지 보존 법칙 -> 매우 중요!!(물리 기반 렌더링의 기본이 되는 이론)

  • 열역학 제 1법칙. 물리기반 렌더링의 근간이 되는 법칙.

  • http://www.kmlee.com/bbs/view.php?id=free&no=1117

  • 에너지 보존은 PBR렌더링 솔루션에서 중요한 역할을 합니다. 이것은 표면에 의해 반사되는 빛의 총 량은 이 것이 받는 빛의 총 량보다 작다고 주장합니다. 다른 말로, 표면에서 반사되는 빛은 절대로 표면에 충돌하기 전의 빛보다 강할 수 없다는 말입니다.

    아티스트로서 우리는 에너지 보존을 컨트롤할 걱정은 하지 않아도 됩니다. 에너지 보존이 쉐이더에 의해서 알아서 된다는 사실은 PBR의 좋은 측면 중 하나입니다. 이것은 물리기반 모델의 부분 중 하나이며 우리에게 물리보다 아트에 집중할 수 있게 해줍니다.

11. 디퍼드 렌더링이란?(참고만 하세요~시험 안나옴)

  • 디퍼드 라이트는 라이트와 그림자에 특화된 렌더링 패스입니다.

  • 모든 라이트가 퍼 픽셀로 계산되며, 이것은 그것들이 노말맵 등등과도 인터렉티브하게 작동된다는 것을 의미합니다.

  • 단점 : 리얼안티알리아싱이 지원 안됨. 반투명 오브젝트는 제어 안됨. 블린 봉 라이트만 지원. 모든 라이트는 같은 방법으로 계산되어 버린다. 각각의 오브젝트를 드라마틱한 다른 라이팅 모델로 계산할 수 없다.

  • 황군 사이트 참조 http://hwanggoon.tistory.com/18

     

12. 물리 기반 렌더링에 도움 받기 위한 참고 사이트(빨간색 부분들만 잘 보셔도 이해가 빠를거에요~)

http://www.slideshare.net/jalnaga/ndc13ndc-2013-udk-19999169

  • 물리 기반 렌더러의 기본 이론정리(카페가입 필수 및 강추)

http://cafe.naver.com/unrealfx/7128

  • 2014 NDC 발표 자료

http://www.slideshare.net/jooeunpark501/ndc2015-1

  • 쉐이더의 기본 이론(김포프)

http://kblog.popekim.com/2011/11/01-part-1.html

 


13. 쉐이더의 발전 흐름 계보

퐁 쉐이더 ?> 램버트 쉐이더(하프라이프) = 블린 퐁 쉐이더(98년 시그라프) -> 물리기반 쉐이더   --> 기억해 주심 좋을 듯^^

시대가 흐를수록 쉐이더가 좋아졌다고 하기 보다 기존 쉐이더들의 장점을 극대화 시켜 물리기반으로 정확히 계산하는 오차를 줄여왔다고 할 수 있다.

다시 한번 얘기하지만, 물리 기반 렌더러가 완벽한 렌더는 아니다. 실사 기반에서와 콘솔 게임(PC게임)에서는 톡톡히 역량을 발휘하지만, 카툰식이나 모바일에서는 아직 제 역할을 기대하기 힘든 수준이다. 그러나 항상 콘솔 -> PC게임 -> 모바일로 기술이 계승 되듯이 언젠가는 모바일의 물리 기반 렌더링 기술이 급속히 발달할 것이라 예상되며 언리얼도 모바일에서 다이렉트 라이트등 물리기반의 효과를 극대화 하기 위해 무단히 노력 중에 있다.