|
|
C-/C++-Quelltext |
1 |
DWORD SpriteVertex::_FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1; |
|
|
C-/C++-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
_Vertizes[0]._Position.x = 1; _Vertizes[0]._Position.y = 1; _Vertizes[0]._Color = D3DCOLOR_ARGB(0, 0, 0, 0); _Vertizes[0]._Tex.x = 1; _Vertizes[0]._Tex.y = 0; _Vertizes[1]._Position.x = 1; _Vertizes[1]._Position.y = -1; _Vertizes[1]._Color = D3DCOLOR_ARGB(0, 0, 0, 0); _Vertizes[1]._Tex.x = 1; _Vertizes[1]._Tex.y = 1; _Vertizes[2]._Position.x = -1; _Vertizes[2]._Position.y = 1; _Vertizes[2]._Color = D3DCOLOR_ARGB(0, 0, 0, 0); _Vertizes[2]._Tex.x = 0; _Vertizes[2]._Tex.y = 0; _Vertizes[3]._Position.x = -1; _Vertizes[3]._Position.y = -1; _Vertizes[3]._Color = D3DCOLOR_ARGB(0, 0, 0, 0); _Vertizes[3]._Tex.x = 0; _Vertizes[3]._Tex.y = 1; |
|
|
C-/C++-Quelltext |
1 2 3 4 5 6 |
_Texture->getDevice()->SetStreamSource(0, _Buffer, 0, sizeof(SpriteVertex)); _Texture->getDevice()->SetFVF(SpriteVertex::_FVF); _Texture->getDevice()->SetTexture(0, _Texture->getTexture()); _Texture->getDevice()->BeginScene(); _Texture->getDevice()->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, _Vertizes, sizeof(SpriteVertex)); _Texture->getDevice()->EndScene(); |

|
|
C-/C++-Quelltext |
1 2 3 4 5 6 |
glBegin(GL_TRIANGLE_STRIP);
glTexCoord2f(0.f, 0.f); glVertex2f(0.f, 0.f);
glTexCoord2f(1.f, 0.f); glVertex2f(width, 0.f);
glTexCoord2f(0.f, 1.f); glVertex2f(0.f, height);
glTexCoord2f(1.f, 1.f); glVertex2f(width, height);
glEnd();
|
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Wollnashorn« (26. Juli 2010, 23:33)

Welche Größe hat die Textur? Bist du dir sicher, dass alles richtig geladen wurde?
Ein Squad ist übrigens was anderes als ein Quad.
Edit: Ich kenn mich mit DirectX nicht aus, aber deine Texturkoordinaten scheinen ziemlich falsch zu sein. Ok, die sind nur vertikal spiegelverkehrt...
Edit2: In OpenGL wird das so gemacht:
![]()
C-/C++-Quelltext
1 2 3 4 5 6glBegin(GL_TRIANGLE_STRIP); glTexCoord2f(0.f, 0.f); glVertex2f(0.f, 0.f); glTexCoord2f(1.f, 0.f); glVertex2f(width, 0.f); glTexCoord2f(0.f, 1.f); glVertex2f(0.f, height); glTexCoord2f(1.f, 1.f); glVertex2f(width, height); glEnd();
Welche Größe hat die Textur? Bist du dir sicher, dass alles richtig geladen wurde?
Ein Squad ist übrigens was anderes als ein Quad.
Edit: Ich kenn mich mit DirectX nicht aus, aber deine Texturkoordinaten scheinen ziemlich falsch zu sein. Ok, die sind nur vertikal spiegelverkehrt...
Edit2: In OpenGL wird das so gemacht:
![]()
C-/C++-Quelltext
1 2 3 4 5 6glBegin(GL_TRIANGLE_STRIP); glTexCoord2f(0.f, 0.f); glVertex2f(0.f, 0.f); glTexCoord2f(1.f, 0.f); glVertex2f(width, 0.f); glTexCoord2f(0.f, 1.f); glVertex2f(0.f, height); glTexCoord2f(1.f, 1.f); glVertex2f(width, height); glEnd();
. Und ja alles wird richtig geladen sonst gäbe es einen Crash beim setzen der Textur oder des Vertexbuffers. Habs außerdem im Debugger überprüft.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »idontknow« (27. Juli 2010, 11:57)
|
|
C-/C++-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Alphablending Device->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ); Device->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCCOLOR ); Device->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCCOLOR ); // Culling Device->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE ); // Licht Device->SetRenderState( D3DRS_LIGHTING, FALSE ); // Aus // Farboperationen, Texturen Device->SetTextureStageState(0 , D3DTSS_COLOROP, D3DTOP_MODULATE2X ); Device->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_DIFFUSE ); Device->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_TEXTURE ); |
. weil ich ja in davids texturen beispiel nach renderstates ect gesucht habe...
den rest nicht mehr..
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »idontknow« (27. Juli 2010, 15:23)
.
. Wollte den Ordner klein machen =)
*Gelößt*
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »idontknow« (27. Juli 2010, 18:53)