분류 전체보기 290

Voxelizer - Making a Point Shell

이런 대인배를 봤나 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 M..

'06 - Haptics and Physical Simulation for Virtual Bone Surgery

2006년 8월 Stanford의 Dan Morris의 박사학위 논문 http://techhouse.brown.edu/~dmorris/projects/bonesim/bonesim.html#app2 http://techhouse.brown.edu/~dmorris/ - Dan Morris의 홈페이지 Solid Mechanics http://en.wikipedia.org/wiki/Solid_mechanics Plasticity http://en.wikipedia.org/wiki/Plasticity_(physics) Elasticity http://en.wikipedia.org/wiki/Elasticity_(physics) Young's modulus http://en.wikipedia.org/wiki/Youn..

Camera Calibration with Homography

카메라 캘리브레이션 대충 알고있는것처럼, 카메라가 가진 내부 파라미터와 외부 파라미터를 구하는 것을 의미한다. 여기서 내부, 외부(intrinsic, extrinsic) 파라미터가 뭔지 알아보자 내부파라미터 (intrinsic parameter) - 3차원 공간상에 존재하는 것들을 2차원 이미지 평면에 투영시키기 위해 필요한 파라미터들이다. 카메라라는 장비가 만들어지면서 가지게되는 내부적인 정보와 오차를 의미한다. 카메라의 구조는, 보통 렌즈가 있고 렌즈를 통해 CCD패널(빛이 맺혀 전기적 신호로 바뀌는 평평한 패널)에 빛이 맺히게 된다. 그럼 CCD는 빛을 컴퓨터가 이해할 수 있는 신호로 변환하고, 이것이 바로 영상이 되는 것이다. 우선, 렌즈는 구와 같이 동그란 돔의 형태를 띄고 있다, 하지만 인간은..

증강현실의 기본

어쨋든 여태 소스분석만 잔뜩하다가 갑자기 산으로 왔다 좋은 정보가 있어서 원문 : http://qtboy.egloos.com/2638750 내 느낌을 더해서 옮겨적겠다 증강현실을 처음 구현하고자 할 때 어려움을 느끼게 되는데, ARToolKit을 보고있지만 이걸 보고있어도 이게 통 무슨 소린지 OpenGL을 가지고 놀고있는 듯한 느낌인데 감이 안올 수 있다. 사실 나도 아직까지 확실하게 감을 잡지는 못했다. 하지만, 증강현실의 기본에 입각해서 모든 기술을 생각해 보면 전체 구조는 그리 복잡하지 않다. 가장 핵심은 웹캠과 OpenGL or DirectX상의 카메라를 일치시키는 것이다. 카메라를 일치시키는 작업에는 두가지가 있는데, 초점거리와 중심점 등 실제 내부 속성을 일치시키고, 웹캠이 실제 공간에서 위..

ARToolKit - 설치방법

ARToolKit 증강현실 구현 툴킷이다. SDK http://www.artoolworks.com/support/library/Installing_ARToolKit_Professional 일본에서 개발된 툴킷인데, 마커기반이다. 많은사람들이 쓰고있어서, 대중화되어있다. 나는 이미지 피쳐트래킹 기반인데, 구시대의 유물이 될 마커기반의 증강현실 툴킷을 강아지 정맥주사 실습용 증강현실 프로그램이 바로 이 ARToolKit 기반으로 만들어졌기 때문이다. - 이전 버전을 이해하기 위해 구시대의 유물이지만 설치 1. ARToolKit Win버전 다운로드 http://sourceforge.net/projects/artoolkit/files/artoolkit/2.72.1/ Win버전을 다운받고, 2.72.1, 그리고 ..

Haptic Feedback for Augmented Reality

2012.8.30에 작성된 내용입니다. 오늘 내 세미나 내용 피피티를 통째로 올리고 싶었지만 파일 전송 한계가 2M.. 처음 Tactile Feedback for Augmented Reality 였지만, Tactile은 질감에 대한 이야기이고, Haptic은 질감, 물리적 특성 모두를 포함하는 단어이다. 단어 선택이 잘못되었었다. 그래서, 제목 수정 서론 아는얘기는 스킵하고, 증강현실서 지금까지의 연구는 대부분 시각적인 측면에서만 고려되어왔다. 하지만, 증강현실이라는 것은 모든 감각이 증강되어야한다. 그 뜻은 즉, 꼭 카메라를 통한 것만이 증강현실이 아니라 청각, 촉각, 후각, 심지어 미각까지 모든 감각을 만족시켜야한다. 인간의 오감 중 시각이 가장 의존도가 높기 때문에 현재의 증강현실은 시각적 측면에 ..

Android 개발 시 항상 주의해야 할 점

까먹지 말고 항상 주의해야 할 것 - 기본중에 기본, 기본이 중요하다 이클립스는 항상 프로젝트 저장, Refresh와 Clean을 컴파일 할 때 마다 해줘야한다. - 안그러면 현재 수정된 코드로 컴파일 하는게 아니라 정상적이었던 이전 코드를 컴파일한다 안드로이드 폰으로 컴파일 할 때는 휴대폰 내 개발중인 어플을 항상 지우고 컴파일 해줘야한다. - 이것 역시 이전 컴파일 내용을 그대로 내보내는 경우가 있다. - 그래서 항상 개발중인 타겟 어플을 지우고 컴파일 해야 한다. 별거 아니지만 컴파일 할때마다 이걸 지키지 못하면 에러를 잡아놓고도 안잡힌것처럼 보이기 때문에 삽질을 거듭거듭하는 경우가 있다.

JNI에서 string 사용 방법

그러니까 사건의 발단은 트래킹할 이미지가 바뀔때마다 NDK-Build를 돌리는게 싫었다 - 트래킹 할 이미지가 바뀔 때마다 이미지 이름이 바뀌기 때문에 경로 수정을 해야하는데 그때마다 수정된 경로로 NDK를 새로 빌드해야했다 그래서 네이티브 메서드에서 string 인자를 받아서 트래킹할 이미지를 바꾸려고했따! 그래서 자바 : private native void renderframe(); C++ Native : JNIEXPORT void JNICALL Java_augmented_AR_Renderer_renderFrame (JNIEnv*, jobject); renderframe()의 원래 형태를 자바 : private native void renderframe(string str); C++ Native : ..

Android LOG

Android에는 뻘짓을 방지하기위한 Log클래스가 있다. 이걸 쓰면 코드가 진행되다가 어디에서 오류가 났는지 알 수 있다. http://d.android.com/reference/android/util/Log.html android.util.log 클래스에서 지원한다. Log.e() - 오류 기록 Log.w() - 경고 기록 Log.i() - 메시지 기록 Log.d() - 디버그 기록 Log.v() - 상세 메시지 기록 클래스나 메서드의 진입점이나 종료지점에 써두면 어디서 잘못됐는지 알 수 있다. 메시지형태로 남기는 형태 선언형태private static final String DEBUG = "{LOG}"; 사용형태 코드코드코드코드 Log.i(DEBUG, "error"); 코드코드코드코드 이클립스 오른..

Android NDK

9단계의 절차를 통해 Native C, .so라이브러리를 사용할 수 있게된다. 1. Android Project 작성 2. 자바 클래스 작성 3. Header 파일 작성 4. 라이브러리 생성할 소스 디렉토리 생성 5. Android.mk 설정 파일 생성 6. C 소스파일 작성 7. 소스 컴파일/공유 라이브러리 생성 8. Native Method 호출 9. 결과 확인 1. Android Project 작성 일반적인 안드로이드 프로젝트를 작성한다. 패키지 이름은 적어도 두개 이상으로 나누어져야한다. Android.AREng 등... 아무렇게나 임의로 작성하면 된다. 그러면 Android 폴더 아래 AREng 폴더 아래 자바 파일이 생성되게 된다. 2. 자바 클래스 작성 자바 클래스를 작성한다. 패키지익스플로..