이런 대인배를 봤나

Voxmap은 없지만, Mesh의 Point Shell을 만들어주는 소스를 구했다.

소스 실행방법이 쉽지만은 않으니 요약을 해두겠다.

 

Dan Morris - Voxelizer

http://techhouse.brown.edu/~dmorris/projects/voxelizer/

 



 

그럼 먼저 Voxmap Point-Shell 은 무엇인가.

 

 

 - Haptic Rendering시 두개의 메시를 Voxel map(Voxmap)과 Point Shell로 표현한 것

 - Voxmap 메시와 Point Shell 메시가 충돌했을 때, Point Shell의 노말(초록색화살표)에 대입되는 탄젠트 평면을 만든다.

 

 - 그 탄젠트 평면과 Voxmap의 객체의 경계와의 거리(d)를 통해 Point Shell Mesh가 충돌 후 얼마나 깊게 들어갔는지 판단하고,  Force Feedback의 크기를 결정한다.

 - 가장 기초적인 Force Model로 이 공식에서의 d는 위에서 설명한 거리이다.

  * F : Force, K_{ff} : Stiffness - 이 Stiffness는 UTM 물성 측정 이후 결정 될 것이다.

 

 

Voxelizer 소스 구동 방법

아.. 정말 감동이야 이건 대인배

Dan Morris님 찬양, 두달? 세달? 정도의 시간을 벌었다.

 

우선 아까 맨위에 설명한 사이트에서 소스를 다운받는데

Source Zip파일, CHAI3D, winmeshview 요 세가지가 필요하다.

다운받자.

 

먼저 Voxelizer의 소스 Zip파일을 압축풀고 솔루션을 실행하면

요렇게 소스가 나오는데, 여기서 winmeshview는 소스 내부에 포함되어 있지 않다.

 

따라서, winmeshview는 Voxelizer의 소스 경로와 같은 경로에 압축을 풀어준다.

 - C:\voxelizer\src : 소스경로

 - C:\winmeshview\ : winmeshview 소스 경로

  * 그러니까 voxelizer폴더 안에 넣지말고 같은 레벨에 넣으라는 뜻이야

이렇게 세팅을 하고나서

 

CHAI3D는 걍 아무데나 풀고 (왠만하면 라이브러리 몰아두는 폴더에 같이 퐁당)

환경변수 설정을 해야한다.

 

이렇게, 물론 변수 값은 설치경로겠지요?

 

 

이렇게 하면 기본 세팅은 끝


어쨋든 소스가 확보되었으니 이보다 좋을 수 없다.

잘 분석해서 적용하자

 

 

릴리즈 실행

아름답다......

 

그래서 내 개다리뼈 모델을 돌려봤다.

 

왼쪽이 Surface Model, 오른쪽이 Point Shell Model

 

그래서 이걸 줌인 해봤다.

 

물론 Surface 제거했지롱

 

빨간색이 내부 Point Shell, 초록색이 외부(경계) Point Shell로

 - 깊이를 계산 할 필요가 없다는 거

이제 Surface Model로 구성되었던 내 개다리뼈를 Volume Model로 재구성 할 필요없이

이 코드만 잘 분석해서 적용하면 되겠단 말씀!!


Posted by 긍정왕오킹