مشاركة عبر


حدود العنصر

تمثل حدود الكائن وحدة التخزين التي يشغلها الكيان وتوابعه. في 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

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