Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Jul 07, 2025 21:51

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di Feb 04, 2003 10:12 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Hi,

irgendwie haben die mein interesse geweckt. Allerings habe ich keinen Plan, was dir mir mit dem Artikel sagen wollen.
<a href='http://developer.nvidia.com/view.asp?IO=understanding_w' target='_blank'>http://developer.nvidia.com/view.asp?IO=un...understanding_w</a>
Hat jemand ne ahnung wozu die W Koordinate dient?
Die Demo finde ich irgendwie auch etwas unverständlich. Nicht die Sourcen (da habe ich noch nicht reingesehen), sondern das was bei der Demo raus kommt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 04, 2003 19:36 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 02, 2002 18:06
Beiträge: 299
Wohnort: Dresden
Hmm, denke, dass es irgendwas mit der Projektionsmatrix zu tun hat.

_________________
"Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 04, 2003 19:46 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
die w koordinate ist etwas schlecht zu beschreiben - eine art unendlichkeitsangabe....


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 04, 2003 20:07 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Blättere mal Redbook herum, da ist es IMAO recht gut beschrieben. Im prinzip wird bei jeder Kalkulation die x,y,z durch w geteilt. Als Standard-Wert ist dies 1
x/1 = x

Somit fällt dies nicht sonderlich auf.... steht irgendwie inna roten Bibel ;)

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 04, 2003 20:09 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Wie ist das denn dann mit der Zahl 0? x/0 geht doch garnicht...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 04, 2003 20:11 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
wird ja auch durch w dividiert und das ist anscheinend meistens eins:

0/x=0 :wink:

Fiji-Fighter

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 04, 2003 20:13 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Nehmen wir mal an, x wäre 50.
w/x=x
1/50=0,02
Sollte da nicht dann 50 rauskommen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 04, 2003 20:17 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
tuts auch - wenn man durch w teilt und nicht w durch die zahl.... so wie sichs gehören würde


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 04, 2003 20:18 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Um wieder zum Anfang zurückzukehren: Und wie siehts dann mit der Division durch Null aus?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 04, 2003 20:21 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
w ist nicht 0 sondern normalerweise 1 -> es wird durch eins dividiert und nicht durch 0 :lol: :lol: :lol:

Oder hattest du das teilen in der Schule noch nicht??? ;)

Fiji-Fighter

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 04, 2003 20:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 06, 2002 20:27
Beiträge: 479
Wohnort: Bremen
ja fiji.... normalerweise!

Aber im von LossyX angesprochene Text geht es eben nicht um normale w Werte sondern es wird ausdrücklich auch von w = 0 und sogar w < 0 gesprochen.

was die division durch null angeht so interpretiere ich folgenden satz
"A triangle that has vertices with both positive and negative w
is said to be "external" because the triangle itself wraps around
infinity." so, dass eine homogener vertex mit w = 0 genau diese unendlichkeit darstellt. (die division durch 0 ist ja nur deshalb unmöglich weil etwas unendlich großes dabei rauskommen würde)

was ich allerdings auch nicht ganz peile ist, wie mir das bei shadow-volume rendering helfen soll?!

-lith

_________________
Selber Denken macht klug!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 04, 2003 21:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
@Fiji:
Ich hatte es schon und deswegen wollte ich ja gerade wissen, wie das dann mit 0 ist.Außerdem, was hat das Lernen des Dividierens mit der Möglichkeit, dass w auch 0 sein kann gemeinsam? ... :roll:

Dank Lith weiß man nun: x ÷ 0 = ∞ ... :wink:
[edit: der will mein unendlichkeitszeichen nicht annehmen... böser server...! :wink:]

@Lith: Vielleicht mit der Größe des Shadows irgendwie...?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Feb 05, 2003 14:29 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 02, 2002 18:06
Beiträge: 299
Wohnort: Dresden
Also für was ist w da? Ich hab das nicht ganz verstanden :oops:

_________________
"Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Feb 05, 2003 16:21 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 06, 2002 20:27
Beiträge: 479
Wohnort: Bremen
also, ich versuchs mal zu erklären:

Eigentlich hat ein Punkt (vektor) in OpenGL 3 Dimensionen (man spricht vom Vektorraum R3). Wenn du in OpenGL skalierst und rotierst, so sind das lineare Abbildung, die sich durch eine 3x3 Matrix darstellen lassen.

Nun hast du aber das Problem, das du auch verschieben willst. Und eine Verschiebung ist eine rationale Abbildung und keine lineare - deshalb durch eine 3x3 Matrix nicht darstelbar.

Deshalb bedient man sich bei OpenGL eines kleinen Tricks: den homogenen Koordinaten. Man spendiert einem Vektor im R3 einfach noch eine 4te Komponente - eben unser w - und erhält nun einen 4-dimensionalen Vektor. Setzt man w = 1 so kann man auf einmal auch verschieben. (denn eine rationale Funktion im R3 lässt sich als lineare Funktion im R4 darstellen!)
Und warum kann man das jetzt? Einen 4-dimensionalen Vektor multipliziert man nicht mehr mit einer 3x3 sondern mit einer 4x4 Matrix. Die Zahlen die in der letzte Spalte einer 4x4 Matrix stehen, werden bei der Multiplikation von Matrix und Vektor immer mit der letzten Komponente des Vektors multipliziert (und zum gesamt Ergebnis addiert). Wenn die letzte Komponente des Vektors aber gerade w = 1 ist, wird die Zahl einfach so addiert, was im Endeffekt nichts anderes bedeutet, als das der Bildvektor um die letze Spalte der Matrix verschoben wird.

Wenn man intern mit homogenen Koordinaten arbeitet, aber eigentlich nur an 3-Dimensionalen Vektoren interessiert ist, muss man sich noch etwas einfallen lassen, um aus einer homogenen Koordinate wieder einen Punkt im R3 zu bekommen. Und da sieht die Vereinbarung so aus, dass man einfach jede Koordinate durch W teilt, so das W eins wird und damit quasi wegfällt. d.h. (x, y, z) := (X / W, Y / W, Z / W)
Da w normalerweise 1 ist, ist das nix dramatisches... Aber was passiert wenn w <> 1 ist?!
In dem von von Lossy Ex ausgegrabene Text geht es nun genau darum. Er bespricht, wie man homogene Koordinaten mit w <> 1 als Punkte im R3 zu interpretieren hat.

Sorry, besser kann ich's nciht erklären! Das erfordert halt gewisse Grundkentnisse im Bereich der linearen Algebra, die sich schlecht in einem Forums-Post vermitteln lassen.

_________________
Selber Denken macht klug!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 07, 2003 11:00 
Idee von der w<1: damit kann man Schatten-Volumen effectiver ersellen. Irgentwo im Forum von www.opengl.org gab es auch so ein Thread. Könnt mal ein blick werfen...


Nach oben
  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 15 Queries | GZIP : On ]