Lighting Estimation API는 가상 객체를 렌더링할 때 다양한 광원 신호를 모방할 수 있는 자세한 데이터를 제공합니다. ARCore는 세 가지 광 추정 모드를 지원합니다.
기본 요건
계속 진행하기 전에 기본 AR 개념과 ARCore 세션 구성 방법을 이해해야 합니다.
밝기 추정 사용 설정
앱에서 광원 추정을 사용 설정하려면 다음 단계를 따르세요.
- AR Foundation 프로젝트 또는 ARCore 확장 프로그램 프로젝트를 설정합니다.
- Hierarchy 탭에서 XR Session Origin > AR Camera로 이동합니다.
- AR Camera Manager 구성요소 아래에서 Light Estimation를 선택합니다.
- Light Estimation 드롭다운 메뉴에서 사용하려는 모드를 선택합니다.
환경 HDR 모드 사용 설정
환경 HDR 모드를 사용하면 다음과 같은 빛 추정 설정을 사용할 수 있습니다.
- 기본 조명 방향
- 기본 조명 강도
- 앰비언트 구면하모닉
이 모드는 다음 기준이 충족되면 자동으로 사용 설정됩니다.
- AR 카메라 관리자가 제공하는 광 추정 모드에서 주변 구체 고조화, 주광 방향 또는 주광 강도가 선택됩니다.
- 환경 프로브는
AREnvironmentProbeManager
에서 사용 설정됩니다. - 호환되는 카메라 구성이 선택되었습니다.
주변 강도 모드 사용 설정
ARCameraManager
구성요소에서 주변 강도 모드를 선택하면 기본 광원 추정이 자동으로 사용 설정됩니다.
주변 강도 모드를 사용하면 다음과 같은 빛 추정 설정을 사용할 수 있습니다.
- 주변 색상
- 주변 강도
장면에 조명 정보 사용
적절한 광원 설정을 얻었다면 실제 세상의 일부인 것처럼 장면에 있는 가상 객체에 조명을 비울 수 있습니다.
ARCameraManager
구성요소는 광원 추정이 사용 설정된 경우 프레임의 조명 상태를 추정하는 frameReceived
이벤트를 발생시킬 수 있습니다. frameReceived
이벤트의 정보는 ARCameraFrameEventArgs
구조체에 ARLightEstimationData
로 저장됩니다.
런타임에 광원의 매개변수를 변경하려면 다음 단계를 따르세요.
- 장면에 기존의 방향 광원을 만들거나 수정합니다.
Directional Light에 새 스크립트를 첨부합니다.
// Sample Lighting Estimation script Light light; void Awake () { light = GetComponent<Light>(); } void OnEnable() { if (cameraManager != null) cameraManager.frameReceived += FrameChanged; } void OnDisable() { if (cameraManager != null) cameraManager.frameReceived -= FrameChanged; } void FrameChanged(ARCameraFrameEventArgs args) { // Modify `light` parameters using ARCameraFrameEventArgs. }
이 새 스크립트를 수정하여 빛의 변화를 감지합니다. 그 방법을 보여주는 예는 Unity의
BasicLightEstimation.cs
및HDRLightEstimation.cs
스크립트를 확인하세요.
장면에서 환경 프로브 사용
다음 단계에 따라 장면에서 환경 프로브를 사용 설정합니다.
- 장면의
ARSessionOrigin
에 자동 배치를 사용 설정합니다. AREnvironmentProbeManager
구성요소를ARSessionOrigin
에 추가합니다.