[B3D] Prozedurale 3D Spiralgalaxie
Übersicht

KrischanBetreff: [B3D] Prozedurale 3D Spiralgalaxie |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe ein wenig mit Single Surface Techniken experimentiert und das ist dabei herausgekommen. Eine schöne prozedurale Galaxie in 3D, es sind zwar "nur" 24.000 Sterne sichtbar aber man kann deren Anzahl bis zum Vertex/Surface-Limit erhöhen, sofern dann noch CPU und Grafikkarte mitspielen. Die Galaxie selbst wird mittels einer generischen Archimedischen Spirale erzeugt. Ihr könnt mit den konstanten Parametern herumspielen, standardmässig sieht es Andromeda-Galaxiemässig aus, unsere eigene Milchstrasse hat z.B. nur zwei "Arme". Die Anzahl der Sterne erstreckt sich über die gesamte Galaxie, so dass auch kleinere Mengen die Umrisse zeigen können (dann halt mit weniger Details).
Die Single Surface Technik hier erzeugt virtuelle "Quads" mit je 4 Vertices und richtet diese mittels zweier Tformvector Befehle auf die Kamera aus. Es gibt nur eine Entity (die Galaxie) mit einer oder mehreren Surfaces (max. 32000 vertices=32000/4=8000 Sterne/Quads pro Surface). Die Sternentextur wird ebenfalls procedural aus dem Nichts erzeugt. Zur Steuerung: Pfeiltasten und Maus, aber Ihr werdet keine Bewegung feststellen solange Ihr nicht eine (schnell) oder beide Maustasten (sehr schnell) gedrückt haltet. Wenn Ihr nahe einem Sternenfeld seid lasst beide Maustasten los und benutzt höchstens noch eine um schneller voranzukommen, damit man auch einzelne Sterne fliegen sieht, die man "besuchen" kann. ![]() BlitzBasic: [AUSKLAPPEN] Graphics3D 800,600,32,2 |
||
- Zuletzt bearbeitet von Krischan am Mi, Okt 13, 2010 14:56, insgesamt einmal bearbeitet
![]() |
AlkanBetreff: Gute Arbeit,... |
![]() Antworten mit Zitat ![]() |
---|---|---|
...das hast du sehr gut hingekriegt ![]() Aber das einzige was mich stört ist, dass ich bei 240000 Sternen nur 9 FPS kriege, wobei meine Grafikkarte eine maximale Auslastung von nur 10% hat. Vielleicht könnte man die Berechnung die der Prozessor macht, der Grafikkarte übergeben, mit einer selbst erstellten DLL die OpenCL o.ä benutzt. Denn so welche Berechnungen lassen sich ja gut Parallelisieren. Ich werds dann auch mal probieren. Aber auf jedenfall sieht es sehr gut aus und bugs hab ich auch noch nicht gefunden. MfG Alkan |
||
Hauptrechner: Win7 Ultimate x64|AMD Phenom II X4 965 BlackEdition 4x3.4GHz|4 GB DualKit DDR3-1600 Ram|1.5 TB Samsung EcoGreen|Cougar CM 700Watt|ASRock M3A790GFX/120M|Nvidia GeForce 9500GT|Ati Radeon HD3300(Onboard-Deaktiviert)
Server(früher Hauptrechner): Ubuntu 9.1 x86|Intel P4 HT 3GHz|Ati Radeon X600Pro|200 GB HDD Worklog: Planetensimulation Homepage(Under Construction): alkan96.dyndns.org Wenn schon falsch, dann richtig falsch. |
![]() |
Die Kiste |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich hab bei 24.0000 Gefühlte 1 Fps xD | ||
Krischan |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja interessant - CPU und GPU langweilen sich bei mir regelrecht. Woran das liegt kann ich allerdings nicht sagen...
Hier am Screenshot auf der rechten Seite gut zu sehen, GPU 5% Auslastung, i7 1.6GHz @ 2.4GHz Turbo mit 20-40% Auslastung. Die Galaxie sieht mit 10x mehr Sternen aber auch viel geiler aus. So 1 Million wären nicht schlecht als Ziel. ![]() |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was habt ihr denn für Rechner?
Alkan, ich hoffe du verwechselst FPS nicht mit den angezeigten ms. Auf meiner Onboard ATI HD 4200 erreiche ich 9 ms mit insgesamt 47 FPS. Dabei rendert mein Rechner z.Zt. noch nebenbei auf allen vier Kernen. Die Spirale an sich ist schon ganz nett. Klar sollte sein, das nicht jedes Frame ein Update gemacht werden muss. Krischan wird den Code sicherlich nur als Demo so ausgeführt haben. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Krischan |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hectic hat Folgendes geschrieben: Klar sollte sein, das nicht jedes Frame ein Update gemacht werden muss. Krischan wird den Code sicherlich nur als Demo so ausgeführt haben.
Es reicht, wenn man alle paar ms updated, könnte aber bestimmt noch weiter optimiert werden (irgendwelche Verbesserungsvorschläge, hectic?). Eine "Verbesserung" habe ich noch entdeckt, aus einem mir noch nicht erfindlichen Grund läuft es schneller, wenn man in der Funktion UpdateGalaxy folgende Tformpoint Prüfung ausschaltet, die als schnellerer Ersatz für EntityInView dienen sollte: ; check if star is visible ;TFormPoint q\x,q\y,q\z,0,cam ; in front of cam? ;If TFormedZ()>0 Then ... ;EndIf Das bringt bei mir ein paar FPS mehr. |
||
Krischan |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nachtrag: hab jetzt 240.000 Sterne bei 20-40 FPS. Wie das? Mit folgende Optimierungen:
- bei bestimmter Anzahl von Surfaces wird neues Mesh erstellt (unklar obs was bringt) - Quads werden nun in 10 verschiedenen Durchgängen aktualisiert (hier: Quad 1...24000 / 24001...48000 usw...) - nur bei aktuellem Durchgang oder wenn Quads nahe sind wird überhaupt ein Quad aktualisiert Und so siehts dann aus, gleich viel besser: ![]() BlitzBasic: [AUSKLAPPEN] Graphics3D 800,600,32,2 |
||
- Zuletzt bearbeitet von Krischan am Do, Okt 14, 2010 17:23, insgesamt 2-mal bearbeitet
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
ich weis nicht woran das liegt. Aber ich kann den Code nicht mit Copy und Paste in den BB Editor übertragen ..... die Return byts fehlen. Gruss TFT |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
Krischan |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Beide Codes lassen sich hier bei mir auf mehreren Rechnern problemlos pasten, sowohl in der B3D IDE als auch in Ideal - am Code liegt es nicht. Was sind denn "Return byts"? | ||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich glaube er meint damit die Bytefolge 13,10.
Aber es liegt nur am IE9, welcher die Bytes nicht mitmakiert und folglich nicht mitkopiert. LG TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sieht sehr nice aus.
Läuft mit 30 FPS auf Notebook, siehe Signatur. |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
Alkan |
![]() Antworten mit Zitat ![]() |
---|---|---|
@hectic:
Nein das war keine Verwechselung, ich meine FPS. ![]() Außerdem hab ich 240000 Sterne und nicht 24000 geschrieben. Oder hast du mit deinem Onboard-Grafikchip wirklich 48 FPS bei 240000 Sternen?(ich habe da 9 FPS und bei der neuen Version 43-44 FPS) @Krischan: Ja die neue Version ist wirklich viel schneller, hab da auch so 20-40 FPS je nachdem wie weit man von dem Mittelpunkt der Galaxie entfernt ist. Außerdem wird jetzt auch die Grafikkarte mehr beansprucht( bei mir ca. 90%). Bei 2.400.000 Sternen hab ich jetzt immerhin noch ca. 3-4 und bei 1.200.000 Sternen 7 FPS . Aber immer wenn ich bei so vielen Sternen zu nah an den Quads bin krieg ich immer eine Mav. Außerdem wird dann die Grafikkarte nicht mehr so sehr beansprucht, da wieder alles an der CPU hängenbleibt. MfG Alkan |
||
Hauptrechner: Win7 Ultimate x64|AMD Phenom II X4 965 BlackEdition 4x3.4GHz|4 GB DualKit DDR3-1600 Ram|1.5 TB Samsung EcoGreen|Cougar CM 700Watt|ASRock M3A790GFX/120M|Nvidia GeForce 9500GT|Ati Radeon HD3300(Onboard-Deaktiviert)
Server(früher Hauptrechner): Ubuntu 9.1 x86|Intel P4 HT 3GHz|Ati Radeon X600Pro|200 GB HDD Worklog: Planetensimulation Homepage(Under Construction): alkan96.dyndns.org Wenn schon falsch, dann richtig falsch. |
- Zuletzt bearbeitet von Alkan am Mi, Okt 13, 2010 19:10, insgesamt einmal bearbeitet
![]() |
biggicekey |
![]() Antworten mit Zitat ![]() |
---|---|---|
Alkan hat Folgendes geschrieben: das einzige was mich stört ist, dass ich bei 240000 Sternen nur 9 FPS kriege Alkan hat Folgendes geschrieben: Außerdem hab ich 240000 Sterne und nicht 24000 geschrieben. Oder hast du mit deinem Onboard-Grafikchip wirklich 48 FPS bei 240000 Sternen?(ich habe da 86 FPS) kann ich nicht zählen? hattest du nun 9 oder 86 FPS bei 240000???? |
||
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller Nothing more to register - you've cleaned us out![/size] |
![]() |
Alkan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Alkan hat Folgendes geschrieben:
das einzige was mich stört ist, dass ich bei 240000 Sternen nur 9 FPS kriege Alkan hat Folgendes geschrieben: Außerdem hab ich 240000 Sterne und nicht 24000 geschrieben. Oder hast du mit deinem Onboard-Grafikchip wirklich 48 FPS bei 240000 Sternen?(ich habe da 86 FPS) kann ich nicht zählen? hattest du nun 9 oder 86 FPS bei 240000???? Oh das hab ich jetzt selber auch verwechselt ![]() Naja, vielen dank für den Hinweis biggicekey, hab es jetzt korrigiert. ![]() |
||
Hauptrechner: Win7 Ultimate x64|AMD Phenom II X4 965 BlackEdition 4x3.4GHz|4 GB DualKit DDR3-1600 Ram|1.5 TB Samsung EcoGreen|Cougar CM 700Watt|ASRock M3A790GFX/120M|Nvidia GeForce 9500GT|Ati Radeon HD3300(Onboard-Deaktiviert)
Server(früher Hauptrechner): Ubuntu 9.1 x86|Intel P4 HT 3GHz|Ati Radeon X600Pro|200 GB HDD Worklog: Planetensimulation Homepage(Under Construction): alkan96.dyndns.org Wenn schon falsch, dann richtig falsch. |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sehr schöne Sache! | ||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group