하늘 반사
Azure Remote Rendering에서 하늘 질감은 개체를 사실적으로 조명하는 데 사용됩니다. 증강 현실 애플리케이션의 경우 이 질감은 개체가 설득력 있게 보이도록 하기 위해 실제 환경과 비슷해야 합니다. 이 문서에서는 하늘 질감을 변경하는 방법을 설명합니다. 하늘은 PBR 재료의 렌더링에만 영향을 미칩니다. 색 재료 및 포인트 클라우드는 영향을 받지 않습니다.
참고 항목
하늘 질감을 환경 맵이라고도 합니다. 이러한 용어는 같은 의미로 사용됩니다.
개체 조명
Azure Remote Rendering은 실제 조명 계산을 위해 PBR(물리 기반 렌더링)을 사용합니다. 장면에 광원을 추가할 수 있지만 좋은 하늘 질감을 사용하면 효과가 가장 큽니다.
아래 이미지는 하늘 질감 있는 다른 표면의 조명 결과를 보여 줍니다.
Roughness | 0 | 0.25 | 0.5 | 0.75 | 1 |
---|---|---|---|---|---|
비금속 | |||||
Metal |
조명 모델에 대한 자세한 내용은 재질 장을 참조하세요.
Important
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 Storage에서 로드할 때 LoadTextureAsync
변형을 사용합니다.
하늘 질감 형식
cubemaps 및 2D 질감을 환경 맵으로 사용할 수 있습니다.
모든 질감은 지원되는 질감 형식에 있어야 합니다. 하늘 질감에 대한 mipmaps를 제공할 필요가 없습니다.
큐브 환경 맵
참고로 포장되지 않은 큐브맵은 다음과 같습니다.
TextureType.CubeMap
과 함께 RenderingSession.Connection.LoadTextureAsync
/ LoadTextureFromSasAsync
를 사용하여 cubemap 질감을 로드합니다.
구 환경 맵
2D 질감을 환경 맵으로 사용하는 경우 이미지는 구형 좌표 공간에 있어야 합니다.
TextureType.Texture2D
와 함께 RenderingSession.Connection.LoadTextureAsync
를 사용하여 구형 환경 맵을 로드합니다.
기본 제공 환경 맵
Azure Remote Rendering은 항상 사용할 수 있는 몇 가지 기본 제공 환경 맵을 제공합니다. 모든 기본 제공 환경 맵은 cubemaps입니다.
식별자 | 설명 | 그림 |
---|---|---|
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와 동일 |