Sdílet prostřednictvím


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ý Dielektrárna, hrubost=0 Dielektrárna, hrubost=0,25 Dielektrárna, Hrubost=0,5 Dielektrárna, Hrubost=0,75 Dielektrárna, Hrubost=1
Kov Kov, Hrubost=0 Kov, Hrubost=0,25 Kov, Hrubost=0,5 Kov, Hrubost=0,75 Kov, Hrubost=1

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:

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.

Obrázek oblohy v kulových souřadnicích

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í Autoshop skybox použitý k osvětlení objektu
builtin://BoilerRoom Světlé nastavení vnitřního světla, více světel oken KotelRoom skybox použitý k osvětlení objektu
builtin://ColorfulStudio Různě barevná světla ve středním světlém interiérovém nastavení ColorStudio skybox použitý k osvětlení objektu
builtin://Hangar Středně světlé okolí světlá hala SmallHangar skybox použitý k osvětlení objektu
builtin://IndustrialPipeAndValve Dim indoor setting with light-dark contrast IndustrialPipeAndValve skybox použitý k osvětlení objektu
builtin://Lebombo Denní okolní světlá místnost, světlé světlo oblasti okna Lebombo skybox použitý k osvětlení objektu
builtin://SataraNight Tmavá noční obloha a země s mnoha okolními světly SataraNight skybox sloužící k osvětlení objektu
builtin://SunnyVondelpark Světlý sluneční světlo a kontrast stínu Slunečnívondelpark skybox použitý k osvětlení objektu
builtin://Syferfontein Jasná obloha s mírným pozemním osvětlením Syferfontein skybox použitý k osvětlení objektu
builtin://TearsOfSteelBridge Středně proměnlivé slunce a stín TearsOfSteelBridge skybox použitý k osvětlení objektu
builtin://VeniceSunset Večerní světlo západu slunce blížící se dusk BenátkySunset skybox použitý k osvětlení objektu
builtin://WhippleCreekRegionalPark Světlé, svěží-zelené a bílé světlé tóny, zašedlé zemi WhippleCreekRegionalPark skybox použitý k osvětlení objektu
builtin://WinterRiver Denní doba s světlým okolním osvětlením WinterRiver skybox použitý k osvětlení objektu
builtin://DefaultSky Stejné jako SlzyOfSteelBridge DefaultSky skybox použitý k osvětlení objektu

Dokumentace k rozhraní API

Další kroky