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

C--

Alter Hase

  • »C--« ist der Autor dieses Themas

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

1

25.08.2009, 10:30

Wi groß können die x,y,z-Werte bei Vektoren sein?

Hallo Leute, ich bin jetzt im Buch bei dem Beispiel "Das erste Dreieck" angekommen, und ich verstehe etwas nicht, dort werden die Vertices wie folgt initialisiert:

C-/C++-Quelltext

1
2
3
4
5
6
    g_aTriangleVertex[0].vPosition  = tbVector3( 0.0f,  1.0f, 0.0f);
    g_aTriangleVertex[1].vPosition  = tbVector3( 1.0f, -1.0f, 0.0f);
    g_aTriangleVertex[2].vPosition  = tbVector3(-1.0f, -1.0f, 0.0f);
    g_aTriangleVertex[0].dwColor    = tbColor(1.0f, 0.0f, 0.0f);
    g_aTriangleVertex[1].dwColor    = tbColor(0.0f, 1.0f, 0.0f);
    g_aTriangleVertex[2].dwColor    = tbColor(0.0f, 0.0f, 1.0f);


Meine Frage, woher weiß ich welche Werte ich bei den Vektoren für die einzelnen Vektorkomponenten nehmen muss?Gibt es nur Werte zwischen -1 und 1? Oder kann man mit irgend nem RenderState die größe des Koordinatensystem einstellen?

Vieln Dank im Voraus!

mfg C--
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

2

25.08.2009, 10:45

nein es gibt natürlich nicht nur werte zwischen -1 und 1. jetzt zeichne mal ein koordinatensystem auf dein monitor, das aussieht wie ein kreuz. der mittelpunk deines monitors ist dabei dann dein koordinatenursprung. von dort aus gehend zeichnest du deine vectorkoordinaten in das koordinatensystem. spiel einfach ein bisschen mit den werten, dabei lernst du am besten das verhalten des programms. learning by doing ;)

C--

Alter Hase

  • »C--« ist der Autor dieses Themas

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

3

25.08.2009, 11:14

Jo, das habe ich jetzt gemacht.
Die Tiefe beeinflusst die TATSÄCHLICHE Größe auf dem Bildschirm(Wegen der Projektion)?
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

4

25.08.2009, 11:20

Zitat von »"C--"«

Jo, das habe ich jetzt gemacht.
Die Tiefe beeinflusst die TATSÄCHLICHE Größe auf dem Bildschirm(Wegen der Projektion)?

Richtig, wie im echten Leben ;).
Steht etwas weiter weg erscheint es kleiner.

5

25.08.2009, 11:21

jepp wegen der projektion wirkt das dreieck kleiner. ist aber auch richtig so, da es folgende situation "nachmacht":

du stehst am flughafen. du siehst ein flugzeug starten und davon fliegen. was fällt auf? das flugzeug wirkt mit der zeit immer kleiner. tatsächlich aber ist es nie kleiner geworden, es wirkt nur optisch kleiner, da es sich vom beobachter entfernt. genau das gleiche passiert mit dem dreieck.

C--

Alter Hase

  • »C--« ist der Autor dieses Themas

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

6

25.08.2009, 11:36

Jo, verstanden, vielen Dank, d.h. ich kann ein riesiges dreieck haben, das bei z = 1.0 den ganzen Bildschirm ausfüllt und bei z = 250.0 nur winzig klein erscheint.

:D Dann kann ich jetzt ja weiter machen :D
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

idontknow

unregistriert

7

12.09.2009, 00:43

Möchte an dieser Stelle eine Frage meinerseits einbringen, wenn ich lediglich die Z-Achse veränder, z.B. z = 0 -> z = 500, dann bleibt das Dreieck gleich groß?
Weil, ich dachte das ganze wird doch von der Projektionsmatrix gesteuert!

mfg

8

12.09.2009, 01:00

Prinzipiell bleibt das Drieecke immer gleich, egal an welcher Position es sich befindet. Aber je nachdem wo die Kamera ist sieht es an unterschiedlichen Positionen anders aus. Und wenn du eine perspektivische Kamera hast, wird es am Bildschirm kleiner erscheinen, wenn es von der Kamera weiter weg ist.
Alles quasi genau wie im echten Leben.
Lieber dumm fragen, als dumm bleiben!

idontknow

unregistriert

9

12.09.2009, 01:03

Das heißt also ihne irgendwie die Kamera zu verändern, werden Objekte die in der Z-Achse weiter entfernt sind automatisch kleiner?
Nur damit ich das richtig verstehe!

10

12.09.2009, 12:18

Nein ds hängt davon ab, wo die Kamera ist und wo sie hinsieht. Schaut die Kamera vom Nullpunkt aus in Richtung der ZAchse stimmt deine Aussage. Schaut sie von 0/0/-500 in die andere Richtung der Z Achse, wird das Objekt größer, wenn es sich von 0/0/0 auf 0/0/-500 zu bewegt.

Also, die Kamera "nicht verändern" geht ja kaum, da man sie am Anfang einmal explizit setzen muss (sollte).
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige