Archiv verlassen und diese Seite im Standarddesign anzeigen : Das Haus in OpenGL
Wir hatten da in einem Fach eine Aufgabenstellung, die, wie man sieht, zu heute fertig sein soll. Natürlich gab ich schon letzte Woche ab (rumpos, angeb, selbstlob) und zwar das (http://www.aths.de/files/OpenGL-Haus.rar) (RAR-Archiv).
Hansolo
2003-05-28, 15:57:28
Cool, sehr schönes Bild im Haus :)
Nur die Tapete ist nicht so mein Geschmack, vielleicht hättest Du als Texturen einige Bilder aus dem Titen-Thread nehmen sollen, wenn das überhaupt geht.
Ist das Absicht, dass man den Schornstein noch im Haus sieht ?
Original geschrieben von kami
Ist das Absicht, dass man den Schornstein noch im Haus sieht ? Ja.
BTW statt die Pfeiltasten anzuklicken kann man auch die WASD-Steuerung verwenden.
Was mir noch aufgefallen ist, wenn ein Stück vom Haus weg ist und dann vorwärts bzw. rückwärts geht, verschwindet die Bildtextur im Haus.
Ich gehe zb. einen Schritt vorwärts -> Bild ist da ; nächster Schritt -> Bild ist weg; dann evtl. nach erst 2 Schritten ist das Bild wieder da, etc. Weiss nich worans liegt.
Seraf
2003-05-28, 16:25:50
Huhu Aths :)
Wie groß dürfen die Texturen sein?
Bakunin3
2003-05-28, 16:34:53
Schön auch, daß das haus hinten im Nebel verschwinden kann... ;)
Blöde Frage:
Mit welcher Art Programm macht man sowas?
B3
Original geschrieben von kami
Was mir noch aufgefallen ist, wenn ein Stück vom Haus weg ist und dann vorwärts bzw. rückwärts geht, verschwindet die Bildtextur im Haus.
Ich gehe zb. einen Schritt vorwärts -> Bild ist da ; nächster Schritt -> Bild ist weg; dann evtl. nach erst 2 Schritten ist das Bild wieder da, etc. Weiss nich worans liegt. Z-Aliasing. Das Bild ist ein Polygon, um haaresbreite vor die Wand gesetzt.
Original geschrieben von Seraf
Huhu Aths :)
Wie groß dürfen die Texturen sein? Die größten verwendeten Texturen sind 512x512. Die Textur-Größe für die einzelnen Polygone habe ich festgelegt, von den Bildern wird nur der Inhalt ausgelesen, nicht die Dimension.
Original geschrieben von Bakunin3
Schön auch, daß das haus hinten im Nebel verschwinden kann... ;)
Blöde Frage:
Mit welcher Art Programm macht man sowas?Das Programm ist in Delphi und nutzt OpenGL Hardware-Beschleunigung, um die Verwendung von OpenGL zu erleichert wird die "Glut"-Bibliothek verwendet.
In Delphi definiere ich zunächst in einem Array von Eckpunkten die Eckpunkte. (Ein Eckpunkt wird als Record von 3 Singles gesehen.) Dann rendert er Wand für Wand, in dem ich die jeweilige Nr. des Eckpunktes übergebe. Die Vorderwand wird übrigens zuletzt gerendert, weil das eine Textur für Alpha Blending ist.
Die Bäume sind, wie man mit abgeschalteten Texturen gut sieht, einfach 4 ineinander gestellte Polygone. Einer "setbaum"-Prozedur übergebe ich Position und Skalierung, diese rendert dann den Baum. Die Bäume und der Zaun nutzen Alpha Testing, um stellenweise durchsichtig zu sein.
Bakunin3
2003-05-28, 17:19:09
Original geschrieben von aths
Das Programm ist in Delphi und nutzt OpenGL Hardware-Beschleunigung, um die Verwendung von OpenGL zu erleichert wird die "Glut"-Bibliothek verwendet.
In Delphi definiere ich zunächst in einem Array von Eckpunkten die Eckpunkte. (Ein Eckpunkt wird als Record von 3 Singles gesehen.) Dann rendert er Wand für Wand, in dem ich die jeweilige Nr. des Eckpunktes übergebe. Die Vorderwand wird übrigens zuletzt gerendert, weil das eine Textur für Alpha Blending ist.
Die Bäume sind, wie man mit abgeschalteten Texturen gut sieht, einfach 4 ineinander gestellte Polygone. Einer "setbaum"-Prozedur übergebe ich Position und Skalierung, diese rendert dann den Baum. Die Bäume und der Zaun nutzen Alpha Testing, um stellenweise durchsichtig zu sein.
Aha!!! Ich glaub' mir wird schwindlig... ;)
B3
Original geschrieben von Bakunin3
Aha!!! Ich glaub' mir wird schwindlig... ;) Das war die einfache Version :D
Das Rendern habe ich gekapselt. Es gibt ein Record, welches alle Sachen die ich für ein Drei- oder Viereck brauche, aufnehmen kann. Der Befehl "setobj(1, 2, 3, 4)" z.B. setzt für eine Instanz eines solchen Records die tatsächlichen 3D-Koordinaten der Eckpunkte mit dem Index 1, 2, 3 und 4. Außerdem kann man weitere Sachen festlegen, z.B. ob die Fläche beleuchtet werden soll, oder nicht. "setobj" ruft jedenfalls die eigentliche Render-Routine auf. Diese liest das übergeben Record aus und rendert :) Die Prozedur "render" greift sich erst mal 3 der Eckpunkt-Koordinaten raus, v1, v2 und v3. Dann berechnet er v2-v1 und v3-v1, also die Vektoren zweier Kanten um einen gemeinsamen Eckpunkt. Davon wird das Kreuzprodukt gebildet, und schon hat man die Normale (= senkrecht zur Fläche stehender Vektor) damit man beleuchten kann :)
Insgesamt ist das alles leider sehr, sehr ineffizient umgesetzt. Xmas' Haus hat z.B. deutlich, deutlich, deutlich mehr Polygone, aber beim Drehen und Zoomen trotzdem flüssiger :naughty:
StefanV
2003-05-28, 20:07:05
Original geschrieben von aths
Insgesamt ist das alles leider sehr, sehr ineffizient umgesetzt. Xmas' Haus hat z.B. deutlich, deutlich, deutlich mehr Polygone, aber beim Drehen und Zoomen trotzdem flüssiger :naughty:
hab ich gemerkt, dein Häusle läuft auf meiner Rage128 ULTRA (130/130MHz) ziemlich bescheiden...
Sliver21
2003-05-28, 21:46:41
Klasse gemacht, Aths. Wo ist Xmas' Haus?
Thowe
2003-05-28, 22:43:35
Original geschrieben von Sliver21
Klasse gemacht, Aths. Wo ist Xmas' Haus?
Zuhause *scnr*
Thowe
2003-05-28, 22:44:13
Original geschrieben von aths
...
Insgesamt ist das alles leider sehr, sehr ineffizient umgesetzt. Xmas' Haus hat z.B. deutlich, deutlich, deutlich mehr Polygone, aber beim Drehen und Zoomen trotzdem flüssiger :naughty:
Was wohl daran liegt, das er eine richtige Programmiersprache verwendet hat :D
PS: Als ich früher zur Uni ging hiess das noch GV-Grundlagen ... ähhh, ok, jetzt geh ich wirklich aus den Thread.
Original geschrieben von Sliver21
Klasse gemacht, Aths. Wo ist Xmas' Haus?
Dafür hab ich keinen Webspace ;)
Aber ich kann mal ne grob komprimierte Wireframe-Ansicht liefern... bitte nicht wundern dass die Polygone teilweise unsinnig verteilt sind, da kann man noch einiges sparen. Aber das ganze Haus besteht praktisch aus sieben zusammengesetzten Rotationskörpern.
Original geschrieben von Stefan Payne
hab ich gemerkt, dein Häusle läuft auf meiner Rage128 ULTRA (130/130MHz) ziemlich bescheiden... Ja, eine GeForce o.ä. sollte es schon sein, damit die HW die ineffiziente Programmierung wegstecken kann.
Original geschrieben von Xmas
Dafür hab ich keinen Webspace ;) Ich hab insgesamt 2x 85 MB :naughty: also könnte es hosten.
Original geschrieben von Xmas
Dafür hab ich keinen Webspace ;)
Aber ich kann mal ne grob komprimierte Wireframe-Ansicht liefern... bitte nicht wundern dass die Polygone teilweise unsinnig verteilt sind, da kann man noch einiges sparen. Aber das ganze Haus besteht praktisch aus sieben zusammengesetzten Rotationskörpern.
Ein Haus der Schlümpfe? :lol:
Endorphine
2003-05-29, 14:21:01
Original geschrieben von Xmas
Dafür hab ich keinen Webspace ;)
Aber ich kann mal ne grob komprimierte Wireframe-Ansicht liefern... bitte nicht wundern dass die Polygone teilweise unsinnig verteilt sind, da kann man noch einiges sparen. Aber das ganze Haus besteht praktisch aus sieben zusammengesetzten Rotationskörpern. Endlich mal ordentliches Geometriedetail :naughty:
csjunkie
2003-05-29, 17:51:21
Wo kann man da ballern?;D
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.