leonscottkfm

Unreal MVP
31 May 2015
1,372
5
170
63
27
(34) İstanbul Avrupa
store.steampowered.com
Merhaba arkadaşlar aramızda bazılarımız yeni kayıtlı üyeler olmak üzere bazılarımızın da bilgisi biraz kısıtlı durumda.
Bazılarımızın sistemi iyi olmasına rağmen bu motordan yeterince performans alamıyorlar. Bazı gereksiz ayarların varsayılan olarak açık gelmesi de bu motorun bir reklam anlayışı. Hani ilk kez kullanan insan bile son haliyle görsün gibi. Fakat bu durum bir performans sorunu yaratabiliyor.

Örneğin siz bir proje oluşturuyorsunuz ve oluştururken Ray Tracing kullanmak istemiyorsunuz ve kullanmak istemediğiniz söyleyip ona göre ilerliyorsunuz. Fakat bu sefer de arkada Lumen açık geliyor ve bunun için herhangi bir bilgilendirme de yapılmıyor. Ayrıca bunun üzerine bir de Virtual Shadows açık geliyor ve normalde 120 FPS alacağınız küçük bir alanda bile FPS değerlerinizin çakıldığını görüyorsunuz. Kartınız ısınıyor ve bilgisayarınızdan fan sesleri yükseliyor.

Bunlarla benim işim yok, ben başlangıçta rahat çalışmak ve en yüksek FPS değerimi gözlemlemek istiyorum diyorsanız. Yapabileceğiniz bazı şeyler mevcut.
Öncelikle bu oyun motorunun, sizin varsayılan masaüstü çözünürlüğünüzü baz aldığını bilmeniz gerekir. Örneğin ekranınız 4k ve masaüstü çözünürlüğünüz o an 4k ise, motorda Viewport içerisinde göreceğiniz görüntü de 4k olacaktır.
Viewport pencereniz küçük ise yani tam ekran değil ise gerçek FPS değerinizi göremezsiniz. F11 tuşuna basarak ekranı tam ekran moduna geçirirseniz işte o zaman tam ekran modunda doğal FPS değerinizi göreceksiniz.
Çünkü küçük ekranda görebileceğiniz şeyler sınırlı ve kısıtlı bir alanda olacağı için daha yüksek FPS almanız normaldir. Fakat oyununuzu kimse o ekranda oynamayacak bunu da biliyorsunuz. Dolayısıyla FPS ölçerken tam ekran modunda ölçmelisiniz.
Bunun yanında bir de oyunun paketlenmiş hali ile paketlenmemiş hali arasında ekstra bir FPS farkı mevcut olacaktır. Belki 5 belki 10 FPS fark edecektir. Ama bu önemli bir meseledir. Paketlenmiş projede daha yüksek FPS almalısınız.

1. Projemi paketledim fakat editörde daha yüksek FPS değeri alıyordum bu neden olur?

Çünkü Paketlenmiş projende varsayılan olarak gelen ayarda Screen Percentage değerin %100
Yani ekranın %100 bir sıkıştırma uyguluyor. Bu aslında normal bir değer, fakat 4k ekranda bunu %100 yapmak sakıncalıdır. Çünkü zaten 4k gibi yüksek bir çözünürlük kullanırken bir de üzerine %100 sıkıştırma uygulaman büyük bir performans kaybı yaşatacaktır. Oluşturduğun gerçekçi bir sahneye göre 20 FPS kadar fark oluşturabilir. Dolayısıyla bunu kullanılan ekran kartına göre otomatik atamalısın. Mesela orta seviye bir kart için orta ayarlarda 1080p modunda %70-%75 gibi bir değer, giriş seviyesi bir kartta %60-%65 gibi bir değer, yüksek bir kartta %85-%90 gibi bir değer iken en yüksek kartlarda bu %100 olabilir. Fakat 4k oyun modunda da işler değişiyor işte. Bu ayarın 4k çözünürlüğünde en fazla %70 olması gerekiyor. RTX 4080 gibi bir kart için %70 değerinin üzerine çıkmak büyük bir performans kaybı yaratacaktır. Bu ayarı editörden değiştirebiliyorsunuz, ön ayar yaptığınızda da size uygun bir seçenek sunuyor. Fakat bu editörde geçerli. Test buttonuna bastığınızda da yine %100 değer veriliyor. Eğer pencereniz New Windows ise size %100 değer verecektir. Peki nasıl ayarlayacaksınız ?
Öncelikle proje varsayılan Viewport modunda ise F11 ile ekranı büyültürseniz ayarladığınız değer geçerli olur. Fakat New Window yaparsanız ayarladığınız değer geçersiz kalacak. Bu durumda ise Execute Console Command Node kullanarak oraya şu komutu girmelisiniz : "r.ScreenPercentage 70"
Bunu yaparsanız artık o an projede çalışırken istediğiniz pencereyi açın %70 değerini alacaksınız. Bunu Level Blueprint içerisinde yapabilirsiniz.
Bunu projeyi her başlattığınızda yapmanız gerekir. Bazen proje de kırmızı uyarı alabilirsiniz. Streaming Pool uyarısı ve bu uyarı yüzünden objelerinizin dokuları bulanıklaşır. Bu yüzden de Unrealin parametre yazma kutusuna : "r.streaming.poolsize 2000" gibi bir değer atayabilirsiniz. Böylelikle o sahne için 2GB VRAM boşluğu oluşturmuş olursunuz. Kafanızdan değer sallamak istemezseniz Pool ölçümü yapmak için GPU Profiling aracını kullanmalısınız. Orada gereken miktarı yazabilirsiniz. Ama benim ekran kartım 20GB VRAM değerine sahip olduğunu için umursamadan 5GB atıyorum direkt. Unrealin config ayarlarını kurcalayın ve paketlediğinizde sizin belirttiğiniz ayarlara göre paketlesin.

2. Düşük FPS almaya devam ediyorum başka ne yapabilirim?


Öncelikle Unreal içerisinde Ray Tracing'i kapatmış bile olsanız, Lumen açık gelecek. Project Settings > Rendering bölümünde Global Illumination kısmında Lumen ayarını ScreenSpace olarak değiştirin. Hemen altında Reflection var onu da aynı şekilde ayarlayın. Böylelikle Ray Tracing özelliği sonsuza dek projenizden uzak kalacak. Hem donanım ışık izlemesi hem yazılım ışık izlemesi devredışı kalacak. 20 FPS birden kazanabilirsiniz. Az önce söylediğim ScreenPercentage ayarı da size 10-20 FPS kazandırır. Böylelikle 30-40 FPS elde ettiniz bile. Elinizde başlangıçta böyle bir FPS değeri olması ileride dolduracağınız harita için avantaj sağlar. Lumeni kapatırsanız projedeki tüm ışıkları mobil yapın geçin. Lumeni kullanmamın sebebi build almaktan kaçınmak ve gerçek zamanlı ışık özelliğiydi. Fakat siz elinizle ışıkları mobil yaparsanız zaten gerçek zamanlı olacaklar. Build almanıza gerek kalmayacak. Mobil yapmazsanız 10 saat build alacaksınız ve bu çok can sıkıcı bir durum. Lumenin kapanması ise buildi zorunlu kılar. Fakat dediğim gibi ışıkları Mobil olarak ayarlarsanız build özelliğine gerek kalmayacaktır. Fazla performansta yemez. Önceden çok performans yiyordu, Lumenin yanında bu hiçbir şey. Fakat yakın zamanda Megalights geliyor, ışıklarla ilgili sorunumuz tamamen çözülecek gibi görünüyor.

3. Yukarıda anlatılanları denememe rağmen hala sorun olduğunu hissediyorum başka ne yapabilirim?


Anlatılanların dışında bir ayar daha mevcut. Lumen ayarının olduğu kısmın biraz aşağısına doğru inerseniz, Virtual Shadow Maps adlı bir özellik görürsünüz. Bu özellik gölgelerinizi daha keskin yapar ve daha güzel bir görünüm katar. Fakat rahat 10 FPS götürüsü bulunmakta. Bunu kapatıp açmak sizin zevkinize kalmış bir şey. Bildiğim kadarıyla bu ayarın kapatılması ile Nanite tam olarak uygulanamıyor. Fakat bu hala devam ediyor mu bir bilgim yok. Nanite de bir yandan önemli bir özellik çünkü. Nanite kullanıyorsanız bu ayarı açın. Ama kullanmıyorsanız ve istemediğiniz önemsiz bir şey ise kapatın. Şimdiden 50 FPS değerine ulaştınız. Boş projede 60 FPS alıyordunuz, artık 110-120 FPS değerlerine ulaştınız.

3. Bunların dışında ek bir şey yapmam gerekir mi?

Anlattıklarımın dışında ek bir şey yapmanıza gerek yok. Fakat benim uyguladığım bir yöntem mevcut. Ben projemde asla Epic ayar kullanmam. Cinematiği zaten kullanmayın. Projenizde insanlara grafik ayarı sunarken ; Düşük, normal ve yüksek ayarları sunun. Özellikle basit tarzda bir oyun yapıyorsanız hiç "En yüksek, Epic" gibi kısımlara girişmeyin bile. Size sadece FPS kaybettirir. Yüksek ayar seçtiklerinde zaten en yükseğini kullandıklarını düşüneceklerdir. Silent Hill 2 Remake böyle yapmıştı. Çünkü zaten High ile Epic arasında bir fark yok Unrealde. Elinizle deneyin görün. Çok ufak şeyler fark edecek fakat devasa FPS farkı oluşacak. Mesela yakından bakılan objeler için hiçbir şey değişmez. Örneğin siz bir objeye LOD uyguladınız ve bu obje yakındayken %100 kalitede görünecek orta mesafede %50 uzakta ise %25 olacak. İşte ayarı Epic yaptığınız zaman yine yakındayken %100 görünecek. Tek fark ise, uzaktayken %50 değil de %75 olacak olması. Peki bunun bize ne faydası var ? Hiçbir faydası yok. Özellikle çok kişinin oynayacağı basit bir Multiplayer oyun yapıyorsanız bu ayarlardan uzak durun. Yakına odaklanın sadece. Oyun zaten karanlık ve sisliyse bu ayarları Epic yapmanın hiçbir mantığı yoktur.
Fakat ne yaparsanız yapın Shadow ve Post Process'i asla düşük yapmayın. Düşük ayarda da bunları Medium ve High değerinde tutun. Çünkü Unrealin böyle dengesiz bir grafik ayar sistemi var. Düşük yaparsanız tüm sis ve gölge kayboluyor. Very Low ayarında olması gereken özellikleri Low ayarına ekleyip geçmişler. Bunları mutlaka High olarak tutup diğer şeyleri Low ayara çekebilirsiniz. Yoksa devasa bir görüntü farkı oluşur. Çalışırken de High ayarlarda çalışın.

FPS değerinizi 60 - 90 - 120 gibi değerlere sabitleyin, yoksa cihazınız aşırı çalışacak ve boş bir alan için fazladan FPS üretip ısınacaktır. Unlimited FPS değeri sunmayın kimseye. Unlimited yazıp arkaplanda bunu 120 gibi bir değere sabitleyin. Biraz yalancı olun yani. Yoksa size kızacaklardır. Ama yalan söyleyin. Görüntüde yazı olarak Unlimited yazıp arkaplanda maksimum 120 FPS değerine sabitleyin. Bu sefer adam 200 FPS alacak , oyun Laptopu ısındırıyor diye şikayet edecek moron gibi.
Ayrıca siz de deneyin Laptopunuz varsa alın ve Unreal ayarlarından sınırlı FPS değerini limitsiz yapın. 500 FPS alacaksınız fakat cayır cayır yanan fan sesi çıkan bir laptopunuz olacak. Gelecek konumuz bazı Optimizasyon teknikleri ve Grafik güzelleştirmeleri , Trickler ve hileler ile ilgili olacaktır. Unrealin bir özelliği olan Live Coding özelliğini kapatırsanız işlemciniz daha az kullanılacaktır bu da bilginize. Kendi oyunumun ana menüsünde kullandığım bir background tasarladım. Aşağıda bunu göreceksiniz, buna benzer yüksek kaliteli bir görüntü nasıl oluşturulur onu da göstereceğim.

FPS değeri : 80 FPS
Kullanılan Ekran Kartı : RX 7900 XT
Değerler : 4k Epic %100 Percentage



Bu içeriği görmek için üçüncü parti çerezlerine izin vermeniz gerekli.
Daha fazla detay için çerezler sayfasını ziyaret edin.



 
Son düzenleme: