Condividi tramite


Rendering della shell

Lo stato della shell del componente override dello stato gerarchico è un effetto di trasparenza. A differenza del rendering see-through , solo il livello anteriore degli oggetti è visibile, simile al rendering opaco. Inoltre, l'aspetto normale degli oggetti può essere modificato quando ne viene eseguito il rendering come shell. L'effetto è destinato ai casi d'uso in cui l'utente deve essere guidato visivamente da parti non importanti mantenendo comunque la consapevolezza spaziale per l'intera scena.

È possibile configurare l'aspetto degli oggetti di cui è stato eseguito il rendering della shell tramite lo ShellRenderingSettings stato globale. Tutti gli oggetti che usano il rendering della shell useranno la stessa impostazione. Non esistono parametri per oggetto.

Nota

L'effetto di rendering della shell non può essere applicato alle nuvole di punti.

Parametri ShellRendering Impostazioni

La classe ShellRenderingSettings contiene le impostazioni correlate alle proprietà di rendering della shell globale:

Parametro Tipo Descrizione
Desaturation float Quantità di desatura da applicare al colore dell'oggetto finale consueto, nell'intervallo 0 (nessuna desaturazione) a 1 (desaturazione completa)
Opacity float Opacità degli oggetti sottoposti a rendering della shell, nell'intervallo da 0 (invisibile) a 1 (completamente opaco)

Vedere anche la tabella seguente per esempi degli effetti dei parametri quando applicati a un'intera scena:

0 0.25 0.5 0.75 1.0
Desaturazione Desaturation-0.0 Desaturation-0.25 Desaturation-0.5 Desaturation-0.75 Desaturation-1.0
Opacità Opacity-0.0 Opacity-0.25 Opacity-0.5 Opacity-0.75 Opacity-1.0

L'effetto della shell viene applicato al colore opaco finale con cui verrà eseguito il rendering della scena in caso contrario. Che include l'override dello stato gerarchico tinta.

Esempio

Il codice seguente illustra un esempio di utilizzo dello ShellRenderingSettings stato tramite l'API:

void SetShellSettings(RenderingSession session)
{
    ShellRenderingSettings shellRenderingSettings = session.Connection.ShellRenderingSettings;
    shellRenderingSettings.Desaturation = 0.5f;
    shellRenderingSettings.Opacity = 0.1f;
}
void SetShellSettings(ApiHandle<RenderingSession> session)
{
    ApiHandle<ShellRenderingSettings> shellRenderingSettings = session->Connection()->GetShellRenderingSettings();
    shellRenderingSettings->SetDesaturation(0.5f);
    shellRenderingSettings->SetOpacity(0.1f);
}

Prestazioni

La funzionalità di rendering della shell comporta un sovraccarico costante ridotto rispetto al rendering opaco standard. È molto più veloce rispetto all'uso di materiali trasparenti su oggetti o rendering see-through . Le prestazioni possono peggiorare in modo più forte se solo parti della scena vengono passate al rendering della shell. Questa riduzione può verificarsi a causa di oggetti rivelati che richiedono il rendering. In tal senso, le prestazioni si comportano in modo analogo alla funzionalità Piani di taglio.

Passaggi successivi