# TressFX
AMD TressFX, GPU tarafından işlenecek saç, kürk ve otların gelişmiş simülasyonunu ve işlemesini sağlayan bir yazılım kitaplığıdır. İlk kitaplık, AMD'nin GCN tabanlı ürünlerinde verimli performans gösterecek şekilde yazılmıştır. Yalnızca Direct3D 11 ile çalışarak DirectCompute kullanan üçüncü sürüm, 26 Ocak 2016'da yayınlanmıştır.
Nvidia tarafından sunulan rekabetçi bir çözüm ise Nvidia GameWorks paketinin bir parçası ve tescilli olan HairWorks teknolojisidir.
GPUOpen projesinin bir parçası olarak yayınlanan AMD "TressFX", MIT Lisansına tabi özgür ve açık kaynak kodlu yazılımdır.


## Gelişimi ve çıkış sebebi.
Geleneksel olarak, video oyunlarında saç ve tüylerin görünüşü birçok nedenden dolayı ortalamanın altında olmuştur. Kısa saçlar için (özellikle erkek oyun karakterlerinde), saç genellikle karakterin iskeletine bağlı olan detaylandırılmış bir doku ile temsil edilmiştir. Bu yöntem, kafatası üzerinde düz bir şekilde durmayan saç stillerini temsil etmeyi zorlaştırır. Daha uzun saç türleri genellikle iskeletin hareketli bir parçası üzerindeki bir doku olarak temsil edilir ve eklemli bir uzantı gibi hareket eder. Bu saç türü sabit olana göre daha fazla harekete sahip olsa da, hareket fiziksel olarak gerçekçi değildir. Saçın tamamı tek bir parça gibi hareket eder ve saç tüylerinin sönümleme hareketi genellikle az ya da gereğinden fazla olmuştur.
Bunun üstesinden gelmek için AMD, TressFX Hair teknolojisini geliştirdi. TressFX Hair, potansiyel olarak binlerce saç telinin her birini, saç teli başına düzinelerce bağlantıyla ayrı ayrı modeller. Her saç tüyü, kütleçekim, eylemsizlik, rüzgâr ve bir karakterin kafasının hareketi gibi farklı fiziksel kuvvetlere tepki verir. Bu, saçın fiziksel olarak çok daha gerçekçi bir şekilde hareket etmesini sağlar.
Binlerce saç telini simüle etmek, hesaplama açısından bir karakterin iskeleti üzerinde tek bir doku kullanmaktan çok daha zorlu olduğundan, "TressFX Hair"'ın oyun performansı ve saniyedeki kare sayısı üzerindeki etkisi görmezden gelinemez miktardadır. Yüksek hafızaya sahip ekran kartı, işlemin bindirdiği yükün görmezden gelinmesini sağlayabilir. Fakat performansı düşük eski ekran kartları, her kareyi oluşturma süresinin büyük bir kısmını saçları işlemek için harcarsa oyun performansı önemli ölçüde olumsuz etkilenebilir. Elbette performans ayrıca grafik ayarları, çözünürlük, sahnede gösterilecek saçlı nesne sayısı, nesne başına düşen saç miktarı ve nesneye olan mesafe ile ilişkilidir.


## Versiyonlar.
### Sürüm 1.0.
"TressFX Hair" 1.0, AMD'nin bu yazılımının 2013'teki ilk sürümüdür. Sürüm 1.0, kürk veya çimen için değil, yalnızca saç için destek sunuyordu. "TressFX Hair" teknolojisi ilk olarak, Tomb Raider oyununda görülmüştür.


### Sürüm 2.0.
Sürüm 2.0, sürüm 1.0 üzerinde birçok iyileştirme sunar:
  - Kesintisiz Ayrıntı Düzeyi (LOD), "TressFX" özellikli nesneler oyuncunun bakış açısına göre yaklaşıp uzaklaşırken görsel ayrıntıları dinamik olarak ayarlayarak performansı artırmak için tasarlanmıştır. Bu, bir nesneden uzaktayken her bir kılı daha kalın var sayıp daha az kıl işleyerek berim süresini azaltırken aynı görünüm ve estetiği koruyarak yapılır.
  - Saça ek olarak çim ve kürk için işlemeyi destekleyen yeni işlevsellik getirildi.
  - Kıllar gruplandırıldı. Saç, kafada doğal olarak bir arada gözükür. Ancak "TressFX" 1.0 tarafından üretilen görüntülerde saçlar doğal olmayan bir şekilde ayrık görünüyordu.
  - Saç üzerinde etki eden yerçekimi değiştirilebilir. Örneğin, yüzerken saç batmazlık etkisine sahip olmalı fakat ne fazla batmalı ne fazla yüzmelidir. Bunu başarmak için saçın ağırlığı 0 olarak ayarlanabilir.
  - Ertelenmiş işleme yoluyla birçok ışık kaynağı ve gölgelendirici ile verimlilik artırıldı.
  - Saçın kendini içinde gölgelenmesiyle daha iyi derinlik ve doku kalitesi sağlandı.
  - Değişken performans aralığına sahip GPU'lar arasında daha da sağlam ölçeklenebilirlik.
  - Modüler kod ve porting dokümantasyonu yazıldı.
  - Esnemenin fizik yasalarına uygun olması sağlandı.


### Sürüm 3.0.
TressFX 3.0 kullandığı onaylanan ilk oyun olmuştur.


### Sürüm 4.0.
TressFX'in 4.0 sürümü 20 Nisan 2018'de yayınlandı ve DirectX 12 desteği de dahil olmak üzere çok çeşitli iyileştirmeler getirdi. Bu sürüm aynı zamanda teknolojiyi mevcut işleme yazılım çerçevelerine aktarmanın çok daha kolay olmasına odaklandı.


### Sürüm 4.1.
Bu sürüm 20 Ocak 2020'de yayınlandı. Bazı performans iyileştirmeleri içeriyordu, ancak çoğunlukla mevcut işleme çerçeveleriyle daha iyi entegrasyona odaklandı. Ayrıntılı dokümantasyon dahil olmak üzere Epic Games Unreal Engine 4.22'ye entegrasyon sağlanması konusunda geliştirmeler yapıldı.


### Sürüm 5.0.
Unreal Engine 4.26 ve 4.27 sürümleri için güncellenen "TressFX", bir yama şeklinde sunuldu. özeli TAA, SkyLight, Marschner Shading Model gibi özellikleri desteklemektedir. 


### PureHair.
PureHair, Rise of the Tomb Raider'da kullanılmak üzere Square Enix tarafından değiştirilmiş bir TressFX sürümüdür.