Gå til innhold

[LØST] DirectX: Hvor er mitt triangel?


Anbefalte innlegg

Edit: Løste dette. Var feil ved memcpy -- Jeg skal selvfølgelig ordne med min struct, ikke min vertexbuffer.

 

Heisann.

 

Jeg har nettopp begynt med å lære meg DirectX, da med størst vekt på Direct3D. Jeg har ikke kommet lenger enn at jeg holder på å rendre et flatt triangel, men av en eller annen merkelig grunn så vises den ikke. Jeg har sjekket DirectX Debug loggen, men jeg kan ikke se noe galt der, kanskje dere kan.

 

Hele koden finnes her: http://rafb.net/p/NIhZ6s16.html

 

Her er et utdrag av mitt eget FVF:

#define CUSTOMFVF (D3DFVF_XYZ|D3DFVF_DIFFUSE) //XYZ + Color

 

struct customVertex

{

float x, y, z;

DWORD color;

};

 

Og min Render-funksjon:

void render()

{

d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 150, 150), 1.0, 0);

d3ddev->Clear(0, NULL, D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1.0, 0);

 

d3ddev->BeginScene();

 

d3ddev->SetFVF(CUSTOMFVF); //Set our Custom Flexible Vertex Format

 

//*** Graphics Pipeline ***//

D3DXMATRIX matWorld;

D3DXMatrixIdentity(&matWorld);

d3ddev->SetTransform(D3DTS_WORLD, &matWorld);

 

//*** View Pipeline ***//

D3DXMATRIX matView;

D3DXMatrixLookAtLH(&matView, &D3DXVECTOR3(0, 0, 10), &D3DXVECTOR3(0, 0, 0), &D3DXVECTOR3(0, 1, 0));

d3ddev->SetTransform(D3DTS_VIEW, &matView);

 

//*** Projection Pipeline ***//

D3DXMATRIX matProjection;

D3DXMatrixPerspectiveFovLH(&matProjection, D3DXToRadian(45), 4.0/3.0, 1.0, 500.0);

d3ddev->SetTransform(D3DTS_PROJECTION, &matProjection);

 

d3ddev->SetStreamSource(0, vbuffer, 0, sizeof(customVertex));

 

d3ddev->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1); //Draw 1

 

d3ddev->EndScene();

 

d3ddev->Present(NULL, NULL, NULL, NULL);

}

 

--

DIRECTX DEBUG LOG:

Direct3D9: (INFO) :======================= Hal SWVP device selected

 

Direct3D9: (INFO) :Using FF to PS converter

 

Direct3D9: (INFO) :Using P4 PSGP

 

Direct3D9: (INFO) :Using FF to VS converter in software vertex processing

 

Håper noen kan hjelpe meg med å forstå hvorfor triangelet ikke vil vises.

 

Tusen takk på forhånd :)

Endret av jabberjab
Lenke til kommentar
Videoannonse
Annonse

Noen kommentarer:

Du trenger bare bruke Clear en gang hvis du bruker Or

 

d3ddev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 150, 150), 1.0, 0);

 

Og matrisene er ikke det samme som en pipeline :p

Bare kall dem Projection matrux, View matris, og model matrix :)

 

Aprikos matriser, skal man egentlig bruke SetTransform funksjonene, eller er det bedre å bruke vertex shaders for å oppnå dette?

Liker å bruke shaders til dette, fordi da bestemmer du helt hvordan den skal oppføre seg.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...