你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Single-sided渲染
大多数呈现器使用背面剔除来提高性能。 但是,在使用剪切平面来切开网格时,用户常常将查看三角形的背面。 如果这些三角形被剔除,那么结果看起来没有说服力。
要可靠地避免这一问题,三角形的两面都需要渲染。 由于不使用背面剔除会影响性能,因此默认情况下,Azure 远程渲染仅在处理与剪切平面相交的网格时才切换到双面渲染。
通过“single-sided渲染”设置,可自定义此行为。
注意
single-sided渲染设置是一项实验性功能。 未来可能会再次将其移除。 请勿更改默认设置,除非它确实解决了应用程序中的关键问题。
先决条件
single-sided渲染设置仅对在 opaqueMaterialDefaultSidedness
选项设置为 SingleSided
的情况下转换的网格有效。 此选项默认设置为 DoubleSided
。
Single-sided渲染设置
有 3 种不同的模式:
正常: 在此模式下,网格始终在转换时呈现。 这意味着如果在 opaqueMaterialDefaultSidedness
设置为 SingleSided
的情况下转换网格,则即使这些网格不与剪切平面相交,也始终会在启用背面剔除后渲染它们。
DynamicDoubleSiding: 在此模式下,当剪切平面与网格相交时,它会自动切换到双面呈现。 此模式是默认模式。
AlwaysDoubleSided: 强制所有单面几何图形始终呈现双面。 此模式大多是公开的,因此你可轻松比较single-sided渲染与double-sided渲染之间的性能影响。
可按如下所示更改single-sided渲染设置:
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);
}