Partager via


Reflets du ciel

Dans Azure Remote Rendering, une texture de ciel est utilisée pour éclairer les objets de façon réaliste. Dans les applications de réalité augmentée, cette texture doit ressembler à votre environnement réel, pour que les objets paraissent convaincants. Cet article explique comment modifier la texture du ciel. Le ciel affecte uniquement le rendu des matériaux PBR. Les matériaux de couleur et les nuages de points ne sont pas affectés.

Remarque

La texture du ciel est également appelée carte d’environnement. Ces termes sont utilisés ici indifféremment.

Éclairage des objets

Azure Remote Rendering utilise le rendu physique réaliste (PBR) pour les calculs d’éclairage réaliste. Bien que vous puissiez ajouter des sources de lumière à votre scène, l’utilisation d’une bonne texture de ciel produit le meilleur des effets.

Les images ci-dessous montrent les résultats de l’éclairage de différentes surfaces, obtenus uniquement avec une texture de ciel :

Rugosité 0 0,25 0.5 0.75 1
Non métallique Diélectrique, Rugosité=0 Diélectrique, Rugosité=0,25 Diélectrique, Rugosité=0,5 Diélectrique, Rugosité=0,75 Diélectrique, Rugosité=1
Métal Métallique, Rugosité=0 Métallique, Rugosité=0,25 Métallique, Rugosité=0,5 Métallique, Rugosité=0,75 Métallique, Rugosité=1

Pour plus d’informations sur le modèle d’éclairage, reportez-vous au chapitre sur les matériaux.

Important

Azure Remote Rendering utilise la texture du ciel uniquement pour les modèles d’éclairage. Il n’effectue pas le rendu du ciel sous forme d’arrière-plan, car les applications de réalité augmentée disposent déjà d’un arrière-plan approprié : le monde réel.

Modification de la texture du ciel

Pour modifier la carte d’environnement, il suffit de charger une texture et modifier l’élément SkyReflectionSettings de la session :

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 variante LoadTextureFromSasAsync est utilisée ci-dessus, car une texture intégrée est chargée. Lors du chargement à partir de stockages d’objets blob liés, utilisez la variante LoadTextureAsync.

Types de texture de ciel

Vous pouvez utiliser des cartes cubiques et des textures 2D en tant que cartes d’environnement.

Toutes les textures doivent se présenter dans un format de texture pris en charge. Vous n’avez pas besoin de fournir de mipmaps pour les textures de ciel.

Cartes d’environnement en cube

Pour référence, voici une carte cubique non wrappée :

Carte cubique non wrappée

Utilisez RenderingSession.Connection.LoadTextureAsync/ LoadTextureFromSasAsync avec TextureType.CubeMap pour charger les textures de carte cubique.

Cartes d’environnement en sphère

Lors de l’utilisation d’une texture 2D comme carte d’environnement, l’image doit se trouver dans un espace de coordonnées sphériques.

Image de ciel dans des coordonnées sphériques

Utilisez RenderingSession.Connection.LoadTextureAsync avec TextureType.Texture2D pour charger des cartes d’environnement sphériques.

Cartes d’environnement intégrées

Azure Remote Rendering fournit quelques cartes d’environnement intégrées qui sont toujours disponibles. Toutes les cartes d’environnement intégrées sont des cartes cubiques.

Identificateur Description Illustration
builtin://Autoshop Divers éclairages directs, éclairage intérieur lumineux Skybox Autoshop utilisée pour éclairer un objet
builtin://BoilerRoom Intérieur clair, lumineux, plusieurs sources d’éclairage naturel Skybox BoilerRoom utilisée pour éclairer un objet
builtin://ColorfulStudio Lumières de différentes couleurs et intensités, dans un décor intérieur moyennement éclairé Skybox ColorfulStudio utilisée pour éclairer un objet
builtin://Hangar Éclairage de grande salle, moyennement lumineux Skybox SmallHangar utilisée pour éclairer un objet
builtin://IndustrialPipeAndValve Décor intérieur sombre avec lumière contrastée Skybox IndustrialPipeAndValve utilisée pour éclairer un objet
builtin://Lebombo Pièce claire, ambiance de jour, lumière vive provenant d’une fenêtre Skybox Lebombo utilisée pour éclairer un objet
builtin://SataraNight Sol sombre et nuit noire avec de nombreuses lumières environnantes Skybox SataraNight utilisée pour éclairer un objet
builtin://SunnyVondelpark Lumière du soleil vive et ombre contrastée Skybox SunnyVondelpark utilisée pour éclairer un objet
builtin://Syferfontein Ciel clair avec sol modérément éclairé Skybox Syferfontein utilisée pour éclairer un objet
builtin://TearsOfSteelBridge Soleil et ombre modérément contrastés Skybox TearsOfSteelBridge utilisée pour éclairer un objet
builtin://VeniceSunset Soir, lumière de coucher de soleil à l’approche du crépuscule Skybox VeniceSunset utilisée pour éclairer un objet
builtin://WhippleCreekRegionalPark Sol dans l’ombre ; tonalités vives, vert luxuriant et lumière blanche Skybox WhippleCreekRegionalPark utilisée pour éclairer un objet
builtin://WinterRiver Ambiante diurne, lumière vive et sol clair Skybox WinterRiver utilisée pour éclairer un objet
builtin://DefaultSky Identique à TearsOfSteelBridge Skybox DefaultSky utilisée pour éclairer un objet

Documentation de l'API

Étapes suivantes