Riflessi del cielo
In Rendering remoto di Azure, per illuminare gli oggetti in modo realistico viene usata una trama del cielo. Per le applicazioni di realtà aumentata, questa trama dovrebbe essere simile a quella del mondo reale, in modo da rendere gli oggetti convincenti. Questo articolo descrive come modificare la trama del cielo. Il cielo influisce solo sul rendering dei materiali PBR. I materiali di colore e le nuvole di punti non sono interessati.
Nota
La trama del cielo è detta anche mappa ambientale. Questi termini vengono usati in modo interscambiabile.
Illuminazione degli oggetti
Rendering remoto di Azure usa il Physically Based Rendering (PBR) per calcolare l'illuminazione in modo realistico. Sebbene sia possibile aggiungere sorgenti di luce alla scena, l'uso di una buona trama del cielo offre i risultati migliori.
Le immagini seguenti illustrano i risultati dell'illuminazione di superfici diverse solo con una trama del cielo:
Ruvidità | 0 | 0.25 | 0.5 | 0.75 | 1 |
---|---|---|---|---|---|
Non metallico | |||||
Metallo |
Per altre informazioni sul modello di illuminazione, vedere il capitolo sui materiali.
Importante
Rendering remoto di Azure usa la trama del cielo solo per i modelli di illuminazione. Non esegue il rendering del cielo come sfondo, perché le applicazioni di realtà aumentata hanno già uno sfondo appropriato, ovvero il mondo reale.
Modificare la trama del cielo
Per modificare la mappa dell'ambiente è sufficiente caricare una trama e modificare l'elemento SkyReflectionSettings
della sessione:
async void ChangeEnvironmentMap(RenderingSession session)
{
try
{
Texture skyTex = await session.Connection.LoadTextureFromSasAsync(new LoadTextureFromSasOptions("builtin://VeniceSunset", TextureType.CubeMap));
session.Connection.SkyReflectionSettings.SkyReflectionTexture = skyTex;
}
catch (RRException exception)
{
System.Console.WriteLine($"Setting sky reflection failed: {exception.Message}");
}
}
void ChangeEnvironmentMap(ApiHandle<RenderingSession> session)
{
LoadTextureFromSasOptions params;
params.TextureType = TextureType::CubeMap;
params.TextureUri = "builtin://VeniceSunset";
session->Connection()->LoadTextureFromSasAsync(params, [&](Status status, ApiHandle<Texture> res) {
if (status == Status::OK)
{
ApiHandle<SkyReflectionSettings> settings = session->Connection()->GetSkyReflectionSettings();
settings->SetSkyReflectionTexture(res);
}
else
{
printf("Texture loading failed!\n");
}
});
}
La LoadTextureFromSasAsync
variante viene usata in precedenza perché viene caricata una trama predefinita. Durante il caricamento da archivi BLOB collegati, usare invece la LoadTextureAsync
variante .
Tipi di trama del cielo
È possibile usare sia mappe cubi che trame 2D come mappe dell'ambiente.
Tutte le trame devono essere in un formato di trama supportato. Non è necessario fornire mipmap per le trame del cielo.
Mappe ambientali cubiche
Per riferimento, ecco una mappa cubo senza wrapping:
Usare RenderingSession.Connection.LoadTextureAsync
/ LoadTextureFromSasAsync
con TextureType.CubeMap
per caricare trame di mappe cubi.
Mappe ambientali sferiche
Quando si usa una trama 2D come mappa ambientale, l'immagine deve trovarsi in uno spazio di coordinate sferico.
Usare RenderingSession.Connection.LoadTextureAsync
con TextureType.Texture2D
per caricare le mappe ambientali sferiche.
Mappe ambientali predefinite
Rendering remoto di Azure fornisce alcune mappe ambientali predefinite che sono sempre disponibili. Tutte le mappe ambientali predefinite sono mappe cubi.
Identificatore | Descrizione | Illustrazione |
---|---|---|
builtin://Autoshop | Varie bande di luce, illuminazione interna di base brillante | |
builtin://BoilerRoom | Illuminazione interna brillante, più sorgenti di luce naturale | |
builtin://ColorfulStudio | Luci di vari colori in ambiente interno di media luminosità | |
builtin://Hangar | Illuminazione grande ambiente moderatamente luminoso | |
builtin://IndustrialPipeAndValve | Illuminazione interna soffusa con contrasto chiaro/scuro | |
builtin://Lebombo | Luce diurna naturale, area della finestra con illuminazione brillante | |
builtin://SataraNight | Cielo notturno scuro e terreno con molte luci circostanti | |
builtin://SunnyVondelpark | Contrasto luce solare brillante e ombre | |
builtin://Syferfontein | Cielo chiaro con illuminazione del terreno moderata | |
builtin://TearsOfSteelBridge | Variazione moderata di sole e ombre | |
builtin://VeniceSunset | Luce di tramonto prossimo al crepuscolo | |
builtin://WhippleCreekRegionalPark | Toni luminosi di bianco e verde, terreno con luce soffusa | |
builtin://WinterRiver | Giorno con luce naturale molto brillante sul terreno | |
builtin://DefaultSky | Uguale a TearsOfSteelBridge |
Documentazione sull'API
- Proprietà C# RenderingConnection.SkyReflectionSettings
- Rendering C++Connection::SkyReflectionSettings()