DirectX9 Problem Vertices anzeigen
-
Hallo,
ich hab mal entsprechen einigen simplen Tutorials versucht, einfach ein paar Verices auszugeben. Dazu habe ich folgende Codeausschnitte:#define CUSTOMVERTEXFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)
struct Customvertex { float x; float y; float z; float rhw; DWORD color; };
class MyDXClass { private: LPD3D pD3D_Object; LPD3DDEVICE pD3D_Device; D3DDISPLAYMODE d3ddm; D3DPRESENT_PARAMETERS d3dpp; LPVERTEXBUFFER Spieler; public: MyDXClass(void); ~MyDXClass(void); bool InitDX(bool, unsigned int, bool, HWND); bool CleanUpDX(void); void GameMainRoutine(void); void InitVBuffers(WORD); };
void MyDXClass::GameMainRoutine(void) { pD3D_Device->Clear(NULL, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0); pD3D_Device->BeginScene(); pD3D_Device->SetFVF(CUSTOMVERTEXFVF); pD3D_Device->SetStreamSource(0, Spieler, 0, sizeof(Customvertex)); pD3D_Device->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 1); pD3D_Device->EndScene(); pD3D_Device->Present(NULL, NULL, NULL, NULL); }
und
void MyDXClass::InitVBuffers(WORD Screenheight) { void* pVoid; Customvertex PlayerRect[] = { {100.0f, 5.0f, 1.5f, 1.0f, (DWORD)D3DCOLOR_XRGB(0,0,255)}, {100.0f, 40.0f, 1.5f, 1.0f, (DWORD)D3DCOLOR_XRGB(0,0,255)}, {10.0f, 5.0f, 1.5f, 1.0f, (DWORD)D3DCOLOR_XRGB(0,0,255)}, {10.0f, 40.0f, 1.5f, 1.0f, (DWORD)D3DCOLOR_XRGB(0,0,255)} }; pD3D_Device->CreateVertexBuffer(sizeof(PlayerRect), NULL/*D3DUSAGE_WRITEONLY*/, CUSTOMVERTEXFVF,D3DPOOL_MANAGED, &Spieler, NULL); Spieler->Lock(0, 0, &pVoid, NULL); memcpy(pVoid, PlayerRect, sizeof(PlayerRect)); Spieler->Unlock(); }
Die Initialisierung von DirectX funktioniert wuderbar, jedoch erscheinen auf der schwarzen Fläche keinerlei Vertices (bzw. Dreiecke).
Ich bin den Code schon mehrmals durchgegangen, komme aber einfach nicht weiter...
Ich hoffe ihr könnt mir helfen!
-
Hat weniger was mit C++- als mehr was mit Grafikprogrammierung zu tun. Check das Double Buffering und ob du auch wirklich in die Betrachtungszene zeichnest.
-
hast du auch eine lampe in der scene? du kannst auch die beluechtung ausschalten
mit (D3DRS_LIGHTING, 0).
-
@Kóyaánasqatsi: Fürs posten unter "Grafikprogrammierung" müsste ich mich anmelden, ich wollte mich aber (noch) nicht registrieren...
@lämpchen:
Leider funktioniert es weder mitpD3D_Device->SetRenderState(D3DRS_LIGHTING, FALSE);
noch mit
pD3D_Device->SetRenderState(D3DRS_LIGHTING, TRUE);
P.S.: Falls es was hilft: Ich habs nach folgendem Tutorial gemacht: http://directxtutorial.com/Tutorial9/B-Direct3DBasics/dx9B4.aspx
-
hopefulGuest schrieb:
@Kóyaánasqatsi: Fürs posten unter "Grafikprogrammierung" müsste ich mich anmelden, ich wollte mich aber (noch) nicht registrieren...
Dann hast du jetzt Pech gehabt, zu Standard-C++ gehört das nämlich ganz sicher nicht und wird daher verschoben.
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.