JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Mesh mit DrawIndexedPrimitive() rendern

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 07.01.2008, 00:34    Titel: Mesh mit DrawIndexedPrimitive() rendern Antworten mit Zitat

<edit TLoP>Bitte in Zukunft für C++ Code NUR noch cpp-Tags verwenden. </edit TLoP>

Ich möchte die Vertices eines Meshes, das mit der Funktion D3DXLoadMeshFromX() erstellt wurde extrahieren, um bestimmte Operationen durchzuführen.
Nun habe ich beim Rendern ein Problem. Ein Zugriffsfehler wird bei der Funktion DrawIndexedPrimitive() verursacht. Was könnte hier falsch sein?

Deklaration
CPP:
    // Zeiger auf den Mesh
     LPD3DXMESH m_lpMesh;

   // der Vertexbuffer enthaelt die Vertices
    LPDIRECT3DVERTEXBUFFER9 temp_lpVB;

    // der Indexbuffer beschreibt die Dreiecke
    LPDIRECT3DINDEXBUFFER9 temp_lpIB;


Block in Renderfunktion
CPP:
m_lpMesh->GetVertexBuffer(&temp_lpVB);
m_lpMesh->GetIndexBuffer(&temp_lpIB);

        // Vertex-Format setzen
    m_lpD3DDevice->SetFVF(m_lpMesh->GetFVF());

    // Vertex Buffer angeben
    m_lpD3DDevice->SetStreamSource(0, temp_lpVB, 0,sizeof(m_lpMesh->GetNumBytesPerVertex()));
   
    // Index Buffer angeben
    m_lpD3DDevice->SetIndices(temp_lpIB);

     //Landschaft rendern
    m_lpD3DDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST,
                                        0, 0,
                                        m_lpMesh->GetNumVertices(),
                                        0,
                                        m_lpMesh->GetNumFaces());


Das 3D-Mesh (m_lpMesh) wurde auch zuvor ordnungsgemäß angelegt. Daran liegts schonmal nicht Wink
_________________
Kein Rückzug! Kein Aufgeben!
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: 07.01.2008, 15:57    Titel: Antworten mit Zitat

Zugriffsfehler hat wohl was mit den Pointern zu tun. Also ALLE DX Funktionen checken, ob sie keinen Fehler verursachen.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 07.01.2008, 21:36    Titel: Antworten mit Zitat

Also alle Funktionen sind ungleich NULL. Hab ich gecheckt und sollte auch so sein, weil ich ja mit "DrawSubset()" den Mesh ja problemlos rendern könnte.
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 08.01.2008, 14:51    Titel: Re: Mesh mit DrawIndexedPrimitive() rendern Antworten mit Zitat

LeeDiGer hat Folgendes geschrieben:
CPP:
    // Vertex Buffer angeben
    m_lpD3DDevice->SetStreamSource(0, temp_lpVB, 0,sizeof(m_lpMesh->GetNumBytesPerVertex()));

Also entweder als letzten Parameter(Größe eines Vertex) "sizeof(deine_vertex_struktur)" oder nur "m_lpMesh->GetNumBytesPerVertex()" angeben. Die Speichergröße des Rückgabewerts von GetNumBytesPerVertex() macht da keinen Sinn.

Ansonsten - hast du mal kontrolliert, was die ganzen Mesh-Funktionen zurückgeben?
_________________
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
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 08.01.2008, 16:39    Titel: Antworten mit Zitat

Ah, stimmt. Wenn ich dieses "sizeof" weglasse dann gehts. Dann hab ich die Funktion leicht falsch interpretiert. Danke für die Hilfe Smile
_________________
Kein Rückzug! Kein Aufgeben!
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