Qısaca
- RVT teksturaları iş zamanı GPU-da yaradır və prosedur və ya qatlı materiallarda istifadə oluna bilər.
- SVT diskdəki teksturaların ekranda görünən hissələrini tile-lar şəklində GPU yaddaşına yükləyir.
- SVT teksturalarından istifadə edən materiallarda Texture Sample düyünləri uyğun Virtual sampler növü ilə işləməlidir.
- Virtual teksturlaşdırmanın xərclərini `stat virtualtexturing` və `stat virtualtexturememory` əmrləri ilə yoxlamaq olar.
Epic Games-in Unreal Engine üzrə rəsmi sənədləri virtual teksturlaşdırmanı böyük teksturaları iş zamanı daha az və daha sabit yaddaş istifadəsi ilə emal etməyin bir yolu kimi izah edir. Sistem iki üsuldan ibarətdir: Runtime Virtual Texturing (RVT) və Streaming Virtual Texturing (SVT). Bu bələdçi memarlıq vizuallaşdırması və real vaxt səhnələrində bu iki üsulun istifadə sahələrini, SVT teksturalarının materiallara qoşulmasını və performansın necə yoxlanacağını izah edir. Mənbə sənədlərində məlumatların aid olduğu konkret Unreal Engine versiyası göstərilmir.
1. RVT, yoxsa SVT? İstifadə məqsədinə uyğun seçim
RVT-də tekstura məlumatı GPU tərəfindən iş zamanı yaradılır. Epic-in sənədlərində bu üsul prosedur teksturalar, qatlı materiallar və landşaftlarda mürəkkəb material istifadəsi üçün uyğun hesab olunur. Landscape Spline iş axınları, mesh-lər üçün decal istifadəsi, eləcə də landşaft və obyektlərin ümumi şəkildə bir-birinə qarışdırılması da RVT-nin faydalı ola biləcəyi nümunələrdəndir. Bu izah decal-lərin birbaşa landşaft və ya obyektlərlə qarışdırıldığı mənasına gəlmir.
SVT isə diskdə hazırlanmış teksturalardan istifadə edir. Sistem teksturanın mip səviyyələrini sabit ölçülü tile-lara bölür; GPU ekranda görünən piksellərin ehtiyac duyduğu hissələri müəyyən edir və həmin tile-lar GPU yaddaşındakı keşə yüklənir. Beləliklə, yüksək ayırdetməli teksturalarda görünməyən hissələrin də bütövlükdə yüklənməsi əvəzinə, yalnız lazım olan sahələr emal olunur. SVT işıq xəritələri və rəssam tərəfindən hazırlanmış böyük teksturalar kimi hazırlanması vaxt aparan məlumatlar üçün uyğundur.
| Üsul | Məlumat axını | Sənədlərdə göstərilən istifadə sahəsi |
|---|---|---|
| RVT | Tekstura məlumatı GPU-da iş zamanı yaradılır. | Prosedur və ya qatlı materiallar, mürəkkəb landşaft materialları |
| SVT | Tekstura məlumatı diskdən yüklənir; lazım olan tile-lar yaddaşa alınır. | İşıq xəritələri və böyük, detallı teksturalar |
2. SVT teksturalarını və materialları çevirmək
SVT istifadə edərkən Texture Asset üzərində Virtual Texture Streaming aktiv olmalıdır. Həmçinin bu teksturanı nümunələyən materiallardakı Texture Sample düyünləri uyğun Virtual sampler növündən istifadə etməlidir. Content Browser-dəki çevirmə seçimi seçilmiş teksturalarla yanaşı, onlara istinad edən materialları da çevirmə siyahısına əlavə edə bilər.
Content Browser-də SVT-yə çevriləcək Texture Asset-i seçin.
Asset üzərində sağ klikləyib
Convert to Virtual Textureseçimini açın.Çevirmə pəncərəsində siyahıya alınmış teksturaları və onlara istinad edən materialları yoxlayın.
Çevirməni başlatmaq üçün
Okdüyməsinə basın.Daha sonra əlaqəli materiallardakı Texture Sample düyünlərinin düzgün Virtual sampler növündən istifadə etdiyini yoxlayın.
Teksturanı əl ilə də çevirmək olar. Texture Asset-i açıb Details panelindəki Texture bölməsində Virtual Texture Streaming seçimini aktiv edin. Bu əməliyyatdan sonra həmin teksturadan istifadə edən mövcud materiallar etibarsız vəziyyətə düşə bilər. Əlaqəli materiallarda Texture Sample düyününü uyğun Virtual sampler növünə keçirmək lazımdır. Sənədlərdəki nümunədə virtual rəng teksturası üçün Virtual Color istifadə olunur; Color sampler növü düzgün uyğunluq deyil.
Virtual tekstura material qrafikinə əlavə ediləndə Unreal Engine uyğun Virtual sampler növünü avtomatik təyin edir. Lakin Material Instance-larda istifadə ediləcək Texture Sample Parameter yaradılırsa, əsas materialın sampler növü vacibdir: alt nümunələr əsas materialda müəyyən edilmiş növdən istifadə edir. Virtual növündə olmayan əsas material parametr yuvasına virtual tekstura təyin etmək mümkün deyil.
3. UDIM və virtual tekstura işıq xəritələri
Unreal Engine UDIM adlandırma qaydasına uyğun şəkilləri vahid Virtual Texture Asset kimi idxal edə bilir. Faylların eyni baza adına və dörd rəqəmli koordinat nömrəsinə malik olması lazımdır. Sənədlərdəki format belədir:
BaseName.####.[Support Image Format]Məsələn, MyTexture.1001.png faylı eyni baza adına malik, fərqli koordinat nömrəli şəkillərin də axtarılmasını təmin edir. UDIM şəkillərinin ölçüləri fərqli ola bilər. Mənbədəki nümunədə 2x2 düzülüşündə yerləşən iki ədəd 2048x2048 və iki ədəd 128x128 şəkil vahid virtual tekstura kimi nümunələnir. Mənbə izahına görə, kiçik şəkillərin bu düzülüşdə daha böyük sahəni tutması disk və ya iş zamanı yaddaş istifadəsini artırmır.
Virtual tekstura işıq xəritələrini aktivləşdirmək üçün Project Settings bölməsində Engine › Rendering yolunu açıb Enable virtual texture lightmaps seçimini istifadə edin. Epic bildirir ki, bu xüsusiyyət işıq xəritələrinin yaradılma keyfiyyətini və axın performansını yaxşılaşdıra bilər. Sənədlərdə r.IncludeNonVirtualTexturedLightmaps və r.VT.EnableLossyCompressLightmaps konsol dəyişənləri də izah olunur. İkinci dəyişən virtual tekstura işıq xəritələrində itkili sıxılmanı aktivləşdirir; bunun işıq xəritəsi teksturalarının keyfiyyətini azalda biləcəyi qeyd olunur.
4. Performansı ölçmək və tez-tez rast gəlinən səhvlər
Virtual tekstura nümunələnməsi ənənəvi tekstura nümunələnməsindən daha çox xərc tələb edir. Material qrafikindəki hər Virtual Texture nümunəsi bir lookup yaradır. Eyni UV-lərdən və Sampler Source-dan istifadə edən nümunələrin stack-ləri birləşdirilə bilər; eyni şərtləri paylaşan ən çoxu 8 nümunə bir stack-də birləşə bilər. UV-lər fərqlidirsə, stack-lər ayrı qala və əlavə tekstura müraciətləri yarana bilər.
Səhnədəki xərcləri yoxlamaq üçün konsolu açıb aşağıdakı əmri icra edin:
stat virtualtexturingBu əmr virtual teksturlaşdırmanın səhnə üzrə milisaniyə ilə ölçülən xərcini və səhifə cədvəlləri ilə bağlı sayğacları göstərir. Yaddaş sayğacları üçün:
stat virtualtexturememorySVT istifadə edən materiallarda mip görünüş şəbəkəsini açmaq üçün:
r.VT.Borders 1Yoxlama başa çatdıqda şəbəkəni söndürün:
r.VT.Borders 0Tez-tez rast gəlinən səhvlər
Sampler növünü düzəltməmək: Əl ilə çevirmə materialları etibarsız edə bilər. Texture Sample düyünlərində uyğun Virtual növün seçildiyini yoxlayın.
Virtual teksturanı xərcsiz hesab etmək: Yaddaş üstünlüyü nümunələmə xərcini aradan qaldırmır. Səhnəni statistika əmrləri ilə ölçün.
Fərqli UV istifadəsini nəzərdən qaçırmaq: Fərqli UV-lərdən istifadə edən nümunələrin stack-ləri birləşməyə bilər; materialın xərci arta bilər.
Görüntü qüsurlarını nəzərə almamaq: Səs-küylü və ya həddindən artıq detallı teksturalarda aşağı ayırdetməli mip məhdudiyyəti aliasing və ya Moiré effektlərinə səbəb ola bilər. SVT-nin reaktiv yükləməsi kamera hərəkəti zamanı bəzi tile-ların gec gəlməsinə və görünən şəkildə peyda olmasına da səbəb ola bilər.
Memarlıq, interyer və archviz işlərində RVT prosedur landşaft, qatlı səthlər və obyekt-landşaft keçidləri üzərində işləyən komandaların nəzərdən keçirə biləcəyi seçimdir. SVT isə böyük teksturalar, UDIM dəstləri və ya işıq xəritələri olan səhnələrdə yaddaş istifadəsini idarə etməyə kömək edə bilər. İş axınına əlavə etməzdən əvvəl material uyğunluğunu, GPU xərcini və hərəkətli kamerada tile-ların yüklənməsini yoxlayın. Sənədlərdə versiya məlumatı göstərilmədiyi üçün nəticələri istifadə etdiyiniz Unreal Engine versiyasında ayrıca təsdiqləmək lazımdır.
Mənbələr
2 mənbəMənbə mətnləri yenidən dərc edilmir; qısa sitatlar işarələnir, qalanı bizim xülasə və şərhimizdir.
Türkiyədəki memarlıq və vizuallaşdırma ofisləri üçün virtual teksturlaşdırma böyük tekstura dəstləri və landşaft ağırlıqlı səhnələrdə yaddaşın idarə olunmasına töhfə verə bilər. Lakin bu, hər layihədə avtomatik olaraq daha sürətli render əldə ediləcəyi demək deyil; virtual tekstura nümunələnməsinin əlavə xərci və fərqli UV istifadəsinin təsiri nəzərə alınmalıdır.
Ən təhlükəsiz yanaşma üsulu bütün layihəyə tətbiq etməzdən əvvəl onu nümunəvi səhnədə sınaqdan keçirməkdir. Çevirmədən sonra material uyğunluğu, GPU yaddaş sayğacları, incə detallardakı görüntü keyfiyyəti və kamera hərəkəti zamanı tile-ların yüklənməsi birlikdə yoxlanmalıdır. İstifadə olunan Unreal Engine versiyasında davranışı təsdiqləmək də komandaların yoxlama siyahısında olmalıdır.
Tez-tez verilən suallar
Unreal Engine-də RVT ilə SVT arasındakı fərq nədir?
RVT tekstura məlumatını GPU-da iş zamanı yaradır. SVT isə diskdəki teksturaların görünən hissələrini tile-lar şəklində yükləyir.
SVT teksturaları materiallarda necə istifadə olunur?
Teksturada Virtual Texture Streaming aktiv olmalı, materialdakı Texture Sample düyünləri isə uyğun Virtual sampler növündən istifadə etməlidir. Çevirmə menyusunda teksturalarla yanaşı, onlara istinad edən materiallar da siyahıya alınır.
Unreal Engine-də virtual tekstura performansı necə ölçülür?
`stat virtualtexturing` səhnə xərcini və səhifə cədvəlləri ilə bağlı sayğacları göstərir. `stat virtualtexturememory` isə səhnədəki virtual tekstura yaddaşı sayğaclarını göstərir.



