Bina lod aramasını koddan tamamen kaldırmak

  • Konuyu açan Konuyu açan xatli
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 0
  • Gösterim Gösterim 43

xatli

Çaylak Üye
Üye
Mesaj
2
Beğeni
1
Puan
13
Ticaret Puanı
0
Metin2, 2004 yılındaki donanım kısıtlamaları (64 MB ekran kartları ve Direct3D 8) nedeniyle büyük bir optimizasyon mühendisliğiyle tasarlanmıştı. Bahsettiğiniz LOD (Level of Detail - Detay Seviyesi) sistemi de bunun en net kanıtıdır.

Metin2'nin LOD Sistemi Nasıl Çalışıyordu?
Oyun motoru (Granny 3D), ekran kartının ve işlemcinin üzerindeki yükü azaltmak için nesneleri kameraya olan uzaklığına göre dinamik olarak değiştiriyordu:
    • Yakındaki Nesneler (_lod.gr2): Oyuncu binanın hemen yanındayken tüm detaylar, pencereler ve keskin hatlar yüksek poligonlu olarak yüklenir.
    • Uzaktaki Nesneler (_lod_01.gr2): Oyuncu binadan uzaklaştıkça, motor görünmez bir geçişle binayı çok daha az poligona sahip, detayları azaltılmış kopyasıyla (_lod_01) değiştirir.
Bu sayede bilgisayar, oyuncunun zaten net göremediği uzak binaları çizmek için boşuna performans harcamaz ve o dönemin 64 MB ekran kartlarında bile oyunun akıcı (FPS düşmeden) çalışmasını sağlardı.

Eğer RAM'de anlık bir arama tablosu dahi tutmak istemiyorsanız, önümüzde 2 tane kesin ve kalıcı yazılımsal çözüm var:

Seçenek A (En Çok Tercih Edilen & Modern Çözüm): Bina LOD Aramasını Koddan Tamamen Kaldırmak
Gerçek: Metin2 2004 yılında Direct3D 8 ve 64 MB ekran kartları için tasarlandığında, binaların uzaktayken düşük poligonlu hallerini (_lod_01.gr2) yüklemek planlanmıştı.
Ancak günümüz ekran kartlarında (DX11, GTX/RTX, AMD vb.) 500 poligonluk bir bina modeli ile 250 poligonluk model arasında 0.0 FPS fark vardır. Ekran kartları milyonlarca poligonu milisaniyeler içinde çizer.
Zaten Ymir de sonradan bunu fark edip neredeyse hiçbir haritaya LOD modeli üretmemiştir.
Çözüm: Area.cpp içindeki o 3 turluk _lod_01.gr2 arama döngüsünü tamamen koddan kaldırırız.
RAM kullanımı: 0 Byte (hiçbir önbellek tutulmaz).
Disk/Pack araması: 0 sorgu (hiç aramaz).
Görsellik: %100 aynı kalır, hiçbir bozulma olmaz.
 
Geri
Üst