dx8 metin2 shader (güzel olmadı içerik amaçlı paylaştım)

apikomt2

Level 6
Katılım
11 May 2023
Konular
237
Mesajlar
1,032
Online süresi
1ay 23g
Reaksiyon Skoru
678
Altın Konu
1
Başarım Puanı
176
TM Yaşı
2 Yıl 11 Ay 15 Gün
MmoLira
503
DevLira
315

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

dx8 de dx9 gibi düzgün bi shader yok kısıtlı.
ama başka yollar var.
şuankide güzel olmadı içerik amaçlı paylaşıyorum.





actorinstancerender.cpp en asagi ekle.

void CActorInstance::RenderDynamicTextureEffect()
{
// =========================================================
// 1. FİLTRELER
// =========================================================
// if (!IsPC() || GetPartItemID(CRaceData:ART_MAIN) == 0 || !m_isMain)
// return;




const D3DXMATRIX* pWorldMatrix = &GetTransform();
if (!pWorldMatrix)
return;

// =========================================================
// 2. UV KAYDIRMA MATEMATİĞİ (Sihir burada)
// =========================================================
// Oyundaki anlık zamanı al (Kayma hızını 0.5f ile belirliyoruz)
const float fTime = CTimer::Instance().GetCurrentSecond() * 0.5f;

D3DXMATRIX matTexture;
D3DXMatrixIdentity(&matTexture);

// Dokuyu V ekseni (Y ekseni) boyunca yukarıdan aşağıya doğru kaydır
matTexture._32 = fTime;

// =========================================================
// 3. ÇİZİM VE IŞIK AYARLARI
// =========================================================
STATEMANAGER.SaveRenderState(D3DRS_ZWRITEENABLE, FALSE);
STATEMANAGER.SaveRenderState(D3DRS_ALPHABLENDENABLE, TRUE);

// Işık gibi parlaması için Additive Blending (Eklemeli Harmanlama)
STATEMANAGER.SaveRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
STATEMANAGER.SaveRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
STATEMANAGER.SaveRenderState(D3DRS_LIGHTING, FALSE);

// =========================================================
// 4. MOTORU ATEŞLE VE ÇİZ
// =========================================================
// Hazırladığımız kayan matrisi DirectX'e gönderiyoruz
STATEMANAGER.SetTransform(D3DTS_TEXTURE0, &matTexture);
STATEMANAGER.SaveTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2);

// Renk ve Parlaklık Ayarı (Buz mavisi/elektrik akan bir enerji rengi)
STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE2X);
STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLORARG2, D3DTA_TFACTOR);
STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, D3DCOLOR_ARGB(150, 100, 150, 255));

// Efekti zırhın hemen üzerine milimetrik olarak oturt
D3DXMATRIX matScale, matWorldEffect;
D3DXMatrixScaling(&matScale, 1.005f, 1.005f, 1.005f);
D3DXMatrixMultiply(&matWorldEffect, &matScale, pWorldMatrix);
STATEMANAGER.SetTransform(D3DTS_WORLD, &matWorldEffect);

// Kayan efektli zırhı ekrana çiz
RenderWithOneTexture();

// =========================================================
// 5. TEMİZLİK (DİĞER DOKULARIN KAYMASINI ENGELLE)
// =========================================================

// Kayan matrisi devre dışı bırak ve sıfırla (Çok kritik)
STATEMANAGER.SaveTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE);

D3DXMATRIX matIdentity;
D3DXMatrixIdentity(&matIdentity);
STATEMANAGER.SetTransform(D3DTS_TEXTURE0, &matIdentity);

STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLORARG2);
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLORARG1);
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLOROP);

STATEMANAGER.RestoreRenderState(D3DRS_LIGHTING);
STATEMANAGER.RestoreRenderState(D3DRS_DESTBLEND);
STATEMANAGER.RestoreRenderState(D3DRS_SRCBLEND);
STATEMANAGER.RestoreRenderState(D3DRS_ALPHABLENDENABLE);
STATEMANAGER.RestoreRenderState(D3DRS_ZWRITEENABLE);

STATEMANAGER.SetTransform(D3DTS_WORLD, pWorldMatrix);
}


burayı bu şekidle güncelle
STATEMANAGER.RestoreRenderState(D3DRS_CULLMODE);

// RenderCustomAura(); <-- EĞER BU VARSA SİL, DIŞ SEMBOL HATASININ SEBEBİ BU
RenderDynamicTextureEffect(); // Sadece yeni efektimiz kalsın

kMtrl.Diffuse=D3DXCOLOR(0xffffffff);




actorinsatnce.h

ekle
void RenderDynamicTextureEffect();
 

En Çok Reaksiyon Alan Mesajlar

ama abi sana geçen konuda yapay zekayı salmanı söyledim niye salmıyorsun şu mereti
 
ama abi sana geçen konuda yapay zekayı salmanı söyledim niye salmıyorsun şu mereti
yapay zeka baştan sana söylüyor bu dx8.1 bundan olmaz dx9a geçmen gerek diyor.

yorumalrda okuduğuma göre dx9 geçenler hata alabiliyor.

martysama owsap da geçmedi dx9a
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)