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!

Suchergebnisse

Suchergebnisse 1-20 von insgesamt 51.

Werbeanzeige

01.02.2012, 00:07

Forenbeitrag von: »master_kenshin«

Beschädigter Heap

Vielen Dank dot ich glaube das war aufklärend genug um mich auf intensive Fehlersuche zu begeben

31.01.2012, 23:57

Forenbeitrag von: »master_kenshin«

Beschädigter Heap

Sprechen wir hier von dem Zugriff auf das 0te Feld des Mesharrays oder von dem Anfordern des Speichers bei "face"?

31.01.2012, 23:46

Forenbeitrag von: »master_kenshin«

Beschädigter Heap

Hhe kein Problem

31.01.2012, 23:42

Forenbeitrag von: »master_kenshin«

Beschädigter Heap

Das heisst Mesh[0].face & vtx existieren überhaupt nicht? Wenn ich dich richtig verstanden habe verstehe ich bloss noch nicht warum das ganze mit .vtx funktioniert.

31.01.2012, 23:09

Forenbeitrag von: »master_kenshin«

Beschädigter Heap

Hi, ich habe ein Problem mit dem Anfordern von neuem Speicher. Hier schnell mal ein paar Codeschnipsel. C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 struct Face { unsigned short p1,p2,p3; }; struct ObjMesh { ....Face* face; }; ObjMesh* Mesh; Hier fordere ich das erste mal Speicher an. Das klappt auch noch reibungslos. C-/C++-Quelltext 1 Mesh = new ObjMesh[nMesh]; Hier ist es schon weniger lustig C-/C++-Quelltext 1 Mesh[0].face = new Face[9]; Denn folgende Fehlermeldung erscheint. Zitat Dies kann auf...

12.01.2012, 02:31

Forenbeitrag von: »master_kenshin«

Wavefront Texturkoordinaten

Hi Leute, mich quält mal wieder ein Problem. Ich habe Schwierigkeiten ein Mesh aus einer Wavefrontdatei mit Texturkoordinaten zu rendern. Als Versuchskaninchen nehme ich eine simple Fläche (4Vertices). Die Indexdaten sehen wie folgt aus: C-/C++-Quelltext 1 2 f 1/1 4/2 3/3 f 1/1 3/3 2/4 Da ich die Funktion DrawIndexed() zum rendern verwende werden die Vertices also in dieser Reihenfolge gerendert: 1,4,3, 1,3,2. Natürlich geht das mit den Texturkoordinaten dann nicht mehr auf, da diese eine andere...

06.01.2012, 23:13

Forenbeitrag von: »master_kenshin«

Wavefront ohne Indexbuffer?

Ich glaub mich tritt ein Pferd! Vielen Dank für deine Hilfe dot, die Fläche zeigt sich jetzt tatsächlich mal auf dem Monitor <!--splitLinkBegin--><!--splitLinkEnd--><!--noLinkBegin-->ExternesOriginalbildanzeigen(Link)<!--noLinkEnd--> Zitat von »dot« Und darüber id.ByteWidth = sizeof( indices ) * numIndices; und vor allem darüber indices = new int[sizeof(numIndices)]; solltest du nochmal gaaaanz genau nachdenken Ich zerbreche mir morgen nochmal den Kopf darüber aber ich glaub ich weiss was ich fa...

06.01.2012, 23:01

Forenbeitrag von: »master_kenshin«

Wavefront ohne Indexbuffer?

C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 int* indices; ... int* IdxPtr = objModel.GetIndices(); indices = new int[sizeof(numIndices)]; for( int i = 0; i < numIndices; i++) { indices[i] = *(IdxPtr + i); } C-/C++-Quelltext 1 2 3 4 5 6 UINT stride = sizeof( VertexPos ); UINT offset = 0; pd3dImmediateContext->IASetVertexBuffers( 0, 1, &g_pVertexBuffer, &stride, &offset ); pd3dImmediateContext->IASetIndexBuffer( g_pIndexBuffer, DXGI_FORMAT_R16_UINT, 0 );

06.01.2012, 22:41

Forenbeitrag von: »master_kenshin«

Wavefront ohne Indexbuffer?

Die Frage hab ich mir auch schon mal gestellt Ob da wohl Daten verloren gehen weil kein Platz besteht? Ich nehme an wir sprechen vom Vertex und dem Indexbuffer. Hier der Code: 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 28 29 30 31 32 33 34 35 D3D11_BUFFER_DESC vertexDesc; ZeroMemory( &vertexDesc, sizeof( vertexDesc ) ); vertexDesc.Usage = D3D11_USAGE_DEFAULT; vertexDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER; vertexDesc.ByteWidth = sizeof( VertexPos ) ...

06.01.2012, 22:29

Forenbeitrag von: »master_kenshin«

Wavefront ohne Indexbuffer?

Klingt beruhigend. Hier der Code meiner Renderfunktion. Sry für die Unordnung im Quelltext, ich hab SimpleSample jetzt glaub ich schon 100 mal umgeschrieben und nicht auf die Übersicht aufgepasst. 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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 float ClearColor[4] = { 0.176f, 0.196f, 0.667f, 0.0f }; ID3D11RenderTargetView* pRTV = DXUTGetD3D11RenderTargetView(); ID3D11De...

06.01.2012, 20:51

Forenbeitrag von: »master_kenshin«

Wavefront ohne Indexbuffer?

Ahhh klar. Ich habe beim Exporter nicht angegeben ob das Mesh in einer Dreiecksliste gespeichert wird. Nun ich wage zu behaupten, dass ich es jetzt verstehe Also im Überblick läuft das ganze dann so ab: - Vertexbuffer mit den Vertices füllen, ohne die Reihenfolge der Punkte zu manipulieren. (Bei einem Rechteck wären wir dann auf 4 Vertices) - Indexbuffer füllen. X-1 da der Buffer ja bei "0" anfängt. (Ich habe das Rechteck jetzt in eine Dreicksliste gepackt und die Indices lauten im Indexbuffer: ...

04.01.2012, 01:31

Forenbeitrag von: »master_kenshin«

Wavefront ohne Indexbuffer?

Vielen Dank dot, das war absolut verständlich und meine Verwirrung hat sich bis auf einen Punkt(Vertex) gelegt. Ich verstehe jetzt bloss noch nicht wie ich aus den Daten der Datei (f 1/4/3/2) nun 6 Indices basteln soll. Scheint als wäre ich schwer von Begriff...

03.01.2012, 23:16

Forenbeitrag von: »master_kenshin«

Wavefront ohne Indexbuffer?

Zitat von »Sylence« Musst du nicht noch das Layout für die Vertexdaten angeben? C-/C++-Quelltext 1 2 3 4 5 6 7 const D3D11_INPUT_ELEMENT_DESC layout[] = { { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, { "NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 }, { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 24, D3D11_INPUT_PER_VERTEX_DATA, 0 } }; Zitat von »Moe« Wie groß ist numVertices? Als welche Geometrie renderst Du? Mir kommt e...

03.01.2012, 16:05

Forenbeitrag von: »master_kenshin«

Wavefront ohne Indexbuffer?

Hmm wenn der gemeinte Speicherbereich "vertices[]" ist dann verstehe ich nicht wie ich da rausrutschen kann. Habe ich dann den Vertexbuffer nicht korrekt angelegt? Vertexstruktur: C-/C++-Quelltext 1 2 3 4 5 struct VertexPos { XMFLOAT3 pos; XMFLOAT2 tex0; }; Vertexbuffer: C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 D3D11_BUFFER_DESC vertexDesc; ZeroMemory( &vertexDesc, sizeof( vertexDesc ) ); vertexDesc.Usage = D3D11_USAGE_DEFAULT; vertexDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER; vertexDesc.ByteWidth = si...

02.01.2012, 02:06

Forenbeitrag von: »master_kenshin«

Wavefront ohne Indexbuffer?

Geometrie: D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST Der Code sieht so ungefähr so aus: C-/C++-Quelltext 1 2 3 for( int i = 0; i < numVertices; i++) { vertices[indices[i] - 1].pos = XMFLOAT3(*(vertsPtr + 0), *(vertsPtr + 1), *(vertsPtr + 2) ); Damit habe ich das x-1Problem wohl umgangen. Liegt der Fehler eurer Meinung nach also noch immer bei den Indices? Dann weiss ich halt wenigstens wo ich suchen muss.

02.01.2012, 00:36

Forenbeitrag von: »master_kenshin«

Wavefront ohne Indexbuffer?

Nunja, das frage ich mich auch gerade... Eine simples Rechteck versuche ich zu rendern und das Ergebnis sieht so aus: <!--splitLinkBegin--><!--splitLinkEnd--><!--noLinkBegin-->ExternesOriginalbildanzeigen(Link)<!--noLinkEnd--> Ich hab alle Vertex und Indexdaten mit meiner Logbuchfunktion überprüfen lassen und die scheinen korrekt angekommen zu sein. Wie es aussieht muss ich wohl noch tiefer graben

02.01.2012, 00:20

Forenbeitrag von: »master_kenshin«

Wavefront ohne Indexbuffer?

Tue ich auch nicht sry. Mit Indexbuffer meinte ich die Indexinformationen die in der Datei gespeichert sind, welche ich anstelle eines Indexbuffers verwende um meine Vertexstruktur in der richtigen Reihenfolge zu füllen. Vielen Dank für den Tipp

02.01.2012, 00:08

Forenbeitrag von: »master_kenshin«

Wavefront ohne Indexbuffer?

Nehmen wir zum Beispiel ein Quadrat, also 4 vertices. Der Indexbuffer würde dann so aussehen: 1,4,3,2. Und das ist dann wohl auch die Reihenfolge. Sollte ich recht haben hat sich mein Problem dann wohl erledigt.

01.01.2012, 23:49

Forenbeitrag von: »master_kenshin«

Wavefront ohne Indexbuffer?

Meine Erfahrung reicht leider bloss bis zu einem im Quellcode generierten Würfel. Alles andere wurde bisher hiermit C-/C++-Quelltext 1 pd3dImmediateContext->Draw(numVertices, 0); erledigt.

Werbeanzeige