티스토리 뷰
이전 포스팅에서는 VTK Library를 다운로드 받고 빌드하여 .h, .lib, .dll 파일을 생성하는 법까지 알아보았습니다.
TMI(Triangle Mesh Information) Project #3 - VTK를 빌드 해보자!
1. VTK Eng 1. VTK {"mean":["Vegeta Trunks Klan\n \t\t\t\n\t \t(←VTK) VTK\n\t\t (Funnies)","Vipers That Kill\n \t\t\t\n\t \t(←VTK) VTK\n\t\t (Military)","Visualization Technology Kitware\n \t\t\t\n..
mathmakeworld.tistory.com
이번 포스팅에서는 생성한 파일들을 가지고 자신의 프로젝트에 설정하고 실제로 예제를 돌려보도록 하겠습니다.
1. 프로젝트 생성 및 VTK 위치
Visual Studio를 켜서 새로운 프로젝트를 한 개 생성해 줍니다. 그런 다음에 그 프로젝트 폴더에 VTK를 옮겨주겠습니다. 컴퓨터 환경설정에 path를 설정해 줄 수도 있지만 이렇게 하는 이유는 그 프로젝트 폴더만 압축해서 어떤 컴퓨터에 옮겨도 실행 될 수 있게 하기 위함입니다.
저는 아래 그림과 같이 VTK_Test라는 프로젝트를 생성하고 생성된 폴더에 vtk 폴더를 옮겨주었습니다.

vtk 폴더 안에는 저번 포스팅에서 생성한
.h 파일들 - include 폴더
.lib 파일들 - lib 폴더
.dll 파일들 - bin 폴더에 각각 들어있습니다.

그러면 기본 Setting은 끝났습니다. 이제 프로젝트 설정을 해보도록 하겠습니다.
2. 프로젝트 속성 설정
2.1 dll 설정
먼저 프로젝트 속성에 들어가시면 구성속성->디버깅이 있습니다. 이 중 환경이라는 곳에 아래 그림과 같이 dll이 들어있는 경로를 작성해 줍니다.

2.2 include 설정
다음은 구성속성 -> C/C++ -> 일반에 들어가시면 추가 포함 디렉터리가 있는데 이곳에 아래 그림처럼 header 파일들이 있는 경로를 적어주면 됩니다.

2.3 lib 설정
마지막으로 lib 경로를 설정해주면 됩니다. 구성 속성 -> 링커 -> 일반에 추가 라이브러리 디렉터리에 lib 파일들이 있는 경로를 아래 그림과 같이 적어주시고

입력 추가 종속성에 사용할 lib들을 적어주면 되는데 필요할때마다 추가하기에는 너무 번거로우니 모든 lib 파일을 적어주시면 됩니다.

lib 파일이 굉장히 많기 때문에 하나하나 쓰기가 힘들 수 있습니다. 그렇기 때문에 현재 폴더에서 원하는 파일들을 txt 파일로 뽑아주도록 합시다!
cmd 창을 "관리자 권한"으로 켜서 아래 명령어를 따라 치시면 됩니다.
D: = D드라이브로 이동(lib 폴더가 C드라이브에 있다면 하지 않아도 됩니다.)
cd 경로 = 경로로 이동
dir /b *.lib > list.txt = 현재 경로에 있는 모든 파일중에 .lib로 끝나는 파일들의 이름들을 list.txt에 저장한다.

이렇게 명령어를 치고 나면 lib 폴더에 list.txt 파일이 하나 생겼을 겁니다. 그 파일을 열어보면 아래 그림과 같이 모든 lib 파일들의 이름이 적혀있는 것을 확인할 수 있습니다.

그럼 이제 이 이름들을 다 긁어서 앞에서 켜놨었던 링커 -> 입력 -> 추가 종속성에 다 붙여넣기 해주시면 됩니다!
여기까지 하셨다면 vtk를 활용할 수 있는 환경 설정이 마무리 되었습니다. 이제 예제를 통해 직접 사용해보도록 하겠습니다.
3. 예제 돌려보기
아래 코드는 가장 기본적인 Cube를 생성하는 Code 입니다. 코드를 실행하게 되면 8개의 vertex와 6개의 face로 이루어진 Cube를 화면에 랜더링 하실 수 있습니다.
결과 화면은 아래 그림과 같습니다.

여기까지 하셨다면 이제 언제 어디서든 VTK를 활용한 개발을 하실 수 있습니다! 혹시 궁금한 점이 있으면 언제든지 댓글 달아주시면 답변 드리겠습니다!
다음 포스팅에서는 Collision Detection Filter를 활용한 예제를 확인해보면서 VTK와 한걸음 더 친해지는 시간을 가져보도록 하겠습니다.
'Mesh Processing' 카테고리의 다른 글
- Total
- Today
- Yesterday
- AABB
- transform
- 강화학습
- Unity
- Bounding Volume Hierarchy
- perspective projection
- 루빅스큐브
- value type
- RubiksCube
- normalized device coordinate
- Mesh Processing
- Transformation
- collision detection
- SRP
- DirectX12
- Unreal
- 유니티
- 최적화
- NDC
- VTK
- reference type
- MeshProcessing
- C#
- Mesh
- 값 형식
- Scriptable Render Pipeline
- RL
- CollisionDetection
- opengl
- 참조 형식
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |