Luchtreflecties

In Azure Remote Rendering wordt een luchtpatroon gebruikt om objecten realistisch te verlichten. Voor augmented reality-toepassingen moet dit patroon lijken op uw echte omgeving om objecten overtuigend te maken. In dit artikel wordt beschreven hoe u het patroon van de lucht kunt wijzigen. De lucht is alleen van invloed op het weergeven van PBR-materialen. Kleurmaterialen en puntwolken worden niet beïnvloed.

Notitie

De luchttextuur wordt ook wel een omgevingskaart genoemd. Deze termen worden door elkaar gebruikt.

Objectverlichting

Azure Remote Rendering maakt gebruik van fysiek gebaseerde rendering (PBR) voor realistische belichtingsberekeningen. Hoewel u lichtbronnen aan uw scène kunt toevoegen, heeft het gebruik van een goede luchttextuur de grootste impact.

De onderstaande afbeeldingen tonen resultaten van het verlichten van verschillende oppervlakken alleen met een luchtpatroon:

Ruwheid 0 0,25 0,5 0.75 1
Niet-metaal Dielectric, Roughness=0 Dielectric, Roughness=0.25 Dielectric, Roughness=0.5 Dielectric, Roughness=0.75 Dielectric, Roughness=1
Metaal Metal, Roughness=0 Metal, Roughness=0.25 Metal, Roughness=0.5 Metal, Roughness=0.75 Metal, Roughness=1

Zie het hoofdstuk materialen voor meer informatie over het verlichtingsmodel.

Belangrijk

Azure Remote Rendering maakt alleen gebruik van het luchtpatroon voor verlichtingsmodellen. Het geeft de hemel niet weer als achtergrond, omdat Augmented Reality-toepassingen al een juiste achtergrond hebben - de echte wereld.

Het luchtpatroon wijzigen

Als u de omgevingstoewijzing wilt wijzigen, hoeft u alleen maar een patroon te laden en de sessie te SkyReflectionSettingswijzigen:

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");
        }
    });
}

De LoadTextureFromSasAsync variant wordt hierboven gebruikt omdat een ingebouwde textuur wordt geladen. Wanneer u in plaats daarvan vanuit gekoppelde blobopslags laadt , gebruikt u de LoadTextureAsync variant.

Sky-patroontypen

U kunt zowel kubuskaarten als 2D-patronen gebruiken als omgevingskaarten.

Alle patronen moeten een ondersteunde textuurindeling hebben. U hoeft geen mipmaps op te geven voor luchttextuur.

Kubusomgevingstoewijzingen

Ter referentie ziet u hier een uitgepakte kubuskaart:

An unwrapped cubemap

Gebruik RenderingSession.Connection.LoadTextureAsync/ LoadTextureFromSasAsync dit om TextureType.CubeMap cubemap-patronen te laden.

Sphere-omgevingskaarten

Wanneer u een 2D-patroon als omgevingskaart gebruikt, moet de afbeelding zich in de bolvormige coördinaatruimte bevinden.

A sky image in spherical coordinates

Gebruik RenderingSession.Connection.LoadTextureAsync dit om TextureType.Texture2D sferische omgevingskaarten te laden.

Ingebouwde omgevingstoewijzingen

Azure Remote Rendering biedt een aantal ingebouwde omgevingstoewijzingen die altijd beschikbaar zijn. Alle ingebouwde omgevingstoewijzingen zijn kubuskaarten.

Identificatie Omschrijving Illustratie
builtin://Autoshop Verscheidenheid aan stripe verlichting, heldere binnenbasisverlichting Autoshop skybox used to light an object
builtin://BoilerRoom Heldere binnenlichtinstelling, meerdere vensterlichten BoilerRoom skybox used to light an object
builtin://ColorfulStudio Variërend gekleurde lichten in middellichte binneninstelling ColorfulStudio skybox used to light an object
builtin://Hangar Gemiddeld helder omgevingshallicht SmallHangar skybox used to light an object
builtin://IndustrialPipeAndValve Dim indoor instelling met licht-donker contrast IndustrialPipeAndValve skybox used to light an object
builtin://Lebombo Overdag omgevingsruimtelicht, helder vensterlicht Lebombo skybox used to light an object
builtin://SataraNight Donkere nachthemel en grond met veel omringende lichten SataraNight skybox used to light an object
builtin://SunnyVondelpark Helder zonlicht en schaduwcontrast SunnyVondelpark skybox used to light an object
builtin://Syferfontein Helder hemellicht met gematigde grondverlichting Syferfontein skybox used to light an object
builtin://TearsOfSteelBridge Matig variërende zon en schaduw TearsOfSteelBridge skybox used to light an object
builtin://VeniceSunset Avond zonsondergang licht naderende schemering VeniceSunset skybox used to light an object
builtin://WhippleCreekRegionalPark Helder, weelderig groen en witte lichttinten, gedimde grond WhippleCreekRegionalPark skybox used to light an object
builtin://WinterRiver Overdag met helder omgevingsgrondlicht WinterRiver skybox used to light an object
builtin://DefaultSky Hetzelfde als TearsOfSteelBridge DefaultSky skybox used to light an object

API-documentatie

Volgende stappen