Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
YENİ Texture(Doku) ve UV Üzerine Temel Bilgiler
#1
Information 

Renk Kanalları


Oyunlarda materyaller içinde objeler(static me skeletal mesh) için ve kullanıcı arayüzlerinde kullandığımız texture(doku) lar temelinde her biri 0-1 arası değerlere sahip üç ayrı renk kanalından oluşur; Kırmızı(Red), Yeşil(Green) ve Mavi(Blue) => Materyal editörü içinde texture node'unda görünen R,G ve B çıkışları.

4x4_zpshbfse5ax.jpg
Resim 1

Resim 1'in 4x4 pixel çözünürlüğünde bir texture olduğunu varsayarsak her pixel 0-1 aralığında bir değere sahip ve bu değerler de 0 siyah, 1 beyaz ve ara değerler de ara tonlar olarak görünür.

RGB_zps6h7ywo8b.png
Resim 2


Resim 2'de bu değerlerin 3 kanalda nasıl işlendiğini görebiliriz. Her kanalda kendi rengine ait pixeller beyaz(1) olarak görünürken geriye kalan pixeller siyah(0) olarak görünüyor.

Bunları hesaba katarak bu(veya herhangi bir)texture'ı Unreal Engine içine getirdiğimizde materyal editöründe sayısal hesaplamalar yaparak texture'ı manipule edebiliriz veya başka bir texture ile etkileşime sokabiliriz.

Add_zpsfrrphcfx.png
Resim 3


Multiply_zps5tt6f497.png
Resim 4


Resim 3'de kırmızı ve mavi kanalların değerlerini topluyoruz(Add) Sonuçta kırmızı ve mavi için 1+0 işlemi yapılıp, yeşil pixelleri için 0+0 işlemi yapılıyor ve sonuçta kırmızı ve mavi pixelleri beyaz(1) çıkarken, yeşil siyah(0) çıkıyor.

Resim 4'te ise çarpma işlemi yaptırılıyor(Multiply) ve kırmızı kanalda mavi alanın değeri 0, mavi kanalda da kırmızı alanın değeri 0 olduğu için 1x0=0, sonuç siyah.

Aşağıda resim 5'te bu tür hesaplamaları kullanarak tek bir texture ile ne yapılabileceğini görebilirsiniz.

texturetexture_zpsk5pfuwxd.png
Resim 5


Bunlardan çıkartacağımız bir başka sonuç da maskeleme yapmak için kullandığımız texture'ları(Opacity mask, roughness, specular, metallic texture'ları) ayrı ayrı dosyalar olarak kullanmak yerine 3 tanesini tek bir texture'ın renk kanallarına yerleştirip motor içine getirebiliriz.

Texture boyutlarının 2'nin katları olmasına özen gösterin!!!

512x512
2048x2048
1024x512


gibi boyutlar kullanılmalı ki motor hem performans hem de kalite amaçlı "mipmapping" yapabilsin.
UI(kullanıcı arayüzü) için kullanılanlar gözardı edilebilir, sürekli aynı mesafede oldukları ve çoğu zaman tekrar etmedikleri için.

Ek olarak bir de Alpha kanalı diye bir kavram var, beyaz pin çıkışı. Bunu da ek kanal olarak Photoshop'ta(veya Gimp) doldurup kullanabilirsiniz ama mecbur kalmadıkça yapmamanızı tavsiye ederim. Alpha kanalında bilgi olan texture'ın boyut maliyeti 2 katına çıkıyor!


UV Mantığı

Objelere UV atama denildiğinde yapılan şeyi bir elbiseye kalıp çıkartmak veya bir kutuyu hediye paketiyle kaplamak olarak düşünebilirsiniz. Hemen hemen bütün modelleme programlarında yaratılan objelerin siz atasanız da atamasanız da bir UV haritası(map) bulunur. Bu UV haritası normalde 0-1 aralığında açılır. U ve V yi X ve Y olarak düşünürsek;

U > 0-1
V > 0-1


Aşağıdaki resimde yeni yaratılmış bir küpü varsayılan UV'si ile görebilirsiniz(Uygulama 3ds Max.) Seçili olarak görünen 0-1 aralığındaki alan kullanacağımız texture'ın kapladığı alandır. Modelleme programı ve farklı offline render motorlarında gerekirse bu alanın dışında yüzey açılıp farklı şekillerde kullanılabilir fakat Unreal Engine objenin texture uygulanacak(veya lightmap için kullanılacak) tüm yüzeylerinin bu alan içinde olmasını gerektirir.  

UV_1_zpsm9te4wf9.png
Resim 6

Bu küpe aşağıdaki gibi kendimiz bir UV haritası hazırladığımız zaman bunu texture programımızda kullanıp modele uygun bir texture hazırlayabiliriz.

UV_2_zpsjwxjvuhz.png
Resim 7



Sonuç;

UV_3_zps6hsoo9ig.png
Resim 8

0-1 UV alanı dışına çıkamasak da farklı amaçlar için birden farklı UV koordinatı kullanabiliriz(UV koordinatı yaratma her modelleme programına göre değişen bir operasyondur. Nasıl yapıldığına dair internette yeterince kaynak bulabilirsiniz) Örneğin lightmap uygulamaya daha elverişli 2. bir UV kanalı yarattığımızda ortaya şu sonuç çıkar:

UV_4_zpsoqzhphjy.png
Resim 9

Texture bu koordinatta doğru görünmese de lightmap hesaplamasında sorun çıkartmayacaktır.
UV alanı sınırlı olduğu için çoğu zaman tekrarlayan texture kullanacağımızda buna materyal içinden müdahele etmemiz gerekir. Texture Coordinate node'unu texture'ın UV girişine bağlayıp tekrar(Tile) sayısını 3x3 yaptığımızda ortaya şu sonuç çıkar:

UV_Tile_zpsioi73trk.png
Resim 10

Göründüğü gibi texture'ı 3 kere tekrarlattığımızda sol üst köşeye, yani 0'a doğru tekrarlama gerçekleşir. Coordinate Index seçerek texture'ı önceden hazırladığınız farklı UV koordinatına göre de tekrarlattırabilirsiniz.


Texture Editörü Details Paneli

Details_zpsckd3nr8z.jpg
Resim 11

Compression Settings > Base Color, roughness ve metallic gibi texture'lar otomatik olarak Default olarak ayarlanır, çoğu zaman olması gereken de budur.

Texture Group > Texture'ı kullanacağınız yere göre buradan bir grup belirlenir.

Mip Gen Settings > Kendiniz müdahele etmediğiniz sürece bu ayar From Texture Group şeklinde kalır, bu sayede motor texture grubuna göre gereken mipmap hesaplamalarını gerçekleştirir.
Özelden sorulan UE4 soruları cevaplanmayacaktır...
Cevapla
 


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Video Texture ve Material Boyutlandırma bybenjo 1 30 1 saat önce
Son Yorum: Khubur
  Unreal Engine 4 Türkçe Videolu Ders | Material Instance & Texture Boyutlandırma | Phyrexian 2 2,250 30-08-2015, Saat: 00:34
Son Yorum: Phyrexian

Hızlı Menü:


Unreal Engine Türkiye

This forum is only for fans and support. It has nothing to do with Epic Games.

Bu site sadece fan ve destek amaçlıdır. Epic Games ile bir ilgisi yoktur.