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 | |||||
Metal |
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:
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.
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 | |
builtin://BoilerRoom | Parlak iç mekan ışığı ayarı, birden çok pencere ışığı | |
builtin://ColorfulStudio | Orta açık iç mekan ayarında değişen renkli ışıklar | |
builtin://Hangar | Orta derecede parlak ortam salonu ışığı | |
builtin://IndustrialPipeAndValve | Açık-koyu karşıtlık ile soluk iç mekan ayarı | |
builtin://Lebombo | Gündüz ortam oda ışığı, parlak pencere alanı ışığı | |
builtin://SataraNight | Birçok çevresindeki ışıkla karanlık gece gökyüzü ve zemin | |
builtin://SunnyVondelpark | Parlak güneş ışığı ve gölge karşıtlığı | |
builtin://Syferfontein | Orta düzeyde zemin aydınlatması ile açık gökyüzü ışığı | |
builtin://TearsOfSteelBridge | Orta derecede değişen güneş ve gölge | |
builtin://VeniceSunset | Akşam gün batımı ışığı alacakaranlıkta yaklaşıyor | |
builtin://WhippleCreekRegionalPark | Parlak, yemyeşil ve beyaz açık tonlar, soluk zemin | |
builtin://WinterRiver | Parlak ortam zemin ışığı ile gündüz | |
builtin://DefaultSky | TearsOfSteelBridge ile aynı |
API belgeleri
- C# RenderingConnection.SkyReflectionSettings özelliği
- C++ RenderingConnection::SkyReflectionSettings()