Appearance
지오메트리 셰이더(11)~지오메트리 셰이더를 활용한 신표현(7)
[칼럼 핵심 요약]
형상이 대담하게 바뀌지 않는, 말하자면 디테일 장식에 머무르는 3D 모델 형상 변형이라면, 테셀레이터를 실장하지 않는 디스플레이스먼트 매핑의 실현 방법이 향하고 있다.🌐 원문 링크: ジオメトリシェーダ(11)~ジオメトリシェーダを活用した新表現(7) (Mynavi News)
📅 원문 발행일: 2008-11-28 | ✍️ 저자: 西川善司 (니시카와 젠지 / Zenji Nishikawa)
NOTE
💡 현대 그래픽스 관점에서의 발전사 (Modern Retrospective)
- 본 칼럼에서 다루는 핵심 렌더링 기법은 현대 실시간 렌더링 엔진(DirectX 12, Vulkan, Unreal Engine, Unity)의 기초 이론을 구성하고 있으며, 최신 하드웨어 가속 기법 및 컴퓨트 셰이더와 결합하여 고도화되었습니다.
📖 본문 해설
[원문 리드문] > 형상이 대담하게 바뀌지 않는, 말하자면 디테일 장식에 그치는 3D 모델 형상 변형이라면, 테셀레이터를 실장하지 않는 디스플레이스먼트 매핑의 실현 방법이 향하고 있다.
지오메트리 셰이더를 활용한 신표현(7)~폴리곤 기둥을 세워 국소적으로 볼륨 렌더링을 하는 디스플레이스먼트 매핑
형상이 대담하게 바뀌지 않는, 말하자면 디테일 장식에 머무르는 3D 모델 형상 변형이라면, 테셀레이터를 실장하지 않는 디스플레이스먼트 매핑의 실현 방법이 향하고 있다.
그것이 기본 형상의 3D 모델의 외피에 폴리곤 기둥(각기둥)을 세우고, 거기에 대해 국소적으로 볼륨 렌더링을 실행하는 방법이다.
각기둥을 세우는 것은 계산량의 면에서 베지어 곡면을 계산하는 것보다는 부하가 낮다. 그러나, 실제로 지오메트리 레벨의 볼록을 만들기 때문에 입체적인 요철의 표현을 할 수 있다.
이 방법에서는, 대상 3D 모델을 구성하고 있는 폴리곤(삼각형) 중, 디스플레이스먼트 맵핑을 행하는 대상이 되는 것에 대해, 지오메트리 쉐이더 이용하여 그 폴리곤을 저면으로 한 각기둥을 세우는 것으로 시작한다.
폴리곤 기둥을 세우고 국부적으로 볼륨 렌더링을 수행하는 디스플레이스 맵핑 개념
어프로치의 이미지로서는, 각주로 대략적인 볼록을 만들어 내고, 거기로부터 하이트 맵을 이용해, 픽셀 단위의 요철을 볼륨 렌더링의 조각도로 깎아내는 것 같은 느낌을 연상하면 좋을 것이다.
전술한 바와 같이, 세우는 각기둥의 저면은 3D 모델측의 폴리곤이 된다. 이 바닥면에서 세우는 3변은, 이 폴리곤의 노멀 벡터의 방향으로 한다. 이렇게 함으로써, 인접하는 3D 모델의 폴리곤으로부터 차례차례로 각기둥을 세워 갔을 때에도 틈을 비우지 않고 끝난다.
밑면 폴리곤의 3개의 버텍스의 노멀 벡터의 방향으로 변을 세워 사각형 기둥을 형성
이 저면 폴리곤의 노멀 벡터 방향으로 뻗은 각기둥을 지지하는 3변의 길이는, 생성하는 볼록 부분의 최대의 높이로 한다.
세워진 삼각기둥의 측면은 2개의 삼각형으로 이루어져 있으므로 이를 이용하면 이 삼각기둥은 3개의 사면체로 분할할 수 있다.
삼각기둥은 측면의 폴리곤을 일면으로 한 3개의 사면체로 분할할 수 있다
그리고는 이 3개의 사면체에 대해, 각 사면체의 저면의 깊이값과 요철을 기록한 하이트맵으로부터 꺼낸 변위의 높이값을 비교해, 시선이 충돌하고 있는지를 판단해 볼륨 렌더링을 실시해 간다. 이 근처의 구조는 본 연재 제17회 「패럴랙스 오클루전 매핑(POM)」과 거의 같다.
시선을 조금씩 늘려 가서, 그 위치에서의 사면체의 저면의 깊이값과 높이 맵의 높이를 비교하여 충돌하고 있는지를 판정. 충돌하면, 거기에 대하여 픽셀 셰이딩(Shading)를 행한다. 그 이외는 시선을 한층 더 조금 늘려… … 이후 이 반복. 마지막으로 세 번째 사면체를 튀어 나온 시점에서 처리 종료
이 방법의 경우, 첫 번째 방법에 비해 버텍스 셰이더 또는 지오메트리 셰이더에 대한 부하가 적지 만 픽셀 셰이더에 대한 부하가 높아집니다.
디스플레이스먼트 맵핑에서 생성된 요철의 셀프 섀도우 표현도 시차 차폐 맵핑에서 소개한 셀프 섀도우 부착 시차 차폐 맵핑의 방법을 응용하면 할 수 없지는 않지만, 부하와 난이도는 높아진다.
이 방식의 디스플레이스먼트 매핑 데모 (DirectX SDK의 데모보다). 디스플레이스먼트 매핑으로 등받이와 가시를 추가합니다.
끄면 등받이와 가시가 사라집니다.
(트라이Z 니시카와 젠지)