안녕하세요 인식은 maxst에서하고 증강된 물체는 sceneform을 이용하여 보여주고싶습니다.
IOS쪽에서는 해당 연계가 가능하다고 들었는데 안드로이드에서 가능한지 테스트 해보고있습니다.
테스트 방식은 아래와 같습니다.
maxst SDK의 ImageTrackerRenderer부분에서 Renderer를 draw하는 부분을 sceneform에서 제공하는 방식으로 교체
상세히 말씀드리면
ImageTrackerRenderer의 onDrawFrame()부분에서
case "Glacier": /*texturedCubeRenderer.setProjectionMatrix(projectionMatrix); texturedCubeRenderer.setTransform(trackable.getPoseMatrix()); texturedCubeRenderer.setTranslate(0, 0, -0.025f); texturedCubeRenderer.setScale(0.15f, 0.15f, 0.05f); texturedCubeRenderer.draw();*/
위처럼 주석처리하고 renderer를 draw하는 부분을 교체하고자 합니다.
Scenefrom에서 draw하는 부분의 메소드는
augmentedImageRenderer.draw( viewmtx, projmtx, augmentedImage, centerAnchor, colorCorrectionRgba);입니다.
앞에 viewmtx나 projmtx의 경우 maxst에서 사용하는 것을 그대로 사용하면 될 것이라 예상이 되는데,
뒤에 augmentedImage,centerAnchor,colorCorrectionRgba같은 경우 arcore의 Frame클래스에서 정보를 가져다 사용하고 있습니다.
혹시 이부분을 maxst에서 해결할 방안이 있는지
혹은 제가 접근을 아예 잘못했으니 maxst와 sceneform을 제대로 연계하여 사용할 방법이 있는지 알려주시길 부탁드립니다.
안녕하세요.
문의하신 내용 중에 ARCore 의 Frame 클래스에서 정보를 가져다 사용하고 있다는 것이 어떤 뜻인지 모르겠습니다.
Frame 클래스에서 카메라 이미지를 가져와 저희 sdk 의 입력으로 사용하려고 하시는 것인지요?
ARCore내에 있는 Frame클래스에서 가져오는 객체라는 뜻이었습니다. 원래 ARCore만 사용할 때는 ARCore의 카메라를 사용하니 별이상없이 객체를 가져올 수 있는데,
인식률이 좋은 maxst를 기본 베이스로하되 랜더링만 ARCore환경에서 하려하니 위 3객체(augmentedImage,centerAnchor,colorCorrectionRgba)가 걸려서
카메라는 maxst것을 쓰고 랜더링은 ARcore-Sceneform으로 테스트하는 과정에서 막혔습니다.
제가 하려고하는 것이 가능한지 가능하다면 제 방법에서 해결할 수가 있는지
혹은 다른 방법이 있는지 여쭈어 보려했던 것입니다.
아쉽게도 가까운 시일 내에는 Sceneform에 연동하는 계획은 잡혀 있지 않습니다.
지원하는 OS와 그래픽 라이브러리(게임엔진, Opengl, SceneKit 등)가 많다 보니 일일이 대응이 힘든 점 양해 바랍니다.
저희도 Sceneform 은 해 보지 않아 자신 있게 말씀 드리지 못하겠습니다만 만약 그래픽과 매트릭스에 대한 지식이 있으시다면 렌더링하는 방법을 찾아내실 수 있을 것입니다^^;