Directx üzerinde md3 modelleri

Quake 3 te modeller için kullanılan md3 dosyalarını yüklemeye başladım. Hala biraz eksiği var o yüzden kaynak kodunu henüz veremeyeceğim.

leg1

Kontroller

v: tüm vücudu kapsayan animasyonları değiştiriyor (ölme animasyonları)
b: bacaklar için olan animasyonu değiştiriyor
n: göğüs animasyonunu değiştiriyor

link

Left4Dead tarzı Glow efekti

Oynamış olanlar neden bahsettiğimi biliyordur herhalde, oynamamışlarda kesinlikle denemesini öneririm.

Buradaki glow efektini directx üzerinde shader kullanarak yapmaya karar vermiştim. Sonuç yeterli gibi oldu.

test

Kullanması oldukça kolay. Kütüphanemizi yüklüyoruz. Effect i hazırlamak icin
void setupEffect(LPDIRECT3DDEVICE9 d3ddev, int w, int h);
fonksiyonu cağırılıyor. w ve h ekran boyutları oluyor.

Daha sonradan da
void drawGlowMesh(ID3DXMesh* mesh, D3DXVECTOR3 color);
ile mesh i color ile ekrana çiziyoruz.

Kullanabilmek icin bir kac seye ihtiyacımız var. d3ddev olusturulurken back buffer boyutlarını vermek zorundayız.
d3dpp.BackBufferHeight = SCREEN_HEIGHT;
d3dpp.BackBufferWidth = SCREEN_WIDTH;

Ayrıca stencil buffer destekleyen bir depth&stencil format kullanmalıyız. En çok kullanılan D3DFMT_D24S8 sanırım.

Son olarakta alpha blending açık olmalı.

.h ve .fx dosyamız

Ayrıca şu linkteki örnek üzerine ekledim. main.cpp örnek teki kod. kendi eklediğim ve değiştirdiğim satırlar //*** ile comment lendi ve açıklama yazıldı.

Örnek program (Adı postprocess olduğuna bakmayın, üşendim şimdi düzeltmeye =))