Neler yeni

Foruma hoş geldin, Ziyaretçi

Metin2Lobby.com Metin2 Private Server Tanıtım Advertising Ve Geliştirme Forumudur.Metin2 pvp serverler,1-99,1-105,1-120,55-120 global serverları paylaş yada ara.
Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Metin2 Ağaçlar ve Nesneler için Dinamik Gölgeler + Statik gölge haritası Mantığını Kaldırma

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Konular
48,291
Mesajlar
48,601
Tepkime puanı
75
M2 Yaşı
3 yıl 11 ay 10 gün
Trophy Puan
48
Konum
Web sitesi
M2 Yang
488,879
Ticaret : 1 / 0 / 0
Ticaret Oranı : 100%
Bu dosyalar, görsel kalitesini önemli ölçüde artıran bir dinamik gölge sistemidir. Orijinal oyunda gölgeler statik (sabit) iken, bu sistem gerçek zamanlı dinamik gölgeler sağlayarak oyunun gerçekçiliğini artırır.​

Sistemin Temel Mantığı[/FONT]

Gölge sistemi üç ana bileşenden oluşur: karakter gölgeleri, obje gölgeleri ve ağaç gölgeleri. Her bileşen kendi render döngüsüne sahiptir ve koordinat tabanlı gölge hesaplama kullanır. Sistem, oyuncunun bulunduğu konuma göre gölge yoğunluğunu hesaplayarak, karakterlerin ve objelerin gölgeye uygun renklerde görünmesini sağlar.

Ana Dosya Yapısı ve İşlevleri

GameLib klasörü sistemin kalbidir. Area.cpp dosyası oyun alanlarındaki tüm objelerin gölgelerini yönetir ve RenderShadowObjects() fonksiyonu ile hareketli varlıkların gölgelerini render eder. MapOutdoor.cpp ise açık dünya haritalarının gölge sistemini kontrol eder ve GetShadowMapColor() fonksiyonu ile belirli koordinatlardaki gölge rengini hesaplar. Bu hesaplama, oyuncunun bulunduğu yerdeki gölge yoğunluğunu belirleyerek karakterin görünümünü etkiler.MapOutdoorRender.cpp dosyası ağaçların dinamik gölgelerini yönetir. RenderTree() fonksiyonu ile ormanlardaki ağaçların gerçekçi gölgelerini oluşturur. Bu sistem, rüzgarda sallanan ağaçların gölgelerinin de hareket etmesini sağlar, böylece çok daha canlı bir orman görünümü elde edilir.AreaTerrain.cpp dosyası arazi gölge dokularını yükler ve yönetir. LoadShadowTexture() ve LoadShadowMap() fonksiyonları ile harita yüklenirken gölge verilerini belleğe alır. Bu veriler, dağlar, tepeler ve çukurlar gibi arazi şekillerinin gölgelerini oluşturmak için kullanılır.

Oyuncu Etkileşimi ve Görsel Geri Bildirim

UserInterface klasöründeki dosyalar oyuncu deneyimini doğrudan etkiler. InstanceBase.cpp dosyası karakter ve objelerin gölge renklerini hesaplar. __GetShadowMapColor() fonksiyonu ile karakterin bulunduğu yerdeki gölge rengini alır ve karakterin gölgeye uygun renkte görünmesini sağlar. Bu sayede karakter güneşte parlak, gölgede koyu görünür.PythonBackground.cpp dosyası tüm gölge render işlemlerini koordine eder. Karakter gölgeleri, ağaç gölgeleri ve obje gölgelerini doğru sırada render ederek görsel tutarlılığı sağlar. PythonBackgroundModule.cpp ise Python scriptlerinden gölge bilgilerine erişim sağlar, böylece UI elementleri ve efektler gölge bilgilerini kullanabilir.

Arazi ve Harita Sistemi

TerrainLib klasöründeki Terrain.cpp dosyası arazi gölge haritalarını işler. GetShadowMapColor() fonksiyonu ile arazi üzerindeki gölge yoğunluğunu hesaplar ve 256x256 piksel gölge verisi kullanarak yüksek çözünürlüklü gölge haritaları oluşturur. Bu sistem, R5G6B5 formatında 16-bit renk kullanarak performansı optimize eder.WorldEditor klasörü harita editörü için gölge yönetimi sağlar. MapAccessor*.cpp dosyaları ReloadShadowTexture() fonksiyonu ile editörde gölge dokularını yeniden yükler, böylece harita editöründe gölgeleri önizleme ve düzenleme imkanı sağlar.

Teknik Performans ve Optimizasyon

Sistem sadece görünür alanları render ederek performansı optimize eder. Gölge hesaplamaları gerçek zamanlı yapılır ancak koordinat tabanlı önbellekleme kullanılarak gereksiz hesaplamalar önlenir. Render sırası önce karakterler, sonra objeler, en son ağaçlar şeklinde düzenlenmiştir.

Oyundaki Görsel Etki

Bu sistem sayesinde Metin2 oyunu çok daha modern ve gerçekçi bir görünüme kavuşur. Güneş hareket ettikçe gölgeler de hareket eder, ağaçların gölgeleri rüzgarda sallanır ve karakterlerin gölgeleri gerçek zamanlı hesaplanır. Bu değişiklik, oyuncuların daha immersive bir deneyim yaşamasını sağlar ve oyunun görsel kalitesini önemli ölçüde artırır.

Öncesi

266190_4404e88e91435256917a98489af2670a.png


Sonrası

266192_05a90ec35087964613783dd8e5aa7838.png


Çok Daha Sonrası

266194_6c01bb87977ab2f8309decd40e73e2c4.png


Dosyalar Hakkında:

Dosya içeriği ve yapacaklarınız Türkçe'ye çevrilmiştir.


Bu konudakinin güncellenmiş halidir.

Konuya eklediğim Rehber.cpp'den tüm ayarları kontrol edip düzenleyebilirsiniz.

266196_cdf1b3623f8198bac813eb5a7577e0ee.png


/ /

Teşekkürler.

Metin2 Ağaçlar ve Nesneler için Dinamik Gölgeler + Statik Gölge Haritası Mantığını Kaldırma

Metin2 özel sunucularında görsel kaliteyi artırmak, oyuncu deneyimini ciddi anlamda etkileyebilir. Özellikle görsel efektlerin detaylandırılmasında dinamik gölgeler büyük rol oynar. Bu makalede, Metin2 özel sunucu geliştiricileri için ağaçlar ve diğer nesneler üzerinde dinamik gölgeler oluşturmayı ve statik gölge haritası mantığını nasıl kaldıracağımızı detaylı olarak ele alacağız.

Statik Gölge Haritası Nedir?

Metin2'nin eski motor yapısı, gölgeleri önceden hesaplanmış statik gölge haritaları üzerinden çizer. Bu durum, görsel açıdan sabit ve gerçekçi olmayan gölgelerin oluşmasına neden olur. Özellikle gün ışığı değişikliklerinde veya animasyonlu nesnelerde bu gölgeler oldukça yapay durabilir. Statik gölgelerin temel problemi; dinamik ışık kaynakları ile uyum sağlamamasıdır. Bu da oyuncuların görsel deneyimini düşürür.

Neden Dinamik Gölge Sistemine Geçilmeli?

Dinamik gölgeler, sahnedeki nesnelerin konumuna ve ışık kaynaklarına göre anlık olarak hesaplanır. Bu sayede ağaçlar, karakterler ve diğer nesnelerin gölgeleri gerçek zamanlı olarak değişir. Bu değişiklik, oyun atmosferini daha gerçekçi hale getirir. Özellikle PvP alanlarında bu gibi görsel detaylar, stratejik avantaj sağlayabilir. Oyuncular, gölgeler yardımıyla düşman konumlarını tahmin edebilir.

C++ Kaynak Kodlarında Değişiklik

Metin2 özel sunucu geliştirme sürecinde, gölgeleri dinamik hale getirmek için client-side ve server-side bazı düzenlemeler yapılmalıdır. Öncelikle, render engine tarafında gölge haritası oluşturma mantığı yeniden yazılır. Bu işlem için C++ bilgisi gereklidir. Shadow Mapping mantığı devre dışı bırakılıp, Dynamic Shadow sistemi entegre edilir. Bu işlem sırasında game core dosyalarında değişiklikler yapılır.

Python UI Script Entegrasyonu

Bazı görsel efektler, uiscript veya py root üzerinden de desteklenebilir. Örneğin, bir nesnenin gölgesi belirli bir mesafeye kadar görünebilir gibi ayarlamak için Python tabanlı arayüz scriptleri kullanılabilir. Bu, performans açısından avantaj sağlarken, görsel kaliteyi de artırır. Py GUI sistemleri ile gölgelerin kullanıcı ayarlarına göre kontrol edilmesi sağlanabilir.

Performans Etkileri

Dinamik gölgelerin eklenmesi, grafik kartı üzerinde daha fazla işlem yükü oluşturur. Bu nedenle, sunucu sahipleri bu özelliği kullanırken dikkatli olmalıdır. Özellikle düşük donanımlı sistemlerde FPS düşüşü yaşanabilir. Ancak doğru ayarlarla hem performans hem de görsel kalite dengesi sağlanabilir. Martysama gibi kaynaklar incelenerek optimize edilmiş sistemler kurulabilir.

Özetle

Metin2 özel sunucularında görsel kaliteyi artırmak için dinamik gölgelerin entegrasyonu, önemli bir adımdır. Statik gölge haritası mantığının kaldırılması ile birlikte, ağaçlar, karakterler ve diğer nesneler daha gerçekçi gölgelerle sahnede yer alır. Bu sistem, C++ ve Python tabanlı gelişmiş sistemlerle desteklenmelidir. Metin2Lobby, bu tür gelişmeleri takip eden ve Metin2 geliştiricilerine kaynak sunan bir platformdur.


Dynamic Shadows for Trees and Objects in Metin2 + Removing Static Shadow Map Logic

Improving visual quality in Metin2 private servers can significantly impact the player experience. Especially in detailing visual effects, dynamic shadows play a major role. In this article, we will discuss in detail how to create dynamic shadows on trees and other objects for Metin2 private server developers, and how to remove the static shadow map logic.

What is Static Shadow Mapping?

Metin2's old engine structure draws shadows based on pre-calculated static shadow maps. This causes the shadows to appear fixed and unrealistic. Particularly with changing daylight or animated objects, these shadows can look very artificial. The main issue with static shadows is their lack of compatibility with dynamic light sources, which reduces the visual experience for players.

Why Should We Switch to Dynamic Shadow Systems?

Dynamic shadows are calculated in real-time based on the positions of objects in the scene and light sources. Thus, the shadows of trees, characters, and other objects change in real-time. This change makes the game atmosphere more realistic. Especially in PvP areas, such visual details may provide strategic advantages. Players can estimate enemy positions using shadows.

Modifications in C++ Source Code

In the process of developing Metin2 private servers, some modifications must be made on both client-side and server-side to make shadows dynamic. First, the shadow mapping logic in the render engine needs to be rewritten. This requires knowledge of C++. The Shadow Mapping logic is disabled and replaced with a Dynamic Shadow system. Modifications are made within the game core files during this process.

Python UI Script Integration

Some visual effects can also be supported through uiscript or py root. For example, you can use Python-based UI scripts to set the visibility range of an object's shadow. This provides performance benefits while increasing visual quality. With Py GUI systems, shadows can be controlled according to user settings.

Performance Impacts

Adding dynamic shadows creates more processing load on the graphics card. Therefore, server owners should be cautious when implementing this feature. Especially on low-end systems, FPS drops might occur. However, with proper configurations, a balance between performance and visual quality can be achieved. Optimized systems can be built by reviewing resources like Martysama.

In Summary

Integrating dynamic shadows into Metin2 private servers is an important step in enhancing visual quality. By removing static shadow map logic, trees, characters, and other objects appear more realistically with dynamic shadows. This system should be supported with advanced systems based on C++ and Python. Metin2Lobby is a platform that follows such developments and provides resources to Metin2 developers.
 

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kaydol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Üye ol
Giriş Yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş Yap

Tema düzenleyici

Tema özelletirmeleri