Aracılığıyla paylaş


Oyun veya uygulama 3-b varlıkları kullanma

Bu makalede, 3B varlıkları işlemek ve derlemelerinize dahil etmek için nasıl Visual Studio kullanacağınız açıklanmıştır.

3-D varlıklarını oluşturmak için Visual Studio öğesindeki araçları kullandıktan sonra, sonraki adım onları uygulamalarınızda kullanmaktır.Ancak kullanmadan önce, varlıklarınızın DirectX'in anlayabileceği bir biçime dönüştürülmesi gerekir.Varlıklarınızı dönüştürmenize yardımcı olmak için Visual Studio, üretebileceği her varlık türü için yapı özelleştirmeleri sağlar.Yapınıza varlıkları dahil etmek için tüm yapmanız gereken, yapı özelleştirmelerini kullanacak şekilde projenizi yapılandırmak, projenize varlıklar eklemek ve doğru yapı özelleştirmesini kullanacak şekilde varlıkları yapılandırmaktır.Bundan sonra varlıkları uygulamanıza yükleyebilir ve onları diğer herhangi bir DirectX uygulamasında yaptığınız gibi DirectX kaynakları oluşturarak ve doldurarak kullanabilirsiniz.

Projenizi yapılandırma

3-B varlıkları kendi derlemenizin bir parçası olarak dağıtmadan önce Visual Studio dağıtmak istediğiniz varlıkların türleri hakkında bilgi sahibi olmalıdır.Visual Studio birçok yaygın dosya türünü zaten bilir, ancak yalnızca belirli türdeki uygulamalar 3 boyutlu varlıklar kullandığından Visual Studio bir projenin bu tür dosyaları oluşturacağını varsaymaz.Visual Studio'ye uygulamanızın her varlık türü için sağlanmış oluşturma özelleştirmelerini (Visual Studio'ye farklı türlerde dosyaları yararlı bir şekilde nasıl işleyeceğini bildiren dosyalar) kullanarak bu tür varlıkları kullandığını söyleyebilirsiniz.Bu özelleştirmeler proje bazında uygulandığından tek yapmanız gereken uygun özelleştirmeleri projenize eklemektir.

Projenize yapı özelleştirmeleri eklemek için

  1. Çözüm Gezgini öğesinde proje için kısayol menüsünü açın ve ardından Yapı Özelleştirmeleri seçimini belirtin.Visual C++ Derleme Özelleştirme Dosyaları iletişim kutusu görüntülenir.

  2. Bu oluşturma özelleştirmelerini Visual Studio'ya yalnızca bir defa eklemeniz gerekir; bunları zaten eklediyseniz, bu adımı atlayabilirsiniz.

    Var Olanı Bul düğmesini seçin, ardından 3-D varlıkların oluşturulmasını destekleyen üç oluşturma özelleştirmesi içeren Visual Studio yükleme dizinine gidin\Common7\IDE\Extensions\Microsoft\VSGraphics\Yapı özelleştirme dosyalarından birini (örneğin, ImageContentTask.targets) seçin ve ardından düğmesini seçin.İleti, Oluşturma Özelleştirmeleri Arama Yoluna dizin eklemek isteyip istemediğinizi sorduğunda Evet düğmesini seçin.Bu, üç derleme özelleştirme türünü de kullanılabilir hale getirir.

  3. Kullanılabilir Oluşturma Özelleştirme Dosyaları kılavuz görünümü kontrolünü yenilemek içinListeyi Yenile düğmesini seçin.

  4. Kullanılabilir Oluşturma Özelleştirme Dosyaları kılavuz görünümü denetiminde, projenizde kullanmak istediğiniz varlık türleriyle ilişkili onay kutularını bu tabloda açıklandığı şekilde seçin:

    Kıymet türü

    Özelleştirme Adı oluştur

    Dokular ve resimler

    ImageContentTask(.targets, .props)

    3-D Modeller

    MeshContentTask(.targets, .props)

    Gölgelendiriciler

    ShaderGraphContentTask(.targets, .props)

  5. Tamam düğmesini seçin.

Kendi yapınızdaki varlıklar da dahil olmak üzere

Projeniz, kullanmak istediğiniz 3B varlıkların farklı türlerini bildiğine göre, bir sonraki adım, hangi dosyaların 3B varlıklar olduğunu ve bunların ne tür varlıklar olduğunu ona söylemek olacaktır.

Yapınıza bir varlık eklemek için

  1. Çözüm Gezgini öğesinde bulunan projenizde bir varlığın kısayol menüsünü açın ve arından Özellikler seçimini belirtin.Varlıkların Özellik Sayfaları iletişim kutusu görüntülenir.

  2. Yapılandırma ve Platform özelliklerinin, değişikliklerinizin uygulanmasını istediğiniz değerlere ayarlandığından emin olun.

  3. Yapılandırma Özellikleri'nin altında Genel'i seçin ve sonra özellik kılavuzunda Genel'in altında Öğe Türü özelliğini uygun içerik ardışık düzeni öğe türüne ayarlayın.Örneğin, bir resim veya doku dosyası için Görüntü İçerik Ardışık Düzeni öğesini seçin.

    Önemli notÖnemli

    Varsayılan olarak, Visual Studio pek çok görüntü dosyasınınVisual Studio içinde oluşturulmuş Görüntü öğe türü kullanarak kategorize olması gerektiğini varsayar.Bu nedenle, görüntü içeriği ardışık düzeni tarafından işlenmesini istediğiniz her görüntünün Öğe Türü özelliğini değiştirmelisiniz.3B modeller ve görsel gölgelendirici grafikler için içerik ardışık düzeni kaynak dosyalarının diğer türleri, varsayılan olarak doğru Öğe Türü değerini alır.

  4. Tamam düğmesini seçin.

Üç ardışık düzen öğe türü ve ilişkili kaynakları ve çıktı dosya türleri aşağıdadır:

Öğe Türü

Kaynak dosyası türleri

Çıkış dosyası biçimi

Görüntü İçeriği Ardışık Düzeni

Taşınabilir Ağ Grafikleri (.png)

JPEG (.jpg, .jpeg, .jpe, .jfif)

Doğrudan Çizim Yüzeyi (.dds)

Grafik Değişim Biçimi (.gif)

Bit eşlem (.bmp, .dib)

Etiketli Resim Dosyası Biçimi (.tif, .tiff)

Targa (.tga)

Doğrudan Çizim Yüzeyi (.dds)

Ağ İçeriği Ardışık Düzeni

AutoDesk FBX Takas Dosyası (.fbx)

Collada DAE Dosyası (.dae)

Wavefront OBJ Dosyası (.obj)

3-D mesh dosyası (.cmo)

Gölgelendirici İçerik Ardışık Düzeni

Görsel Gölgelendirici Grafiği (.dgsl)

Derlenmiş Gölgelendirici Çıktısı (.cso)

Varlık içeriği ardışık düzen özelliklerini yapılandırma

Belirli bir şekilde oluşturulması için her varlık dosyasının içerik kanalı özelliklerini ayarlayabilirsiniz.

İçerik ardışık düzeni özelliklerini yapılandırmak için

  1. Çözüm Gezgini öğesinde bulunan projenizde varlık dosyası için kısayol menüsünü açın ve arından Özellikler seçimini belirtin.Varlıkların Özellik Sayfaları iletişim kutusu görüntülenir.

  2. Yapılandırma ve Platform özelliklerinin, değişikliklerinizin uygulanmasını istediğiniz değerlere ayarlandığından emin olun.

  3. Yapılandırma Özellikleri'nin altında, içerik ardışık düzeni düğümünü seçin (örneğin, doku ve resim varlıkları için Resim İçerik Ardışık Düzeni) ve sonra özellik kılavuzunda özellikleri uygun değerlere ayarlayın.Örneğin, oluşturma zamanında doku varlığı için mipmap üretmek istiyorsanız, Mip Oluştur özelliğini Evet olarak ayarlayın.

  4. Tamam düğmesini seçin.

Hh972446.collapse_all(tr-tr,VS.110).gifGörüntü içeriği ardışık düzen yapılandırması

Bir doku varlığı oluşturmak için görüntü içeriği ardışık düzen aracını kullandığınızda, dokuyu çeşitli şekillerde sıkıştırabilir, MIP düzeylerinin oluşturma zamanında oluşturulup oluşturulmaması gerektiğini belirleyebilir ve çıkış dosyasının adını değiştirebilirsiniz.

Özellik

Tanımlama

Sıkıştır

Çıkış dosyası için kullanılan sıkıştırma türünü belirtir.

Kullanılabilir seçenekler:

  • Sıkıştırma yok

  • BC1_UNORM sıkıştırma

  • BC1_UNORM_SRGB sıkıştırma

  • BC2_UNORM sıkıştırma

  • BC2_UNORM_SRGB sıkıştırma

  • BC3_UNORM sıkıştırma

  • BC3_UNORM_SRGB sıkıştırma

  • BC4_UNORM sıkıştırma

  • BC4_SNORM sıkıştırma

  • BC5_UNORM sıkıştırma

  • BC5_SNORM sıkıştırma

  • BC6H_UF16 sıkıştırma

  • BC6H_SF16 sıkıştırma

  • BC7_UNORM sıkıştırma

  • BC7_UNORM_SRGB sıkıştırma

DirectX'in farklı sürümlerinde hangi sıkıştırma biçimlerinin desteklendiği hakkında bilgi için bkz. DXGI için Programlama Kılavuzu.

Mips üret

Oluşturma zamanında tam bir MIP zincir oluşturmak ve onu çıkış dosyasına eklemek için Evet; aksi takdirde No.Hayır ise ve kaynak dosyası zaten mipmap zinciri içeriyorsa, çıkış dosyasında da MIP zinciri olur; aksi takdirde, çıkış dosyasında MIP zinciri olmaz.

İçerik Çıktısı

Çıkış dosyasının adını belirtir.

Önemli notÖnemli
Çıkış dosyasının dosya adı uzantısını değiştirmek dosyanın formatını etkilemez.

Hh972446.collapse_all(tr-tr,VS.110).gifAğ içeriği ardışık düzen yapılandırması

Kafes değer oluşturmak için kafes içerik ardışık düzen aracını kullandığınızda, çıkış dosyasının adını değiştirebilirsiniz.

Özellik

Tanımlama

İçerik Çıktısı

Çıkış dosyasının adını belirtir.

Önemli notÖnemli
Çıkış dosyasının dosya adı uzantısını değiştirmek dosyanın formatını etkilemez.

Hh972446.collapse_all(tr-tr,VS.110).gifGölgelendirici içerik ardışık düzeni yapılandırması

Gölgelendirici değerini oluşturmak için gölgelendirici içeriği ardışık düzen aracını kullandığınızda, çıkış dosyasının adını değiştirebilirsiniz.

Özellik

Tanımlama

İçerik Çıktısı

Çıkış dosyasının adını belirtir.

Önemli notÖnemli
Çıkış dosyasının dosya adı uzantısını değiştirmek dosyanın formatını etkilemez.

Çalıştırma zamanında 3B varlıkları yükleme ve kullanma

Hh972446.collapse_all(tr-tr,VS.110).gifDokuları ve resimleri kullanma

Direct3D doku kaynakları oluşturmak için işlevler sağlar.Direct3D 11'de, doku kaynaklarını ve kaynak görünümünü doğrudan görüntü dosyalarından oluşturmak için D3DX11 yardımcı program kitaplığı ek işlevler sağlar.Direct3D 11'de doku kaynağı oluşturma hakkında daha fazla bilgi için bkz. Dokular.D3DX11 kitaplığı doku kaynağı veya kaynak görünümü oluşturmak için nasıl kullanılacağı hakkında daha fazla bilgi için bkz: bir görüntü dosyasından nasıl: bir doku bir dosyadan başlatmak.

Hh972446.collapse_all(tr-tr,VS.110).gif3-D modelleri kullanma

Direct3D 11, 3B modellerden kaynak oluşturmak için işlev sağlamaz.Bunun yerine, 3 boyutlu model dosyasını okuyan ve 3 boyutlu modeli ve modelin gerektirdiği herhangi bir kaynağı, örneğin dokuları ve gölgelendiricileri temsil eden dizin arabellekleri oluşturan kod yazmanız gerekir.

Hh972446.collapse_all(tr-tr,VS.110).gifGölgelendiricileri kullanma

Direct3D, gölgelendirici kaynak oluşturmak ve bunları programlanabilir grafik ardışık düzene bağlama işlevleri sağlar.Direct3D gölgelendirici kaynak oluşturmak ve ardışık düzene bağlama hakkında daha fazla bilgi için bkz: hlsl için Programlama Kılavuzu.

Programlanabilir grafik ardışık düzende, ardışık düzenin her aşaması, ardışık düzenin bir sonraki aşamasına anlaşılabilir şekilde biçimlendirilmiş bir sonuç vermelidir.Gölgelendirici Tasarımcısı yalnızca piksel gölgelendiricileri oluşturabildiğinden, bu aldığı verilerin beklediği biçimde olmasını sağlamak uygulamanıza kalmıştır anlamına gelir.Birçok programlanabilir gölgelendirici aşamaları, piksel gölgelendiricisinden önce oluşur ve geometrik dönüştürmeler (köşe gölgelendiricisi, hull gölgelendiricisi, etki alanı gölgelendiricisi ve geometri gölgelendiricisi) gerçekleştirir.Ayrıca, programlanabilir olmayan mozaik döşeme aşaması piksel gölgelendiriciden önce gerçekleşir.Bu aşamalardan hangisi doğrudan piksel gölgelendiricisinin önünde olursa olsun, sonucunu bu biçimde vermelidir:

struct PixelShaderInput
{
    float4 pos : SV_POSITION;
    float4 diffuse : COLOR;
    float2 uv : TEXCOORD0;
    float3 worldNorm : TEXCOORD1;
    float3 worldPos : TEXCOORD2;
    float3 toEye : TEXCOORD3;
    float4 tangent : TEXCOORD4;
    float3 normal : TEXCOORD5;
};

Gölgelendiricinizde kullandığınız Gölgelendirici Tasarımcısı düğümlerine bağlı olarak, bu tanımlara göre biçime ek veri sağlamanız gerekebilir:

Texture2D Texture1 : register( t0 );
Texture2D Texture2 : register( t1 );
Texture2D Texture3 : register( t2 );
Texture2D Texture4 : register( t3 );
Texture2D Texture5 : register( t4 );
Texture2D Texture6 : register( t5 );
Texture2D Texture7 : register( t6 );
Texture2D Texture8 : register( t7 );

TextureCube CubeTexture1 : register( t8 );
TextureCube CubeTexture2 : register( t9 );
TextureCube CubeTexture3 : register( t10 );
TextureCube CubeTexture4 : register( t11 );
TextureCube CubeTexture5 : register( t12 );
TextureCube CubeTexture6 : register( t13 );
TextureCube CubeTexture7 : register( t14 );
TextureCube CubeTexture8 : register( t15 );

SamplerState TexSampler : register( s0 );

cbuffer MaterialVars : register (b0)
{
    float4 MaterialAmbient;
    float4 MaterialDiffuse;
    float4 MaterialSpecular;
    float4 MaterialEmissive;
    float MaterialSpecularPower;
};

cbuffer LightVars : register (b1)
{
    float4 AmbientLight;
    float4 LightColor[4];
    float4 LightAttenuation[4];
    float3 LightDirection[4];
    float LightSpecularIntensity[4];
    uint IsPointLight[4];
    uint ActiveLights;
}

cbuffer ObjectVars : register(b2)
{
    float4x4 LocalToWorld4x4;
    float4x4 LocalToProjected4x4;
    float4x4 WorldToLocal4x4;
    float4x4 WorldToView4x4;
    float4x4 UVTransform4x4;
    float3 EyePosition;
};

cbuffer MiscVars : register(b3)
{
    float ViewportWidth;
    float ViewportHeight;
    float Time;
};

Ayrıca bkz.

Görevler

Nasıl yapılır: bir gölgelendirici verme

Diğer Kaynaklar

Oyunlar ve uygulamalar için 3-b varlıklarla çalışma.