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:
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
ésFadeLength
: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:
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.
- A vágósík-összetevő bitmaszkja a tulajdonságán
ObjectFilterMask
keresztül van beállítva - A geometria alhierarchiájának bitmaszkja a HierarchicalStateOverrideComponent használatával van beállítva
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.