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

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

21

25.09.2007, 20:22

Zitat von »"Faule Socke"«


Da meine zeit begranzt ist, kann ich mir net jeden thread hier durchlesen, so leid es mir tut.


Dann poste halt nichts, geht mir auch öfters so!
Aber dass zig andere Leute dann halt u.U. was doppelt lesen müssen (da sie ja vorher nicht wissen es ist doppelt) finde ich übel.

Es ist mir schon öfter aufgefallen dass Du scheinbar Deine Zeit für wesentlich wertvoller hälst als die anderer Leute, passt ja auch zu Deinem Namen.
"Games are algorithmic entertainment."

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

22

25.09.2007, 20:38

Zitat von »"David_pb"«

Naja, das ist nur eine sehr ungenaue Methode die zwar z.T. annähernd richtige Werte liefert aber, wie gesagt, sehr ungenau ist.


die methode ist nicht weniger "genau" als wenn man ne projektionsmatrix mit nem fov von 90° nimmt...

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

23

25.09.2007, 20:39

Was is denn wenn z = 0 ist? :)
@D13_Dreinig

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

24

25.09.2007, 20:40

division durch null, passiert mit ner projektionsmatrix genauso, wird normalerweise nur geclippt. die methode (zentralprojektion) ist in beiden fällen die gleiche.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

25

25.09.2007, 21:24

Hm, stimmt. Solang sich der Sichtwinkel und die Position nicht ändert bekommt man so in der Tat ein richtiges Ergebnis.
@D13_Dreinig

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

26

25.09.2007, 21:35

wobei man leicht auch sichtwinkel != 90° handhaben kann:

x' = f * x / z
y' = f * y / z

f = 1 / (2 * tan(fov / 2))

27

26.09.2007, 22:04

@ dot:

für fov wird dann einfach 90 übergeben oder?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

28

26.09.2007, 22:42

für fov setzt du deinen fov ein^^. wenn du 90 einsetzt kommt f = 1 raus...

ich sagte ja, die formeln:

x' = x / z = 1 * x / z
y' = y / z = 1 * y / z

sind für fov 90°...

allerdings wird in keiner der beiden formeln das seitenverhältnis des viewports berücksichtigt. lässt sich durch einen zusätzlichen faktor aber auch noch machen.

29

28.09.2007, 20:10

sry hatte mich verlesen.
hab das ! vom != nicht gelesen :oops:

30

28.09.2007, 20:16

sorry fals ich falsch liege, aber:

tan(45) = 1

wenn man also

C-/C++-Quelltext

1
2
fov = 90;
f = 1/(2*tan(fov/2));


verwendet wird 1/(2*1) gerechnet.
Das ergäbe dann 0.5. Liege ich richtig wenn ich also sage, dass man bei fov=90 falsche werte bekommt?

Werbeanzeige