카메라 구성하기

ArCameraConfig는 기본 카메라 센서:

  • 카메라 ID
  • 가능한 경우 심도 센서 사용 여부
  • 카메라가 향하는 방향: <ph type="x-smartling-placeholder">
      </ph>
    • 전면 (셀카)
    • 후면 (전 세계)
  • FPS (초당 프레임 수) 범위
  • CPU 이미지 크기
  • GPU 텍스처 크기
  • 있는 경우 기기의 스테레오 멀티 카메라를 사용할지 여부입니다.

새 ARCore 세션을 만들 때 ARCore에서는 ArSession_setCameraConfig(): 카메라 구성을 설정합니다. 포드에서 반환한 사용 가능한 구성 목록과 가장 ArSession_getSupportedCameraConfigsWithFilter() 앱에서 ArCameraConfigFilter를 사용할 수 있음 런타임 시 특정 기기에 사용 가능한 카메라 구성의 범위를 앱 요구사항에 맞게 필터링할 수 있습니다

필터링의 일반적인 사용 사례는 다음과 같습니다.

  • 카메라 캡처 프레임 속도를 30fps로 제한. 다음을 지원하는 기기 ARCore는 60fps를 지원하는 카메라 구성에 우선순위를 두고 있으며 지정할 수도 있습니다 60fps를 지원하는 모든 카메라 구성을 필터링하려면 ArCameraConfigFilter_setTargetFps() 필터를 적용합니다. (AR_CAMERA_CONFIG_TARGET_FPS_30 사용)

    // Return only camera configs that target 30 FPS camera capture frame
    // rate.
    ArCameraConfigFilter_setTargetFps(session, filter,
                                      AR_CAMERA_CONFIG_TARGET_FPS_30);

  • ARCore가 심도 센서를 사용하지 못하도록 방지 ARCore가 깊이 센서를 지원함, ARCore가 깊이를 사용하는 카메라 구성에 우선순위를 둠 센서에 있습니다. 심도 센서를 사용하는 모든 카메라 구성을 필터링하려면 ArCameraConfigFilter_setDepthSensorUsage() 드림 AR_CAMERA_CONFIG_DEPTH_SENSOR_USAGE_DO_NOT_USE를 사용하여 필터링합니다.

    ArCameraConfigFilter_setDepthSensorUsage(
        session, filter, AR_CAMERA_CONFIG_DEPTH_SENSOR_USAGE_DO_NOT_USE);

  • 대체 GPU 텍스처 해상도 선택. 사용 설정됨 지원되는 기기의 경우 ARCore에서 GPU 텍스처 해상도를 추가로 지원합니다. 저해상도 GPU 텍스처 선택 GPU 부하를 줄이고 메모리를 줄여 앱 성능을 개선하는 데 도움이 될 수 있습니다. 100% 업타임 체크의 성능을 향상하지 않을 수도 있지만 발생할 수 있습니다.

카메라 구성 필터 사용

앱에서 카메라 구성을 필터링하도록 사용 설정하려면 다음 단계를 따르세요.

// Create an ARCore session.
ArSession* session;
ArSession_create(env, context, &session);

// Create a camera config list and filter for the session.
ArCameraConfig* selected_config;
ArCameraConfigList* configs;
ArCameraConfigFilter* filter;
ArCameraConfig_create(session, &selected_config);
ArCameraConfigList_create(session, &configs);
ArCameraConfigFilter_create(session, &filter);

// Return only camera configs that target 30 fps camera capture frame rate.
ArCameraConfigFilter_setTargetFps(session, filter,
                                  AR_CAMERA_CONFIG_TARGET_FPS_30);

// Return only camera configs that will not use the depth sensor.
ArCameraConfigFilter_setDepthSensorUsage(
    session, filter, AR_CAMERA_CONFIG_DEPTH_SENSOR_USAGE_DO_NOT_USE);

// Get list of configs that match filter settings.
// In this case, this list is guaranteed to contain at least one element,
// because both TargetFps.TARGET_FPS_30 and DepthSensorUsage.DO_NOT_USE
// are supported on all ARCore supported devices.
ArSession_getSupportedCameraConfigsWithFilter(session, filter, configs);

// Use element 0 from the list of returned camera configs. This is because
// it contains the camera config that best matches the specified filter
// settings.
ArCameraConfigList_getItem(session, configs, 0, selected_config);

// Set the camera config to use selected_config.
ArSession_setCameraConfig(session, selected_config);

// Free memory.
ArCameraConfigFilter_destroy(filter);
ArCameraConfigList_destroy(configs);

집중 모드

세션 구성에서 집중 모드를 설정할 수도 있습니다. 고정 초점은 일반적으로 추적에 더 적합하며 대부분의 기기에서 ARCore 기본값입니다. 녹화, 사진, 동영상 촬영, 주변 사물이 필요할 때 자동 초점이 필요합니다. 초점을 맞출 것입니다.

자세한 내용은 ArConfig_setFocusMode() 드림 참조하세요.