다음을 통해 공유


개체 경계

개체 경계는 엔터티 및 해당 자식이 차지하는 볼륨을 나타냅니다. Azure Remote Rendering에서 개체 경계는 항상 AABB(축 정렬 경계 상자)로 제공됩니다. 개체 경계는 로컬 공간 또는 월드 공간 중 하나일 수 있습니다. 어느 쪽이든 항상 축에 정렬됩니다. 즉, 범위와 볼륨이 로컬 및 월드 공간 표현 사이에 다를 수 있습니다.

개체 경계 쿼리

메시의 로컬 축 정렬 경계 상자는 메시 리소스에서 직접 쿼리할 수 있습니다. 이러한 경계는 엔터티의 변형을 사용하여 엔터티의 로컬 공간 또는 월드 공간으로 변환될 수 있습니다. 자세한 내용은 메시를 참조하세요.

이런 식으로 전체 개체 계층 구조의 범위를 계산할 수 있습니다. 이 방식을 사용하려면 계층 구조를 탐색하고 각 메시의 경계를 쿼리하고 수동으로 결합해야 합니다. 이 작업은 번거롭고 비효율적입니다.

더 나은 방법은 엔터티에서 QueryLocalBoundsAsync 또는 QueryWorldBoundsAsync를 호출하는 것입니다. 이 방식은 계산을 서버로 오프로드하고 최소한의 지연으로 반환됩니다.

public async void GetBounds(Entity entity)
{
    try
    {
        Task<Bounds> boundsQuery = entity.QueryWorldBoundsAsync();
        Bounds result = await boundsQuery;
    
        Double3 aabbMin = result.Min;
        Double3 aabbMax = result.Max;
        // ...
    }
    catch (RRException ex)
    {
    }
}
void GetBounds(ApiHandle<Entity> entity)
{
    entity->QueryWorldBoundsAsync(
        // completion callback:
        [](Status status, Bounds bounds)
        {
           if (status == Status::OK)
            {
                Double3 aabbMin = bounds.Min;
                Double3 aabbMax = bounds.Max;
                // ...
            }
        }
    );
}

API 설명서

다음 단계