Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

11

14.12.2004, 20:40

Nein, aber anscheinend liegt dir das aufbereiten von Informationen nicht.....

Anonymous

unregistriert

12

14.12.2004, 20:45

ja aber was soll ich machen?
Ich wollte folgendes tun. Die Kamera soll durch gelände fliegen und eine geschichte erzählen.
Ich wollte nun also diese Balken machen, damit unten dann die schrift eingeblendet werden kann.
Ich dachte zuerst an 4 Dreiecke, die ich ober und unter zeichne, doch da komme ich nicht weiter, weil ich nicht weiß wie diese immer vor der Kamera liegen bleiben.
Im buch finde ich auch keine Info darüber, wie man das macht.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

13

14.12.2004, 20:48

Mit XYZRHW also schon transformierten Vertices. In der Doku steht auch einiges.....

Anonymous

unregistriert

14

14.12.2004, 21:09

ich verstehe es einfach nicht.

habe diese Code mal Copiert.

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
24
25
26
27
// ******************************************************************

// Struktur für einen Vertex: Position und 3D-Texturkoordinaten

struct SVertex
{
    peVector3 vPosition;    // Position des Vertex

    DWORD     dwColor;      // Texturkoordinaten

};

#define VERTEX_FVF (D3DFVF_XYZ | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE3(0))

    // Das Viereck erstellen, auf dem die Animation abgespielt wird.

    // Die w-Texturkoordinate bestimmt dabei, wie weit die Animation fortgeschritten ist.

    // Zwischen 0 und 1 wird sie genau einmal abgespielt, hinter 1 wiederholt sie sich.

    aVertex[0].vPosition = tbVector3(-1.0f, -1.0f, 1.0f);
    aVertex[1].vPosition = tbVector3(-1.0f,  1.0f, 1.0f);
    aVertex[2].vPosition = tbVector3( 1.0f, -1.0f, 1.0f);
    aVertex[3].vPosition = tbVector3( 1.0f,  1.0f, 1.0f);
    aVertex[0].dwColor = (DWORD)(tbColor(0.0f, 0.0f, 0.0f));
    aVertex[1].dwColor = (DWORD)(tbColor(0.0f, 0.0f, 0.0f));
    aVertex[2].dwColor = (DWORD)(tbColor(0.0f, 0.0f, 0.0f));
    aVertex[3].dwColor = (DWORD)(tbColor(0.0f, 0.0f, 0.0f));

    // Nun das Viereck als Dreiecksfolge zeichnen (so brauchen wir nur 4 Vertizes)

    tbDirect3D::GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,
                                                      2,
                                                      aVertex,
                                                      sizeof(SVertex));


So und wie bekomme ich jetzt diese Quadrat vor die Linse?

Heiko Kalista

Treue Seele

Beiträge: 99

Wohnort: Hessen

  • Private Nachricht senden

15

14.12.2004, 21:58

http://www.two-kings.de/tutorials/d3d03/d3d03.html

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

16

14.12.2004, 22:18

oder

C-/C++-Quelltext

1
2
3
4
    myVektor plane[]={myVektor(x,y,0),              myVektor(1,0,0),
                      myVektor(x+width,y,0),        myVektor(1,1,0),
                      myVektor(x,y+height,0),       myVektor(1,0,1),
                      myVektor(x+width,y+height,0), myVektor(1,1,1)};

x/y steht für die x/y koordinate wo das rechteck anfängt und width/height ist die breite/höhe.
Und FVF ist D3DFVF_TEX1 | D3DFVF_XYZRHW .

Anonymous

unregistriert

17

15.12.2004, 10:30

Ich habe hinbekommen.
:light: Tausend dank.

MfG

Anonymous

unregistriert

18

15.12.2004, 14:38

Ich weiß ich nerfe, doch eine Frage habe ich noch.

Wenn ich folgendes Schreibe.

C-/C++-Quelltext

1
2
aVertex[2].dwColor = (DWORD)(peColor(0.0f, 0.0f, 0.0f,(g_fAdd/100))); // g_fAdd fir langsam auf 100 erhöht!!!

    aVertex[2].RHW = 1.0f;

Sollte ja diese Kante des Vertex langsam von Transparent in Schwarz übergehen. aber wenn ich das so mache, belibt sie von Anfang an schwarz. wieso?

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

19

15.12.2004, 16:17

Weil beides wohl int werte sind und diese auf int gerundet werden. Also einen Wert vorher in eine Kommazahl casten und schon dürfte es passen.

Anonymous

unregistriert

20

15.12.2004, 17:20

beides sind Float werte 5.0f und g_fAdd.

Wenn ich 100.0f schreibe ist es immer noch gleich. auch wenn ich float erzwinge geht es nicht.
HM

Werbeanzeige