Aktuelle Zeit: 13.05.2025, 09:28

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 17.03.2008, 17:34 
Offline

Registriert: 17.03.2008, 16:50
Beiträge: 6
Guten Tag zusammen.

Ich schau mir jetzt seit ein paar Tagen die Irrlicht-Engine an. Bei dem was ich mir in den Kopf gesetzt habe, stoß ich allerdings jetzt schon auf prinzipielle Fragen. Momentan arbeite ich mit IrrlichtNetCP, .Net2.0 und C#. Ich hoffe man kann mir hier die ein oder andere Anregung dazu geben.

Was ich erreichen will ist im Prinzip eine hübsche Kugel mit ...

1. Möglichst hochauflösender Textur(en) der Erdoberfläche

2. Bump-Mapping? ein oder mehrerer Höhenkarten (Auflösung etwa 4x4km / Pixel, kommt auf etwa 10.000 Pixel Breite für einmal um den Äquator)

3. Zoomen, Drehen, Bewegen der Kamera in unterschiedlicher Geschwindigkeit, abhängig vom Abstand zur Erdoberfläche (ungefähr wie so eine Maya-Style Kamera)

4. Unterteilung der Kugeloberfläche in rechteckige (bzw. 4-eckige) Regionen die ich per Mausklick auswählen, einfärben, aus- und einblenden kann.

Also ungefähr sowas wie auf dem angehängten Bild, nur halt 4 eckige Regionen statt der Unterteilung in jeweils 2 Dreiecke.

Bild

Dabei steh ich als Anfänger was 3D-Programmierung angeht auch prompt vor den folgenden Problemen: :shock:

1. Wie groß dürfen Einzel-Texturen denn maximal sein um noch verwendet werden zu können? Bisher kann ich keine mit mehr als 4096x4096 Pixeln verwenden. Falls das nicht geht, wie texturier ich denn die Kugel beim hereinzoomen stückweise neu statt komplett? Muss ich da das Mesh in Regionen unterteilen, mehrere Meshs verwenden oder welcher Weg ist da einzuschlagen?

2. Wenn ich so eine Kamera haben will, muss ich von einer Kameraklasse erben und das neu implementieren oder ist es sinnvoller mit der vorhandenen Klasse zu arbeiten? Sollte man dann sowas wie rotationspeed oder selbst errechnete Positionen in den entsprechenden Kamera-Eventhandlern neu setzen?

3. Zur Unterteilung in Regionen und Verwendung des Grids ... hab ich leider bisher kaum eine Idee. Im Bild ist's einfach ne Kugel mit etwas größerem Radius als Wireframe. Ich nehm einfach mal an das ich bei sowas bis auf die einzelnen Polygone des Meshs zurückgehen und die über einen Index oder ähnliches ansprechen muss? Wenn ich die habe, kann ich sicherleich auch die Farbwerte der entsprechenden Vertices neu setzen, oder?


Hmmm .... ist mal wieder etwas länger geworden, aber falls es einer bis hierher geschafft hat: Ich danke schonmal für eventuelle Antworten. ;-)


Nach oben
 Profil  
 
BeitragVerfasst: 20.03.2008, 10:14 
Offline

Registriert: 17.03.2008, 16:50
Beiträge: 6
Guten Morgen nochmal ... ^^

Ich frag mich gerade ein wenig warum niemand antwortet...sind die Fragen zu trivial? Oder falsch gestellt, oder ist das gar zu kompliziert zu machen? War ich unhöflich oder ist das Forum so schlecht besucht? Es wäre nett, wenn mich da mal jemand aufklären könnte bevor ich mich hier in plötzlichen Weinkrämpfen ergehen muss. :mrgreen:


Nach oben
 Profil  
 
BeitragVerfasst: 20.03.2008, 12:18 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Weil ich diesen Thread wohl übersehen habe ^^

Also, dir bleibt wohl nichts anderes üblich, als die Kugel selber prozedural zu erstellen und sie dabei in mehrere Teile aufzuteilen, auf die dann eine Textur (Ich würde hier 2048 * 2048 empfehlen, um wenigstens ein ppar mehr Grafikkarten zuzulassen) gelegt wird. Dazu musst du dir dann selber nen Meshbuffer erstellen, mit der Kugel, die Irrlicht dir anbietet, kommst du da nicht weit. Die Bumpmap kannst du durchaus auch kleiner machen als die Höhentexturen, musst dann halt nur die UV-Werte entsprechend anpassen.
EDIT: "Falls das nicht geht, wie texturier ich denn die Kugel beim hereinzoomen stückweise neu statt komplett? Muss ich da das Mesh in Regionen unterteilen, mehrere Meshs verwenden oder welcher Weg ist da einzuschlagen?" - Das ist natürlich noch besser!

Und bei der Kamera kannst du dir da entweder ne eigene Kameraklasse ableiten, oder du kannst eine normale Kameraklasse entsprechend den Informationen, die dir dein EventReceiver gibt, drehen/verschieben.

Und zum Einfärben musst du dir wohl nen Shader schreiben, der Bumpmapping + Vertexfarben unterstützt, aber das sollte kein Problem sein. Und ja, du musst direkt über die Vertexdaten arbeiten, aber da du die ja bei der Erstellung der Kugel eh benutzt, ist das kein Problem.

Zum Auswählen einer Region: Ich würde da einfach die Kollisionspunkte eine Gerade mit einer Kugel berechnen und erst im zweiten Schritt ausrechnen, welche Region das dann gewesen wäre.

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 21.03.2008, 15:28 
Offline

Registriert: 17.03.2008, 16:50
Beiträge: 6
Jup!
Dann erstmal danke für die Antwort, hilft mir ein Stück weiter, vor allem was das einfärben angeht ... auf Shader wäre ich wohl nicht so schnell gekommen.

Was das Mesh selbst angeht bin ich mittlerweile ein Stück weiter gekommen und berechne mir die Vertices der Kugel oder kleinere Ausschnitte davon im Meshbuffer. Klappt soweit auch halbwegs ... zeigt aber manchmal noch Artefakte weil ich zu blöd scheine die Indices für die Dreieckserzeugung richtig zu setzen. :mrgreen:

Wie schnell oder langsam das setzen neuer Texturkoordinaten bei Beibehaltung der Vertice-Positionen ist muss ich auch erst schauen noch testen. Zur Not generier ich das halt einmal vorher, speicher das Mesh und lade den Mist beim Programmstart neu.

Danke auf jeden Fall nochmal für die Tips!


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

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.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de