https://www.slideshare.net/jpcorp/ss-60782086
알차고 재미있는 내용입니다.
기승전 카메라!
요악
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
- 1. 물리 기반 쉐이더의 허와 실 물리 기반 쉐이더를 가르쳐 보았습니다
- 2. 정종필 1992. Hqteam – 충무공전 / 임진록1 , 2 / 천년의 신화 등 조이온 Art Director – 임진록 온라인 거상 등 Ndoors Technical Art Director – 군주/ 삼국지를 품다/ 영웅의 군단 등 청강문화산업대학교 게임콘텐츠 스쿨 교수 대충 살아가는 게임개발자 http://chulin28ho.egloos.com http://chulin28ho.tistory.com/ 게임 개발 포에버 / 대마왕 http://gamedevforever.com
- 3. 그래서 물리 기반 쉐이더 (PBS)가 뭔가요? PBR이라고도 합니다만
- 4. PBS (Physically Based Shader )의 마케팅 용어 보다 더 정확한 라이팅 표현이 가능하다! 아티스트들이 신경을 덜 써도 된다! 보다 더 직관적이다! Shader 하나로 모든 재질을 표현!
- 5. 여기서 PBS의 큰 특징 • 요새 PBS 강연문서는 꽤 많으니까 요 • 좋은 동영상도 많이 있습니다. • 깊게 들어가면 너무 깊어지니까 쉽게 특징적인 것 두 개만 짚어봅시 다
- 6. 1. Energy Conservation
- 7. 거울에는 그림자가 생길까요?
- 8. 네 여자친구처럼
- 9. • 빛은 투과, 흡수, 반사등의 성질을 지닙니다만 일단 반사만 생각합시다 • 반사는 크게 두 종류로 나눌 수 있습니다. • Diffuse : 난반사 • Specular : 정반사
- 10. • 난반사와 정반사는 상호 보완 관계를 가지고 있습니다
- 11. 정반 사 난반 사
- 12. 정반사 난반사 • 즉 거울 자체는 빛을 비춰도 밝아지지 않습니다
- 13. • 물론 실제 거울은 이상적인 100% 정반사가 아니고, 각종 불순물과 먼지 손자국 등등 때문에 밝아지긴 하죠
- 14. 어쨌건 기존의 구형 라이트 방식은 이런 정반사 (Specular)와 난반사 (Diffuse) 를 감각적으로 따로 계산해서 더하는 방식이었습니다. 대충 스페큘러를 이 정도 넣고 대충 디퓨즈를 이 정도 넣으면 정반사 난반사 100% 거기다가 정반사는 무려 흰 공이었죠 ㅎㅎ
- 15. 잘못된 경우 옳은 경우 - PBR
- 16. 2. Specular Color
- 17. • 금속은 고유의 스페큘러 칼라를 가지고 있고 • 비금속은 그냥 흰색의 스페큘러 칼라를 가지고 있습니다 • 표면의 공유 전자 (Shared Electron) 때문이라는데 뭐… 난누군가 여긴어딘 가 http://www.gamedevforever.com/17
- 18. • Diffuse Color + Specular Color • 금속은 칼라 스페큘러
- 19. • Diffuse Color + Specular Color • 비금속은 흰색 스페큘러
- 20. • 비금속 • 1- Diffuse Color = Specular Color https://area.autodesk.com/tutorials/natascha_hybrid_texturing
- 21. • 그래서 PBS에서는 Metal 이냐 아니냐를 구분하는 기능이 생겼습니다
- 22. Metal DiffuseBRDF *0 , SpecularBRDF * Albedo DiElectric DiffuseBRDF * Albedo , SpecularBRDF * 0.5
- 23. 즉 자동으로 출력되는 Albedo의 위치가 결정되는 것이 PBS
- 24. 잘못된 경우
- 25. 슬쩍 이 두 가지만 봐도 • PBS는 과연 대단합니다 • 추가로 프레넬 리플렉션이라던가 • 미세 표면이라던가 • 감마 코렉션이라던가 • 하는 것들 역시 ‘옳게’ 처리되고 있습니다
- 26. • 보다 더 정확한 라이팅 표현이 가능하다! • 아티스트들이 신경을 덜 써도 된다! • 보다 더 직관적이다! • Shader 하나로 모든 재질을 표현! 즉 이 말의 의미는
- 27. • 보다 더 정확한 라이팅 표현이 가능하다! • > 물리적으로 정확한 라이팅을 원한다면 • 아티스트들이 신경을 덜 써도 된다! • > 물리적으로 정확한 라이팅을 표현한다면 • 보다 더 직관적이다! • > 물리적으로 정확한 이론을 알고 있다면 • Shader 하나로 모든 재질을 표현! • > 물리적으로 옳은 재질이라면 물론 이 쪽 방향은 궁극적으로 맞는 방향이긴 합니다.
- 28. 제대로 알고 쓰면 좋은 결과가 나옵니다 PBS를 사용하면서 구형 방식으로 텍스쳐를 제작하면 안됩니다 새로운 방식을 이해하면서 텍스쳐를 그려야만 합니다
- 29. 그런데 말입니다
- 30. ‘정말’ 위의 것이 더 예쁩니까?
- 31. ‘저는 아래 것이 더 예뻐요’ 라는 의견은 ‘틀린’ 의견입니까?
- 32. 오른쪽 이미지는 옳지 않지만 그렇게 심각하게 이상합니까?
- 33. 언제나 프로그래머 분들이 뭔가 조금 부러워하고 있는 ‘예쁘다’ 의 기준을 말하고 있습니다.
- 34. 물론 이건 물리적으로 옳은 느낌과 비슷해 지려는 과장이라고 쳐도…
- 35. 게다가 세상에는 NPR이라고 하는 당당한 분야도 존재합니다 (Non Photo Realistic) 길티기어 xrd-sign-「애니메이션처럼 보이는 3d그래픽」의 비밀
- 36. • 보다 더 정확한 라이팅 표현이 가능하다! • > 물리적으로 정확한 라이팅을 원한다면 • 아티스트들이 신경을 덜 써도 된다! • > 물리적으로 정확한 라이팅을 표현한다면 • 보다 더 직관적이다! • > 물리적으로 정확한 이론을 알고 있다면 • Shader 하나로 모든 재질을 표현! • > 물리적으로 옳은 재질이라면 기본적으로 물리적으로 옳은 것을 지향하는 것은 맞지만
- 37. 물리적으로 정확한 결과만 꼭 예쁜 것은 아닙니다 기본적으로 물리적으로 옳은 것을 지향하는 것은 맞지만
- 38. 다음 중 어느게 PBR인지 구별 가능하십니까?
- 39. PBR (Standard : Metallic pass)Diffuse + Specular + rim + Reflection (BlinnPhong)
- 40. 이건 가능 하십니까?
- 41. 사실은 구형 방식도 • PR (Photo Realistics) 렌더링의 한 식구 • 구형 방식도 원래 PBR의 한 분야였습니다!
- 42. 사실은 구형 방식도 구형 방식으로도 비슷한 결과를 만들 수 있습니다 • PR (Photo Realistics) 렌더링의 한 식구 • 구형 방식도 원래 PBR의 한 분야였습니다!
- 43. 즉 • 기존의 방식이 ‘비 물리’ 방식이라는 말이 아닙니다 • 기본의 방식은 ‘생략이 많이 되고 수동으로 조절해야 하는’ 물리 기반 방식이라는 말이지요
- 44. PBR is NOT MAGIC!!! • 분명 개량된 것은 맞지만 • 천지가 개벽할 정도로 다른 것이 아니다 • 단지 “자동화”가 많이 되고 계산이 좀 더 정밀해진 우버 셰이더에 가깝다
- 45. “자동화”의 한계 • 아티스트의 자유도 제약 “난 무리해서라도 한계를 돌파하고 싶다고!!!” “거절합니다”
- 46. AD가 이걸 원한다면 ?
- 47. AD가 원하면 정답입니다
- 48. • 언리얼의 고민 • ‘Fortnite :포트나이트’ 을 지원하기 위해 구형 방식을 다시 지원 하는 것을 결정 : 어이 근데 2013년 얘기인데…
- 49. Henry : 언리얼로 제작된 오큘러스용 애니메이션 “우리의 과장되고 아름답게 재해석된 아트 방향은 실제와 달랐고, 이를 물리기반 셰이더만으로 완전히 달성할 수 없었다"
- 50. • 유니티의 고민 : 그럼 몽땅 다 지원하자!!! 으아아아 서로 섞여서 정신없어졌다 에이 신형 PBS도 만들어 넣자 신형 PBS 규칙을 깨뜨릴 수 있는 변칙 PBS 규칙도 또 만들어 넣자 에라 옛날 Shader도 그냥 두자
- 51. • 게다가 유니티와 몇몇 엔진은 Roughness를 쓰지 않고 Smoothness를 사용 • Smoothness = 1- Roughness
- 52. • 즉 이런 방식 구형 라이트 (Non-PBS) Diffuse Ambient Specular 신형 라이트 (PBS) BRDF Diffuse Metallic Smoothness 신형 라이트 변형 (PBS) BRDF Diffuse Specular Color Smoothness
- 53. struct SurfaceOutputStandard { fixed3 Albedo; fixed3 Normal; fixed3 Emission; half Metallic; half Smoothness; half Occlusion; half Alpha; }; struct SurfaceOutputStandardSpecular { fixed3 Albedo; fixed3 Specular; fixed3 Normal; fixed3 Emission; half Smoothness; half Occlusion; half Alpha; }; Metallic Pass Specular Pass
- 54. Metal Black * Diffuse BRDF , Albedo * Specular BRDF Non-metal Albedo * Diffuse BRDF , Gray* Specular BRDF Albedo * Diffuse BRDF , Specular Color * Specular BRDF Metallic Pass Specular Pass
- 55. Metallic pass Black * Diffuse BRDF , Albedo * Specular BRDF Specular pass Albedo * Diffuse BRDF , Specular Color * Specular BRDF * Diffuse BRDF , Specular Color * Specular BRDF
- 56. Non-metal Albedo * Diffuse BRDF , Gray* Specular BRDF Specular pass Albedo * Diffuse BRDF , Specular Color * Specular BRDF Albedo * Diffuse BRDF , Gray * Specular BRDF
- 57. Specular pass Albedo * Diffuse BRDF , Specular Color * Specular BRDF
- 58. PBR is NOT MAGIC • PBR이 나쁘다고 오해하시면 안됩니다. PBR은 좋습니다! • 꼭 물리적이어야 예쁜 건 아닙니다 • 물론 물리적으로 PBR은 이상적인 접근 방식입니다 • 원래 만든 목적이 ‘아티스트 편하라고’ 만든 기능입니다 • 아직 발전중이고, 약점도 없지 않습니다 P B R 이 만 병 통 치 약 취 급 을 당 하 는 마케팅 용어가 되는걸 주의하자는 말입니다
- 59. 그란데 말입니다 우리는 됐다 치고…
- 60. 이걸 학교에서 아티스트에게 가르치려니까 말입니다 청강대 게임스쿨 게임제작 스튜디오 전경 (광고)
- 61. 수업에서 PBS를 설명할 때의 문제점 • 실무에서도 아직 안 쓰는 곳이 꽤 많다 • 예전 방식의 라이팅과 전혀 다른 구조 • 안 가르치자니 그것도 곤란
- 62. • 기존의 라이팅 구조 • Diffuse • Specular • Ambient • 새로운 라이팅 구조 • Albedo • Metallic (Specular pass?) • Glossiness (Smoothness) • Occlusion
- 63. 어설프게 알면 혼란을 겪게 될 가능성이 크다 • 아니면 대충 ‘외워’ 버리게 된다던가 • 수준 높게 가르친다고 이론만 어렵게 나열하면 흥미를 잃고 포기한다 • 다른 엔진이나 이후 발전되는 방향에도 대처하게 만들어 주고 싶다 • 이론을 근본적으로 이해하되, 쉽게 이해할 수 있도록 만들어 주고 싶다
- 64. 그래서 작전을 짜봤습니다
- 65. 1단계 : 아예 빛부터 가르치기로 결정 • 과목명 : 카메라/라이트/렌더링 (카/라/렌) • 학생들 : 저게 뭐하는 과목이지?(갸웃)
- 66. 카메라를 가르치자 • 일단 전반기에는 카메라를 가르쳐 봤습 니다. • 마침 학교도 이쁜데 밤새며 과제만 하는것도 불쌍하고… • 어차피 게임 그래픽은 우리 눈이 아니라 카메라 (영화) 의 카피니까요
- 67. 빛을 찾아보자 • Diffuse를 찾아보자
- 68. • Ambient를 찾아보자 빛을 찾아보자
- 69. • Specular를 찾아보자 빛을 찾아보자
- 70. • 마른 표면과 젖은 표면을 비교해 보자 빛을 찾아보자
- 71. 그 외 빛 찾고 연구하기 • 셔터스피드 연구 • 패닝샷 촬영
- 72. 그 외 빛 찾고 연구하기 • Rim light / Translucent • Fresnel Reflection • Ambient Occlusion • Refraction / Caustics
- 73. 그 외 빛 찾고 연구하기 • 금속과 비금속의 Specular Color 차이
- 74. 그 외 빛 찾고 연구하기 • HDR 과 LDR
- 75. 이 모든것이 PBS를 가르치려는 계획이었습니다
- 76. 德業一致
- 77. 2단계 : 후반기에는 맨탈레이
- 78. • 맨탈레이로 광자 계산을 실습 • 조사했던 빛을 디지털로 표현하려면 얼마나 복잡한 것인지를 느끼게 해 줌 • 정적 라이팅의 개념과 그 디테일의 차이… • 공짜 Image from : http://blog.digitaltutors.com/indirect-illumination-final-gather-vs-global-illumination/
- 79. 이것 역시 PBR을 가르치려는 계획이었습니다
- 80. NDC에서 PBS를 알아듣게 만들자 마침 이호성님이 NDC에…
- 81. 그래서 의도한 결과 ‘엠비언트 칼라가 신경쓰여서 영화에 집중을 못하겠어요‘ ‘레스토랑에 갔더니 굴절과 커스틱이 신경쓰여 … ㅜㅜ‘ ‘NDC 이호성님 강연이 무슨 얘기인지 대충 다 들려요 ㅠㅠㅠ’ 빛 관련 강연은 전부 카라렌과 연관이…!!! ㅠㅠ
- 82. 3단계 : Shader 코딩 • 직접 Lambert / BlinnPhong / NPR 연산으로 구현해 보면서 학습
- 83. 그래서 이런걸…
- 84. 그래서 • 물리 기반 셰이더를 제대로 이해하게 되었다! • 적어도 두려워하거나 혼동하지 않게 되었다! • 바르게 공부할 수 있는 방향을 알게 되었다! • ‘아티스트가 기술을 이해하면 놀라운 일이 일어납니다’
- 85. 결 론
- 86. PBR is NOT MAGIC ! • PBR은 훌륭한 방향입니다만, 만병통치약은 아닙니다 • PBR은 제대로 알고 사용해야 그 가치가 있습니다 • 하지만 그 한계를 알거나 제대로 사용하기 위해선 PBR을 제대로 가르치고, 제대로 공부해야 합니다 • 제대로 공부하면 제대로 사용할 수도 있고, 그 한계를 넘어설 수도 있습니다! • 게다가 앞으로 발전하는 방향에 대응할 수도 있습니다
- 87. • http://www.gamedevforever.com/17 물체 표면의 스페큘러 칼라에 대하여_유우원 • https://www.unrealengine.com/ko/blog/physically-based-shading-in-ue4 UE4 의 물리 기반 셰이딩 Jordan Walker • [Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기 • Physically Based Rendering for Artists • Sand Rendering in Journey SIGGRAPH 2013 Course: Physically Based Shading in Theory and Practice http://blog.selfshadow.com/publications/s2013-shading-course/== • Real Shading in Unreal Engine 4 (Brian Karis) • http://www.slideshare.net/Hybrid0/physically-based-rendering-51309337 • http://bbs2.ruliweb.daum.net/gaia/do/ruliweb/default/ps/93/read?articleId=1454413&bbsId=G003 • NDC2015_3DS MAX 멘탈레이로 유니티 정적라이팅하기_16_9 • 길티기어 xrd-sign-「애니메이션처럼 보이는 3d그래픽」의 비밀 감사합니다 http://chulin28ho.tistory.com/ jpcorp@ck.ac.kr @JPcorps