Single-sided Rendering
De flesta renderare använder back-face culling för att förbättra prestandan. Men när nät skärs upp med klippta plan tittar användarna ofta på baksidan av trianglar. Om dessa trianglar gallras bort ser resultatet inte övertygande ut.
Sättet att på ett tillförlitligt sätt förhindra det här problemet är att återge trianglar dubbelsidiga. Eftersom det inte innebär prestandakonsekvenser att inte använda backen face culling växlar Azure Remote Rendering som standard endast till dubbelsidig återgivning för nät som korsar ett klippt plan.
Med renderingsinställningen single-sided kan du anpassa det här beteendet.
Varning
Renderingsinställningen single-sided är en experimentell funktion. Det kan tas bort igen i framtiden. Ändra inte standardinställningen såvida den inte löser ett kritiskt problem i programmet.
Förutsättningar
Renderingsinställningen single-sided har bara en effekt för nät som har konverterats med opaqueMaterialDefaultSidedness
alternativet inställt på SingleSided
. Som standard är det här alternativet inställt på DoubleSided
.
Single-sided renderingsinställning
Det finns tre olika lägen:
Normal: I det här läget återges nät alltid när de konverteras. Det innebär att nät som konverteras med opaqueMaterialDefaultSidedness
inställd på SingleSided
alltid återges med bakåtvänd utgallring aktiverat, även när de korsar ett klippt plan.
DynamicDoubleSiding: I det här läget, när ett klippt plan korsar ett nät, växlas det automatiskt till dubbelsidig återgivning. Det här läget är standardläget.
AlwaysDoubleSided: Tvingar all enkelsidig geometri att återges dubbelsidig hela tiden. Det här läget är mest exponerat så att du enkelt kan jämföra prestandapåverkan mellan single-sided och double-sided återgivning.
Du kan ändra återgivningsinställningarna single-sided på följande sätt:
void ChangeSingleSidedRendering(RenderingSession session)
{
SingleSidedSettings settings = session.Connection.SingleSidedSettings;
// Single-sided geometry is rendered as is
settings.Mode = SingleSidedMode.Normal;
// Single-sided geometry is always rendered double-sided
settings.Mode = SingleSidedMode.AlwaysDoubleSided;
}
void ChangeSingleSidedRendering(ApiHandle<RenderingSession> session)
{
ApiHandle<SingleSidedSettings> settings = session->Connection()->GetSingleSidedSettings();
// Single-sided geometry is rendered as is
settings->SetMode(SingleSidedMode::Normal);
// Single-sided geometry is always rendered double-sided
settings->SetMode(SingleSidedMode::AlwaysDoubleSided);
}
API-dokumentation
- C#-återgivning Anslut ion. Egenskapen SingleSided Inställningar
- C++ Rendering Anslut ion::SingleSided Inställningar()