calgonite
20.01.2004, 01:07
Hallo,
seit längerer Zeit suche ich nach einem Beispiel-Programm für DirectX / MS Visual C++6, mit dem man ganz simpel eine rechteckige Textur (kann ruhig Pixelsize 2_hoch_n haben) auf den Screen ?blitten? kann. Wichtig ist hierbei, dass ich Grösse / Skalierung und Bildschirm-Position selber bestimmen kann.
Nett wäre es, wenn man die Transparenz einstellen könnte, aber nicht weltentscheidend. Ich habe versucht es aus diversen Tutorials abzuleiten, bisher klappte es nie.
Das kann doch nicht so schwer sein. :mad:
Gruesse,
Chris
Wenn du das mit OpenGL machen wölltest könnte ich dir weiter helfen ;)
butterkeks
20.01.2004, 19:23
hier (http://www.codeproject.com/directx/basicdd.asp?print=true) das beschreibt die Prozedur unter Directx 7 .
Wenn du eh nur mit 2D rumhantieren willst, ist numero 7 AFAIK sowieso besser und nicht so kompliziert, hab' aber bisher nur flüchtig damit gearbeitet
calgonite
21.01.2004, 18:47
Original geschrieben von Scavi
Wenn du das mit OpenGL machen wölltest könnte ich dir weiter helfen ;)
Hehe dann könnte das auch meine Oma machen OpenGL ist so schoen einfach. :p
calgonite
21.01.2004, 18:48
Ich habe bei NeXe dieses Tutorial gefunden, leider nicht richtig 2D, also ortho-projektion, aber naja.
Gibt es ausser der 3D Koodinaten-Translation eine weitere Möglichkeit der Skalierung?
Hier ein Teil vom Source:
http://nexe.gamedev.net/tutorials/ViewTutorial.asp?tutorialfile=Pages/Tutorial6.myxml
// from Nexe Tutorial 6
// Matrix code
D3DXMATRIX mat;
D3DXMatrixPerspectiveFovLH(&mat, D3DX_PI/6, WINDOW_WIDTH/WINDOW_HEIGHT, 1.0, 100.0);
g_pDevice->SetTransform(D3DTS_PROJECTION, &(D3DMATRIX)mat);
D3DXMatrixIdentity(&mat);
g_pDevice->SetTransform(D3DTS_WORLD, &(D3DMATRIX)mat);
// D3DXMatrixTranslation(&mat, 0, 0, 5.0);
D3DXMatrixTranslation(&mat, 0.2f, -1.0f, 7.0f);
g_pDevice->SetTransform(D3DTS_VIEW, &(D3DMATRIX)mat);
// Setup the vertex buffer
g_pDevice->CreateVertexBuffer(sizeof(CVertex)*4, NULL, D3DFVF_CVertex, D3DPOOL_MANAGED, &g_pVertexBuffer);
CVertex *vtxQuad;
g_pVertexBuffer->Lock(0, 0, (BYTE **)&vtxQuad, NULL);
/*
vtxQuad[0].Create(0, 0, 0, 1, 0, 0, 0, 1);
vtxQuad[1].Create(0, 1, 0, 0, 1, 0, 0, 0);
vtxQuad[2].Create(1.25, 0, 0, 0, 0, 1, 1, 1);
vtxQuad[3].Create(1.25, 1, 0, 1, 1, 1, 1, 0); */
vtxQuad[0].Create(0, 0, 0, 1, 0, 0, 0, 1);
vtxQuad[1].Create(0, 1, 0, 0, 1, 0, 0, 0);
vtxQuad[2].Create(1.0, 0, 0, 0, 0, 1, 1, 1);
vtxQuad[3].Create(1.0, 1, 0, 1, 1, 1, 1, 0);
g_pVertexBuffer->Unlock();
Chris :p
Eben! Wozu schwerer machen, wenns auch einfach geht ?
Schönen Gruß an deine Oma :)
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.