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 | |||||
Métal |
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 :
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.
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 | |
builtin://BoilerRoom | Intérieur clair, lumineux, plusieurs sources d’éclairage naturel | |
builtin://ColorfulStudio | Lumières de différentes couleurs et intensités, dans un décor intérieur moyennement éclairé | |
builtin://Hangar | Éclairage de grande salle, moyennement lumineux | |
builtin://IndustrialPipeAndValve | Décor intérieur sombre avec lumière contrastée | |
builtin://Lebombo | Pièce claire, ambiance de jour, lumière vive provenant d’une fenêtre | |
builtin://SataraNight | Sol sombre et nuit noire avec de nombreuses lumières environnantes | |
builtin://SunnyVondelpark | Lumière du soleil vive et ombre contrastée | |
builtin://Syferfontein | Ciel clair avec sol modérément éclairé | |
builtin://TearsOfSteelBridge | Soleil et ombre modérément contrastés | |
builtin://VeniceSunset | Soir, lumière de coucher de soleil à l’approche du crépuscule | |
builtin://WhippleCreekRegionalPark | Sol dans l’ombre ; tonalités vives, vert luxuriant et lumière blanche | |
builtin://WinterRiver | Ambiante diurne, lumière vive et sol clair | |
builtin://DefaultSky | Identique à TearsOfSteelBridge |
Documentation de l'API
- RenderingConnection.SkyReflectionSettings, propriété C#
- C++ RenderingConnection::SkyReflectionSettings()