2 mesaje
  • Mesaje: 19
  • Reacții: 11
  • Mesaje utile: 0
  • Medalii

    Code:
    void CActorInstance::OnRender()
    {
        D3DMATERIAL8 kMtrl;
        STATEMANAGER.GetMaterial(&kMtrl);
    
        kMtrl.Diffuse = D3DXCOLOR(m_dwMtrlColor);
        STATEMANAGER.SetMaterial(&kMtrl);
    
        STATEMANAGER.SaveRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
    bool bIsSpecialModel = (IsNPC() || IsBuilding() || IsEnemy());
    
        if (bIsSpecialModel)
        {
            // NPC veya Ev ise Alpha Testi aktif ediyoruz
            STATEMANAGER.SetRenderState(D3DRS_ALPHATESTENABLE, TRUE);
            STATEMANAGER.SetRenderState(D3DRS_ALPHAREF, 1);
            STATEMANAGER.SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL);
        }
        else
        {
            // Diğer durumlarda (PC vb.) kapalı kalmasını sağlıyoruz
            STATEMANAGER.SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
        }
        // ------------------------------------------
    
        switch(m_iRenderMode)
        {
            case RENDER_MODE_NORMAL:
                // --- ALPHA TEST AKTİF ETME ---
                // STATEMANAGER.SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
                STATEMANAGER.SetRenderState(D3DRS_ALPHAREF, 1);
                STATEMANAGER.SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL);
    
                BeginDiffuseRender();
                    RenderWithOneTexture();
                EndDiffuseRender();
                BeginOpacityRender();
                    BlendRenderWithOneTexture();
                EndOpacityRender();
    
                // İşlem bittikten sonra kapatıyoruz ki diğer çizimler etkilenmesin
                // STATEMANAGER.SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
                break;
    
            case RENDER_MODE_BLEND:
                if (m_fAlphaValue == 1.0f)
                {
                    // Karakter tam görünürken de Alpha Test gerekebilir
                    // STATEMANAGER.SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
                    
                    BeginDiffuseRender();
                        RenderWithOneTexture();
                    EndDiffuseRender();
                    BeginOpacityRender();
                        BlendRenderWithOneTexture();
                    EndOpacityRender();
    
                    // STATEMANAGER.SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
                }
                else if (m_fAlphaValue > 0.0f)
                {
                    BeginBlendRender();
                        RenderWithOneTexture();
                        BlendRenderWithOneTexture();
                    EndBlendRender();
                }
                break;
    
            case RENDER_MODE_ADD:
                BeginAddRender();
                    RenderWithOneTexture();
                    BlendRenderWithOneTexture();
                EndAddRender();
                break;
    
            case RENDER_MODE_MODULATE:
                BeginModulateRender();
                    RenderWithOneTexture();
                    BlendRenderWithOneTexture();
                EndModulateRender();
                break;
        }
    STATEMANAGER.SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
        STATEMANAGER.RestoreRenderState(D3DRS_CULLMODE);
    
    
        kMtrl.Diffuse=D3DXCOLOR(0xffffffff);
        STATEMANAGER.SetMaterial(&kMtrl);
    
        if (ms_isDirLine)
        {
            D3DXVECTOR3 kD3DVt3Cur(m_x, m_y, m_z);
    
            D3DXVECTOR3 kD3DVt3LookDir(0.0f, -1.0f, 0.0f);
            D3DXMATRIX kD3DMatLook;
            D3DXMatrixRotationZ(&kD3DMatLook, D3DXToRadian(GetRotation()));
            D3DXVec3TransformCoord(&kD3DVt3LookDir, &kD3DVt3LookDir, &kD3DMatLook);
            D3DXVec3Scale(&kD3DVt3LookDir, &kD3DVt3LookDir, 200.0f);
            D3DXVec3Add(&kD3DVt3LookDir, &kD3DVt3LookDir, &kD3DVt3Cur);
            STATEMANAGER.SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
    
            D3DXVECTOR3 kD3DVt3AdvDir(0.0f, -1.0f, 0.0f);
            D3DXMATRIX kD3DMatAdv;
            D3DXMatrixRotationZ(&kD3DMatAdv, D3DXToRadian(GetAdvancingRotation()));
            D3DXVec3TransformCoord(&kD3DVt3AdvDir, &kD3DVt3AdvDir, &kD3DMatAdv);
            D3DXVec3Scale(&kD3DVt3AdvDir, &kD3DVt3AdvDir, 200.0f);
            D3DXVec3Add(&kD3DVt3AdvDir, &kD3DVt3AdvDir, &kD3DVt3Cur);
    
            static CScreen s_kScreen;
    
            STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLORARG1,    D3DTA_DIFFUSE);
            STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLOROP,    D3DTOP_SELECTARG1);
            STATEMANAGER.SaveTextureStageState(0, D3DTSS_ALPHAOP,    D3DTOP_DISABLE);
            STATEMANAGER.SaveRenderState(D3DRS_ZENABLE, FALSE);
            STATEMANAGER.SetRenderState(D3DRS_LIGHTING, FALSE);
    
            s_kScreen.SetDiffuseColor(1.0f, 1.0f, 0.0f);
            s_kScreen.RenderLine3d(kD3DVt3Cur.x, kD3DVt3Cur.y, kD3DVt3Cur.z, kD3DVt3AdvDir.x, kD3DVt3AdvDir.y, kD3DVt3AdvDir.z);
    
            s_kScreen.SetDiffuseColor(0.0f, 1.0f, 1.0f);
            s_kScreen.RenderLine3d(kD3DVt3Cur.x, kD3DVt3Cur.y, kD3DVt3Cur.z, kD3DVt3LookDir.x, kD3DVt3LookDir.y, kD3DVt3LookDir.z);
    
            STATEMANAGER.SetRenderState(D3DRS_LIGHTING, TRUE);
            STATEMANAGER.RestoreRenderState(D3DRS_ZENABLE);
    
            STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLORARG1);
            STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLOROP);
            STATEMANAGER.RestoreTextureStageState(0, D3DTSS_ALPHAOP);
            STATEMANAGER.RestoreVertexShader();
        }
    }
    .gr2 tree - Mesaj 1 - Imagine 1
    .gr2 tree - Mesaj 1 - Imagine 1
    .gr2 tree - Mesaj 1 - Imagine 3
    .gr2 tree - Mesaj 1 - Imagine 4
    .gr2 tree - Mesaj 1 - Imagine 5
    .gr2 tree - Mesaj 1 - Imagine 6
    .gr2 tree - Mesaj 1 - Imagine 7
    .gr2 tree - Mesaj 1 - Imagine 8


    Although Granny Viewer looks fine, it can't render because the Metin2 game engine is insufficient.
    Therefore, we choose low-poly trees.
    I have been able to add 4 trees so far.

    granny 2.11

    When you create an NPC, it's in the shade.


    https://www.mediafire.com/file/izbyoeiq ... k.zip/file

    Nou 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)
    • Nou Dacă nu vreți să descărcați clientul de Download, folosiți acest site
    • Gata! Acum puteți descărca resursele rapid & simplu.

    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

    🔥 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!
    Suntem aproape: 
    Robot Discord
    Roboțelu'
    Anunț
  • Mesaje: 19
  • Reacții: 11
  • Mesaje utile: 0
  • Medalii

    .gr2 tree - Mesaj 2 - Imagine 1
    I had created it as a tree object. I'm getting errors during rendering, but it was fixed when I made it an NPC.

    🔥 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!
    Suntem aproape: 
    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 “FIX-uri”

    Informații

    Utilizatori ce navighează pe acest forum: champagne și 1 vizitator

    Discord ID copiat: