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

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

31

25.09.2011, 09:37

Naja es gibt ja Ansätze, die verschiedenen States wieder zusammen zu führen. Stichwort verteiltes Arbeiten. Das sollte auch vernünftig in Spielen Umsetzen lassen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

32

25.09.2011, 09:53

Das ganze erinnert mich an Infinity und ich finde es schafft es ganz gut die Größenverhältnisse darzustellen... :D


Das ist echt gut gemacht, keine Frage.

Aber: das Video zeigt exakt einen Planeten (noch dazu mit einem eher unrealistischen, dafür optisch sehr effektvollen Nebel im Hintergrund). Auch verlässt das Raumschiff diesen Planeten nicht wirklich.

Das Problem, dass man selbst innerhalb eines Sonnensystems überwiegend durch leeren, langweiligen Raum fliegt und gar keinen Planeten sieht (geschweige denn zwei oder mehr gleichzeitig) bleibt einfach. Das kann man sich eigentlich auch ausrechnen, Planetendurchmesser und deren minimale/maximale Entfernungen sind ja bekannt.

DarioFrodo

Treue Seele

  • »DarioFrodo« ist der Autor dieses Themas

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

33

26.09.2011, 09:02

Zum Netzwerkmodus..

Über die Cheater habe ich mir noch keine Gedanken gemacht,
das die Spielwelt nicht überall gleich ist, darf ruhig so sein.
Mir schwebt sogar vor, das die Welt auf jedem PC einzigartig ist, aber dennoch Teile von Universen andere Mitspieler enthält (die man sich aussuchen kann) so dass die einzelnen Universen lediglich Überschneidungen haben an den Stellen, wo mehrere Spieler aufeinander treffen.

Für die Portfrage würde ich gerne so ein System bauen, wie es auch von Skype und Hamachi verwendet wird.
Dafür allerdings werden zwangsläufig ein paar "echte Server" benötigt und es stellt gleichzeitig ein Sicherheitsrisiko da...
da werde ich mir noch den Kopf drüber zerbrechen müssen.
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

DarioFrodo

Treue Seele

  • »DarioFrodo« ist der Autor dieses Themas

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

34

06.11.2011, 21:52

Nun bin ich dank eurer hilfreichen Antworten in der Vergangenheit ein Stück weitergekommen.
Ich habe die libNoise in meiner Engine untergebracht, so das die Höhendaten (und die Färbung) der Vertices der Sphere schon in Richtung Planet gehen.
Das sieht ungefähr so aus:


(Link)

edit: neuer Bildpfad wegen Serverumbau

Zu sehen sind vier verschiedene Detailstufen (7-, 6-, 5- und 4-faches Subdivide der Startsphere, also 196.608, 49.152, 12.288 und 3.072 Vertices).
Wenn man sich der Kugel nährt steigt die Detailstufe (Berechnungen in einem separaten Thread) und wenn man sich wieder von ihr entfernt singt sie wieder.
bis zur 5. Stufe läuft es noch recht flott, auf die 6. muss man eine Weile warten und die 7. braucht schon eine ganz schöne Weile (ca. 3 sekunden).

Wie auf den Bilder zu erkennen ist, ziehen sich Flüsse durch den Bildausschnitt, die bei niedrigerer Detailstufe viel breiter wirken.
Ich hatte die Idee mit einem Shader (ich habe mittlerweile auch eine simplex und perlin noise shader implementierung gefunden) das nachzubearbeiten so das es nicht mehr so auffällt, das die Flüsse so dick sind.
Entweder mit einer Wolkendecke, oder mit verwischen.. vielleicht auch mit nem Filter. Aber kann man soetwas in einem Fragment-Shader umsetzen?

Habt ihr Ideen wie ich die niedrige Detailstufe verstecken an?
Wenn es näher herangeht an den Planeten, wird ein anderes System genutzt werden (nicht mehr die ganze Kugel soll generiert werden), aber soweit bin ich noch nicht. Eins nach dem anderen.

Über Ideen und Vorschläge von euch würde ich mich sehr freuen.

Alles Liebe
Dario / das Einhorn ;)
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »DarioFrodo« (29.07.2019, 17:50)


DarioFrodo

Treue Seele

  • »DarioFrodo« ist der Autor dieses Themas

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

35

15.12.2016, 12:50

Hallo Leute,

ich weiß, der Beitrag ist schon alt und ich habe lange nichts mehr geschrieben.
Aber ich habe das Projekt noch nicht aufgegeben und daher wollte ich euch mal den letzten Stand zeigen:


Ich habe mich jetzt für die Würfelbasierte Technik entschieden.
Man geht von einem Würfel aus und unterteilt die 6 Seiten Rekursive in jeweils 4 kleinere Teile.
Über eine Formel wird die Krümmung der Fläche berechnet und auf die Höhendaten raufgerechnet. Die letzte Version meiner Formel geht dabei von der Fläche als Nullpunkt aus, also die Fläche die aktuell gerendert wird. Dadurch erreiche ich eine hohe Genauigkeit, weil die Strecke zum Mittelpunkt der Kugel/ des Würfels wegfällt.
Die Höhendaten werden mithilfe von einer libNoise Shader Implementation generiert und in Höhentexturen gespeichert. Dabei verwende ich ein Bit-Pack Algorithmus im Shader um 32 Bit Höhendaten in RGBA abzuspeichern.
Die Dauer der Generierung ist jedoch immer noch viel zu hoch, da muss ich noch Optimierungen machen.
über 200 Perlin Noise Aufrufe pro Pixel ist halt schon ganz schön heftig. Dabei benutze ich das etwas schnellere Simplex-Noise mit Nachschlagtabelle.

Wer Interesse an genaueren Informationen hat, kann mir gerne schreiben oder mich auf der nächsten stattfindenen devmania suchen.

Alles Liebe
Dario, das programmierende Einhorn
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

36

15.12.2016, 14:31

Der größte bekannte Stern hat einen Radius von 150 Lichtjahren.
Ich wollte nur noch kurz anmerken das du damit enige Groessenordnungen daneben liegst. Etwa 10^17 zu 10^12 m.

ByteJunkie

Alter Hase

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

37

15.12.2016, 17:04

RE: Himmelskörper rendern in Originalgröße

Ich will ein Spiel programmieren, in dem man das ganze Universum bereisen kann (generiert) und
alle Himmelskörper (Planeten, Sterne, Asteroiden, etc.) in Originalgröße bereisen kann (theoretisch). ...


Interessantes Projekt! :thumbup:

Sicher kennst Du schon diesen Link aber ich poste Ihn trotzdem nochmal da er, wie ich meine, hierhin paßt.

Space Engine
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

Werbeanzeige

Ähnliche Themen