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

DigitalDream

Frischling

  • »DigitalDream« ist der Autor dieses Themas

Beiträge: 66

Beruf: Entwickler

  • Private Nachricht senden

11

29.11.2006, 11:59

Ein Index soll auf 3 Vektoren zeigen,also hat ein Index a,b und c als int wert ...
Und ich habe als Primitivecount die Indices angegeben.

Also 4096.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

12

29.11.2006, 12:03

ein index = ein 16 oder 32 bit integer der die position des zu verwendenden vertices im vertexbuffer angibt (startet bei 0)

ein index kann nicht auf 3 vektoren zeigen...

bei trianglelist braucht ein dreieck 3 vertices, also 3 indices.

und bei PrimitiveCount musst du die anzahl der zu rendernden primitive, also die anzahl der dreiecke angeben (was bei 4096 indcies und trianglelist gar nicht geht, wären dann 1365 und 1/3 dreiecke).

DigitalDream

Frischling

  • »DigitalDream« ist der Autor dieses Themas

Beiträge: 66

Beruf: Entwickler

  • Private Nachricht senden

13

29.11.2006, 12:11

Jetzt kapier ich garnichts mehr.
Und ich dachte ich hätte den Indexbuffer verstanden. :lol:

Ich dachte der Indexbuffer hält nur die Eckpunkte eines Dreiecks.
Damit man weiss wie die Dreiecke zu zeichnen sind.

Also benutzt man einen Index um auf 3 Vertex-eckpunkte zu zeigen.
Ein Triangleface halt.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

14

29.11.2006, 12:12

ein indexbuffer enthält die indices der vertices in der reihenfolge wie sie zu faces zu verbinden sind.

z.b.

1, 2, 3, 75, 8, 3 gibt 2 faces, das erste aus den vertices mit den indices 1, 2, 3, das zweite aus den vertices mit den indices 75, 8, 3 im vertexbuffer.

BaseVertexIndex setzen wir auf 0.
MinIndex ist der kleinste VertexIndex der im indexbuffer vorkommt, in unserem fall 1.
NumVertices ist 6.
StartIndex ist 0 (fängt beim ersten element des indexbuffers an).
PrimitiveCount ist 2 (2 dreiecke werden gezeichnet).

ergibt:

DrawIndexedPrimitive( D3DPT_TRIANGLELIST, 0, 1, 6, 0, 2 );

DigitalDream

Frischling

  • »DigitalDream« ist der Autor dieses Themas

Beiträge: 66

Beruf: Entwickler

  • Private Nachricht senden

15

29.11.2006, 12:19

Ich versuch das mal anders,um dir zu erklären was ich mache und warum.

Dreieck
Vertex[0] = A
Vertex[1] = B
Vertex[2] = C

Index[0] 0,1,2

Der erste Index,hält also den Verweis auf 3 Vertices ,so das DrawPrimitive weiss aus welchen Eckpunkten ein Dreieck gezeichnet werden soll.
Zumindest war ich im Glauben,dass DirectX so mit den Buffern funktioniert. Aber anscheinend habe ich es nicht kapiert.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

16

29.11.2006, 12:21

dann muss index ein array aus int[3] sein...
wie schreibst du das in den indexbuffer?

DigitalDream

Frischling

  • »DigitalDream« ist der Autor dieses Themas

Beiträge: 66

Beruf: Entwickler

  • Private Nachricht senden

17

29.11.2006, 12:33

Achsooo ... (hoffentlich :lol: )
Ich habe immer ein Indexarray erzeugt,das pro Arrayelement immer 3 Eckpunkte gehalten hat.

index[0] int a,int b,int c;

Aus diesem Indexarray habe ich dann meinen Indexbuffer erzeugt.

Aber was ich eigentlich aus den Facedaten machen müsste wäre
index[0] int a
index[1] int b
index[2] int c

Richtig?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

18

29.11.2006, 12:38

ich denke ja^^

DigitalDream

Frischling

  • »DigitalDream« ist der Autor dieses Themas

Beiträge: 66

Beruf: Entwickler

  • Private Nachricht senden

19

29.11.2006, 12:46

Du editierst immer schneller als ich. :D


Danke für deine Geduld und Hilfe dot.
Ohne dich wäre ich vermutlich schon Gärtner als Hobby geworden. :lol:

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

20

29.11.2006, 13:17

lol, immer gerne :)

ich weis, is ne unart von mir, ich editier jeden post sicher 3 mal bis ich find dass er passt^^

EDIT: bei dem warens jetzt 5 mal^^

nächstes mal verwenden wir icq oder msn ;)

Werbeanzeige