Appearance
범프 매핑의 앞에 있는 것(3)~셀프 그림자 부착 패럴랙스 오클루전 매핑(POM)
[칼럼 핵심 요약]
일단 시선과 요철의 교차점이 구해지면, 전술한 바와 같이, 라이팅 자체는 그 교차점 직하의 노멀 맵으로부터 꺼낸 노멀 벡터를 활용하여 계산하면 된다. 이 때, 다른 하나를 고안하면,이 미세 요철에 셀프 그림자를 생성 할 수있다.🌐 원문 링크: バンプマッピングの先にあるもの(3)~セルフシャドウ付き視差遮蔽マッピング (Mynavi News)
📅 원문 발행일: 2008-05-30 | ✍️ 저자: 西川善司 (니시카와 젠지 / Zenji Nishikawa)
NOTE
💡 현대 그래픽스 관점에서의 발전사 (Modern Retrospective)
- 본 칼럼에서 다루는 핵심 렌더링 기법은 현대 실시간 렌더링 엔진(DirectX 12, Vulkan, Unreal Engine, Unity)의 기초 이론을 구성하고 있으며, 최신 하드웨어 가속 기법 및 컴퓨트 셰이더와 결합하여 고도화되었습니다.
📖 본문 해설
[원문 리드문] > 일단 시선과 요철의 교차점이 구해지면, 전술한 바와 같이, 라이팅 자체는 그 교차점 직하의 노멀 맵으로부터 꺼낸 노멀 벡터를 활용해 계산하면 된다. 이 때, 다른 하나를 고안하면,이 미세 요철에 셀프 그림자를 생성 할 수있다.
일단 시선과 요철의 교차점이 구해지면, 전술한 바와 같이, 라이팅 자체는 그 교차점 직하의 노멀 맵으로부터 꺼낸 노멀 벡터를 활용하여 계산하면 된다.
이 때, 또 다른 연구를 행하면, 미세 요철에 셀프 섀도우 (근처의 요철의 그림자)를 생성 할 수있다. 생각은 지금까지의 시선과 요철의 교차점을 구하는 것과 가깝다.
구해진 시선과 요철의 교차점으로부터, 광원의 방향을 향해 똑같이 충돌 판정을 행해 주는 것이다.
시선과 요철의 교차점으로부터, 광원의 방향을 향해 조금 진행되면, 그 위치의 하이트 맵을 참조하여 충돌했는지의 여부를 판정한다. 만약, 한번도 충돌하지 않고 폴리곤면을 빠져 나올 수 있으면, 무엇물에도 차폐되어 있지 않게 되어, 여기(시선과 요철의 교차점)에 빛이 맞고 있다고 판정할 수 있다.
반대로, 폴리곤면을 빠져나가기 전에, 다른 요철에 충돌한 경우에는, 다른 요철에 광이 차폐되어 있다고 판단할 수 있고, 광이 오고 있지 않다고 판정할 수 있다. 즉, 여기(시선과 요철의 교차점)는 그림자라고 하는 판정을 할 수 있습니다.
그림
다만, 이대로는 그림자인가, 그렇지 않은가, 라는 굉장히 굳은 것이 되어, 그림자의 윤곽이 바짝 나온다. 경우에 따라서는 깊이 그림자 기법의 그림자 생성(어느 쪽 연재로 취급할 예정)의 때와 같은 어려운 앨리어싱이 나올 가능성도 있다.
그래서 조사점이 요철에 충돌한 뒤 잠시 광원 방향으로 조사를 진행시켜 가서 "그림자라 하더라도 얼마나 차폐되어 있는지"를 조사한다.
구체적으로는, 광원으로 돌아가 돌진하고 있는 이 조사점의 높이와, 그 조사점에 있어서의 요철의 높이와의 거리를 구해, 이것을 「차폐 상태」로서 계측해 가는 것이다. 적당한 곳에서 조사를 중단(이상은 폴리곤면을 빠져 나올 때까지), 일련의 조사 중에서 가장 높은 차폐 상태를 결과로, 그림자의 색을 결정해 준다. 차폐 상태가 낮으면 얇은 그림자, 즉 반영(소프트 섀도우)으로 하도록 한다.
이것으로 그림자의 가장자리 부근이 부드럽게 보케하게 되어 리얼리티가 늘어난다는 것이다.
셀프 그림자 부착 패럴랙스 오클루전 매핑(POM)에서 소프트 그림자를 구현하는 방법
이 테크닉이 실제의 3D게임에서 채용된 예는 아직 적다고 생각되지만, AMD의 Radeon X1000 시리즈의 데모 「TOYSHOP」에서 채용되어 화제가 되었다.
Microsoft의 DirectX SDK 데모에서. 노멀 맵에 의한 범프 매핑
불일치 차폐 매핑
셀프 섀도우 부착 패럴랙스 오클루전 매핑(POM) (소프트 섀도우 대응)
셀프 섀도우 부착 패럴랙스 오클루전 매핑(POM)(소프트 섀도우 대응)을 실장한 Radeon X1000 시리즈용의 리얼타임 데모 「TOYSHOP」. 이 입체적인 문자의 간판도 셀프 섀도우 첨부 패럴랙스 오클루전 매핑(POM)으로 표현되고 있다
(트라이Z 니시카와 젠지)