حدود العنصر

تمثل حدود الكائن وحدة التخزين التي يشغلها الكيان وتوابعه. في Azure Remote Rendering، يتم دائما إعطاء حدود الكائن كمربعات حدود محاذاة المحور (AABB). يمكن أن تكون حدود الكائن إما في الفضاء المحلي أو في الفضاء العالمي. وفي كلتا الحالتين، تكون دائما محاذاة للمحور، ما يعني أن النطاقات والحجم قد تختلف بين تمثيل الفضاء المحلي والعالمي.

الاستعلام عن حدود الكائن

يمكن الاستعلام عن مربع إحاطة محاذاة المحور المحلي من شبكة مباشرة من مورد الشبكة. يمكن تحويل هذه الحدود إلى مساحة محلية أو مساحة عالمية للكيان باستخدام تحويل الكيان. لمزيد من المعلومات، راجع Meshes.

من الممكن حساب حدود التسلسل الهرمي للكائن بأكمله بهذه الطريقة. يتطلب هذا الأسلوب اجتياز التسلسل الهرمي، والاستعلام عن الحدود لكل شبكة، والجمع بينها يدويا. هذه العملية مملة وغير فعالة على حد سواء.

أفضل طريقة هي استدعاء 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⁧⁩.

الخطوات التالية