You are here

Filtering Data


vtkFilter

지난 강좌의 내용을 간단히 그림으로 표현하면 아래와 같다.
일반 데이터들을 점, 선, 그리고 면 등의 graphic data로 생성하고 이 데이터를 3차원 공간에 객체로 mapper하는 것을 visualization pipeline이라 하고, 이를 rendering하면 image가 생성되게 된다.



오늘은 visualization pipeline 가운데 vtkFilter에 대해 간단히 알아보자.
아래의 그림은 visualization pipeline을 통해 데이터를 처리하는 예이다.
첫 번째는 직접 data object를 생성해서 mapper에 직접 입력하는 경우이고,
두번째는 source에서 data object를 생성해 mapper에 입력하는 경우이다.
마지막으로는 source에서 생성한 data를 filter에서 처리를 한후 mapper에 입력하는 경우이다.



여기서 filter는 source에서 생성한 데이터를 원하는 형태로 추출한다고 생각하면 될 것 같다.
Filter는 source에 따라 다양하게 있는데, The VTK User's Guid 의 277 페이지를 참조하기 바라고
본 강좌에서는 기존에 구현했던 예제를 중심으로 간단하게 사용방법을 설명하겠다.

# 1) Data object 생성
vtkQuadric quadric
  quadric SetCoefficients .5 1 .2 0 .1 0 0 .2 0 0

vtkSampleFunction sample
  sample SetSampleDimensions 30 30 30
  sample SetImplicitFunction quadric

# 2) Contour filter 사용

vtkContourFilter contours
  contours SetInput [sample GetOutput]
  contours GenerateValues 5 0.0 1.2

# 3) Mapper에 입력

vtkPolyDataMapper contMapper
  contMapper SetInput [contours GetOutput]
  contMapper SetScalarRange 0.0 1.2

이때 data object를 입력받고 출력하는 method가 SetInput, GetOutput method이다.

코드를 분석해 보면,
sample이라는 data object의 생성시키고, 그 출력을 filter에서는 입력으로 받는다.
여기서는 contour plotting을 하도록 setting하고 data object는
다시 렌더링을 할 수 있도록 그래픽 데이터로 바꾸게 되는 mapper에 연결된다.

위의 코드는 비록 간단하지만 많은 것을 담고 있다. 따라서 반드시 이해하고 넘어가야 한다.

첨부 파일파일 크기
Image icon visualization.gif2.38 KB
Image icon pipe_ex.gif4.85 KB
포럼: