Aracılığıyla paylaş


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.

Not

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 1
Metal Olmayan Dielektrik, Pürüzlülük=0 Dielektrik, Pürüzlülük=0,25 Dielektrik, Pürüzlülük=0,5 Dielektrik, Pürüzlülük=0,75 Dielektrik, Pürüzlülük=1
Metal Metal, Pürüzlülük=0 Metal, Pürüzlülük=0,25 Metal, Pürüzlülük=0,5 Metal, Pürüzlülük=0,75 Metal, Pürüzlülük=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:

Çizilmemiş bir küp haritası

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.

Küresel koordinatlarda bir gökyüzü görüntüsü

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ı Açıklama Çizim
builtin://Autoshop Çeşitli şerit ışıkları, parlak iç mekan tabanlı aydınlatma Bir nesneyi aydınlatmak için kullanılan autoshop skybox
builtin://BoilerRoom Parlak iç mekan ışığı ayarı, birden çok pencere ışığı Bir nesneyi aydınlatmak için kullanılan BoilerRoom skybox
builtin://ColorfulStudio Orta açık iç mekan ayarında değişen renkli ışıklar Bir nesneyi aydınlatmak için kullanılan ColorfulStudio skybox
builtin://Hangar Orta derecede parlak ortam salonu ışığı Bir nesneyi aydınlatmak için kullanılan SmallHangar skybox
builtin://IndustrialPipeAndValve Açık-koyu karşıtlık ile soluk iç mekan ayarı Bir nesneyi aydınlatmak için kullanılan IndustrialPipeAndValve skybox
builtin://Lebombo Gündüz ortam oda ışığı, parlak pencere alanı ışığı Bir nesneyi aydınlatmak için kullanılan lebombo skybox
builtin://SataraNight Birçok çevresindeki ışıkla karanlık gece gökyüzü ve zemin SataraNight skybox bir nesneyi aydınlatmak için kullanılır
builtin://SunnyVondelpark Parlak güneş ışığı ve gölge karşıtlığı Bir nesneyi aydınlatmak için kullanılan SunnyVondelpark skybox
builtin://Syferfontein Orta düzeyde zemin aydınlatması ile açık gökyüzü ışığı Bir nesneyi aydınlatmak için kullanılan Syferfontein skybox
builtin://TearsOfSteelBridge Orta derecede değişen güneş ve gölge Bir nesneyi aydınlatmak için kullanılan TearsOfSteelBridge skybox
builtin://VeniceSunset Akşam gün batımı ışığı alacakaranlıkta yaklaşıyor Bir nesneyi aydınlatmak için kullanılan VeniceSunset skybox
builtin://WhippleCreekRegionalPark Parlak, yemyeşil ve beyaz açık tonlar, soluk zemin Bir nesneyi aydınlatmak için kullanılan WhippleCreekRegionalPark skybox
builtin://WinterRiver Parlak ortam zemin ışığı ile gündüz Bir nesneyi aydınlatmak için kullanılan WinterRiver skybox
builtin://DefaultSky TearsOfSteelBridge ile aynı Bir nesneyi aydınlatmak için kullanılan DefaultSky skybox

API belgeleri

Sonraki adımlar