Bu konu, Gölgelendirici Modelleri 2 ile 5.1 arasında kullanılan FXC.EXE derleyicisini kapsar. Shader Modeli 6 için, bunun yerine belgelenen DXC.EXE'ı kullanırsınız 'de, dxc.exe ve dxcompiler.dllkullanma. Visual Studio, HLSL Özellik Sayfası yapılandırması için Gölgelendirici Modeli 6 seçildiğinde otomatik olarak DXC.EXE kullanır.
Microsoft Visual Studio, C++ projenize eklediğiniz *.hlsl ve *.fx dosyalarından gölgelendirici kodu derleyebilir.
Derleme işleminin bir parçası olarak Visual Studio, HLSL gölgelendiricisi kaynak dosyalarını ikili gölgelendirici nesne dosyalarında veya üst bilgi dosyalarında tanımlanan bayt dizilerinde derlemek için fxc.exe veya dxc.exe HLSL kod derleyicisini kullanır. HLSL kod derleyicisinin projenizdeki her gölgelendirici kaynak dosyasını nasıl derlediği, o dosya için Ouput Files özelliğini nasıl belirttiğinize bağlıdır. HLSL özellik sayfaları hakkında daha fazla bilgi için bkz. HLSL Özellik Sayfaları.
Kullandığınız derleme yöntemi genellikle HLSL gölgelendiricisi kaynak dosyanızın boyutuna bağlıdır. Üst bilgiye büyük miktarda bayt kodu eklerseniz, uygulamanızın boyutunu ve ilk yükleme süresini artırırsınız. Ayrıca, gölgelendirici oluşturulduktan sonra bile tüm bayt kodunun bellekte bulunmasına zorlarsınız ve bu da kaynakları boşa harcar. Ancak bir başlık dosyasına bayt kodu eklediğinizde, kod karmaşıklığını azaltabilir ve gölgelendirici oluşturmayı basitleştirebilirsiniz.
Şimdi gölgelendirici kodunuzu derlemenin çeşitli yollarını ve gölgelendirici kodu için dosya uzantıları kurallarını inceleyelim.
Microsoft kuralına uymak için gölgelendirici kodunuz için şu dosya uzantılarını kullanın:
.hlsl uzantısına sahip bir dosya Yüksek Düzey Gölgelendirme Dili (HLSL) kaynak kodunu barındırır. Eski .fx uzantısı da desteklenir, ancak genellikle eski Efektler sistemiile ilişkilendirilir.
.cso uzantısına sahip bir dosya derlenmiş bir gölgelendirici nesnesi barındırır.
.h uzantısına sahip bir dosya bir üst bilgi dosyasıdır, ancak gölgelendirici kod bağlamında, bu üst bilgi dosyası gölgelendirici verilerini barındıran bir bayt dizisi tanımlar. HLSL kod üst bilgileri için diğer yaygın uzantılar .hlsli ve .fxh'dir.
.hlsl dosyalarınızı ikili gölgelendirici nesne dosyalarında derlerseniz, uygulamanızın bu nesne dosyalarındaki verileri okuması (.cso bu nesne dosyaları için varsayılan uzantıdır), verileri bayt dizilerine ataması ve bu bayt dizilerinden gölgelendirici nesneleri oluşturması gerekir. Örneğin, bir köşe gölgelendiricisi oluşturmak için (ID3D11VertexShader**), derlenmiş köşe gölgelendiricisi bayt kodu içeren bir bayt dizisiyle id3D11Device::CreateVertexShaderyönteminiçağırın. Bu örnek kodda, SimpleVertexShader.hlsl dosyasının Ouput Files özelliği SimpleVertexShader.cso nesne dosyasına derlenecek şekilde belirtir.
Buradaki ReadData yardımcısı, geçerli çalışma dizinine ve geçerli işlemin EXE dosyasıyla aynı dizine bakar ve .cso dosyaları genellikle diğer VS derleme ürünleriyle birlikte bulunur. Örnek bir uygulama için bkz. ReadData.h .
Derleme zamanında başlık dosyalarına derleme
.hlsl dosyalarınızı üst bilgi dosyalarında tanımlanan bayt dizilerinde derlerseniz, bu üst bilgi dosyalarını kodunuz içine eklemeniz gerekir. Bu örnek kodda, PixelShader.hlsl dosyası için Output Files özelliği, PixelShader.h başlık dosyasında tanımlanmış olan g_psshader bayt dizisine derlenecek şekilde belirtilir.
Azure HPC, en iyi uygulama performansı, ölçeklenebilirlik ve değer sunmak için önde gelen işlemcileri ve HPC sınıfı InfiniBand ara bağlantısını kullanan HPC ve AI iş yükü için amaca yönelik bir bulut özelliğidir. Azure HPC, iş ve teknik gereksinimleriniz değiştikçe dinamik olarak ayrılabilen yüksek oranda kullanılabilir hpc ve yapay zeka teknolojileri aracılığıyla kullanıcıların yenilik, üretkenlik ve iş çevikliğini ortaya çıkarmalarını sağlar. Bu öğrenme yolu, Azure HPC'yi kullanmaya başlamanıza yardımcı o