你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
天空反射
在 Azure 远程渲染中,天空纹理用于真实地照亮物体。 在增强现实应用程序中,此纹理应类似于真实的周边环境,使物体显得更生动。 本文介绍了如何更改天空纹理。 天空只影响 PBR 材料的渲染。 颜色材料和点云不受影响。
注意
天空纹理也称为环境地图。 这两个术语可以互换使用。
物体照明
Azure 远程渲染运用基于物理学的渲染 (PBR) 来计算现实照明。 尽管你可以向场景中添加光源,但使用合适的天空纹理可以产生最棒的效果。
下面的图像显示了仅使用天空纹理来照亮各种表面的效果:
粗糙度 | 0 | 0.25 | 0.5 | 0.75 | 1 |
---|---|---|---|---|---|
非金属 | |||||
Metal |
有关照明模型的详细信息,请参阅材料一章。
重要
Azure 远程渲染仅将天空纹理用于照明模型。 它不会将天空渲染为背景,因为增强现实应用程序已有适当的背景 - 真实世界。
更改天空纹理
若要更改环境地图,只需加载纹理并更改会话的 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 纹理作为环境地图。
所有纹理都必须采用支持的纹理格式。 不需要为天空纹理提供 mipmap。
立体环境地图
下面提供了一个已解包的立体地图供参考:
将 RenderingSession.Connection.LoadTextureAsync
/ LoadTextureFromSasAsync
与 TextureType.CubeMap
一起使用来加载立体地图纹理。
球体环境地图
使用 2D 纹理作为环境地图时,图像必须处于球面坐标空间中。
结合使用 TextureType.Texture2D
和 RenderingSession.Connection.LoadTextureAsync
加载球体环境地图。
内置环境地图
Azure 远程渲染提供了几个始终可用的内置环境地图。 所有内置环境地图都是立体地图。
标识符 | 说明 | 图示 |
---|---|---|
builtin://Autoshop | 各种条带光线,明亮的室内基本照明 | |
builtin://BoilerRoom | 明亮的室内光线设置,多窗口光线 | |
builtin://ColorfulStudio | 中等亮度室内照明设置中的各种彩色光线 | |
builtin://Hangar | 适中亮度的大厅环境光线 | |
builtin://IndustrialPipeAndValve | 昏暗室内设置和明暗对比度 | |
builtin://Lebombo | 白天的室内环境光线,明亮的窗口区域光线 | |
builtin://SataraNight | 夜晚昏暗的天空和地面以及许多周边光线 | |
builtin://SunnyVondelpark | 明亮的日光和阴影对比度 | |
builtin://Syferfontein | 晴朗天空光线和适中的地面照明 | |
builtin://TearsOfSteelBridge | 适度变化的日光和阴影 | |
builtin://VeniceSunset | 傍晚接近黄昏时的日落光线 | |
builtin://WhippleCreekRegionalPark | 明亮、嫩绿和白色光线色调,昏暗的地面 | |
builtin://WinterRiver | 白天的明亮地面环境光线 | |
builtin://DefaultSky | 与 TearsOfSteelBridge 相同 |