Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Leviathan Mini JLI'ler
Alter: 49 Anmeldedatum: 12.01.2005 Beiträge: 31 Wohnort: S9 Medaillen: Keine
|
Verfasst am: 09.03.2005, 13:42 Titel: Starfield 2 ohne surface? |
|
|
Hi!
Die, die das Buch haben und durchgelesen haben, werden sich wahrscheinlich an das Beispiel "Starfield 2" aus dem Kapitel 20 erinnern.
Dort werden Sterne simuliert, die von oben nach unten "vorbeifliegen".
Nun, das Beispiel ist mithilfe eines Surface programmiert worden, auf dem die einzelnen Pixel verändert (gemalt) werden, sodass der Eindruck entsteht als ob das Sterne wären.
Das ganze ist schön anzusehen, bloß ich habe schon mehrere Meinungen gehört (so stehts auch im Buch), dass diese Methode (Pixel auf dem Surface zu manipulieren) furchtbar langsam ist.
Meine Frage an auch: wie kann man das gleiche denn mithilfe von Vertizes (Polygonen) also richtig in 3D umsetzen? Man könnte ja 2 Polygone darstellen, die den gesamten Bildschirm einnehmen aber wie kriege ich die Sterne da drauf?
Ich möchte nicht unbedingt mit Texturen arbeiten sondern die "Sterne" selber im Programm erzeugen, bloß ohne des Surface...
Wie würdet ihr die Sache angehen?
mfg |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 09.03.2005, 13:57 Titel: |
|
|
Das einfachste wäre wohl ein Vertexgebilde aus 2 Vertexen zu erstellen, Vertex1 bekommt zusätzlich die Farbe RGBA(255,255,255,255) und Vertex2 die Farbe RGB(0,0,0,0) nun kann man entweder D3DXLine nutzen um sich den Sterneneffekt zu holen oder man macht es ohne und nutzt die Draw Befehle der API. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
Leviathan Mini JLI'ler
Alter: 49 Anmeldedatum: 12.01.2005 Beiträge: 31 Wohnort: S9 Medaillen: Keine
|
Verfasst am: 09.03.2005, 14:14 Titel: |
|
|
FallenAngel84 hat Folgendes geschrieben: | [...] oder man macht es ohne und nutzt die Draw Befehle der API. |
sorry, aber welche Draw Befehle meinste? Ich bin in der Materie noch nicht so ganz bewandert... |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 09.03.2005, 14:16 Titel: |
|
|
DrawPrimitive oder solche Befehle, stehen in der Docu von DX drin. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 09.03.2005, 14:24 Titel: |
|
|
im prinzip wirst du immer die Pixel auf einen Obverfläche verändern müssen, du müsstest halt irgendwie ein Surface ekommen, das man schnell locken und schnell manipulkieren kann ( vieliehct sind Texturen ja schneller?). Das dann noch extra mit GDI zu machen, halte ich nicht für oo gut, weil man doch immer ein DC anlegen muss(oder?).
Und ich denke das bei einem kleinen Spiel und einem nicht ganz so aufwändigen Starfiled, es nicht soogroße Probleme geben sollte. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 09.03.2005, 14:25 Titel: |
|
|
Jonathan_Klein hat Folgendes geschrieben: | im prinzip wirst du immer die Pixel auf einen Obverfläche verändern müssen, du müsstest halt irgendwie ein Surface ekommen, das man schnell locken und schnell manipulkieren kann ( vieliehct sind Texturen ja schneller?). Das dann noch extra mit GDI zu machen, halte ich nicht für oo gut, weil man doch immer ein DC anlegen muss(oder?).
Und ich denke das bei einem kleinen Spiel und einem nicht ganz so aufwändigen Starfiled, es nicht soogroße Probleme geben sollte. |
Was hast du gegen meine Idee ? Locken/Unlocken is doch sau lahm, auch mit DD Surfaces _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 09.03.2005, 14:28 Titel: |
|
|
Wenn Du der Linearen Funktionsmathematik mächtig bist rechnest Du es aus was besser ist:
Im Durchschnitt ist das rendern von 150 Vertices schneller als das Locken und Unlocken der Surface, darüber wirds kritisch und ab 200 Punkte ist ein Lock auf der Backsurface schneller, aber hier kommt die Größe an.
Einfach mal ausrechnen _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
HomeLess_PunkDrummer JLI Master Trainee
Alter: 36 Anmeldedatum: 28.11.2004 Beiträge: 583 Wohnort: Alter Joghurtbecher an der A4 Medaillen: Keine
|
Verfasst am: 09.03.2005, 15:05 Titel: |
|
|
Kann mir nochmal jemand ganz langsam erklären warum das verf****** Locken/Unlocken einer Surface oder Textur so lahm ist, und wie genau es funktioniert.
Danke. _________________ "Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz." |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 09.03.2005, 15:07 Titel: |
|
|
hm, ich könnte mir vorstellen, das es daran leigt, das die surfaces im GraKa speicher sind, beim locken in den Hauptspeicher kopiert werden, dort verändert werden, und beim unlocken wieder zurückkopiert werden. Sowas gibts jedenfalls in der Art bei Texturen. Und da die dinger unkomprimiert sind, kann das wenn die Bildschirmgröße haben, halt schon etwas dauern _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 09.03.2005, 15:09 Titel: |
|
|
Unter ein weilchen dauern versteht man immer was von Sekunden ;9
Bei den möglichen transferraten isses recht flott, aber die Masse der Locks/Unlocks bremst ganz schön. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
HomeLess_PunkDrummer JLI Master Trainee
Alter: 36 Anmeldedatum: 28.11.2004 Beiträge: 583 Wohnort: Alter Joghurtbecher an der A4 Medaillen: Keine
|
Verfasst am: 09.03.2005, 15:13 Titel: |
|
|
Ah ha, und das selbe gilt für Vertexbuffer? _________________ "Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz." |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 09.03.2005, 15:17 Titel: |
|
|
Ich bin nicht sicher aber ich glaube die werden in einen besonders schnellen Speicherbereich angelegt. Beim locken werden die da in einen langsameren kopiert, in dem man aber schneller schreiben kann als in den anderen. oder so _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 09.03.2005, 15:17 Titel: |
|
|
Hab den Thread jetzt nur mal fix überflogen...
Ich hab mir mal überlegt, wie man am einfachsten nen Regen/Schnee/WatWeißIch-Effekt darstellen könnte. Eine Möglichkeit wäre evt. ein Quad zu nehmen, da ne Textur mit den Sternen/Tropfen/Flocken... drauf zupacken und in jedem neuen Frame die Texturen-Matrix vorm Rendern ein Stück weiter zu schieben.
Das Problem dürften hierbei nur die Füllraten der Grafikkarte sein, weil du ja doch ziemlich viel Leistung in dieser Hinsicht verschwendest...
Hängt halt ein bisschen davon ab, was du genau machen willst. |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 09.03.2005, 15:19 Titel: |
|
|
Manche Spiele machen das so, in 3D hinsicht sogar schneller als es über partikel (für jeden tropfen einzeln,...) zu lösen _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 09.03.2005, 15:38 Titel: |
|
|
Ja, das lahme ist nicht unbedingt das Setzen der Pixel, sondern das (Un)locken. Und das liegt auch daran, dass das Surface so weit entfernt im Grafikspeicher liegt. Allerdings lohnt es sich bei vielen Locks/zu setzenden Pixeln, wenn du das Surface im AGP- oder sogar im Hauptspeicher anlegst. Dann fällt das Locken kaum mehr ins Gewicht und die Pixel können sehr schnell gesetzt werden. Dann ist das einzige Problem noch, dass du das so veränderte Surface aus dem Hauptspeicher wieder in den Backbuffer(im Videospeicher) bringen musst. Deshalb solltest du grundsätzlich mit wenigen Kopiervorgängen zwischen den verschiedenen Speichern auskommen. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
|