Objektumhatárok
Az objektumhatárok azt a kötetet jelölik, amelyet egy entitás és gyermekei foglalnak el. Az Azure Remote Renderingben az objektumhatárok mindig tengelyhez igazított határolókeretként (AABB) vannak megadva. Az objektumhatárok lehetnek a helyi térben vagy a világűrben. Akárhogy is, ezek mindig tengelyre vannak igazítva, ami azt jelenti, hogy a kiterjedés és a mennyiség eltérhet a helyi és a világűr ábrázolása között.
Objektumkorlátok lekérdezése
A háló helyi tengelyhez igazított határolókerete közvetlenül a hálóerőforrásból kérdezhető le. Ezek a korlátok átalakíthatók egy entitás helyi térévé vagy világterévé az entitás átalakításával. További információ: Meshes.
Így ki lehet számítani egy teljes objektumhierarchia határait. Ehhez a megközelítéshez be kell haladni a hierarchián, le kell kérdezni az egyes hálók határait, és manuálisan kell kombinálni őket. Ez a művelet egyszerre fárasztó és nem hatékony.
Jobb módszer egy entitás meghívása vagy QueryWorldBoundsAsync
meghívásaQueryLocalBoundsAsync
. Ez a megközelítés kiszervozza a számítást a kiszolgálóra, és minimális késéssel tér vissza.
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;
// ...
}
}
);
}