Partager via


Rendu Single-sided

La plupart des renderers ont recours à l'élimination des faces arrière pour améliorer les performances. Pourtant, lorsque les maillages sont ouverts avec des plans de coupe, les utilisateurs regardent souvent la face arrière des triangles. Si ces triangles sont éliminés, le résultat n'est pas convaincant.

Pour contourner ce problème, la solution consiste à appliquer aux triangles un rendu double face. Comme l'absence d'élimination des faces arrière se répercute sur les performances, par défaut Azure Remote Rendering applique uniquement le rendu double face aux maillages qui croisent un plan de coupe.

Le paramètre de rendusingle-sided vous permet de personnaliser ce comportement.

Attention

Le paramètre de rendu single-sided est une fonctionnalité expérimentale. Il pourrait être supprimé à l'avenir. Ne modifiez pas le paramètre par défaut, sauf si cela résout un problème critique dans votre application.

Prérequis

Le paramètre de rendu single-sided n'a d'effet que sur les maillages qui ont été convertis avec l'option opaqueMaterialDefaultSidedness définie sur SingleSided. Par défaut, la valeur attribuée à cette option est DoubleSided.

Paramètre de rendu Single-sided

Trois modes sont disponibles :

Normal : dans ce mode, les maillages sont toujours rendus à mesure qu’ils sont convertis. Autrement dit, les maillages convertis avec l'option opaqueMaterialDefaultSidedness définie sur SingleSided sont toujours rendus avec l'élimination des faces arrière activée, même lorsqu'ils croisent un plan de coupe.

DynamicDoubleSiding : dans ce mode, lorsqu’un plan de coupe croise un maillage, il est automatiquement basculé en rendu double face. Il s'agit du mode par défaut.

AlwaysDoubleSided : force à tout moment le rendu de la géométrie à deux côtés. Ce mode est en grande partie exposé pour vous permettre de comparer facilement l'impact sur les performances entre le rendu single-sided et double-sided.

La modification des paramètres de rendu single-sided peut être effectuée comme suitPour modifier les paramètres de rendu unilatéral, procédez comme suit :

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);
}

Documentation de l’API

Étapes suivantes