Aracılığıyla paylaş


Dokular

Dokular sabit bir paylaşılan kaynaktır. Dokular blob depolamadan yüklenebilir ve Öğretici: Ortamı ve malzemeleri değiştirme bölümünde gösterildiği gibi doğrudan modellere uygulanabilir. Ancak en yaygın olarak dokular, malzemelerin başvurduğu dönüştürülen bir modelin parçası olacaktır.

Doku türleri

Farklı doku türlerinin farklı kullanım örnekleri vardır:

  • 2B Dokular esas olarak malzemelerde kullanılır.
  • Küp haritaları gökyüzü için kullanılabilir.

Desteklenen doku biçimleri

ARR'ye verilen tüm dokuların DDS biçiminde olması gerekir. Tercihen mipmap'ler ve doku sıkıştırma ile.

Dokuları yükleme

Dokuyu yüklerken beklenen türünü belirtmeniz gerekir. Tür uyuşmazlıkları varsa doku yükü başarısız olur. Aynı URI'ye sahip bir dokuyu iki kez yüklemek, paylaşılan bir kaynak olduğu için aynı doku nesnesini döndürür.

Modelleri yüklemeye benzer şekilde, kaynak blob depolamada doku varlığını ele alma işleminin iki çeşidi vardır:

  • Blob depolamanın hesaba bağlı olması durumunda doku blob depolama parametreleriyle doğrudan ele alınabilir. Bu durumda ilgili yükleme işlevi parametresiyledir LoadTextureAsync LoadTextureOptions.
  • Doku varlığı SAS URI'siyle ele alınabiliyor. İlgili yükleme işlevi parametresiyledir LoadTextureFromSasAsync LoadTextureFromSasOptions. Yerleşik dokuları yüklerken de bu değişkeni kullanın.

Aşağıdaki örnek kodda doku yükleme gösterilmektedir:

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...
    });
}

SAS değişkenini kullanma durumunda yalnızca yükleme işlevinin/parametresinin farklılık gösterdiğini unutmayın.

Dokunun ne için kullanılması gerektiğine bağlı olarak, doku türü ve içeriği için kısıtlamalar olabilir. Örneğin, PBR malzemesinin pürüzlülük haritası gri tonlamalı olmalıdır.

API belgeleri

Sonraki adımlar