Síkok kivágása

A kivágott sík egy vizuális funkció, amely képpontokat rögzít a virtuális sík egyik oldalán, és felfedi a hálók belsejét. Az alábbi kép az effektust mutatja be. A bal oldalon az eredeti háló látható, a jobb oldalon pedig a hálón belül:

Cut plane

CutPlaneComponent

CutPlaneComponent létrehozásával vágandó síkot adhat hozzá a jelenethez. A sík helyét és tájolását az összetevő tulajdonosi entitása határozza meg.

void CreateCutPlane(RenderingSession session, Entity ownerEntity)
{
    CutPlaneComponent cutPlane = (CutPlaneComponent)session.Connection.CreateComponent(ObjectType.CutPlaneComponent, ownerEntity);
    cutPlane.Normal = Axis.X; // normal points along the positive x-axis of the owner object's orientation
    cutPlane.FadeColor = new Color4Ub(255, 0, 0, 128); // fade to 50% red
    cutPlane.FadeLength = 0.05f; // gradient width: 5cm
}
void CreateCutPlane(ApiHandle<RenderingSession> session, ApiHandle<Entity> ownerEntity)
{
    ApiHandle<CutPlaneComponent> cutPlane = session->Connection()->CreateComponent(ObjectType::CutPlaneComponent, ownerEntity)->as<CutPlaneComponent>();;
    cutPlane->SetNormal(Axis::X); // normal points along the positive x-axis of the owner object's orientation
    Color4Ub fadeColor;
    fadeColor.channels = { 255, 0, 0, 128 }; // fade to 50% red
    cutPlane->SetFadeColor(fadeColor);
    cutPlane->SetFadeLength(0.05f); // gradient width: 5cm
}

CutPlaneComponent-tulajdonságok

A vágósík-összetevőn a következő tulajdonságok jelennek meg:

  • Enabled: Az összetevő letiltásával ideiglenesen kikapcsolhatja a levágott síkokat. A letiltott vágási síkok nem okoznak megjelenítési többletterhelést, és nem számolnak a globális vágási síkra vonatkozó korláttal.

  • Normal: Megadja, hogy melyik irányt (+X,-X,+Y,-Y,+Z,-Z) használja a rendszer normál síkként. Ez az irány a tulajdonos entitás tájolásához képest van. Helyezze át és forgassa el a tulajdonos entitást a pontos elhelyezés érdekében.

  • FadeColor és FadeLength:

    Ha a FadeColor alfa értéke nem nulla, a kivágott síkhoz közeli képpontok elhalványulnak a FadeColor RGB-része felé. Az alfa csatorna erőssége határozza meg, hogy teljesen elhalványul-e a halvány szín felé, vagy csak részben. Az FadeLength határozza meg, hogy a fakulás milyen távolságra fog tartani.

  • ObjectFilterMask: Szűrőbitmaszk, amely meghatározza, hogy a vágósík mely geometriára van hatással. Részletes információkért lásd a következő bekezdést.

Szelektív vágássíkok

Az egyes vágási síkok konfigurálhatók úgy, hogy csak adott geometriára legyenek hatással. Az alábbi kép bemutatja, hogyan nézhet ki ez a beállítás a gyakorlatban:

Selective cut planes

A szűrés a kivágott sík oldalán lévő bitmaszk és a geometrián beállított második bitmaszk közötti logikai bitmaszk-összehasonlításon keresztül működik. Ha a maszkok közötti logikai AND művelet eredménye nem nulla, a kivágott sík hatással lesz a geometriára.

Examples:

Síkszűrő maszk kivágása Geometriai szűrőmaszk Logikai eredmény AND A levágott sík befolyásolja a geometriát?
(0000 0001) == 1 (0000 0001) == 1 (0000 0001) == 1 Igen
(1111 0000) == 240 (0001 0001) == 17 (0001 0000) == 16 Igen
(0000 0001) == 1 (0000 0010) == 2 (0000 0000) == 0 Nem
(0000 0011) == 3 (0000 1000) == 8 (0000 0000) == 0 Nem

Tipp.

A kivágott sík ObjectFilterMask 0 értékre állítása azt jelenti, hogy nem befolyásolja a geometriát, mert a logikai AND eredmény soha nem lehet null értékű. A renderelési rendszer először nem veszi figyelembe ezeket a síkokat, ezért ez egy egyszerűsített módszer az egyes vágási síkok letiltására. Ezek a levágott síkok szintén nem számítanak bele a 8 aktív síkra vonatkozó korlátba.

Korlátozások

  • Az Azure Remote Rendering legfeljebb nyolc aktív vágási síkot támogat. Létrehozhat több kivágott síkösszetevőt, de ha egyszerre több lehetőséget próbál engedélyezni, az figyelmen kívül hagyja az aktiválást. Először tiltsa le a többi síkot, ha meg szeretné váltani, hogy mely összetevők legyenek hatással a jelenetre.
  • A kivágott síkok tisztán vizuális jellemzők, nem befolyásolják a térbeli lekérdezések eredményét. Ha kivágott hálóba szeretné besugárzni a sugarat, beállíthatja a sugár kezdőpontját úgy, hogy a vágósíkon legyen. Így a sugár csak a látható részekre képes.

A teljesítménnyel kapcsolatos megfontolások

Minden aktív vágási sík kis költséggel jár a renderelés során. Ha nincs rájuk szükség, tiltsa le vagy törölje a kivágott síkokat.

API-dokumentáció

Következő lépések