
XGen ve .tx Dosyaları Render Farm'ınızda Bozuluyor mu? Maya Ön Kontrol Rehberi
Genel bakış
Giriş
Bir workstation'da kusursuz render alınan ancak render farm'dan hatalı dönen bir sahne, bir Maya pipeline'ındaki en kafa karıştırıcı arızalardan biridir - günlükte (log) hiçbir şey "sizi" işaret etmez ve sahne dosyasının kendisinde bozuk hiçbir şey yoktur. En yaygın iki suçlu XGen ve .tx doku önbellekleridir. İkisi de tasarım gereği ana sahne dosyasının dışında çalışır: XGen, groom ve description verilerini ayrı collection ve archive klasörlerinde saklar; Arnold'ın MtoA eklentisi ise kaynak dokularınızın yanında kendi tiled .tx doku önbelleğini sessizce oluşturabilir. .ma veya .mb dosyasını yerel olarak açtığınızda hiçbir sorun görünmez, çünkü yerelde bu harici dosyalar zaten Maya'nın beklediği yerde durmaktadır.
Bu deseni freelance ve küçük stüdyo Maya işlerinde yeterince sık görüyoruz ki düzgünce yazıya dökmeye değer: farm render'ında "kaybolan" saç veya tüy ile bir frame'in ortasında açıklanamayan bir OpenImageIO hatası veren doku, neredeyse hiçbir zaman yazılım hatası değildir. Bunlar asset toplama ve önbellek bayatlaması (cache staleness) sorunlarıdır ve her ikisi de gönderim öncesi kısa bir ön kontrol (preflight) geçişiyle önlenebilir.

Groom ve önbellek verilerinin yerel bir workstation'da doğru şekilde çözümlendiğini ancak bir render farm node'unda eksik olduğunu, bunun da render'dan saç veya tüyün kaybolmasına yol açtığını gösteren diyagram.
XGen Neden Render Farm'da Bozulur (Sahne "Sorunsuz Görünse" Bile)
XGen, bir groom veya description'ı .ma/.mb dosyasına gömülü geometri olarak saklamaz. Bunun yerine bir referans olarak saklar: description'ın nasıl yapılandırıldığına bağlı olarak bir .xgen palette dosyası, artı bir collections klasörü (description başına groom verisi) ve bir archives klasörü (description bir archive'dan render edecek şekilde ayarlanmışsa, canlı üretmek yerine kaydedilmiş point-cache veya Alembic verisi). Sahneyi yerel olarak açtığınızda Maya, bu referansları makinenizde veya yerel ağ paylaşımınızda zaten var olan yollara göre çözümler. Aynı sahne bir render farm node'una ulaştığında, bu yollar genellikle mevcut değildir - çünkü mutlak (absolute) yollardı, çünkü render farm node'unun eşlenmediği bir UNC paylaşımını gösteriyorlardı ya da sadece .ma/.mb dosyası yüklendi ve yanındaki xgen/ klasörü hiç yola çıkmadı.
Sonuç nadiren sert bir hata olur. XGen genellikle description'ı sessizce çözümleyemez ve render tamamlanır - sadece orada olması gereken saç, tüy veya tüyler (feathers) olmadan. Bu, hata ayıklamayı bu kadar can sıkıcı yapan spesifik arıza modudur: frame'deki her şey doğru render edilir, sürücüler eşlenmiş olarak raporlanır ve farm'daki Maya ile XGen sürümü workstation'la tam olarak eşleşir - groom sadece yok olmuştur, çünkü onu üreten dosyalar hiç ulaşmamıştır.
İkinci, ilişkili bir neden: xgen/ klasörü toplanmış olsa bile, description'ın "render zamanında üret" ile "önbelleklenmiş/archive'lanmış" ayarı arasındaki fark önemlidir. Bir description bir archive'dan çekecek şekilde ayarlanmışsa ve o archive yolu, farm node'unun paylaşmadığı bir proje yapısına göre göreceli (relative) ise, description canlı üretilen bir groom'a geri dönmek yerine hiçbir şeye çözümlenmez.

Collection ve archive yol alanlarını vurgulayan genel bir description editörü tarzı panel; XGen groom veri referanslarının ana sahne dosyasının dışında nerede bulunduğunu gösterir.
.tx Doku Dosyaları Neden Render Farm'da Bozulur
.tx, OpenImageIO'nun maketx aracıyla üretilen, tiled (döşenmiş) ve mipmapped bir doku formatıdır. Arnold, .tx dokularını ham kaynak formatlarına göre daha hızlı ve daha düşük bellek ayak iziyle okur; MtoA'nın (Arnold'ın Maya eklentisi) "Auto-Convert Textures to TX Files" seçeneğini sunmasının nedeni de budur - kayıt sırasında veya render sırasında, kaynak dokularınızın yanında sessizce bir .tx önbelleği oluşturur.
Bu otomatik dönüştürme (auto-convert) davranışı, tek bir yerel diski ve tutarlı tek bir OpenImageIO sürümü olan tek bir workstation'da uygundur. Dağıtık bir render farm genelinde çok daha az güvenilir bir davranıştır; üç ayrı nedenden ötürü:
- Bayat önbellek (stale cache). Bir kaynak doku,
.txdosyası üretildikten sonra düzenlenirse ve normalde yeniden dönüştürmeyi tetikleyecek zaman damgası (timestamp) kontrolü çalışmazsa (veya farm node'unun ihtiyaç duyduğu yazılabilir konum, dosyanın üretildiği konumla aynı değilse), Arnold hiçbir uyarı vermeden güncelliğini yitirmiş bir.txdosyası yükleyebilir. - Sürüm uyuşmazlığı (version mismatch).
maketx/OpenImageIO sürümleri, Arnold ve MtoA sürümleri arasında farklılık gösterir. Bir OIIO sürümüyle üretilen.txönbelleği, farm tarafında farklı bir sürümle geri okunduğunda okuma hatalarına yol açabilir - genellikle frame'i iptal eden, belirtilmemiş bir OIIO hatası olarak ortaya çıkar. - Paylaşılan veya salt okunur yollarda yazma çakışması. Auto-convert, kaynak dokunun yanına bir
.txdosyası yazabileceğini varsayar. Bir render farm'da bu konum salt okunur olabilir, eşzamanlı işler arasında paylaşılıyor olabilir veya basitçe workstation'ın kullandığı fiziksel yol ile aynı olmayabilir; bu nedenle dönüştürme ya sessizce başarısız olur ya da iki node aynı önbellek dosyasını yazmak için yarışır.
Bu o kadar yaygın bir durumdur ki, sektör genelindeki render farm dokümantasyonu - sadece bizimki değil - Maya/Arnold kullanıcılarına, auto-convert davranışının kendisini düzeltmeye çalışmak yerine bunu önlemek için özellikle "Auto-Convert Textures to TX Files" seçeneğini devre dışı bırakmalarını rutin olarak söyler. Daha güvenilir yöntem, bilinçli bir tercih yapmaktır: ya dokuları bilinen, sabitlenmiş (pinned) bir maketx sürümüyle önceden .tx'e dönüştürüp bu .tx dosyalarını asset koleksiyonunun bir parçası olarak göndermek, ya da auto-convert'i tamamen kapatıp ham kaynak dokuları göndermek ve dönüştürmeyi farm'ın renderer'ının kendi ucunda tutarlı biçimde halletmesine izin vermek.

maketx tarafından bir .tx önbelleğine dönüştürülen bir kaynak dokuyu gösteren pipeline diyagramı; ikinci bir dal, bayat veya sürüm uyuşmazlığı olan bir önbelleğin doku okuma hatasına yol açtığını gösterir.
Maya'nın Sahne Arşivi Sizin İçin Neyi Toplamaz
Maya'nın yerleşik sahne arşivleme özelliği (Send To / archive project), standart referans modeli etrafında kuruludur: Maya'nın kendi file node'ları üzerinden bağlanan doku dosyaları ve sahne grafiğinin içinde yaşayan geometri. XGen bu modele tam olarak uymaz; bu yüzden onun verisi, aksi halde "eksiksiz" olan bir asset koleksiyonunda en sık gözden kaçan parçalardan biridir. Herhangi bir render farm'a bir XGen sahnesi göndermeden önce, aşağıdakileri açıkça paketlemeyi planlayın:
.xgenpalette dosyasının kendisi- Sahnede referans verilen her description için
xgen/collections/<description>/klasörü - Herhangi bir description, kaydedilmiş bir archive'dan render edecek şekilde ayarlanmışsa
xgen/archives/klasörü - Bir XGen modifier'ının Maya'nın standart file-texture node'larının dışında referans verdiği herhangi bir harici guide curve (kılavuz eğri), density map (yoğunluk haritası) veya length map (uzunluk haritası) - bunlar bazen normal dokuları yakalayan arşivleme araçlarını atlayabilir
- Sahnenin oluşturulduğu tam Maya ve MtoA (Arnold-for-Maya) sürümü, böylece render farm description'ı yakın ama farklı bir sürüm yerine eşleşen bir eklenti sürümüyle yükler
Bunların hiçbiri özel bir yazılım gerektirmez - gereken şey, XGen verisini sahneyi kaydetmenin örtük bir yan etkisi olarak değil, asset koleksiyonunun birinci sınıf bir parçası olarak ele almaktır.
XGen ve .tx İşleri İçin Maya + Arnold Ön Kontrol Listesi
| Adım | Neyi Kontrol Etmeli | Neden Önemli |
|---|---|---|
| 1. Sürüm eşleşmesi | Render farm'ın desteklediği Maya ve Arnold/MtoA sürüm aralığının, sahnenizin tam sürümünü kapsadığını doğrulayın | Dosya yolları doğru olsa bile bir sürüm uyuşmazlığı XGen description uyumluluğunu bozabilir |
| 2. XGen klasörlerini toplayın | xgen/collections/, xgen/archives/ ve .xgen dosyasını açıkça paketleyin - yalnızca genel bir sahne arşivleme aracına güvenmeyin | Bunlar en sık geride bırakılan ve saç/tüyün sessizce kaybolmasına yol açan dosyalardır |
| 3. Üret-mi/archive-mi ayarını kontrol edin | Her description'ın canlı mı ürettiğini yoksa kaydedilmiş bir archive'dan mı okuduğunu ve archive yolunun işle birlikte taşınıp taşınmadığını doğrulayın | Çözümlenemeyen bir archive yolu, hiçbir hata vermeden hiçbir şey render etmez |
| 4. Tek bir doku stratejisi seçin | Ya "Auto-Convert Textures to TX Files" seçeneğini devre dışı bırakıp ham dokuları gönderin, ya da sabitlenmiş bir maketx sürümüyle önceden dönüştürüp .tx dosyalarını dahil edin | Auto-convert'i açık bırakmak, farm tarafında yazma erişimi ve eşleşen bir OIIO sürümü varsayar - bu varsayımlar her zaman geçerli değildir |
| 5. UNC ve sürücü harfi referanslarını yeniden yollandırın | XGen ve doku node'larındaki herhangi bir \\sunucu\paylaşım\... veya yerel sürücü harfi yolunu, farm'ın erişebileceği göreceli (relative) yollarla değiştirin | Yerel olarak çözümlenen yollar bir render node'unda çoğu zaman mevcut değildir |
| 6. Tek frame'lik bir test çalıştırın | Tam sekansı göndermeden önce tek bir test frame'i gönderin ve render günlüğünü (log) yalnızca render'ın tamamlanıp tamamlanmadığı için değil, özellikle doku yükleme ve XGen çözümleme uyarıları için kontrol edin | Eksik saç, eksik dokular ve OIIO hatalarını, tüm sekansa mal olmadan önce yakalar |
| 7. Shot için CPU mu GPU mu kullanılacağına karar verin | XGen ağırlıklı groom'lar, yoğun saç/tüy kaplamaları ve özel shading ağları için, final frame'lerde Arnold'ın CPU render yolunu planlayın - yoğun prosedürel ve özel shader'lı sahneler, Arnold'ın kendi kılavuzunun final çıktı için CPU'yu işaret ettiği iş sınıfıdır | CPU/GPU yönlendirme kararını gönderimden önce vermek, render sırasında bir cihaz kısıtlamasını keşfetmeyi önler |
Yaygın Sorunlar ve Çözümleri
| Belirti | Olası Neden | Çözüm |
|---|---|---|
| Farm render'ında saç veya tüy eksik, yerelde mevcut | XGen collections/archives klasörü toplanmamış veya yol farm tarafından erişilebilir değil | XGen klasörlerini açıkça paketleyin ve UNC/sürücü harfi referanslarını yeniden yollandırın |
| Render, frame'in ortasında belirtilmemiş bir OpenImageIO hatasıyla iptal oluyor | Bayat veya sürüm uyuşmazlığı olan .tx önbelleği | .tx dosyasını sabitlenmiş bir maketx sürümüyle yeniden üretin veya auto-convert'i devre dışı bırakıp ham dokuları gönderin |
| Doku veya bitmap, render node'unda çözümlenemiyor (Arnold-in-3ds-Max pipeline'larında da görülür, ilişkili ancak farklı bir arıza sınıfıdır - bkz. 3ds Max Arnold eksik bitmap rehberimiz) | Doku yolu render node'undan çözümlenemiyor | Gönderimden önce göreceli, farm'ın erişebileceği yolları doğrulayın |
| İş yeniden gönderildiğinde doğru render alınıyor ama ilk seferde başarısız oluyordu | Auto-convert, ilk geçişte render'ın ortasında .tx önbelleğini yazdı; ikinci geçiş artık tamamlanmış önbelleği okudu | .tx dosyalarını gönderimden önce dönüştürün veya auto-convert'i tamamen devre dışı bırakın |
| Arnold veya MtoA eklentisi yüklenirken hata veriyor | Farm'daki MtoA sürümü, sahnenin oluşturulduğu sürümle eşleşmiyor | Gönderimden önce hedef Maya/Arnold sürüm aralığını doğrulayın |

Uyarı seviyesinde bir doku okuma hatası gösteren render log konsolu mockup'ı; bayat veya uyuşmazlık içeren bir .tx önbelleğinin bir render node'unda ürettiği mesaj türünü gösterir.
Özet Kontrol Listesi
- Maya ve Arnold/MtoA sürümleri, render farm'ın desteklediği aralığa göre doğrulandı
-
xgen/collections/vexgen/archives/asset koleksiyonuna açıkça dahil edildi - Her XGen description'ının üret-mi/archive-mi ayarı kontrol edildi ve yolunun farm tarafından erişilebilir olduğu doğrulandı
- Tek bir doku stratejisi seçildi: önceden dönüştürülmüş
.tx(sabitlenmişmaketxsürümü) veya auto-convert devre dışıyken ham dokular - ikisi birden değil - Tüm UNC ve sürücü harfi yolları, göreceli, farm'ın erişebileceği yollarla değiştirildi
- Tek bir test frame gönderildi ve tam sekanstan önce render log'u XGen ve doku uyarıları için kontrol edildi
- XGen ağırlıklı veya özel shader'lı shot'lar için CPU/GPU render yolu belirlendi
Bizim farm'ımızda, son Maya sürümleri (2022 ve sonrası) gönderim sırasında sürüm eşleştirmesini otomatik olarak geçer; desteklenen 2014-2027 aralığındaki daha eski sürümler ise render başlamadan önce bir provisioning ve uyumluluk kontrolünden geçirilir, böylece bir uyuşmazlık iş ortasında değil frame'ler yanmadan önce yakalanır. Yol, önbellek ve archive ayarı maddeleri sahneye özgü kalır ve işin hangi farm'a gittiğinden bağımsız olarak kontrol edilmeye değerdir.
Özellikle XGen ve dokuların ötesinde genel Maya bulut rendering kurulumu için Maya bulut rendering rehberimize ve Arnold renderer eksiksiz rehberimize bakın. Farm sürüm eşleştirmesinin arkasındaki yazılım desteği aralıkları için Maya render farm ve Arnold render farm sayfalarımıza bakın. Doku tarafında, OpenImageIO'nun kendi maketx dokümantasyonu, .tx dönüştürmenin aslında ne yaptığı ve hangi flag'lerin mipmap ile tiling davranışını kontrol ettiği konusunda en net teknik referanstır.
SSS
Q: Bir cloud render farm'da render aldığımda XGen saçı veya tüyü neden kayboluyor ama yerelde sorunsuz çalışıyor? A: Bu genellikle XGen collections ve archives klasörlerinin sahnenin geri kalanıyla birlikte toplanmadığı anlamına gelir. XGen, render zamanında groom ve description verisini bu harici dosyalardan okur - yalnızca .ma veya .mb dosyası yüklendiyse, render node'unun saç veya tüyü üretecek hiçbir şeyi olmaz ve açık bir hata vermek yerine kel (bald) render alır.
Q: .tx dosyası nedir ve Arnold buna neden ihtiyaç duyar? A: Bir .tx dosyası, OpenImageIO'nun maketx aracıyla oluşturulan, tiled ve mipmapped bir dokudur. Arnold ve MtoA, ham kaynak formatları yerine .tx dokularını kullanır, çünkü tiled mipmap'ler render sırasında daha hızlı yüklenir ve daha az bellek kullanır - bu da tek bir workstation'a kıyasla farm ölçeğinde daha çok önem taşır.
Q: Bir render farm'a gönderim yaparken "Auto-Convert Textures to TX Files" seçeneğini açık mı bırakmalıyım? A: Açık bırakmak, farm tarafındaki doku hatalarının yaygın bir kaynağıdır. Tek diskli tek bir workstation'da sorunsuz çalışır, ancak dağıtık bir farm'da bayat veya sürüm uyuşmazlığı olan bir .tx önbelleği üretebilir ya da render node'unda bir yazma izni farkına takılabilir. Bilinen bir maketx sürümüyle önceden dönüştürüp .tx dosyalarını göndermek, ya da auto-convert'i devre dışı bırakıp ham dokuları göndermek, her iki arıza modundan da kaçınır.
Q: Maya ve Arnold sürümlerim farm'ınkiyle zaten eşleşiyor - render neden hâlâ dokuları eksik alıyor? A: Sürüm eşleştirme, eklenti düzeyindeki arızaları önler, ancak farm'larda XGen ve .tx hatalarının çoğu sürümlerden değil dosya yollarından kaynaklanır. XGen, render node'unda bulunmayan bir UNC yoluna veya yerel sürücü harfine referans veriyorsa, ya da .tx önbelleği farm'ın ulaşamadığı bir doku konumuna göre üretilmişse, yazılım sürümleri eşleşse bile render başarısız olur.
Q: Bir render farm'ın hangi Maya ve Arnold sürümlerini desteklediğini nasıl öğrenirim? A: Göndermeden önce farm'ın desteklediği Maya ve Arnold/MtoA sürüm aralığını kontrol edin - eşleşen sürümler, bir bütün render hatası sınıfını ortadan kaldırır. Farm'ımız Maya 2014-2027 aralığını destekler: 2022 ve sonrası sürümler gönderim sırasında sürüm eşleştirmesini otomatik olarak geçer, daha eski sürümler ise render öncesinde bir uyumluluk kontrolünden geçirilir.
Q: XGen shot'ları Arnold'ın CPU mu yoksa GPU yolunda mı render edilmeli? A: Yoğun saç veya tüy kaplaması ve özel shading ağları olan XGen ağırlıklı shot'lar, final çıktı için Arnold'ın CPU yoluna aittir - bu, Arnold'ın kendi kılavuzunun CPU'yu işaret ettiği iş sınıfıdır. Shot hangi yolu kullanırsa kullansın, cihaz kararını render sırasında bir kısıtlama keşfetmek yerine gönderim anında, ön kontrolün (preflight) bir parçası olarak verin.
Q: XGen içeren bir Maya sahnesini bir render farm'a göndermeden önce neyi kontrol etmeliyim? A: Kısa bir ön kontrol (preflight) çalıştırın: Maya/MtoA sürüm eşleşmesini doğrulayın, xgen/collections ve xgen/archives klasörlerini açıkça paketleyin, tek bir doku stratejisi seçin (önceden dönüştürülmüş .tx veya auto-convert kapalıyken ham), herhangi bir UNC veya yerel sürücü referansını yeniden yollandırın ve tam sekanstan önce tek frame'lik bir test gönderin.
Q: Bu yalnızca XGen'e özgü bir sorun mu, yoksa diğer DCC'lerde de görülüyor mu? A: Aynı temel desen - ana sahne dosyasının dışında yaşayan veri, artı bayatlayan önbelleklenmiş doku verisi - başka yerlerde de görülür. 3ds Max kullanıcıları, doku yolları render node'unda çözümlenmediğinde Arnold'da eksik bitmap node'larıyla ilgili, ilişkili ancak farklı bir sorunla karşılaşır; sorunun bu versiyonu için 3ds Max Arnold eksik bitmap rehberimize bakın.
About Thierry Marc
3D Rendering Expert with over 10 years of experience in the industry. Specialized in Maya, Arnold, and high-end technical workflows for film and advertising.


