10 mesaje
Administrator Administrator
  • Mesaje: 3449
  • Reacții: 48404
  • Mesaje utile: 29
  • Status: Pe aici.. 🤠
  • Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Contact:
    *Descriere:

    Au dat turcii mega release la sistemul de umbre dinamice (complet - usor de adaugat). :-o


    Edit: Testat personal de mine, merge perfect! :)
    [RELEASE] C++ Dynamic Shadows - Mesaj 1 - Imagine 2
    [RELEASE] C++ Dynamic Shadows - Mesaj 1 - Imagine 1

    Ce este de fapt "Dynamic Shadow"?
    - Ei bine, inloc sa fie "desenate" umbrele pe jos, acestea vor reprezenta cu adevarat umbre in timp real pe jos de la obiecte/NPC/mobi/copaci/frunze/etc.

    - Face atmosfera de pe joc sa fie mai dinamica, sa para totul mai "viu" :)

    - De asemenea, umbrele isi vor modifica dimensiunea si intesitatea in functie de timpul zilei (dimineata/pranz/seara) si pozitia caracterului pe harta.


    Va las si voua arhiva FULL + explicatii despre cum sa modificati / retusati setarile. Daca aveti erori vizuale cu umbrele trebuie sa va jucati cu setarile la umbre, deci cititi totul cu atentie. Am tradus fisierul in romana cu chatgpt.


    Acest sistem de umbre dinamice are si alte functii precum:
    - Sincronizare umbre in interfata UI (ex. poti adauga in rendertarget umbre in real time)
    - Optimizare prin cache bazat pe coordonate. (coordonate pre-calculate pentru umbre, astfel încât jocul să nu recalculeze aceleași umbre de mai multe ori.)
    - Poti sincroniza umbrele cu soarele din joc.

    Acest release este foarte important, deoarece va schimba in totalitate experienta Metin2. NU ESTE UPDATE DE GRAFICA, doar pe partea de umbre!

    Tutorialul este in Turca. (Link Internal) si Engleza (Link github). In caz ca nu este explicat ceva bine in varianta in engleza, verificati pe cea in turca - acolo cica ar fi explicat mai bine.

    Edit: Dupa ce ai facut tutorialul, fa si urmatoarele fixuri:
    1) Deschidem SphereLib/frustum.cpp si cautam:
    Code:
    ViewState Frustum::ViewVolumeTest(const Vector3d &c_v3Center,const float c_fRadius) const
    Modificam asa:
    Code:
    ViewState Frustum::ViewVolumeTest(const Vector3d &c_v3Center,const float c_fRadius) const
    {
    	const auto dynamicShadowExtend = 2.0f; // idk i think even 1.5 should do it
    	
    	if (m_bUsingSphere)
    	{
    		D3DXVECTOR3 v(
    				c_v3Center.x-m_v3Center.x,
    				c_v3Center.y-m_v3Center.y,
    				c_v3Center.z-m_v3Center.z);
    
    		if ((c_fRadius * dynamicShadowExtend + m_fRadius) * (c_fRadius * dynamicShadowExtend + m_fRadius) < D3DXVec3LengthSq(&v))
    		{
    			return VS_OUTSIDE;
    		}
    	}
    
    	const int count=6;
    
    	D3DXVECTOR3 center = c_v3Center;
    
    	int i;
    
    	float distance[count];
    	for(i=0;i<count;i++)
    	{
    		distance[i] = D3DXPlaneDotCoord(&m_plane[i],&center);
    		if (distance[i] <= -c_fRadius * dynamicShadowExtend)
    			return VS_OUTSIDE;
    	}
    
    	for(i=0;i<count;i++)
    	{
    		if (distance[i]<=c_fRadius)
    			return VS_PARTIAL;
    	}
    
    	return VS_INSIDE;
    }

    2) Daca nu aveti software tiling dezactivat: Deschidem GameLib/MapOutdoorRenderSTP.cpp si cautati:
    Code:
    		if (isFogEnable)
    		{
    			STATEMANAGER.SetRenderState(D3DRS_FOGENABLE, TRUE);
    			STATEMANAGER.SetRenderState(D3DRS_FOGCOLOR, 0xFFFFFFFF);
    			STATEMANAGER.SetTexture(0, pTerrain->GetShadowTexture());
    			STATEMANAGER.DrawIndexedPrimitive(ePrimitiveType, 0, m_iPatchTerrainVertexCount, 0, wPrimitiveCount);
    			STATEMANAGER.SetRenderState(D3DRS_FOGCOLOR, rkTPRS.m_dwFogColor);
    			STATEMANAGER.SetRenderState(D3DRS_FOGENABLE, FALSE);
    		}
    		else
    		{
    			STATEMANAGER.SetTexture(0, pTerrain->GetShadowTexture());
    			STATEMANAGER.DrawIndexedPrimitive(ePrimitiveType, 0, m_iPatchTerrainVertexCount, 0, wPrimitiveCount);
    		}
    Modificati asa:
    Code:
    		if (isFogEnable)
    		{
    			STATEMANAGER.SetRenderState(D3DRS_FOGENABLE, TRUE);
    			STATEMANAGER.SetRenderState(D3DRS_FOGCOLOR, 0xFFFFFFFF);
    			STATEMANAGER.SetTexture(0, nullptr);
    			STATEMANAGER.DrawIndexedPrimitive(ePrimitiveType, 0, m_iPatchTerrainVertexCount, 0, wPrimitiveCount);
    			STATEMANAGER.SetRenderState(D3DRS_FOGCOLOR, rkTPRS.m_dwFogColor);
    			STATEMANAGER.SetRenderState(D3DRS_FOGENABLE, FALSE);
    		}
    		else
    		{
    			STATEMANAGER.SetTexture(0, nullptr);
    			STATEMANAGER.DrawIndexedPrimitive(ePrimitiveType, 0, m_iPatchTerrainVertexCount, 0, wPrimitiveCount);
    		}
    Cautati:
    Code:
    void CMapOutdoor::__SoftwareTransformPatch_ApplyStaticShadowRenderState()
    {
    	STATEMANAGER.SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ZERO);
    	STATEMANAGER.SetRenderState(D3DRS_DESTBLEND, D3DBLEND_SRCCOLOR);
    	
    	STATEMANAGER.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
    	STATEMANAGER.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
    	STATEMANAGER.SetTextureStageState(0, D3DTSS_COLOROP,   D3DTOP_MODULATE);
    	STATEMANAGER.SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
    	STATEMANAGER.SetTextureStageState(0, D3DTSS_ALPHAOP,   D3DTOP_SELECTARG1);
    	STATEMANAGER.SetSamplerState(0, D3DSAMP_ADDRESSU,	D3DTADDRESS_CLAMP);
    	STATEMANAGER.SetSamplerState(0, D3DSAMP_ADDRESSV,	D3DTADDRESS_CLAMP);
    }
    Modificati asa:
    Code:
    void CMapOutdoor::__SoftwareTransformPatch_ApplyStaticShadowRenderState()
    {
    	STATEMANAGER.SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ZERO);
    	STATEMANAGER.SetRenderState(D3DRS_DESTBLEND, D3DBLEND_SRCCOLOR);
    
    	STATEMANAGER.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_CURRENT);
    	STATEMANAGER.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
    }

    3) Faceti urmatorul tutorial pentru a avea umbre mai calitative + render distance mai mare:
    increase-dynamic-shadow-render-distance-t4566.html


    *Poze / Video:

    Cu umbre normale (clasice):
    [RELEASE] C++ Dynamic Shadows - Mesaj 1 - Imagine 4

    Cu umbre dinamice:
    [RELEASE] C++ Dynamic Shadows - Mesaj 1 - Imagine 3

    *Link download / Code:

    Va las github (recomand sa folositi acest link, deaorece e posibil sa se mai faca update-uri)
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Link backup:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.

    Cum descarc de pe TeraBox?

    Afișează detalii Ascunde detalii
    • Este asemănător cu Mega.nz
    • Instalați-vă clientul lor de Download de aici
    • Faceți-vă un cont (vă puteți loga cu Facebook / Google / etc)
    • Dacă nu vreți să descărcați clientul de Download, folosiți acest site
    • Gata! Acum puteți descărca resursele

    De ce folosim TeraBox?

    • Este gratuit
    • Primești 1TB de spațiu gratuit la orice cont creat!
    • Este ușor de folosit și varianta premium este foarte ieftină
    • Fișierele nu sunt șterse niciodată
    TeraBox logo
    Te asteptam si pe serverul de Discord :p - aici ne-am strans toata comunitatea de Metin2 din Romania.
    Link: https://discord.gg/jWxeDSf7HP

    Suntem peste 1700 membri! - Avem chat activ zilnic, support, cereri, resurse. :D :ymcowboy:




    See full signature

    📢 Resurse Metin2 Premium!

    Zeci de resurse Metin2 Premium - exclusive și 100% funcționale începând cu 15.99€!.

    Vezi resursele Cumpără premium
    Premium
    Premium
    Anunț
  • Mesaje: 32
  • Reacții: 371
  • Mesaje utile: 0
  • Status: Pierd vremea ^.^
  • Regat: Shinsoo
  • [ID Discord]
  • Contact:

    Medalii

    Multumim de resursa! Dupa ce testez las o poza,sper sa nu trebuiasca sa modific nimic
    Administrator Administrator
  • Mesaje: 3449
  • Reacții: 48404
  • Mesaje utile: 29
  • Status: Pe aici.. 🤠
  • Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Contact:
    Avatar utilizator
    Administrator
    Administrator

    Mesaj de [HF]White »

    qPastarnac scrie: Multumim de resursa! Dupa ce testez las o poza,sper sa nu trebuiasca sa modific nimic
    Am adaugat 3 fix-uri noi in topicul original. :)
    Te asteptam si pe serverul de Discord :p - aici ne-am strans toata comunitatea de Metin2 din Romania.
    Link: https://discord.gg/jWxeDSf7HP

    Suntem peste 1700 membri! - Avem chat activ zilnic, support, cereri, resurse. :D :ymcowboy:




    See full signature
  • Mesaje: 26
  • Reacții: 197
  • Mesaje utile: 1
  • Status: Pierd vremea ^.^
  • Regat: Jinno
  • Medalii

    Vreo idee cum as putea sa rezolv podurile ? Cand stai pe ele se fac foarte intunecate si cand te dai jos arata normal din nou.
    [RELEASE] C++ Dynamic Shadows - Mesaj 4 - Imagine 1
    [RELEASE] C++ Dynamic Shadows - Mesaj 4 - Imagine 2
    Administrator Administrator
  • Mesaje: 3449
  • Reacții: 48404
  • Mesaje utile: 29
  • Status: Pe aici.. 🤠
  • Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Contact:
    Avatar utilizator
    Administrator
    Administrator

    Mesaj de [HF]White »

    ShadowsPR0 scrie: Vreo idee cum as putea sa rezolv podurile ? Cand stai pe ele se fac foarte intunecate si cand te dai jos arata normal din nou.
    [RELEASE] C++ Dynamic Shadows - Mesaj 5 - Imagine 1
    [RELEASE] C++ Dynamic Shadows - Mesaj 5 - Imagine 2
    Fa fixurile din topic + citeste fisierul de setaril
    Te asteptam si pe serverul de Discord :p - aici ne-am strans toata comunitatea de Metin2 din Romania.
    Link: https://discord.gg/jWxeDSf7HP

    Suntem peste 1700 membri! - Avem chat activ zilnic, support, cereri, resurse. :D :ymcowboy:




    See full signature
  • Mesaje: 26
  • Reacții: 197
  • Mesaje utile: 1
  • Status: Pierd vremea ^.^
  • Regat: Jinno
  • Medalii

    Poftim fix exclusiv metin2.forum

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.
    Administrator Administrator
  • Mesaje: 3449
  • Reacții: 48404
  • Mesaje utile: 29
  • Status: Pe aici.. 🤠
  • Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Contact:
    Avatar utilizator
    Administrator
    Administrator

    Mesaj de [HF]White »

    Merge perfect! :x :x
    Te asteptam si pe serverul de Discord :p - aici ne-am strans toata comunitatea de Metin2 din Romania.
    Link: https://discord.gg/jWxeDSf7HP

    Suntem peste 1700 membri! - Avem chat activ zilnic, support, cereri, resurse. :D :ymcowboy:




    See full signature
  • Mesaje: 10
  • Reacții: 6
  • Mesaje utile: 0
  • Status: Pierd vremea ^.^
  • Regat: Shinsoo
  • Medalii

    I followed the guide entirely, but it seems that the problem with the bridge, for example, remains.
  • Mesaje: 26
  • Reacții: 197
  • Mesaje utile: 1
  • Status: Pierd vremea ^.^
  • Regat: Jinno
  • Medalii

    metin2devtest scrie: I followed the guide entirely, but it seems that the problem with the bridge, for example, remains.
    Add the fix i provided.
  • Mesaje: 101
  • Reacții: 1436
  • Mesaje utile: 0
  • Status: https://discord.gg/wDKzjDvVkj
  • Server: Althaia
  • Regat: Chunjo
  • [ID Discord]
  • Contact:

    Medalii

    The only issue, that ShadowsPR0 provided a workaround for it, remains that shadow glitch when the character is above on a height object collision (bridge, custom object, etc)

    🔥 Hai pe Discord! - Chat activ și support direct

    Te așteptăm și pe serverul de Discord - aici ne-am strâns toată comunitatea de Metin2 din România.

    Alătură-te acum!
    1300+ de membri activi!
    Robot Discord
    Roboțelu'
    Anunț
    Scrie răspuns

    Creează-ți un cont sau autentifică-te pentru a participa la discuție

    Trebuie să fii membru pentru a răspunde

    Creează-ți un cont

    Membrii pot crea subiecte noi și pot descărca resurse Metin2 Gratuit!


    Te poți înregistra sau conecta rapid utilizând contul tău de Discord, Github sau Google.

    Înregistrare

    Autentifică-te

    Înapoi la “Îmbunătățiri”

    Informații

    Utilizatori ce navighează pe acest forum: ethalor2official, keksz021, Piticul14, Vaynz, Zbychu și 8 vizitatori

    Discord ID copiat: