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

1

29.07.2008, 19:19

[Erledigt] Übungsaufgabe 2.7.6

Hallo allerseits :-)

ich geister hier jetzt schon ein paar Wochen durchs Forum, weil ich mir das 3D-Spieleprogrammierungs Buch durchlese. Und ich muss sagen, dass sowohl das Buch als auch das Forum hervorragend ist! :-)

Aber jetzt bin ich leider doch an eine Stelle gekommen, wo ich sogar hier im Forum keine Lösung finde. Und zwar habe ich gehörige Schwierigkeiten mit der 1. Übungsaufgabe von Kapitel 2.7.6

Ich stehe da im Moment total auf dem Schlauch, und weiss echt nicht, wie ich an die Aufgabe herangehen soll. Deswegen wollte ich fragen, ob mir eventuell jemand die Aufgabe per Mail schicken oder den Quellcode hier reinstellen könnte. Denn damit wäre mir echt geholfen... :-)

Danke und schöne Grüße,
Arne

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

2

29.07.2008, 20:15

Vielleicht wirst du beim lesen im Forum auch schon bemerkt haben, dass es 3 Auflagen von dem Buch gibt und dass einige Leute nichtmal eine davon besitzen ;)

Wenn du also noch dazu schreibst welche Auflage du hast und was die Aufgabe eigentlich ist dann steigen deine Chancen auf eine Lösung ungemein.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

3

29.07.2008, 21:36

Genau, oder auch einen kurzen Beschreib, um was das es geht. ;)

4

30.07.2008, 09:45

wenn er die 3. auflage hat, geht es um index und vertexbuffer.

5

30.07.2008, 11:36

@Bolle: Du glaubst jetzt aber nicht wirklich dass uns die Information viel bringt?
Die genaue Aufgabenstellung wäre ganz nützlich...

6

30.07.2008, 12:37

oh sorry, da hab ich natürlich nicht dran gedacht... :oops:

ja ich hab die 3. auflage von dem buch. in diesem kapitel geht es um vertex- und indexbuffer und in dem dazugehörigen beispielprogramm werden 2048 würfel in dem indexbuffer gespeichert.

das hier ist jetzt die übungsaufgabe, an der ich fest hänge:

Versuchen Sie, das Beispielprogramm so zu ändern, dass jeweils nur ein würfel im Vertex-/Indexbuffer gespeichert wird. Erzeugen Sie dann eine Objektliste wie im Beispiel mit den rotierenden Dreiecken. Jeder Würfel soll eine Position und einen Bewegungsvektor besitzen (beides ist zu Beginn auf Zufallswerte zu setzen).


Ich hoffe ihr könnt mit dieser Aufgabenbeschreibung etwas anfangen ;)

7

30.07.2008, 13:44

Hi,

so wie ich das verstehe sollst du einen Vertexbuffer mit Platz für 8 Vertices und einen Indexbuffer mit Platz für 36 Indices erstellen. (Platz für genau einen Würfel). Dann diese mit Daten füllen^^.
Dann sollst du eine Struktur erstellen mit einem Vektor für die Position und einem Vektor für die Bewegungsrichtung(und gleichzeitig auch Geschwindigkeit: die Länge des Vektors gibt die Geschwindigkeit an).
Dann sollst du ein globales Array erstellen mit Platz für 2048 Strukturen(die von oben). Dieses füllst du dann in einer for Schleife(2048 Durchgänge) mit Zufallsdaten.
Dann gehst du einfach her und machst in der Render Funktion eine for Schleife(2048 Durchgänge). In der Schleife erstellst du jetzt aus den Daten deines Globalen Arrays die Translationmatrix und setzt diese als World-Matrix ein. Danach zeichnest du den Würfel aus dem Indexbuffer.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

8

01.08.2008, 13:06

hi,

danke für die genaue Aufgabenbeschreibung :-)

bis zu der Renderfunktion bin ich jetzt auch schon gekommen, aber mir ist nicht ganz klar, wie ich aus dem Array die Tranlationsmatrix erstelle. Müsste das dann ungefähr so aussehen:

C-/C++-Quelltext

1
2
3
4
for(int iCube = 0; iCube < g_iNumCubes; iCube++)
{
   tbMatrix mTranslation(tbMatrixTranslation(g_aCube[iCube].vVelocity));
}


Ich habs noch nicht ausprobiert, aber ich kann mir irgendwie nicht vorstellen, dass das so funktioniert.

9

02.08.2008, 10:02

hi,

so wird sich net viel bewegen^^. Du musst in der Move Velocity immer zu der Position addieren. Dann setzt du die Position bei der Translationsmatrixfunktion ein.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

10

03.08.2008, 17:26

mmh irgendwie krieg ich es nicht hin. das einzige was ich sehe ist ein schwarzer bildschirm...

ist denn dieser quelltext in der renderprozedur richtig zum Erstellen der Translationsmatrix?

C-/C++-Quelltext

1
2
3
4
5
6
    for(int iCube = 0; iCube < g_iNumCubes; iCube++)
    {
        tbMatrix mTranslation(tbMatrixTranslation(g_aCube[iCube].vVelocity));
        tbMatrix mWorld(mTranslation);
        g_pD3DDevice->SetTransform(D3DTS_WORLD, (D3DMATRIX*)(&mWorld));
    }

Werbeanzeige