현재 유니티와 vuforia 엔진을 이용해서 물체인식을 하는 프로그램을 만들고 있습니다.
간단하게 설명드리면 osmo의 칠교처럼 실제로 칠교조각을 맞추고 그 맞춘 조각을 카메라를 통해서 비추면
맞았는지 안맞았는지 확인하는 프로그램입니다 ㅠㅠ
vuforia 엔진을 통해 물체인식을 할 수 있도록 만들었습니다.
다만 만약 l 모양으로 있는 조각을 맞추라는 문제가 나오면, 실제로 맞추는 조각을 맞출 때 l (세로모양)과 ㅡ(누워있는 모양) 을 구분해야하는데 ㅠㅠ
어떻게 구분해야하는지 감이 안잡힙니다 ㅠㅠ
검색을 해보니 각 물체의 position을 통해 각도를 구할 수 있다는데 .. 어떻게 구하는지 감이 안옵니다 ㅠㅠ 제가 수학을 못하는 것도 가장 큰 이유중에 하나이겠죠 ㅠㅠ
현재 짜놓은 코드를 일부를 보여드리겠습니다 ㅠㅠ
ImageTargetBehaviour itb = GetComponent<ImageTargetBehaviour> ();
Vector2 targetSize = itb.GetSize ();//return value is width, height
//ImagetargetBehaviour return centor position value in unity screen
Vector3 vLDl = new Vector3 (-targetSize.x / 2.0f, 0, -targetSize.y / 2.0f); // Image Target의 좌측 하단 좌표
Vector3 vLUl = new Vector3 (-targetSize.x / 2.0f, 0, targetSize.y / 2.0f); // Image Target의 좌측 상단 좌표
Vector3 vRUl = new Vector3 ( targetSize.x / 2.0f, 0, targetSize.y / 2.0f); // Image Target의 우측 상단 좌표
Vector3 vRDl = new Vector3 ( targetSize.x / 2.0f, 0, -targetSize.y / 2.0f); // Image Target의 우측 하단 좌표
//vector3 in dicate X,Z,Y position
//it is image position located in unity scene
// Image Target의 모서리 좌표를 스크린 좌표계로 변환
Vector3 vLDs = Camera.main.WorldToScreenPoint(vLDl); // Image Target의 좌측 하단 코너의 스크린 좌표
Vector3 vLUs = Camera.main.WorldToScreenPoint(vLUl); // Image Target의 좌측 상단 코너의 스크린 좌표
Vector3 vRUs = Camera.main.WorldToScreenPoint(vRUl); // Image Target의 우측 상단 코너의 스크린 좌표
Vector3 vRDs = Camera.main.WorldToScreenPoint(vRDl); // Image Target의 우측 하단 코너의 스크린 좌표
//vector3 indicate X,Z,Y positon
코드 설명을간단하게 하면.. 타겟이 인식됬을 경우 타겟의 좌표를 받아오고..( 좌표는 타겟의 가운데 점입니다.)
그 좌표를 이용해 해당되는 타겟의 사이즈를 받아온 뒤, 벡터로 변환하는 과정입니다 ㅠㅠ
어찌어찌해서 결국에 실제 스크린(ex.모바일 앱일 경우 휴대폰 화면) 에 있는 위치를 알 수 있는 상황까지 왔는데 ..
제 생각에는 스크린에서 잡히는 물체의 위치를 통해 각도를 구해서 회전한 정도에 따라 이 물체가 어떠한 상태인지 판단하는 것이 좋을 것같다고 생각되어집니다 ..
모든 물체는 사각형입니다. (실제로 칠교조각은 정사각형이 아니나, 물체를 인식하는 과정에서 이미지가 사각형밖에 올라가지않아서 그렇게 됬습니다 ㅠㅠ)
현재 unity scene에 위치한 좌표를 알 수 있고, 그 좌표를 통해서 실제 스크린에서 그 물체의 좌표를 받아올 수 있습니다 ㅠㅠ
이 상황에서 제가 칠교조각이 제대로 위치하고 있는지 알 수 있는 방법이 있을까요?ㅠㅜㅜㅜㅜㅜㅜ
정말 죄송한 말이지만.. 만약 가능하다면 자세하게 설명을 해주시면 정말정말 은혜는 잊지않고 항상 감사하며 살겠습니다 ㅠㅠㅠ
조언 부탁드립니다 ㅠㅠ