티스토리 뷰

메타버스 스터디

ARCore 3주차

알렌보이스 2021. 7. 11. 17:51
728x90

1. Config 

각종 모드와 Augmented Image Database 설정 및 조회를 설정합니다.

DepthMode DISABLED
AUTOMATIC
RAW_DEPTH_ONLY
InstantPlacementMode DISABLED
LOCAL_Y_UP
FocusMode FIXED
AUTO
AugmentedFaceMode DISABLED
MESH3D
CloudAnchorMode DISABLED
ENABLED
UpdateMode BLOCKING
LATEST_CAMERA_IMAGE
PlaneFindingMode DISABLED
HORIZONTAL
VERTICAL
HORIZONTAL_AND_VERTICAL
LightEstimationMode DISABLED
AMBIENT_INTENSITY
ENVIRONMENTAL_HDR

 사용 예 >
      config.updateMode = Config.UpdateMode.LATEST_CAMERA_IMAGE
      config.augmentedImageDatabase = AugmentedImageDatabase(session)

 

2. Node 

기본 노드에서 제공하는 여러 가지 함수들이 많이 있습니다만 그중 제가 중요하다고 생각하는 거 몇 개만 추려봤습니다.

  • setRenderable(Renderable renderable)
  • setParent(NodeParent parent)
  • onUpdate(FrameTime frameTime)

위의 3가지 함수를 가장 많이 사용하게 되는데
setRenderable() 을 이용하여 3D 객체를 저장하고
setParent()를 활용하여 상위 노드에 해당 노드를 등록하고
onUpdate()를 통해 노드가 업데이트되었을 때 작업을 처리합니다.
※ setParent에서 사용하는 NodeParent는 노드 또는 Scene이 올 수 있는데 Scene 일 경우 최상위 노드로 간주합니다.

그다음으로 리스너 등록 함수입니다.

  • setOnTapListener(Node.OnTapListener onTapListener)
  • setOnTouchListener(Node.OnTouchListener onTouchListener)
  • addTransformChangedListener(Node.TransformChangedListener transformChangedListener)

리스너 등록을하여 원하는 이벤트 등록이 가능합니다.
저의 경우 setOnTouchListener()를 이용하여 해동 노드를 삭제하는 이벤트를 등록하여 사용하였습니다.

AnchorNode

기본적인 노드로 Anchor를 기반으로 배치를 하는 노드입니다. 만약 Anchor를 추적하지 못하게 되면 하위 Node들이 제거됩니다.
구현하기에 따라 다르겠지만 기본적으로 AnchorNode의 경우 고정 배치가 되어있기 때문에
사용자가 크기, 위치, 방향 등의 동작이 필요한 경우가 아니라면 AnchorNode의 사용이 적합니다.

TransfromableNode

제스처를 통해 선택, 변환, 회전, 스케일 조정 등을 할 수 있는 노드입니다.
사용자의 컨트롤을 통해 보여줄 것이 있을 경우 사용하기 적합합니다.

 

이 외에도 AugmentedFaceNode, SkeletonNode, Camera, Sun 등을 제공하고 있습니다.

 

3. Randerable

renderable의 경우 특별한 경우를 제외하면 builder 패턴으로 생성하는 것을 제외하면 다른 함수는 많이 사용될 것 같진 않습니다.
renderable은 생성 후 Node에 담아서 사용하게 됩니다.

renderable의 종류에는 ModelRenderable과 ViewRenderable가 있습니다.

ModelRenderable은 GLB, GLTF2와 같은 3D 파일을 랜더링 하여 renderable을 생성해 줍니다.
getAnimationDataCount( )를 통해 해당 모델의 애니메이션의 개수를 알 수 있고
getAnimaitionData( int 혹은 name(String) )을 통해 AnimationData를 획득하고 ModelAnimaotr를 통해 애니메이션 작동이 가능합니다.
저의 경우 아직 getAnimationDataCount( )에 애니메이션이 없다고 나와서 테스트를 진행하진 못했습니다.

ViewRenderable은 사용자가 xml, view 등을 통해 만든 2D결과물을 랜더링 하여 renderable을 생성해 줍니다.
테스트해봤을 때 기본적으로 약간의 투명도를 가지고 있으며 ViewRenderable를 생성 후 View를 받아서 값 수정 및 이벤트 등록이 가능합니다.

 

728x90

'메타버스 스터디' 카테고리의 다른 글

ARCore 정리  (0) 2021.08.06
AR Core 4주차  (0) 2021.07.16
ARCore 2주차  (0) 2021.07.04
ARCore  (0) 2021.06.27
구글 글라스 학습 (구글 문서)  (0) 2021.06.20
댓글