1. 개요[편집]
| 볼륨 렌더링 Volume Rendering | |
|---|---|
| 다른 이름 | 직접 볼륨 렌더링(DVR) |
| 입력 | 3차원 스칼라장(복셀 격자, 비정렬 격자) |
| 광학 모형 | 방출-흡수(기본), 단일/다중 산란(확장) |
| 핵심 연산 | 렌더링 적분의 리만 합 + over 합성 |
| 주 사용처 | 의료영상, CFD 후처리, 구름·연기 렌더링 |
볼륨 렌더링은 3차원 스칼라장을 면(surface)이라는 중간 기하로 바꾸지 않고, 공간 자체를 빛을 내고 흡수하는 반투명 매질로 간주해 시선을 따라 광학 방정식을 적분함으로써 영상을 만드는 기법이다. “직접”(direct)이라는 수식어가 붙는 이유가 이것 — 마칭 큐브처럼 등가면 삼각형을 뽑는 단계를 건너뛰고 데이터에서 픽셀로 직행한다.
범위를 먼저 나누자. 매질 속 빛 전파의 물리는 복사 전달 방정식에 있고, 표면 간 상호 반사와 경로 추적 일반론은 전역 조명·물리 기반 렌더링에, 광선-기하 교차 자료구조는 레이 트레이싱에 있다. 이 문서는 그 사이에 낀 것, 즉 격자에 담긴 스칼라장을 어떤 광학 모형으로 어떻게 이산화해 화면에 꽂느냐를 다룬다.
2. 방출-흡수 모형과 렌더링 적분[편집]
산란을 버리고 방출과 흡수만 남긴 RTE를 시선 매개변수 를 따라 적분하면 볼륨 렌더링 적분이 나온다.
는 소멸(extinction) 계수, 는 단위 길이당 방출, 는 투과율이다. 산란 적분항이 빠졌기 때문에 이 식은 방향들이 결합되지 않는다 — 픽셀 하나가 광선 하나로 독립적으로 결정되고, 반복도 전역 해도 필요 없다. 볼륨 렌더링이 실시간으로 돌아가는 근본 이유가 여기 있다.
3. 리만 합과 over 합성[편집]
광선을 간격 로 잘라 각 구간에서 , 가 상수라 하면 구간 의 투과율은 이고, 여기서 불투명도
를 정의한다. 그러면 적분은 익숙한 알파 합성의 연쇄가 된다. 후방→전방(back-to-front)이면
이고, 전방→후방(front-to-back)이면 누적 불투명도를 들고 다니며
를 반복한다. 실무는 거의 항상 전방→후방을 쓴다. 가 되는 순간 뒤쪽은 어차피 안 보이므로 광선을 끊어 버리는 조기 광선 종료(early ray termination)가 공짜로 붙기 때문이다. 참고로 는 미리 가 곱해진 값(연관 색, premultiplied)으로 들고 다니는 게 관례다 — 안 그러면 보간에서 색이 새 나온다.
여기서 초보자가 반드시 밟는 지뢰가 불투명도 보정이다. 전달함수는 보통 어떤 기준 간격 를 전제로 를 준다. 샘플 간격을 바꾸면 같은 물질이 다른 밀도로 보이므로
로 다시 계산해야 한다. 이 한 줄을 빼먹으면 “샘플을 촘촘히 했더니 화면이 시커멓게 탔다”는 고전적 증상이 나온다.1
4. 전달함수와 표본화[편집]
전달함수(transfer function)는 스칼라값 를 색과 불투명도 로 보내는 사상이며, 볼륨 렌더링의 결과물 품질 대부분을 결정한다. 물리가 아니라 편집이라는 점에서 이 분야에서 가장 비과학적이고 가장 중요한 단계다.
- 1D 전달함수. 값만 보고 색을 준다. CT의 하운스필드 값처럼 물질과 값이 대응될 때 잘 먹힌다.
- 2D 전달함수. 평면에서 색을 준다. 경계면에서 기울기가 커진다는 성질을 이용해 물질 경계를 선택적으로 강조할 수 있다. 킨들만-더킨의 반자동 설계가 고전.
- 사전 적분(pre-integrated) 전달함수. 전달함수가 데이터보다 훨씬 고주파일 수 있다는 게 문제다. 표본화 정리를 만족시키려면 를 미친 듯이 줄여야 하는데, 대신 구간 양끝 값 에 대한 적분 결과를 미리 2D 테이블로 구워 두면 성긴 샘플로도 얇은 특징을 놓치지 않는다.
표본화 쪽 실무 규칙도 몇 개 있다. 값 보간은 삼선형이 기본이고(더 매끄러운 기울기가 필요하면 3차 B-스플라인), 분류 전 보간(post-classification)이 원칙이다 — 색을 먼저 보간하면 존재하지 않는 물질 색이 만들어진다. 그리고 광선 시작점을 픽셀마다 무작위로 흔드는 지터링은 등간격 샘플이 만드는 나이테 모양 띠(wood-grain artifact)를 잡음으로 바꿔 준다.
5. 구현 계보[편집]
- 텍스처 슬라이싱. 볼륨을 3D 텍스처에 올리고 시선에 수직인 평면 다발을 뒤에서부터 그려 하드웨어 블렌딩으로 합성한다. 셰이더가 빈약하던 시절의 유일한 실시간 해법이었고, 슬라이스 간격이 곧 라 각도에 따라 밝기가 출렁이는 문제가 있었다.
- GPU 레이 캐스팅. 프래그먼트 셰이더 안에서 광선을 직접 행진시키는 방식. 2003년 이후 사실상 표준이 됐다. 조기 종료·빈 공간 건너뛰기·적응 샘플링을 셰이더 안에서 자유롭게 넣을 수 있는 게 결정적이었다.
- 볼륨 경로 추적. 산란을 제대로 넣고 몬테카를로로 푼다. 델타 추적(우드콕 추적)으로 불균질 매질의 자유 행로를 편향 없이 뽑고, 다중 산란까지 누적해 수렴시킨다. 의료 쪽에서 “시네마틱 렌더링”이라 부르는 것이 이것으로, 부드러운 그림자와 반투과 덕에 해부 구조가 훨씬 직관적으로 읽힌다. 대신 수렴에 수백~수천 표본이 필요하다.
여기까지는 전부 정규 복셀 격자를 전제한 이야기다. CFD 데이터는 사면체·육면체 비정렬 격자로 오는 경우가 많고, 이때는 광선이 지나는 셀을 순서대로 찾아내는 것 자체가 일이다. 셀 간 인접 정보를 따라가며 면을 넘는 셀 순회 방식이나, 셔를리-터크먼의 투영 사면체(projected tetrahedra)처럼 각 셀을 화면에 직접 투영해 하드웨어 합성으로 처리하는 방식이 쓰인다. 셀 크기가 극단적으로 불균일한 격자에서는 등간격 샘플링이 의미를 잃으므로, 셀을 지나는 구간 길이를 그대로 로 삼는 편이 정확하다.
6. 경험적 조명 대 물리 기반[편집]
기본 방출-흡수 모형에는 그림자도 산란도 없어서 그냥 뿌옇게 보인다. 그래서 대개 스칼라장의 기울기 를 법선으로 삼아 블린-퐁 음영을 얹는데, 이건 물리적 근거가 없는 경험적 처방이다. 기울기가 거의 0인 균질 영역에서 법선이 잡음으로 튀는 것도 알려진 부작용이다. 한 단계 올라가면 광원 방향으로 그림자 광선을 쏘는 단일 산란, 더 가면 위상함수(대개 헤니에이-그린슈타인)를 쓴 다중 산란이다. 구름·연기처럼 알베도가 1에 가까운 매질은 다중 산란 없이는 절대 그럴듯해지지 않는다 — 구름이 하얀 이유 자체가 다중 산란이라서.2
7. 실무에서 — 그리고 등가면과의 차이[편집]
ParaView·VisIt 같은 CFD 후처리 도구, 의료 워크스테이션 모두 볼륨 렌더링과 등가면 추출을 나란히 제공한다. 언제 뭘 쓰느냐는 취향이 아니라 질문의 종류에 달려 있다.
- 등가면(마칭 큐브)은 임계값 하나를 정해 “이 값의 면”을 뽑는다. 형상이 또렷하고 면적·부피를 잴 수 있으며 폴리곤이라 뒤 파이프라인이 편하다. 대신 임계값 바깥의 정보는 전부 버린다. 값이 연속적으로 변하는 영역(난류 혼합층, 종양 경계의 점진적 밀도)에서는 고른 임계값이 곧 결론이 된다.
- 직접 볼륨 렌더링은 분포 전체를 반투명하게 겹쳐 보여 준다. 값의 층 구조와 내부를 동시에 볼 수 있지만, 겹침 때문에 정량 판독이 어렵고 전달함수를 잘못 만지면 없는 구조가 보이거나 있는 구조가 지워진다.
- 중간 지대로 최대 강도 투영(MIP)이 있다. 합성 연산자를 over 대신 max로 바꾼 것으로, 혈관 조영처럼 “가장 밝은 것만 보면 되는” 경우에 전달함수 튜닝 없이 즉시 결과가 나온다. 대신 깊이감이 완전히 사라진다.
대규모 데이터에서는 성능 기법이 곧 실용성이다. 빈 공간 건너뛰기(공간 분할 자료구조 기반 최소최대 브릭), 브릭 단위 out-of-core 스트리밍, 광선이 실제로 요구한 브릭만 올리는 ray-guided 방식, 원거리 브릭의 해상도를 낮추는 밉맵식 LOD 등이 표준 도구다. 수십 GB짜리 직접수치모사 스냅숏을 노트북에서 돌려 보는 마법은 대부분 이쪽 공로다.3
8. 관련 문서[편집]
- 복사 전달 방정식 · 광학 두께 · 미 산란
- 레이 트레이싱 · 전역 조명 · 물리 기반 렌더링
- 마칭 큐브 · 레벨셋 방법 · 보간과 근사
- ParaView · GPU 컴퓨팅 · 실시간 렌더링
- 깊이 버퍼 · 밉맵 · 안티앨리어싱
- 몬테카를로 방법 · 중요도 표본추출
9. Footnotes[편집]
-
이 버그의 무서운 점은 화면이 그럴듯하게 나온다는 것이다. 그냥 좀 진할 뿐이라 “데이터가 원래 이런가 보다” 하고 넘어가기 딱 좋다. 학회 발표 그림과 논문 그림의 밝기가 다른 이유가 종종 이거였다. ↩
-
방출-흡수만 켜고 “구름이 왜 이렇게 회색이지?”라고 묻는 것은 산란 없는 우유가 왜 투명한지 묻는 것과 같다. 우유가 하얀 것도 구름이 하얀 것도 전부 다중 산란 덕이다. ↩
-
반대로 “전달함수 튜닝”이라는 공정은 20년 넘게 자동화 시도가 이어졌지만 여전히 수작업이 지배한다. 볼륨 렌더링 논문에서 아름다운 그림 옆에 붙은 파라미터 표를 보면 대개 저자가 며칠 밤을 갈아 넣은 결과물이다. ↩