Single-sided Vykreslování
Většina rendererů ke zlepšení výkonu používá k odvrácení tváře. Pokud jsou však oka otevřená s rovinami řezů, uživatelé se často dívají na zadní stranu trojúhelníků. Pokud jsou tyto trojúhelníky odsunuty, výsledek nevypadá přesvědčivě.
Způsob, jak tento problém spolehlivě zabránit, je vykreslit trojúhelníky oboustranně. Vzhledem k tomu, že použití zpětného odkulování má vliv na výkon, azure Remote Rendering ve výchozím nastavení přepne pouze na oboustranné vykreslování pro sítě, které se protínají s rovinou řezu.
Nastavení single-sided vykreslování umožňuje přizpůsobit toto chování.
Upozornění
Nastavení single-sided vykreslování je experimentální funkce. V budoucnu se může znovu odebrat. Výchozí nastavení prosím neměňte, pokud ve skutečnosti nevyřeší kritický problém ve vaší aplikaci.
Předpoklady
Nastavení single-sided vykreslování má efekt pouze pro sítě, které byly převedeny s možností nastavenou opaqueMaterialDefaultSidedness
na SingleSided
. Ve výchozím nastavení je tato možnost nastavena na DoubleSided
.
Single-sided nastavení vykreslování
Existují tři různé režimy:
Normální: V tomto režimu se sítě při převodu vždy vykreslují. To znamená, že sítě převedené se opaqueMaterialDefaultSidedness
sadou se SingleSided
vždy vykreslují s povoleným odvrácením tváře, i když protínají rovinu řezu.
DynamicDoubleSiding: V tomto režimu, když rovina řezu protíná síť, automaticky se přepne na oboustranné vykreslování. Tento režim je výchozím režimem.
AlwaysDoubleSided: Vynutí, aby se všechny jednostranné geometrie vykreslovaly oboustranně. Tento režim je většinou vystavený, takže můžete snadno porovnat dopad na výkon mezi single-sided a double-sided vykreslováním.
single-sided Změnu nastavení vykreslování můžete provést následujícím způsobem:
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);
}
Dokumentace k rozhraní API
- Vykreslování jazyka C#Připojení ion Vlastnost SingleSided Nastavení
- Vykreslování C++Připojení ion::SingleSided Nastavení()