انعكاسات السماء

في Azure Remote Rendering، يتم استخدام نسيج السماء لإضاءة الكائنات بشكل واقعي. بالنسبة لتطبيقات الواقع المعزز ، يجب أن يشبه هذا الملمس محيطك في العالم الحقيقي ، لجعل الأشياء تبدو مقنعة. توضح هذه المقالة كيفية تغيير نسيج السماء.

ملاحظة

يشار إلى نسيج السماء أيضا باسم خريطة البيئة. وتستخدم هذه المصطلحات بالتبادل.

إضاءة الكائن

يستخدم Azure Remote Rendering العرض المستند إلى الماديين (PBR) لإجراء عمليات حسابية واقعية للإضاءة. على الرغم من أنه يمكنك إضافة مصادر ضوء إلى المشهد الخاص بك ، إلا أن استخدام نسيج جيد للسماء له أكبر تأثير.

تظهر الصور أدناه نتائج إضاءة الأسطح المختلفة فقط بنسيج السماء:

خشونه 0 0.25 0.5 0.75 1
غير معدني Dielectric, Roughness=0 Dielectric, Roughness=0.25 Dielectric, Roughness=0.5 Dielectric, Roughness=0.75 Dielectric, Roughness=1
معدن Metal, Roughness=0 Metal, Roughness=0.25 Metal, Roughness=0.5 Metal, Roughness=0.75 Metal, Roughness=1

لمزيد من المعلومات حول نموذج الإضاءة، راجع فصل المواد .

هام

يستخدم Azure Remote Rendering نسيج السماء فقط لنماذج الإضاءة. إنه لا يجعل السماء كخلفية ، لأن تطبيقات الواقع المعزز لديها بالفعل خلفية مناسبة - العالم الحقيقي.

تغيير نسيج السماء

لتغيير خريطة البيئة ، كل ما عليك فعله هو تحميل نسيج وتغيير الجلسة 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");
        }
    });
}

لاحظ أنه LoadTextureFromSasAsync يتم استخدام البديل أعلاه لأنه يتم تحميل نسيج مضمن. في حالة التحميل من مخازن blob المرتبطة ، استخدم المتغير LoadTextureAsync .

أنواع نسيج السماء

يمكنك استخدام كل من الخرائط المكعبةوالقوام 2D كخرائط بيئة.

يجب أن تكون جميع القوام بتنسيق نسيج مدعوم. لست بحاجة إلى توفير mipmaps لقوام السماء.

خرائط البيئة المكعبة

للإشارة ، إليك خريطة مكعبة غير مغلفة:

An unwrapped cubemap

استخدم RenderingSession.Connection.LoadTextureAsync/ LoadTextureFromSasAsync مع TextureType.CubeMap لتحميل القوام المكعب.

خرائط بيئة اسفير

عند استخدام نسيج 2D كخريطة بيئة، يجب أن تكون الصورة في مساحة إحداثيات كروية.

A sky image in spherical coordinates

استخدم RenderingSession.Connection.LoadTextureAsync مع TextureType.Texture2D لتحميل خرائط البيئة الكروية.

خرائط البيئة المدمجة

يوفر Azure Remote Rendering بعض خرائط البيئة المضمنة المتوفرة دائما. جميع خرائط البيئة المدمجة هي خرائط مكعبة.

المعرّف الوصف توضيح
builtin://Autoshop مجموعة متنوعة من الأضواء الشريطية ، إضاءة قاعدة داخلية ساطعة Autoshop skybox used to light an object
builtin://BoilerRoom إعداد إضاءة داخلية ساطعة ، أضواء نافذة متعددة BoilerRoom skybox used to light an object
builtin://ColorfulStudio أضواء ملونة بشكل متفاوت في الأماكن المغلقة متوسطة الإضاءة ColorfulStudio skybox used to light an object
builtin://Hangar ضوء القاعة المحيطة الساطع بشكل معتدل SmallHangar skybox used to light an object
builtin://IndustrialPipeAndValve إعداد داخلي خافت مع تباين فاتح داكن IndustrialPipeAndValve skybox used to light an object
builtin://Lebombo ضوء الغرفة المحيطة النهارية ، ضوء منطقة النافذة الساطعة Lebombo skybox used to light an object
builtin://SataraNight سماء الليل المظلمة والأرض مع العديد من الأضواء المحيطة SataraNight skybox used to light an object
builtin://SunnyVondelpark ضوء الشمس الساطع وتباين الظل SunnyVondelpark skybox used to light an object
builtin://Syferfontein ضوء السماء الصافي مع إضاءة أرضية معتدلة Syferfontein skybox used to light an object
builtin://TearsOfSteelBridge أشعة الشمس والظل المعتدلة TearsOfSteelBridge skybox used to light an object
builtin://VeniceSunset ضوء غروب الشمس في المساء يقترب من الغسق VeniceSunset skybox used to light an object
builtin://WhippleCreekRegionalPark ألوان الضوء الساطعة والخضراء المورقة والبيضاء والأرض الخافتة WhippleCreekRegionalPark skybox used to light an object
builtin://WinterRiver النهار مع ضوء أرضي محيطي ساطع WinterRiver skybox used to light an object
builtin://DefaultSky نفس دموع أوف ستيلبريدج DefaultSky skybox used to light an object

⁧⁩مستندات API⁧⁩.

الخطوات التالية