티스토리 뷰

Mesh Processing

Cork Boolean Library 빌드 및 사용법

배고플땐스윙칩 2021. 2. 11. 08:00

오늘 소개해드릴 Library는 Cork Boolean Library입니다. (한글 자료가 너무 부족해서 빌드 및 사용법을 적어봅니당)

 

이 Library는 두개의 Triangle Mesh를 쉽게 Boolean 작업을 할 수 있게 도와주는 Library 입니다. 라이센스도 LGPL 이므로, 내부 Code를 임의로 변경하지 않는다면, 개발 및 판매 배포시 소스코드를 공개하지 않고 자유롭게 사용이 가능합니다. 마지막으로 성능도 뛰어난 것 같습니다.

 

github.com/gilbo/cork

 

gilbo/cork

3D Boolean / CSG Library. Contribute to gilbo/cork development by creating an account on GitHub.

github.com

위의 링크로 들어가 git으로 clone 한 뒤에 cork 폴더안의 win/wincork 에 들어가보면 solution 파일이 존재합니다. 실행한 뒤 빌드해보면 아래 사진과 같이 끔찍한 빌드 오류들이 반갑게 맞이해 줍니다.

이제 이것들을 하나씩 해결해 나가 보도록 하겠습니다.

 

1. 헤더 파일들 경로 맞춰주기

프로젝트 설정에 들어가서 c/c++을 확인하면 추가 포함 디렉터리 경로가 절대경로로 되어 있는 것을 알 수 있습니다.......(왜지?? 왜?? 왜 나의 컴퓨터랑 그대의 컴퓨터랑 같을거라고 생각하는거야 왜???)

이걸 이제 상대 경로로 바꿔 줍시다!

아래 그림과 같이 C:\User\Gilbert\Documents\GitHub\cork 부분을 제가 설정한 상대경로로 수정해 줍니다. (그 이유는 현재 sln 파일이 있는 곳에서 경로를 뒤로 두번 가면 src 폴더가 있기 때문이죠!)

그 뒤에 다시 빌드하게 되면 아래와 같이 하나의 오류 메세지만 남게 됩니다!

 

2. mpir 경로 설정해주기

mpir은 아래 제가 정리해놓은 글을 따라 하시면 쉽게 빌드한 뒤 파일들을 얻을 수 있습니다.

mathmakeworld.tistory.com/86

저는 lib_mpir_gc 프로젝트를 빌드하였습니다. 그러면 mpir-3.0.0\lib폴더에 아래 그림과 같이 생성된 것을 확인할 수 있습니다.

여기에서 우리가 필요한 파일은 3개(mpir.h, mpirxx.h, mpir.lib) 입니다.

 

mpir.h와 mpirxx.h를 cork\src 폴더에 넣도록 하겠습니다.

다음으로 mpir.lib를 cork 폴더에 lib\WIN32\debug\라는 경로를 생성하여 안에 넣어두었습니다.

마지막으로 wincork 프로젝트 속성에서 링크->추가종속성에 아래 그림과 같이 mpir.lib 경로를 설정해줍니다. 이 상태로 빌드를 하게되면 정상적으로 오류없이 빌드가 성공하는 것을 확인하실 수 있습니다. 이제 cork Library를 사용할 준비가 끝이 났습니다.

4. 실행

이제 exe파일이 있는 폴더로 들어가 cmd창을 실행합니다. 그 곳에 [실행파일이름] -help라고 치게되면 아래 사진과 같이 cork library를 어떻게 사용해야하는지 알려주는 Log가 표현됩니다.

현재 cork library는 off파일만 지원합니다. 따라서 다른 확장자 mesh파일을 사용하기 위해서는 Code가 추가로 필요합니다. 먼저 off 파일로 test를 진행해보면 model 폴더에 ballA와 ballB off 파일이 있습니다. 다시 cmd 창에

 

[실행파일이름] -union [model1의 경로] [model2의 경로] [결과model의 경로]

 

위의 명령어를 치게 되면 결과model경로 폴더에 union된 파일이 생성된 것을 확인하실 수 있습니다.

결과는 아래와 같습니다.

이상으로 Cork Library 사용법이었습니다.

 

현재 새로운 프로젝트로 만들어서 환경을 맞춰 설정한 Cork Library를 제 Gitlab에 올려두었습니다. 아래 링크로 가서 받으시면 바로 사용하실 수 있습니다. debug,release / 64,86 모두 가능합니다.

gitlab.com/bshong2850/cork-boolean-library

 

ByeongSun Hong / Cork Boolean Library

GitLab.com

gitlab.com

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함