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

25.10.2010, 03:16

Cube-Mapping, Sky-Box, Beispielprogramm

Guten Morgen ^^

So, Cube-Mapping der Sky-Box funktioniert... prinzipiell.

Mir ist bei meinem Übungsprogramm (mit Würfeln) aufgefallen, dass man als reflektiertes Bild auf einem Objekt immer nur eine bestimmte Seite der Skybox zu sehen bekommt.

Wenn man für das Cube-Mapping die zugehörigen Bilder von der CD zu Buch nimmt, enthalten die auf der eine Seite einen sehr markanten Zapfen (Berg) der fast bis zum oberen Bildschirmrand reicht (man kann sich ja nur drehen und bewegen, aber nicht nicken).
Wenn ich mich nun mit der Kamera auf eine gedachte Linie zwischen einem Objekt und diesem Berg stelle und auf das Objekt schaue, sollte dieser doch etwa in der Mitte des Objekts spiegeln (jedenfalls in der Realität). Tut er aber nicht. ?(

OK, kann ja an einem Fehler in meinem Code liegen - dachte ich.
Also habe ich es am Beispielprogramm von der CD kontrolliert und bin mal um die Kugeln geflogen. Und was soll ich sagen?
Der Zapfen erscheint! Jedoch immer nur am Objektrand, niemals mitten auf dem Objekt.
Ist euch das auch aufgefallen? Fehler oder Feature? Sollte das besser gehen?

Bin gespannt.

Gruß,
Sleepwalker

2

25.10.2010, 16:29

Am besten wäre es wahrscheinlich zur Verdeutlichung des ganzen, ein oder zwei Screenshots anzuhängen, die Zeigen, was du meinst ;)

3

27.10.2010, 18:01

Bild 1 hat den "Zapfen" im Hintergrund (hinter der Kugel), der Betrachte hat die Bergkette im Rücken (als Spiegelung in der Kugel zu sehen).


(Link)






Bild 2 zeigt die eben noch gespiegelte Bergkette im Hintergrund und auch als Spiegelung in der Kugel, nur Seitenverkehrt.
Der Zapfen ist nicht in der Spiegelung zu sehen, obwohl er genau im Rücken der Kamera ist.



(Link)



Ich denke das macht es deutlich :)

Wenn man sich im Programm um die Kugel bewegt, erscheit der Zapfen immer verzerrt am Kugelrand.

Übrigens kann man das in den Griff bekommen, wenn man, nachdem man die Vertexpositionen für die Spiegelung ermittelt hat, die Koordinaten für die Spiegelung um 180 Grad um die Y-Achse dreht.

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

4

27.10.2010, 18:22

Dann wird das wohl einfach ein Fehler in der Berechnung sein, die du korrigiert hast.

Aber gut beobachtet, mir ist das nicht aufgefallen.

5

27.10.2010, 19:32

Wenn ich mich recht erinnere, sollte man laut Buch mit den Parametern von SetTextureStageState rumexperimentieren.

C-/C++-Quelltext

1
2
3
DWORD dwFVF = D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE3(0); 
...
SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR | 1 ); 


D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR
D3DTSS_TCI_CAMERASPACENORMAL
D3DTSS_TCI_CAMERASPACEPOSITION
fka tm

Werbeanzeige