|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Faller Junior JLI'ler
Alter: 36 Anmeldedatum: 30.11.2006 Beiträge: 88 Wohnort: Dresden Medaillen: Keine
|
Verfasst am: 09.09.2007, 21:07 Titel: CustomVertex Array in mehrere LPDIRECT3DVERTEXBUFFER9 |
|
|
Ok wie im Buch habe ich ein Feld von typ CustomVertex
CPP: | struct CustomVertex
{
FLOAT x, y, z; // die transformierte Position des Vertex
FLOAT nx, ny, nz; // die Normale
FLOAT tx, ty; // Texturkoordinaten
};
|
und hier mein Feld derzeitig zum testen auf 6 beschrängt
CPP: | CustomVertex werte[6];
|
so nun lade ich meine Daten aus einer Datei aus als
Beispiel weise ich jetze mal zu
um eine bessere Übersichtlichkeit zu gewährleisten.
CPP: | werte[0].x=-1.0f;
werte[0].y=-1.0f;
werte[0].z=0.0f;
//werte[0].color=0xFF0000FF;
werte[0].tx=0.0f;
werte[0].ty=1.0f;
.
.
.
|
so nun hab ich ein grosses feld aber ich möchte dazwischen auf mehre Texturen umschalten.
und da ich nicht immer wechseln möchte um schneller und evizienter zu mahlen.
Hab ich für jde Texture ein eigenes LPDIRECT3DVERTEXBUFFER9
CPP: | //der grafikspeicher für jede textur 1
LPDIRECT3DVERTEXBUFFER9 Grafik_Buffer[5];
|
so nun möchte ich das 1 dreick in den 0 Grafik_Buffer
und das 2 dreick in den 1 Grafik_Buffer.
Die Positionen des Dreick liegt es nicht alles getestet mit 1 Textur.
CPP: | BYTE* VertexBufferStart;
lpD3DDevice->CreateVertexBuffer(sizeof(CustomVertex)*3,D3DUSAGE_WRITEONLY,D3D_CUSTOMVERTEX,
D3DPOOL_MANAGED,
&Grafik_Buffer[0],
NULL);
//hier angeben das nur 1 dreick kopiert wird
Grafik_Buffer[0]->Lock(0,1,(void**)&VertexBufferStart,0);
memcpy(VertexBufferStart,werte,sizeof(CustomVertex)*3);
Grafik_Buffer[0]->Unlock();
|
so und nun zum 2 buffer
CPP: | lpD3DDevice->CreateVertexBuffer(sizeof(CustomVertex)*6,
D3DUSAGE_WRITEONLY,
D3D_CUSTOMVERTEX,
D3DPOOL_MANAGED,
&Grafik_Buffer[1],
NULL);
Grafik_Buffer[1]->Lock(1,1,(void**)&VertexBufferStart,0);
memcpy(VertexBufferStart,werte,sizeof(CustomVertex)*3);
Grafik_Buffer[1]->Unlock();
|
so nun wenn ich aber das 2 dreick über den 2 buffer ausgeben will basiiert nix.
andere gedanken den ich heute aben noch versuchen werde 1 buffer und anfang und ende in
DrawPrimitive zu begrenzen.
Stellt sich die frage was ist schneller 2 buffer
oder 1 buffer und anfang und ende bestimmen und rendern.
???
wie könnte man die zeit so gemnau messen weil mili sekunden reichen da ja net
denkt ihr das es reicht auf es so zu prgrammieren wie in kapitel 22.3
Begrenzung der frame rate das müste doch eigentlich ne klein genuge zeit einheit sein oder ?? _________________ versuche alles nur wann und wie ist die frage |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 09.09.2007, 21:53 Titel: |
|
|
Zeitmessung: Wenn eine Millisekunde nicht ausreicht (ist eigentlich immer der Fall), wie wäre es dann mit einem 10.000 mal genauerem Ergebnis? Einfach die Betreffende Codestelle 10.000 mal ausführen und die Gesamtzeit messen. Je mehr du machst, desto bessere Ergebnisse erhälst du, erstens weil du kleiner Zeitabstände messen kannst und zweitens, weil du Durchschnittswerte bekommst. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 09.09.2007, 23:47 Titel: Re: CustomVertex Array in mehrere LPDIRECT3DVERTEXBUFFER9 |
|
|
Faller hat Folgendes geschrieben: | so nun wenn ich aber das 2 dreick über den 2 buffer ausgeben will basiiert nix. |
Ging es als du einen Buffer hattest bzw. bist du sicher, dass das/die Dreieck(e) sichtbar ist/sind?
Ansonsten zeig mal den Rendercall.
Zur Zeitmessung kannst du den PerformanceCounter verwenden. (Wurde glaub ich auch in JLI beschrieben). Falls nicht, such in der MSDN mal nach QueryPerformanceCounter(). Das Ding misst auf Ticks genau _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
Faller Junior JLI'ler
Alter: 36 Anmeldedatum: 30.11.2006 Beiträge: 88 Wohnort: Dresden Medaillen: Keine
|
Verfasst am: 10.09.2007, 07:42 Titel: |
|
|
Ich hatte die daten schon mal in nur einem buffer und hab dann halt 2 dreicke ausgegeben und ich sah beide.
an den werten hab ich nix geändert es muss meiner meinung daran liegen wie ich aus dem arrey 2 buffer mache also an dem letzten code aber es gibt soviele möglichkeiten dort was zu verändern
Das mit dem 10000 mal machen und zeit messen ist ne gute idee werde ich machen thx
faller _________________ versuche alles nur wann und wie ist die frage |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|