Soru 4K Çözünürlükte Metin2 İlkelliği?

  • Konuyu açan Konuyu açan melihalbayrak
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 18
  • Gösterim Gösterim 337
Herhangi bir konuda danışmak istediğiniz soru varsa bu öneki seçebilirsiniz.

melihalbayrak

Yasaklanmış Üye
Cezalı
Geliştirici
Yardımsever Üye
Mesaj
1.317
Çözümler
84
Beğeni
791
Puan
1.475
Ticaret Puanı
0
4k çözünürlükte interface bit kadar kalıyor. Windows ölçeklendirmedir falan denedim bir şey değişmiyor tam ekran modunda 4k da görüntü tam ekrana sığmıyor. Pencere modunda görüntü net değil. 2k çözünürlükte daha iyi fakat bu seferde görüntü bir tık bulanık. Bu lanet oyunun ilkelliği insanı çıldırtır. Bunun hakkında fikri çözümü olan var mı? 1080p mi kullanacağız bunun yüzünden :)
 
Bir aralar ya @Kaptan Yosun yada @Kaiser bu konuyla ilgili bir içerik paylaşmıştı bulamadım şimdi.
Bir çözüm üretildiyse bende bulamadım. Normal oyuncular nasıl oynuyor anlamadım. Herkes 1080 yada 2k çözünürlüğe çekip bulanık mı oynuyor ne yapıyorlar.
 
XBWkhbT.png


yukarıdaki ayarı açıp dener misin
 
XBWkhbT.png


yukarıdaki ayarı açıp dener misin
Denedim interface bit kadar kalıyor. Windowsda ölçek %150 ayarlı bu client ayarlarınıda kurcaladım ne yaptıysam bit kadar interface düzeltemedim çözünürlüğü düşürmek dışında hadi düşürmekte mesel değil bu seferde oyun bulanık oluyor.
 
Bunun için aslında çözünürlüğe göre aynı windows ölçeklendirmesi tarzında ui ölçeklendirmesi yapılması lazım.
 
@Kaptan Yosun şöyle bir konu açmıştı. Devamı gelmemiş.

 
@Kaptan Yosun şöyle bir konu açmıştı. Devamı gelmemiş.

Bunu gördüm sonrası nedir belirsiz.
 
Geçmişte javascript canvas ile oyun yazarken bu tarz hesaplamaları yapmıştım. Metin2 için test etmedim.

Windowsun scaling özelliğini client için devredışı bırakmalısın. Modeller ve texturelerin bulanıklılığı gidiyor. Ui için ise bir tane origin çözünürlük belirleyip mevcut çözünürlükle arasındaki farkı bulman gerekiyor.

Genelde bu tarz eski oyunlarda 1024x768 , 800x600 gibi düşük çözünürlüğe uygun gui ayarlanıyor. Login sayfasındaki butonları ve inputları ele alalım.

1024x768 ‘de butonun boyutu 100x50 ise
3840x2160 çözünürlüğünde kaç olmalı?

Orijinimiz 1024x768 olduğuna göre oranı bulmamız gerekiyor.

Genişlik için: 3840/1024
Yükseklik için: 2160/768

Ancak fark ettiysen aspect ratio da değişiyor 1024x768 4:3 ken 3840x2160 ise 16:9. Butonumuz boyutu 100x50 yani 2:1. Butonu orantılı büyütmek için çıkan sonuçların bir tanesini çarpan olarak kullanmalısın. Eğer çıkan sonuçlardan x’i x’e y’yi y’ye çarparsan butonun oranı bozulur.

Bozulmanın önüne geçmek için çıkan sonuçlardan en küçüğünü al. Benim verdiğim örnekte yükseklik en düşük olacak. Daha sonra ui ‘nin original yükseklik ve genişliği ile çarpıyorsun.

Button x: 100*2.81
Button y: 50*2.81

En küçüğünü alma sebebi ise ekranda taşma olmasını engellemek için.

Ben javasciptte oyun yazarken şu şekilde hesaplamayı yapardım hep
ölçek = karekök( (yeni genişlik * yeni yükseklik) / (orijin genişlik * orijin yükseklik))

Ancak metin2 ui ‘sinde resimlerde kullanılıyor. Örneğin itemler. Bunların boyutları sabit. Directx bu resimeleri çizerken tekrar ölçeklendirme imkanı vermesi gerekiyor fakat araştırmadığım için bir şey diyemiyorum. Bu yorumum nereden başlamanız gerektiği ile ilgili temel düzeyde bilgi içeriyor.

Ayrıca ek bir not daha genelde işler bu kadar basit olmuyor. Ekrandan taşma durumları olabilir bunlar içinde ek kontroller lazım.

Bu yorumu yazarken geçmişe paylaştığım bi konuyu hatırladım. Devamını getirecektim ama kaldı öyle :( metin2 ui si için uğraşırken 2d uzayda çalışıyormuş gibi düşün. Eminim çoğu şeyi halledersin. Ayrıca soru için teşekkürler 👍🏽
 
Ben o işe meşguliyetten devam etmedim yoksa çoğu şey oluyordu. ama envanter gibi gridslot kullanan yerlerde ve butonlar gibi bazı diğer kısımlarda SRC taraflı detaylı değişiklikler gerekecekti. Gridslot scaling, scalingine göre tıklanabilir alanın ayarlanması, itemin üzerine gelince çıkan beyaz pperdenin scalingi vs gibi. ama harici yerler sadece pythondan ölçeklenebilir yapılabilir pekala.
 
Login tasarımı yapmaya çalışıyorum. Her seferinde boyutu değiştikçe yerler değişiyor ve gıcık bir hal alıyor. Araştırmalarım sonucu bende pek birşey bulamamıştım.
GetScreenHeight();
GetScreenWidth();
Kullanarak kullanıcının monitör değerini alsak onuda değişkenlerle kontrol ettirsek mesela ama o zamandq tüm ui yi bağlamak lazım tek tek bunun üzerinde uğraşıyorum. Tek tek bağlamak yerine toplu ekleyebileceğim bir yöntem bulursam inşallah :) Çözücem.
 
Login tasarımı yapmaya çalışıyorum. Her seferinde boyutu değiştikçe yerler değişiyor ve gıcık bir hal alıyor. Araştırmalarım sonucu bende pek birşey bulamamıştım.
GetScreenHeight();
GetScreenWidth();
Kullanarak kullanıcının monitör değerini alsak onuda değişkenlerle kontrol ettirsek mesela ama o zamandq tüm ui yi bağlamak lazım tek tek bunun üzerinde uğraşıyorum. Tek tek bağlamak yerine toplu ekleyebileceğim bir yöntem bulursam inşallah :) Çözücem.
Zaten mikrop oyunun temelinde ekran çözünürlüğüne göre bir ölçekleme yok. 800x600 de aç kocaman 1920x1080de aç daha ufak. çözünürlüğe göre ölçekleme hiç yapılmamış. 4K ekrana geçince bende bu eksiklikten sorun yaşıyorum. 4k çözünürlükte oyun içi görsel çok iyi gayet güzel fakat bu interface kısmını çözmek lazım. Ondada bayağı bir değişiklik falan lazım. Bilgisi olan arkadaşlar elbet vardır ama bu zamana kadar kimse üzerine düşmemiş bunun. Hatta bu oyunu yaparken 800x600 ile yapmışlar tahminimce çünkü o zaman tüm arayüz birbiri ile bütünleşiyor. taskbardaki 1080 ile 800p arasındaki butonların birbirinden uzaklaşmasından anlaşılıyor.
 
Açık konuşmam gerekirse pythonda biraz özürlüyüm ama c++ taraflı neler yapılabilir müsait olduğumda bakacağım. Bir şeyler bulabilirsem rehber konusu olarak paylaşırım. Eğer bu olayın python bağımlılığı varsa bile bu bağımlılığı tamamen kaldırıp tamamen c++ tarafından dinamikleştirmek en iyisi olacaktır. uitaskbar.py düzelt, uiinventory.py düzelt, uicharacter.py düzelt falan işkence..
 
Zaten mikrop oyunun temelinde ekran çözünürlüğüne göre bir ölçekleme yok. 800x600 de aç kocaman 1920x1080de aç daha ufak. çözünürlüğe göre ölçekleme hiç yapılmamış. 4K ekrana geçince bende bu eksiklikten sorun yaşıyorum. 4k çözünürlükte oyun içi görsel çok iyi gayet güzel fakat bu interface kısmını çözmek lazım. Ondada bayağı bir değişiklik falan lazım. Bilgisi olan arkadaşlar elbet vardır ama bu zamana kadar kimse üzerine düşmemiş bunun. Hatta bu oyunu yaparken 800x600 ile yapmışlar tahminimce çünkü o zaman tüm arayüz birbiri ile bütünleşiyor. taskbardaki 1080 ile 800p arasındaki butonların birbirinden uzaklaşmasından anlaşılıyor.

Açık konuşmam gerekirse pythonda biraz özürlüyüm ama c++ taraflı neler yapılabilir müsait olduğumda bakacağım. Bir şeyler bulabilirsem rehber konusu olarak paylaşırım. Eğer bu olayın python bağımlılığı varsa bile bu bağımlılığı tamamen kaldırıp tamamen c++ tarafından dinamikleştirmek en iyisi olacaktır. uitaskbar.py düzelt, uiinventory.py düzelt, uicharacter.py düzelt falan işkence..
Evet tam olarak bunu yapıyorum. Daha önce c# la consol app üzerinde oyunlar yaptım. Oradaki durumda kullanılan materyalleri dinamikleştirmek basitti hepsi zaten daha önceden tanımlı olan şeyler, ama metin2 ye baktığımızda her bir buton veya benzeri ui elementi sıfırdan dizayn ediliyor. Dolayısıyla tek tek işkence ederek düzenlemem gerekiyor. Toplu bir şekilde ayarlamaya çalışıyorum. C++ taraflı yapmak daha mantıklı tabi ama pythondan daha basit nasıl yapılabilir araştırıyorum. Eğer c++ taraflı bakma şansın olursa çok iyi olur. 1 logini bile düzenlemek ve pencere boyutuna göre otutturmak için işkence çektim resmen. 😂😂😂
 
Kısmen çözüm; 2k olarak ayarladığımızda interface ölçeği daha iyi görüntü detayı ise 4k kadar keskin olmasada 1080p göre çok daha iyi. Fakat bunun geliştirilmesi elzem bir ilkellik :)
 
Geri
Üst