Odrazy oblohy
Ve službě Azure Remote Rendering se textura oblohy používá k realisticky světlým objektům. U aplikací rozšířené reality by tato textura měla vypadat podobně jako v reálném světě, aby se objekty zobrazovaly přesvědčivě. Tento článek popisuje, jak změnit texturu oblohy. Obloha ovlivňuje pouze vykreslování materiálů PBR. Barevné materiály a mračna bodů nejsou ovlivněny .
Poznámka:
Textura oblohy se také označuje jako mapa prostředí. Tyto termíny se používají zaměnitelně.
Osvětlení objektů
Azure Remote Rendering využívá fyzicky založené vykreslování (PBR) pro reálné výpočty osvětlení. I když můžete do scény přidat zdroje světla, použití dobré textury oblohy má největší dopad.
Následující obrázky ukazují výsledky osvětlení různých povrchů pouze s texturou oblohy:
Drsnost | 0 | 0.25 | 0.5 | 0.75 | 0 |
---|---|---|---|---|---|
Nekovový | |||||
Kov |
Další informace o modelu osvětlení najdete v kapitole o materiálech .
Důležité
Azure Remote Rendering používá texturu oblohy pouze pro modely osvětlení. Nevykresluje oblohu jako pozadí, protože aplikace rozšířené reality už mají správné pozadí – skutečný svět.
Změna textury oblohy
Pokud chcete změnit mapu prostředí, stačí načíst texturu a změnit relaci SkyReflectionSettings
:
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");
}
});
}
Varianta LoadTextureFromSasAsync
se používá výše, protože je načtena integrovaná textura. Při načítání z propojených úložišť objektů blob použijte variantu LoadTextureAsync
.
Typy textur sky
Jako mapy prostředí můžete použít mapy datových krychlí i 2D textury.
Všechny textury musí být v podporovaném formátu textury. Nemusíte poskytovat mipmapy pro textury oblohy.
Mapy prostředí datové krychle
Tady je mapa nevybalené datové krychle:
TextureType.CubeMap
Umožňuje RenderingSession.Connection.LoadTextureAsync
/ LoadTextureFromSasAsync
načíst textury mapy datové krychle.
Mapy prostředí Sphere
Při použití 2D textury jako mapy prostředí musí být obrázek v kulovém souřadnicovém prostoru.
TextureType.Texture2D
Umožňuje RenderingSession.Connection.LoadTextureAsync
načíst mapy kulových prostředí.
Integrované mapy prostředí
Azure Remote Rendering poskytuje několik předdefinovaných map prostředí, které jsou vždy dostupné. Všechny integrované mapy prostředí jsou mapy datových krychlí.
Identifikátor | Popis | Ilustrace |
---|---|---|
builtin://Autoshop | Různé pruhové světla, jasné vnitřní základní osvětlení | |
builtin://BoilerRoom | Světlé nastavení vnitřního světla, více světel oken | |
builtin://ColorfulStudio | Různě barevná světla ve středním světlém interiérovém nastavení | |
builtin://Hangar | Středně světlé okolí světlá hala | |
builtin://IndustrialPipeAndValve | Dim indoor setting with light-dark contrast | |
builtin://Lebombo | Denní okolní světlá místnost, světlé světlo oblasti okna | |
builtin://SataraNight | Tmavá noční obloha a země s mnoha okolními světly | |
builtin://SunnyVondelpark | Světlý sluneční světlo a kontrast stínu | |
builtin://Syferfontein | Jasná obloha s mírným pozemním osvětlením | |
builtin://TearsOfSteelBridge | Středně proměnlivé slunce a stín | |
builtin://VeniceSunset | Večerní světlo západu slunce blížící se dusk | |
builtin://WhippleCreekRegionalPark | Světlé, svěží-zelené a bílé světlé tóny, zašedlé zemi | |
builtin://WinterRiver | Denní doba s světlým okolním osvětlením | |
builtin://DefaultSky | Stejné jako SlzyOfSteelBridge |
Dokumentace k rozhraní API
- C# RenderingConnection.SkyReflectionSettings – vlastnost
- C++ RenderingConnection::SkyReflectionSettings()