Megosztás a következőn keresztül:


Textúrák

A textúra nem módosítható megosztott erőforrás. A textúrák a Blob Storage-ból tölthetők be, és közvetlenül alkalmazhatók a modellekre, ahogyan az oktatóanyagban is látható: A környezet és az anyagok módosítása. Általában azonban a textúrák egy átalakított modell részei lesznek, ahol az anyagok hivatkoznak rájuk.

Textúratípusok

A különböző textúratípusok különböző használati eseteket használnak:

  • A 2D textúrákat elsősorban anyagokban használják.
  • A kockaképek az éghez használhatók.

Támogatott textúraformátumok

Az ARR-nek adott összes anyagmintának DDS formátumban kell lennie. Lehetőleg mipmap-okkal és textúratömörítéssel.

Textúrák betöltése

A textúra betöltésekor meg kell adnia a várt típust. Ha a típus nem egyezik, a textúra terhelése meghiúsul. Ha ugyanazt az URI-t kétszer tölti be, ugyanazt a textúraobjektumot adja vissza, mivel az egy megosztott erőforrás.

A modellek betöltéséhez hasonlóan a forrás blobtárolóban a textúra-objektumot kétféleképpen lehet kezelni:

  • A textúra közvetlenül a blobtároló paramétereivel kezelhető, ha a blobtároló a fiókhoz van kapcsolva. A megfelelő betöltési függvény ebben az esetben a paraméterrel LoadTextureOptionsvanLoadTextureAsync.
  • A textúra-objektum az SAS URI-jával kezelhető. A megfelelő betöltési függvény a paraméterrel LoadTextureFromSasOptionsvan LoadTextureFromSasAsync megadva. Használja ezt a változatot beépített textúrák betöltésekor is.

Az alábbi mintakód bemutatja, hogyan tölthető be a textúra:

async void LoadMyTexture(RenderingSession session, string storageContainer, string blobName, string assetPath)
{
    try
    {
        LoadTextureOptions options = new LoadTextureOptions(storageContainer, blobName, assetPath, TextureType.Texture2D);
        Texture texture = await session.Connection.LoadTextureAsync(options);
    
        // use texture...
    }
    catch (RRException ex)
    {
    }
}
void LoadMyTexture(ApiHandle<RenderingSession> session, std::string storageContainer, std::string blobName, std::string assetPath)
{
    LoadTextureOptions params;
    params.TextureType = TextureType::Texture2D;
    params.Blob.StorageAccountName = std::move(storageContainer);
    params.Blob.BlobContainerName = std::move(blobName);
    params.Blob.AssetPath = std::move(assetPath);
    session->Connection()->LoadTextureAsync(params, [](Status status, ApiHandle<Texture> texture)
    {
        // use texture...
    });
}

Vegye figyelembe, hogy az SAS-változat használata esetén csak a betöltési függvény/paraméter különbözik.

Attól függően, hogy a textúra mire szolgál, korlátozásokat alkalmazhat a textúra típusára és tartalmára. Egy PBR-anyag érdességi térképének például szürkeárnyalatosnak kell lennie.

API-dokumentáció

Következő lépések