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

11

16.06.2007, 13:39

Das werde ich mal überprüfen.
Dank dir.

12

17.06.2007, 13:41

Hi
Ich habe ein problem damit dass die Waffe richtig angezeigt wird.
Also ich mach das so:

C-/C++-Quelltext

1
2
3
4
5
D3DXMatrixTranslation(&TransMatrix, m_vPosition.x, m_vPosition.y, m_vPosition.z);
D3DXMatrixRotationYawPitchRoll(&RotationMatrix,m_fYaw,m_fPitch,0.0f);
D3DXMatrixMultiply(&WorldMatrix, &RotationMatrix, &TransMatrix);
Direct3D.GetDevice()->SetTransform(D3DTS_WORLD, &WorldMatrix);
weapon->draw();

so kann ich die waffe nicht noch vorne setzen weil wenn ich mich dann umdrehe ich die nicht mehr sehen kann.
Jetzt frag ich mich wie ich die waffe rendern soll dass sie immer vor der Kamera ist

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

13

17.06.2007, 14:44

platzier die waffe einfach im viewspace (würd ich so machen).
was sind m_vPosition, m_fYaw und m_fPitch für werte?

14

17.06.2007, 15:00

Also ich hab die View Matrix an das Model übergeben und auch als VIEW gerendert

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

17.06.2007, 15:02

Zitat von »"Andy"«

Also ich hab die View Matrix an das Model übergeben und auch als VIEW gerendert


!?

16

17.06.2007, 15:40

m_vPosition ist die position der kamera und m_fYaw, m_fPitch die blick richtung
mit der view Matrix meinst das doch bestimmt von der kamera dies habe ich auch schon versucht aber die waffe ist dann nicht auf der gleichen position wie die kamera

@dot was meinst du eigentlich mit den viewspace

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

17

17.06.2007, 16:12

ich meine du sollst deine waffe nicht im worldspace positionieren (also immer zur kameraposition hinschieben usw.), sondern im viewspace. die weltmatrix gibt ja nur an, wie sich dein modell zur welt verhält. nachdem die vertices mit der weltmatrix transformiert wurden, befinden sie sich im sog. worldspace, zuvor im object space.

stells dir so vor: object space ist das was du hast, wenn du das modell erstellst (z.b. in einem modellierprogramm). der nullpunkt dort ist der nullpunkt der modellkoordinaten (=objectspace).

nun platzierst du das modell in deiner spielwelt. wie und wo bestimmt die worldmatrix.

gut jetzt hast du deine kamera. die hat ihr eigenes koordinatensystem (der betrachter liegt hier im ursprung und schaut in richtung der z achse). die viewmatrix rechnet weltkoordinaten in viewkoordinaten um. nachdem dein model mit der world und view matrix transformiert wurde, befinden sich die koordinaten im sog viewspace. hier sind die vertices nichtmehr in der welt platziert, sondern relativ zur kamera (<-- das klingt doch interessant oder? ;))

verzichten wir also auf die weltkoordinaten und platzieren wir unser modell doch gleich relativ zur kamera. wie geht das? naja wir platzieren es einfach nicht in der welt. da fallen mir 2 wege ein:

1) du platzierst in deinem modellierprogramm die waffe so wie du die gerne haben möchstest (relativ zur kamera), also z.b. etwas weiter rechts unten vom mittelpunkt. dann setzt du im spiel einfach die weltmatrix und viewmatrix auf die identitiy matrix.

2) du lässt deine waffe wie sie ist und platzierst sie relativ zur kamera. z.b. indem du die viewmatrix auf identity setzt und die weltmatrix so einstellst, dass die waffe eben entsprechend nach rechts unten verschoben wird.

18

17.06.2007, 16:46

Danke jetzt klappt es

Werbeanzeige