Gökyüzü yansımaları

Azure Remote Rendering'de nesneleri gerçekçi bir şekilde aydınlatmak için gökyüzü dokusu kullanılır. Artırılmış gerçeklik uygulamalarında, nesnelerin ikna edici görünmesi için bu doku gerçek dünya çevrenize benzemelidir. Bu makalede, gökyüzü dokusunu değiştirme açıklanmaktadır. Gökyüzü yalnızca PBR malzemelerinin işlenmesini etkiler. Renk malzemeleri ve nokta bulutları etkilenmez.

Dekont

Gökyüzü dokusu, ortam haritası olarak da adlandırılır. Bu terimler birbirinin yerine kullanılır.

Nesne aydınlatma

Azure Remote Rendering, gerçekçi aydınlatma hesaplamaları için fiziksel tabanlı işleme (PBR) kullanıyor. Sahnenize ışık kaynakları ekleyebilmenize rağmen, iyi bir gökyüzü dokusu kullanmak en büyük etkiye sahiptir.

Aşağıdaki görüntülerde farklı yüzeylerin yalnızca gökyüzü dokusuyla aydınlatılabilmesinin sonuçları gösterilmektedir:

Pürüz 0 0.25 0,5 0,75 Kategori 1
Metal Olmayan Dielectric, Roughness=0 Dielectric, Roughness=0.25 Dielectric, Roughness=0.5 Dielectric, Roughness=0.75 Dielectric, Roughness=1
Metal Metal, Roughness=0 Metal, Roughness=0.25 Metal, Roughness=0.5 Metal, Roughness=0.75 Metal, Roughness=1

Aydınlatma modeli hakkında daha fazla bilgi için malzeme bölümüne bakın.

Önemli

Azure Remote Rendering yalnızca aydınlatma modelleri için gökyüzü dokusunu kullanır. Artırılmış Gerçeklik uygulamaları zaten doğru bir arka plana sahip olduğundan, gökyüzünü arka plan olarak işlemez - gerçek dünya.

Gökyüzü dokusunu değiştirme

Ortam haritasını değiştirmek için tek yapmanız gereken bir doku yüklemek ve oturumun SkyReflectionSettingsöğesini değiştirmektir:

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

LoadTextureFromSasAsync Yerleşik doku yüklendiğinden, değişken yukarıda kullanılır. Bunun yerine bağlı blob depolamalarından yüklerken değişkenini LoadTextureAsync kullanın.

Gökyüzü doku türleri

Ortam eşlemeleri olarak hem küp haritalarını hem de 2B dokuları kullanabilirsiniz.

Tüm dokuların desteklenen bir doku biçiminde olması gerekir. Gökyüzü dokuları için mipmap'ler sağlamanız gerekmez.

Küp ortam haritaları

Başvuru için, burada eşlenmemiş bir küp haritası yer almaktadır:

An unwrapped cubemap

Küp haritası dokularını yüklemek için ile TextureType.CubeMap kullanınRenderingSession.Connection.LoadTextureAsync/ LoadTextureFromSasAsync.

Sphere ortam haritaları

Ortam haritası olarak 2B doku kullanılırken görüntünün küresel koordinat alanında olması gerekir.

A sky image in spherical coordinates

RenderingSession.Connection.LoadTextureAsync Ile kullanarak TextureType.Texture2D küresel ortam haritalarını yükleyin.

Yerleşik ortam haritaları

Azure Remote Rendering her zaman kullanılabilen birkaç yerleşik ortam eşlemesi sağlar. Tüm yerleşik ortam haritaları küp haritalarıdır.

Tanımlayıcı Tanım Çizim
builtin://Autoshop Çeşitli şerit ışıkları, parlak iç mekan tabanlı aydınlatma Autoshop skybox used to light an object
builtin://BoilerRoom Parlak iç mekan ışığı ayarı, birden çok pencere ışığı BoilerRoom skybox used to light an object
builtin://ColorfulStudio Orta açık iç mekan ayarında değişen renkli ışıklar ColorfulStudio skybox used to light an object
builtin://Hangar Orta derecede parlak ortam salonu ışığı SmallHangar skybox used to light an object
builtin://IndustrialPipeAndValve Açık-koyu karşıtlık ile soluk iç mekan ayarı IndustrialPipeAndValve skybox used to light an object
builtin://Lebombo Gündüz ortam oda ışığı, parlak pencere alanı ışığı Lebombo skybox used to light an object
builtin://SataraNight Birçok çevresindeki ışıkla karanlık gece gökyüzü ve zemin SataraNight skybox used to light an object
builtin://SunnyVondelpark Parlak güneş ışığı ve gölge karşıtlığı SunnyVondelpark skybox used to light an object
builtin://Syferfontein Orta düzeyde zemin aydınlatması ile açık gökyüzü ışığı Syferfontein skybox used to light an object
builtin://TearsOfSteelBridge Orta derecede değişen güneş ve gölge TearsOfSteelBridge skybox used to light an object
builtin://VeniceSunset Akşam gün batımı ışığı alacakaranlıkta yaklaşıyor VeniceSunset skybox used to light an object
builtin://WhippleCreekRegionalPark Parlak, yemyeşil ve beyaz açık tonlar, soluk zemin WhippleCreekRegionalPark skybox used to light an object
builtin://WinterRiver Parlak ortam zemin ışığı ile gündüz WinterRiver skybox used to light an object
builtin://DefaultSky TearsOfSteelBridge ile aynı DefaultSky skybox used to light an object

API belgeleri

Sonraki adımlar