볼륨 시각화 개요
볼륨 데이터의 예
볼륨 시각화는 3차원 그리드에 정의된 데이터 세트의 그래픽적으로 표현하는 것입니다. 볼륨 데이터 세트는 스칼라 또는 벡터 데이터로 구성된 다차원 배열로 특징지을 수 있습니다. 이러한 데이터는 일반적으로 3차원 공간에서 샘플링되는 값을 나타내는 격자 구조에서 정의됩니다. 볼륨 데이터에는 다음과 같은 두 가지 기본적인 유형이 있습니다.
스칼라 볼륨 데이터는 각 점에 대해 단일 값을 포함합니다.
벡터 볼륨 데이터는 각 점에 대해 벡터의 성분을 정의하는 두 개 또는 세 개의 값을 포함합니다.
스칼라 볼륨 데이터의 예는 flow
로 생성됩니다. 흐름 데이터는 무한 물탱크(무한대로 연료가 공급되는 저장소) 내 수중 분사의 속도 프로파일을 나타냅니다. 다음을 입력하면
[x,y,z,v] = flow;
4개의 3차원 배열이 생성됩니다. x
, y
, z
배열은 배열 v
에서 스칼라 값으로 구성된 좌표를 지정합니다.
wind
데이터 세트는 북미 지역의 기류를 나타내는 벡터 볼륨 데이터의 예입니다. 다음 명령으로 MATLAB® 작업 공간에 이 데이터를 불러올 수 있습니다.
load wind
이 데이터 세트는 6개의 3차원 배열로 구성되며, x
, y
, z
는 볼륨의 각 점에 대한 벡터 성분인 배열 u
, v
, w
의 좌표 데이터입니다.
시각화 기법 선택하기
볼륨 데이터를 시각화하는 데 선택하는 기법은 사용자가 보유한 데이터의 유형과 알아내려는 내용에 따라 결정됩니다. 일반적으로 다음 사항이 적용됩니다.
스칼라 데이터는 등가곡면, 슬라이스 평면, 등고선 슬라이스로 가장 잘 표시됩니다.
벡터 데이터는 각 점에서 크기와 방향을 모두 나타내며, 흐름선(입자, 띠, 관), 원뿔 플롯, 화살표 플롯으로 가장 잘 표시됩니다. 하지만 대부분의 시각화에서는 데이터의 내용을 가장 잘 드러내기 위해 여러 기법을 조합하여 사용합니다.
이 섹션에 나와 있는 자료에는 일반적인 볼륨 데이터에 다양한 기법을 적용하는 방법에 대한 설명이 나와 있습니다.
데이터를 보간하고 그리딩하기
MATLAB은 시각화 준비 과정에서 데이터를 보간하고 재구성하는 데 사용할 수 있는 함수를 제공합니다. 자세한 내용은 다음 섹션을 참조하십시오.
볼륨 시각화 생성 단계
효과적인 시각화를 통해 원하는 최종 장면을 생성하려면 여러 단계를 거쳐야 합니다. 이러한 단계는 다음 네 가지 기본적인 범주로 나뉩니다.
데이터의 특성 결정. 볼륨 데이터를 그래프로 표시하려면 보통 좌표와 데이터 값 모두의 범위를 알아야 합니다.
적절한 플로팅 루틴 선택. 이 섹션에 나와 있는 정보를 참조하면 적합한 방법을 선택하는 데 도움이 됩니다.
보기 정의. 장면을 세심하게 구성함으로써 복잡한 3차원 그래프로 전달되는 정보의 질을 크게 높일 수 있습니다. 보기 조작 기법에는 카메라 위치 조정, 종횡비와 투영 유형 지정, 확대/축소 등이 있습니다.
조명 추가 및 채색 방법 지정. 조명은 곡면 도형의 가시성을 향상하고 볼륨 그래프에 3차원 원근을 제공하는 효과적인 수단입니다. 색은 데이터 값(상수 값과 변수 값 둘 다)으로 표현될 수 있습니다.
볼륨 시각화 함수
MATLAB 함수를 사용하여 다양한 볼륨 시각화 기법을 적용할 수 있습니다. 다음 표에는 함께 작동하도록 고안된 데이터의 유형(스칼라 또는 벡터)을 기반으로 이러한 함수가 두 범주로 분류되어 있습니다. 각 함수에 대한 함수 도움말 페이지에 용도를 설명하는 예제가 나와 있습니다.
스칼라 데이터를 위한 함수
함수 | 용도 |
---|---|
볼륨 슬라이스 평면에 등고선 그리기 | |
isocaps | 등가곡면 단면 기하(Isosurface End-cap Geometry) 계산 |
isocolors | 등가곡면 꼭짓점의 색 계산 |
isonormals | 등가곡면 꼭짓점의 법선 계산 |
isosurface | 볼륨 데이터에서 등가곡면 데이터 추출 |
patch(다중 다각형) 그래픽스 객체 생성 | |
패치의 면 개수 감소 | |
reducevolume | 볼륨 데이터 세트의 요소 개수 감소 |
shrinkfaces | 각 패치 면의 크기 감소 |
slice | 볼륨에 슬라이스 평면 그리기 |
smooth3 | 3차원 데이터 평활화 |
surf2patch | 곡면 데이터를 패치 데이터로 변환 |
subvolume | 볼륨 데이터 세트에서 서브셋 추출 |
벡터 데이터를 위한 함수
함수 | 용도 |
---|---|
coneplot | 속도 벡터를 원뿔을 사용하여 3차원 벡터장에서 플로팅 |
3차원 벡터장의 회전(curl)과 각속도(angular velocity) 계산 | |
divergence | 3차원 벡터장의 발산 계산 |
interpstreamspeed | 벡터장 크기에서 흐름선 꼭짓점 보간 |
streamline | 2차원 또는 3차원 벡터 데이터에서 흐름선 그리기 |
streamparticles | 벡터 볼륨 데이터에서 흐름 입자 그리기 |
streamribbon | 벡터 볼륨 데이터에서 흐름 띠 그리기 |
streamslice | 벡터 볼륨 데이터에서 올바른 간격의 흐름선 그리기 |
streamtube | 벡터 볼륨 데이터에서 흐름 관 그리기 |
stream2 | 2차원 흐름선 데이터 계산 |
stream3 | 3차원 흐름선 데이터 계산 |
volumebounds | 볼륨에 대한 좌표 제한과 색 제한 반환(스칼라와 벡터) |