OldSchoolHack

Registrieren / Anmelden Deutsch

Polygon in Welt zeichnen

icon Thema: Polygon in Welt zeichnen

Anmeldungsdatum: Sep 2013

Beiträge: 5

Benutzer-Bewertung:

1 positiv
0 negativ
Moin Leute,

hat mal jemand "echte" Polygone in die CoD2-Welt eingefügt? Ich habe cuBot und Tatnium in Visual Studio kombiniert, sodass ich jetzt D3D-Funktionen hooken kann, aber wenn ich DirectX Tutorials folge, kann ich keine Polygone zeichen. Das Fenster bleibt dann einfach schwarz. Diesen Code verwende ich bisher:

TEXT Code:
  1.  
  2. HRESULT APIENTRY hkIDirect3DDevice9::EndScene()
  3. {
  4.     #if 1
  5.     struct CUSTOMVERTEX
  6.     {
  7.     FLOAT x, y, z, rhw;    // from the D3DFVF_XYZRHW flag
  8.     DWORD color;    // from the D3DFVF_DIFFUSE flag
  9.     };
  10.  
  11.     static int first = 1;
  12.     static LPDIRECT3DVERTEXBUFFER9 v_buffer = NULL;
  13.  
  14.     printf("HRESULT APIENTRY hkIDirect3DDevice9::EndScene(%d)\n", first);
  15.     if (first)
  16.     {
  17.         first = 0;
  18.  
  19.         #define CUSTOMFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)
  20.  
  21.         CUSTOMVERTEX vertices[] =
  22.         {
  23.         { 1551.0f+320, 2663.0f+ 50, 415.0f, 1.0f, D3DCOLOR_XRGB(0, 0, 255), },
  24.         { 1551.0f+520, 2663.0f+400, 415.0f, 1.0f, D3DCOLOR_XRGB(0, 255, 0), },
  25.         { 1551.0f+120, 2663.0f+400, 415.0f, 1.0f, D3DCOLOR_XRGB(255, 0, 0), },
  26.         };
  27.  
  28.         m_pD3Ddev->CreateVertexBuffer(3*sizeof(struct CUSTOMVERTEX), 0, CUSTOMFVF, D3DPOOL_MANAGED, &v_buffer, NULL);
  29.  
  30.         VOID* pVoid;    // the void pointer
  31.  
  32.         v_buffer->Lock(0, 0, (void**)&pVoid, 0);
  33.         memcpy(pVoid, vertices, sizeof(vertices));
  34.         v_buffer->Unlock();
  35.     }
  36.  
  37.     LPDIRECT3DSTATEBLOCK9 pStateBlock = NULL;
  38.     m_pD3Ddev->CreateStateBlock( D3DSBT_ALL, &pStateBlock );  
  39.     pStateBlock->Capture();
  40.  
  41.         //m_pD3Ddev->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
  42.         //m_pD3Ddev->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE);//<-
  43.         //m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
  44.         //m_pD3Ddev->SetRenderState(D3DRS_ZFUNC, D3DCMP_ALWAYS);
  45.         //m_pD3Ddev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCCOLOR);
  46.         //m_pD3Ddev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCCOLOR);
  47.  
  48.     //D3DVECTOR vEyePt    = {0.0f, 0.0f, -10.0f };
  49.     //D3DVECTOR vLookatPt = {0.0f, 0.0f,   0.0f };
  50.     //D3DVECTOR vUpVec    = {0.0f, 1.0f,   0.0f };
  51.     //D3DMATRIX matWorld, matView, matProj;
  52.     //
  53.     //
  54.     //D3DUtil_SetIdentityMatrix( matWorld );
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.     //m_pD3Ddev->SetFVF(CUSTOMFVF); // select which vertex format we are using
  62.     m_pD3Ddev->SetStreamSource(0, v_buffer, 0, sizeof(struct CUSTOMVERTEX)); // select the vertex buffer to display
  63.     m_pD3Ddev->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1); // copy the vertex buffer to the back buffer
  64.  
  65.     pStateBlock->Apply();
  66.     pStateBlock->Release();
  67.     #endif
  68.  
  69.     return m_pD3Ddev->EndScene();
  70. }
  71.  

Ich hoffe, hier gibt's noch ein paar fähige Leute.

Das ganze soll eine CoD2-Erweiterung werden, mit der bullet physics engine.


Viele Grüße,
kung foo man