Registriert: Do Aug 25, 2005 16:00 Beiträge: 189
Programmiersprache: Java, C#
Hi.
Ich hab mich mal an Jan Horn's Wassertropen Demo gemacht und versucht es zu verstehen. Ich denke das ich es größten Teils verstanden hab.
Das einzige was mir schlaflose Nächte bereitet ist eben glTexGen, da dieser Befehl in der Demo zur Generierung der Texturkoordinaten benutzt wird.
Jetzt wird allerdings nicht die Textur so angezeigt wie ich das gerne hätte, nämlich "in einem Stück".
Damit meine ich das beispielsweise aus dem Wasserzeichen von DGL
so was wird:
Meine Frage wäre jetzt - gibts nen Weg die Textur komplett und in einem Stück anzuzeigen und dabei trotzdem noch nen funktionierenden Wassertropfen-Effekt zu haben?
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
glLoadIdentity;
glTranslatef(0,0,-10);
glRotatef(90,1,0,0);
Form1.DrawWater;
SwapBuffers(DC);
end;
cya,
Deathball
PS: Fast vergessen - für's laden der Texturen kommt glBitmap zum Einsatz...
edit: was mir grad auffällt - kanns sein das das daran liegt das mein GL_QUAD_STRIP nicht so gezeichnet wird wie's eigentlich sein sollte, also gegen den Uhrzeigersinn? Denn wenn ich Backface Culling anschalte bleibts bei mir schwarz...
Zuletzt geändert von Deathball am Mi Okt 04, 2006 12:00, insgesamt 2-mal geändert.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Also was die automatische Texturekoordinatengeneration angeht bin ich gerade nicht in der Lage. Zu viel Wein.
Aber was das Culling angeht. Du siehst deswegen nur schwarz, weil die Oberseite deines Quads in den Raum zeigt. Also weil du gegen den Uhrzeigersinn zeichnest. Wenn du jetzt Culling aktivierst wird, per Standard, die Rückseite ausgeblendet. Nur dummerweise ist die Rückseite genau die die angezeigt wird. Wenn du die Vertexdaten umänderst wird eigentlich nur deine Textur gespigelt, da sie rein technisch gesehen ja jetzt eigentlich gespiegelt ist. Aber diese Spiegelung der Textur könntext du durch die Texturkoordinaten ausgleichen. Damit es dann wieder genau so aussieht wie es jetzt der Fall ist.
Registriert: Do Aug 25, 2005 16:00 Beiträge: 189
Programmiersprache: Java, C#
@ Average Idiot: Danke für den Link. Leider hilft er mir nicht wirklich bei meinem Problem weiter, da Jan Horn in seiner Demo den Parameter GL_SPHERE_MAP benutzt und bei dem Link der Abschnitt über GL_SPHERE_MAP eher klein ist.
Zitat:
A sphere-mapped texture coordinate is computed by taking the vector from the viewpoint (the eye), and reflecting it about the surface's normal vector. The resulting direction is then used to look up a point in the texture. The texture image is assumed to be warped to provide a 360 degree view of the environment being reflected.
Also zumindest ich hab jetzt noch nicht verstanden warum deswegen die Textur so zerstückelt angezeigt wird...
Aber trotzdem danke.
@ Lossy Ex:
Danke für die Info.
Eigentlich war aber die Frage eher ob die Reihenfolge in der ich die Vertizes zeichne eine Auswirkung auf die automatische Texturkoordinaten-Generierung hat...
Registriert: So Feb 06, 2005 17:29 Beiträge: 187
Programmiersprache: C, C++
So jetzt noch einmal mit etwas mehr Zeit
Zitat:
Meine Frage wäre jetzt - gibts nen Weg die Textur komplett und in einem Stück anzuzeigen und dabei trotzdem noch nen funktionierenden Wassertropfen-Effekt zu haben?
Kommt jetzt darauf an was du mit Wassertropfeneffekt meinst?
Also eigentlich wenn du die Textur normal ueber dein Mesh verteilst (wie bei einer Heightmap ohne texgen) hast du doch einen Effekt, als ob sich ein Tuch mit der entsprechenden Textur aufgedruckt faltet (in Tropfenform )
Oder meinst du jetzt so einen Effekt, wie ein weisses Tuch, wo von oben ein Projektor die Textur draufstrahlt? Dann brauchst glaub ich gltexgen, allerdings laesst sich das ganze vielleicht ohne GL_SPHERE_MAP loesen.
Btw die Demo von Jan Horn ist cool und hat auch vor einiger Zeit den Anstoss fuer eine Spielidee von mir gegeben (Waldbrand loschen mit einem Flugzeug).
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Könntest du das Bild durch eine räumlich etwas kleinere Version ersetzen. Es gibt noch viele Notebook Besitzer die nur 1024x768 zur Verfügung haben . Und die Modemuser freuen sich auch immer über Bilder jenseits der 80KB Größe.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Es gibt noch viele Notebook Besitzer die nur 1024x768 zur Verfügung haben
Das betrifft nicht nur die Notebook besitzer - auch den ein oder anderen Desktop Besitzer stört das: Ich habe meinen Monitor meist hochkant und damit die schöne Auflösung 1024x1280 zur Verfügung. Das ist Prima und viel angenehmer zum lesen von langen Texten solange alles ins Bild passt und man nicht scrollen muss - evtl. muss man da mal größenbeschränkungen für Bilder im Forum einführen... Ich stimme also Flash einfach mal zu - ein großer Teil des Bildes ist doch eh schwarz, den kann man ja einfach abschneiden und den Fensterrahmen braucht auch niemand
Registriert: Do Aug 25, 2005 16:00 Beiträge: 189
Programmiersprache: Java, C#
Sorry, als ich das Bild on gestellt hab hatte ich wohl mein Hirn ausgeschaltet...
habs ein bisschen zurecht geschnitten...
zum Problem:
Average Idiot hat geschrieben:
Kommt jetzt darauf an was du mit Wassertropfeneffekt meinst?
gemeint ist der Effekt den ich oben bei dem zweiten Bild gezeigt hab...
Mein Problem ist halt: Ich würd gern die komplette Textur anzeigen lassen (nicht nur wie obben dargestellt Miniaturstückchen).
Da spielt glTexGen anscheinend nicht so mit wie ich das gern hätte...
mache, oder versuche die Texturkoordinaten von Hand zuzuweisen, ist der Effekt kaum noch sichtbar (mal ganz abgesehen davon das ich bisher noch nicht geschafft hab die Textur überhaupt korrekt anzuzeigen).
Von der Seite sieht man zwar das der Effekt noch da ist, man kann ihn wie gesagt jedoch nicht von oben erkennen...
Registriert: Do Aug 25, 2005 16:00 Beiträge: 189
Programmiersprache: Java, C#
Es gibt hier doch bestimmt Leute die den Effekt auch schon programmiert haben.
Habt ihr vielleicht den Quellcode noch und keine Probleme mit der Textur?
Könntet ihr den Quellcode hier posten oder als Anhang hier rein stellen?
Registriert: Do Aug 25, 2005 16:00 Beiträge: 189
Programmiersprache: Java, C#
So, hab mich jetzt ein bisschen mit was anderem beschäftigt und mcih dann wieder dran gesetzt, hat aber nix geholfen.
Will sagen das ganze funktioniert solange die Texturkoordinaten automatisch generiert werden, sobald sie jedoch von Hand gesetzt werden ist der Effekt nicht mehr sichtbar.
Im Anhang ist das ganze Projekt als .rar Archiv.
mit den Pfeiltasten dreht man das Quad hoch und runter, rechte Maustaste schaltet die Texturkoordinatengenerierung ein/aus und linke Maustaste fügt nen Wassertropfen hinzu.
Ich hoffe mal das mir jemand erklären kann wo mein Fehler liegt...
cya,
Deathball
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Mitglieder in diesem Forum: 0 Mitglieder und 3 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.