2012-01-19 5 views
2

ARToolKitPlus의 iPhone 포트 인 VRToolkit에 약간의 문제가 있습니다. 프레임 워크의 3D 물건은 필요 없지만 탐지 된 마커의 정보 만 필요합니다. 지금까지 모든 것이 잘 작동하고 모든 프레임에서 실시간으로 생성되는 마커 정점 좌표가 붙어 있습니다.ARTookitPlus/VRToolKit에서 마커 정점을 사용하여 CGRect 그리기

나는 가장자리의 주위에 간단한 CGRect를 그려 감지 된 마커를 시각화하고 싶습니다. 나는 'TrackerSingleMarkerImpl.cxx'에 마커 정점을 받고 있어요 나는 주로이 코드의 일종을 사용하고 있습니다 :

vertexArray[0] = marker_info[k].vertex[0][0]; 
vertexArray[1] = marker_info[k].vertex[0][1]; 
vertexArray[2] = marker_info[k].vertex[1][0]; 
vertexArray[3] = marker_info[k].vertex[1][1]; 
vertexArray[4] = marker_info[k].vertex[2][0]; 
vertexArray[5] = marker_info[k].vertex[2][1]; 
vertexArray[6] = marker_info[k].vertex[3][0]; 
vertexArray[7] = marker_info[k].vertex[3][1]; 

CGRect가 성공적으로 그려져 있지만, 문제는 완전히 미러링 점이다. 그래서 수평 및 수직 축이 미러링 - 나는 X와 Y를 교환 할 때, 단지 세로축은 다음과 같이 보이는 미러 남아 :

http://i1218.photobucket.com/albums/dd416/vyrb1/artoolkit_marker_failure.png

당신이 여기 문제가 될 수 어떤 생각을 가지고 있습니까를? 정확한 질문은 필요하지 않지만 문제가있는 방향은 대략적입니다. 'arGetTransMat.cxx'와 같은 파일을 조정하려고했지만 생성 된 정점 좌표에 문제가 있는지 확실하지 않습니다. 마커에서 3D 모델의 투영이 완벽하게 작동하지만 3D 공간에 있습니다. 나는 2D와 CGRect 만 필요하기 때문에 OpenGL ES (EAGLView)에서 사용 된 프로젝션 매트릭스를 사용하지 않고있다.

도와 주시면 감사하겠습니다. 미리 감사드립니다. 내가 ARToolKit을 사용하기 때문에

답변

0

그것은 오랜만이야, 심지어 나는 그들의 OpenGL을 함수를 사용하여 느리게,하지만 난 당신이 마커의 방향에 따라 코너의 정점을 결정한다고 생각

( dir marker_info의 필드입니다)

"ARToolKit marker_info vertex corner"에 대한 빠른 Google 검색을 수행했는데이를 발견했습니다. 이는 내 직감을 지원하는 것 같습니다.

// read in the detected corners from the marker info (easier to work with) 
for (int i = 0; i < 4; i++) { 
    corners_ar[2*i] = corners[i][0] = marker_info[best].vertex[(4+i-dir)%4][0]; 
    corners_ar[2*i+1] = corners[i][1] = marker_info[best].vertex[(4+i-dir)%4][1]; 
} 
+0

감사합니다. 카메라보기의 높이를 뺀 것이지만 방향이 최종 힌트였습니다. 고마워요! – Martin