JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=a155937a5f6fc498418516b65c626ea4Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

CustomVertex Array in mehrere LPDIRECT3DVERTEXBUFFER9

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
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

BeitragVerfasst am: 09.09.2007, 21:07    Titel: CustomVertex Array in mehrere LPDIRECT3DVERTEXBUFFER9 Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 09.09.2007, 21:53    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 09.09.2007, 23:47    Titel: Re: CustomVertex Array in mehrere LPDIRECT3DVERTEXBUFFER9 Antworten mit Zitat

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 Wink
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Faller
Junior JLI'ler


Alter: 36
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 10.09.2007, 07:42    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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

Impressum