ich bin mitler weile bei DirectX angekommen und wollte im 2D bereich eine Transformed Space D3DPT_TRIANGLELIST verschieben.
aber egal was ich versuche sie ist immer bei 0,0
ich weiß jetzt nicht wieviel Code ich vom Programm Posten muß, will aber auch nicht alles Posten, da das dann zu unübersichtlich wird.
Ich hoffe das das so reicht:
definition des objects:
ich habe dann in meiner Renderfunktion 3 verschiedene sachen ausprobiert, alle mit dem selben Ergebniss:
erster versuch:
danach hatte ich etwas rumgesucht und hatte es dann damit probiert:
das wollte auch nicht wirklich, also habe ich weiter gesucht und was altes gefunden,
das aber auch nicht will:
irgendwie bin ich jetzt total verwirrt... ich denke das ich entweder was vergessen habe, oder mein Denken ist irgendwo falsch, das ich irgendetwas benutze das eigendlich untransformed coordinaten will, ich es aber mit transformed füttere, also pixeln...
kann mir irgendwer mal einen kleinen Fingerzeig geben?
aber egal was ich versuche sie ist immer bei 0,0
ich weiß jetzt nicht wieviel Code ich vom Programm Posten muß, will aber auch nicht alles Posten, da das dann zu unübersichtlich wird.
Ich hoffe das das so reicht:
definition des objects:
Code:
struct Vertex_TD {
float x, y, z, rhw;
DWORD colour;
static const DWORD FORMAT = D3DFVF_XYZRHW | D3DFVF_DIFFUSE;
static const int STRIDE_SIZE = 20;
};
// --- snip ---//
Vertex_TD vertices[] = {
{ 0.0f, 0.0f, 0.0f, 1.0f, 0xffff0000 },
{ 64.0f, 0.0f, 0.0f, 1.0f, 0xff00ff00 },
{ 64.0f, 64.0f, 0.0f, 1.0f, 0xff0000ff },
{ 0.0f, 0.0f, 0.0f, 1.0f, 0xffff0000 },
{ 64.0f, 64.0f, 0.0f, 1.0f, 0xff0000ff },
{ 0.0f, 64.0f, 0.0f, 1.0f, 0xff00ff00 },
ich habe dann in meiner Renderfunktion 3 verschiedene sachen ausprobiert, alle mit dem selben Ergebniss:
erster versuch:
Code:
D3DXMATRIX worldMatrix;
D3DXMatrixTranslation(&worldMatrix, 100,0f, 200.0f, 0.0f);
d3dManager->getDevice().SetTransform(D3DTS_WORLD, &worldMatrix);
d3dManager->getDevice().DrawPrimitiveUP(
D3DPT_TRIANGLELIST,
2,
vertices,
vertices[0].STRIDE_SIZE);
Code:
D3DXVECTOR2 Position;
Position.x =x;
Position.y =y;
D3DXMatrixTransformation2D(&worldMatrix, NULL, 0, NULL, NULL, 0, &Position);
d3dManager->getDevice().SetTransform(D3DTS_PROJECTION, &worldMatrix);
d3dManager->getDevice().DrawPrimitiveUP(
D3DPT_TRIANGLELIST,
2,
vertices,
vertices[0].STRIDE_SIZE);
das wollte auch nicht wirklich, also habe ich weiter gesucht und was altes gefunden,
das aber auch nicht will:
Code:
D3DXMATRIX Ortho2D;
D3DXMATRIX Identity;
D3DXMatrixOrthoLH(&Ortho2D, 1920, 1080, 0.0f, 1.0f);
D3DXMatrixIdentity(&Identity);
d3dManager->getDevice().SetTransform(D3DTS_PROJECTION, &Ortho2D);
d3dManager->getDevice().SetTransform(D3DTS_WORLD, &Identity);
d3dManager->getDevice().SetTransform(D3DTS_VIEW, &Identity);
D3DXMATRIX Position;
D3DXMatrixTranslation(&Position, 50.0f, 0.0f, 0.0f);
d3dManager->getDevice().SetTransform(D3DTS_WORLD, &Position);
d3dManager->getDevice().DrawPrimitiveUP(
D3DPT_TRIANGLELIST,
2,
vertices,
vertices[0].STRIDE_SIZE);
irgendwie bin ich jetzt total verwirrt... ich denke das ich entweder was vergessen habe, oder mein Denken ist irgendwo falsch, das ich irgendetwas benutze das eigendlich untransformed coordinaten will, ich es aber mit transformed füttere, also pixeln...
kann mir irgendwer mal einen kleinen Fingerzeig geben?