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
- C# Doku sınıfı
- C# İşleme Bağlan ion. LoadTextureAsync()
- C# İşleme Bağlan ion. LoadTextureFromSasAsync()
- C++ Doku sınıfı
- C++ Rendering Bağlan ion::LoadTextureAsync()
- C++ Rendering Bağlan ion::LoadTextureFromSasAsync()
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin