Material (materyal) ekleme ve editleme modlamayla uğraşan arkadaşların temel bilmesi gereken konulardan biridir. Bu derste temel olan birkaç şey öğreneceğiz. Bu işlem source gold dışındaki tüm source motorlarında geçerlidir. Materyalden bahsetmek gerekirse, oyundaki modellerde, haritalarda, eşyalarda, silahlarda, efektlerde yada diğer şeylerin üstünde bulunan grafik kaplamasına materyal denir. Bu materyaller, texture (grafik), bumpmap, selfillum, phong gibi birçok detaylı ışıklandırma,aydınlatma, ve diğer şeylerin dosyaları ve ayarlarını içerir. Bu içerikler sayesinde gördüğümüz dokuların dış görüntüsü detaylı şekilde renderer tarafından oluşturulur. İlerki derslerde bu detaylara değinip, öğreneceğiz. Bize gerekli olan 2 dosya var. Bunlar .VTF (valve texture file) ve .VMT (valve material file). Bu derse bu dosyalar nasıl yapılır bunları göreceğiz.

 

Öncelikle aşağıdan VTFEdit adlı programı indirin. (.NET Framework v2.0 gereklidir)

 

 

 

 

Adım-1: Import işlemini yapıp .VTF dosyasını üretelim

 

  • Programı açın, sol üstten File kısmına tıklayıp Import seçeneğine tıklayın. Ardından import etmek istediğiniz bir fotoğraf seçin. Benim seçtiğim fotoğraf sağ tarafta ve arkaplanı şeffaf, isterseniz örnek olarak onu kullanın. (Not: Eğer herhangi bir materyali editlemek istiyorsanız o materyalin .vtf dosyasını açıp File kısmından Export’a tıklayıp grafiği çıkartın ardından üstteki Import işlemini uygulayın)
  • Seçtikten sonra önünüze yeni bir pencere açılacak, burada şimdilik bizi ilgilendiren Normal Format, Alpha Format ve Texture Type kısmıyla ilgileneceğiz. Normal Format yazan kısım grafiğimizin şeffaf kısmı haricindeki tüm pixeller anlamına geliyor. Alpha Format ise Şeffaf kısımların belirtildiği alandır. Bunların karşısında olan kutularda biçim ve sıkıştırma türleri mevcut. Bizim temel olarak bilmemiz gereken ayarlar DXT1, DXT3, DXT5, BGR888, BGRA888 ve UV88’dir.

 

Kısaca özetlemek gerekirse; DXT1 özelliği grafiğin boyutunu en çok sıkıştıran yöntemdir fakat şeffaf kısımları içermediğinden şeffaflık gereken grafiklerde kullanılmaz. DXT3 aynı şekilde boyutu sıkıştırır fakat şeffaf kısımları şu şekilde alır, eğer tamamen şeffaf ise grafiğin şeffaf kısımları materyalde şeffaf gözükür. Eğer yarım şeffaf yada şeffaf değilse şeffaf kısımlar tamamen karanlık gözükür. DXT5 ise şeffaları’da sıkıştırır en az sıkıştıran yöntemdir. Bu DXT sıkıştırma yöntemleri az miktarda da olsa grafiğin kalitesini düşürmektedir. BGR888 sıkıştırılmamış grafik fakat şeffaflıkları içermez siyah gözükür, BGRA888 sıkıştırılmamış grafik ve şeffaflıkları içerir. UV88 ise normal map denilen sıkıştırılmamış grafikleri kapsar. Detaylı bilgi için tıklayın.

 

  • Burada seçmemiz gereken Normal Format için DXT1, Alpha Format için ise DXT5 bunun sebebi Normal Format kısmında şeffaflıklar önemsizdir bu bilgiyi içermez fakat Alpha Format kısmında ise bu bilgi verilir. DXT3 yapabilirdim ama grafiğin kenarları tamamen şeffaf olduğundan emin değilim oyüzden DXT5 yaptım.
  • Texture Type kısmında ise Animated Texture ayarını kullanacağız. Diğer Environment Map ve Volume Texture diğer derslerde anlatılacaktır.
  • Resize ve diğer ayarlara dokunmanıza gerek yoktur aynı şekilde onlarda diğer derslerde detaylı olarak anlatılacaktır.
  • OK dedikten sonra grafiğimiz ekrana çıkacaktır. Aynı şekilde sol alttaki flag ayarları gibi diğer ayarlara dokunmayın diğer derslerde gösterilecektir. Daha sonra oyunumuza, materials/klasörismi/ şeklinde istediğiniz kısma kaydedin bukadar.

Adım-2: .VMT Dosyası Üretelim

  • VTF’nizi kaydettikten sonra yukarda tools kısmından Create VMT file‘ye tıklayın. Çıkan pencerede normal, bumpmap ve diğer textureleri ekleyebileceğiniz ayarlar mevcut, ve bunlarda diğer derslerde görülecektir. Yukardan Options yazan sekmeye tıklayın. Açılan kısımda birçok ayar mevcut bizim için gerekli olanları Shader, Surface 1 ve Translucent kısmıdır. Shader kısmında genel olarak bilmemiz gereken shaderler VertexlitGeneric, UnlitGeneric ve LightmappedGeneric shaderleridir. VertexlitGeneric shaderi oyundaki 3D modeller için kullanılan shaderdir. UnlitGeneric ise oyun aydınlatmalarından bağımsız şekilde kullanılması amacıyla yapılmış shaderdir. Genelde UI arayüzü, HUD gibi yerlerde kullanılır. LightmappedGeneric shaderi ise brush, sprites gibi yüzeyler için kullanılır. Işığı simüle eden materyal kodlarıyla renderlanmaya olanak sağlar. Biz burda materyalimizi modele uygulayacağımız için VertexlitGeneric shaderini kullanacağız.
  • Surface kısmı materyalin hangi ses ve diğer efektleri sağlayacağı özelliklerini içerir. Ordan rasgele birşey seçebilirsiniz.
  • Son olarakta aşağıdaki diğer seçeneklerden Translucent yazan kutuyu işaretleyin çünkü grafiğimizin arkası şeffaf ve modelde bu şekilde kullanacağım.
  • Ardından Create butonuna basın ve .vtf dosyanızın yanına kaydedin ve işlemimiz tamam.

 

İşlemlerimiz bukadar. Oyunda denersek görüntüsü şöyle olacaktır: