Single-sided Rendering

Die meisten Renderer verwenden Backface Culling, um die Leistung zu verbessern. Wenn die Gittermodelle jedoch mit Schnittebenen aufgeschnitten werden, sehen Benutzer häufig die Rückseite von Dreiecken. Wenn diese Dreiecke mit Culling entfernt werden, sieht das Ergebnis nicht überzeugend aus.

Sie können dieses Problem zuverlässig vermeiden, indem Sie Dreiecke doppelseitig rendern. Da die Nichtverwendung von Backface Culling Auswirkungen auf die Leistung besitzt, schaltet Azure Remote Rendering standardmäßig nur zum doppelseitigen Rendering bei Gittermodelln um, die sich mit einer Schnittebene überschneiden.

Mit der Einstellung für single-sided Rendering können Sie dieses Verhalten anpassen.

Achtung

Die Einstellung für single-sided Rendering ist ein experimentelles Feature. Möglicherweise wird es in Zukunft wieder entfernt. Ändern Sie die Standardeinstellung nicht, es sei denn, dies löst tatsächlich ein wichtiges Problem in Ihrer Anwendung.

Voraussetzungen

Die Einstellung für single-sided Rendering wirkt sich nur auf Gittermodelle aus, die mit der auf SingleSided festgelegten Option opaqueMaterialDefaultSidednesskonvertiert wurden. Standardmäßig ist diese Option auf DoubleSided festgelegt.

Renderingeinstellung Single-sided

Es gibt drei verschiedene Modi:

Normal: In diesem Modus werden Gitter immer gerendert, während sie konvertiert werden. Das bedeutet, dass Gittermodelle, die mit opaqueMaterialDefaultSidedness auf SingleSided festgelegt konvertiert wurden, immer mit aktiviertem Backface Culling gerendert werden, auch wenn sie sich mit einer Schnittebene überschneiden.

DynamicDoubleSiding: In diesem Modus wird das Rendern automatisch auf doppelseitiges Rendering umgestellt, wenn eine Ausschneideebene ein Gitter überschneidet. Dieser Modus ist der Standardmodus.

AlwaysDoubleSided: Erzwingt, dass alle einseitigen Geometrien jederzeit doppelseitig gerendert werden. Dieser Modus wird meistens verwendet. Sie können daher die Leistungseinbußen zwischen single-sided und double-sided Rendering problemlos vergleichen.

Das Ändern der Einstellungen für single-sided Rendering kann wie folgt erfolgen:

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

Nächste Schritte