PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Super-Duper megakleine ultralange grafikdemos :)


Kennung Eins
2003-02-06, 13:48:01
Wie machen die das?
Ich mein, die Farbrauschdemos zum Beispiel (Beispiel (http://www.farb-rausch.com/fr-022_final.zip), Beispiel (http://www.farb-rausch.com/fr019_final.zip)), wieso sind die so klein?

Wie kriegen die das Programm so winzig?

Ok, daß da texturen berechnet werden, passt schon. Aber wenn ich da den Code progen würde (könnte *g*), dann wäre das doch mindestens 300kb groß, plus ein paar MB an Texturen.

Wie geht das?

starfish
2003-02-06, 14:08:48
hab ich mich auch schon gefragt. aber wie wärs z.b. mit komprimieren?

[EF]peppa
2003-02-06, 14:19:00
Die exe-files sind gepackt mit upx oder aehnlichem.
Das ist aber noch nicht alles. Das meiste ist in assembler programmiert. Es werden keine unnoetigen Module eingebunden. Es wird eigendlich alles per API erzeugt. Die Musik ist Synthisizermusik.

Die Statistiken am Schluss sind geil. :)
Farbrausch08_final (http://elreyforce.org/~peppa/fr08_final.zip)

mfg peppa

Kennung Eins
2003-02-06, 14:47:46
jo ok, exe packer bringt ca. 50-80% weniger Datenvolumen, je nach Datei ... jedoch ist selbst das immernoch riesig dann...

Ich progge auch grad ausschliesslich mit API rum, (allerdings ohne ASM :) ) doch soooooooo klein krieg ichs dann doch nicht.

P.S.: auch die 16-byte-demo (http://www.farb-rausch.com/fr-016.zip) ist cool :) hehe ist noch nichtmal ein Programmabbruch implementiert...

Ich würd ja gern mal n bissel Quelltext von einem der neueren Projekte sehen...

[EF]peppa
2003-02-06, 15:11:10
Als Beispiel, es werden nicht die kompletten DirectX header implementiert, sondern die nehmen sich ausschlisslich das raus was auch wirklich gebraucht wird.

Oder bei Delphi: Wenn ich in der Delphi IDE eine Form erstelle und die compiliere ist die Datei groesser als wenn ich nur die Form mit der API erstelle. Weil das Modul forms.pas nicht eingebunden wird.

Von den neuern wurde ich auch gern den source sehn.
Hab nur den da:
farbrausch_10_binaries (http://elreyforce.org/~peppa/fr010scx_fixed.zip)

farbrausch_10_source (http://elreyforce.org/~peppa/fr010src.zip)

aths
2003-02-06, 16:42:03
Kennung1,

die Typen nehmen MS VC6++, aber ohne MFC und so - praktisch ohne alles. Die Engine ist recht unoptimiert - wenn ich mich nicht täusche, haben z.B. beim FR08 am Ende diese Kreise alle die gleiche Geometrie-Auflösung - die großen wie die kleinen. Die Musik nutzt offensichtlich einen FM-Synthesizer... also so erstaunt bin ich über die resultierende Dateigröße gar nicht. Bei "Poem to a Horse" noch ganz gut kaschiert, sieht man den meisten Demos imo auch irgendwo ihre Einfachheit ziemlich an, bzw. hört man sie im Soundtrack. Für 64K finde ich die Demos natürlich ziemlich beeindruckend.

aths
2003-02-06, 16:43:32
Originally posted by [EF]peppa
Die Statistiken am Schluss sind geil. :)Und imo unsinnig. Ich könnte auch jedes gerenderte Pixel zählen und dann ein "Compression Ratio" berechnen.

Kennung Eins
2003-02-06, 17:59:35
Originally posted by aths
Kennung1,

die Typen nehmen MS VC6++, aber ohne MFC und so - praktisch ohne alles. Die Engine ist recht unoptimiert - wenn ich mich nicht täusche, haben z.B. beim FR08 am Ende diese Kreise alle die gleiche Geometrie-Auflösung - die großen wie die kleinen. Die Musik nutzt offensichtlich einen FM-Synthesizer... also so erstaunt bin ich über die resultierende Dateigröße gar nicht. Bei "Poem to a Horse" noch ganz gut kaschiert, sieht man den meisten Demos imo auch irgendwo ihre Einfachheit ziemlich an, bzw. hört man sie im Soundtrack. Für 64K finde ich die Demos natürlich ziemlich beeindruckend. Jo schonm klar, sowas mach ich ja auch (http://home.arcor.de/iotha/Progs/delphiSkinz.ace), nur eben mit Delphi (wobei das Delphi Programm dann sogar kleiner als das C++ wird :) ).
Trotzdem finde ich das immernoch extrem winzig, 64kb.

Meint ihr, die machen das echt nur mit solchen Tricks?
Ich hätte mir zumindest gedacht, daß die da noch intern irgendwelche Sachen komprimieren, die dann zur Laufzeit erst entpackt werden, oder was auch immer :)

aths
2003-02-06, 18:06:24
Originally posted by Kennung Eins
Meint ihr, die machen das echt nur mit solchen Tricks?
Ich hätte mir zumindest gedacht, daß die da noch intern irgendwelche Sachen komprimieren, die dann zur Laufzeit erst entpackt werden, oder was auch immer :) Entpackt wird am Anfang. Ist ja auch nicht sooo schwer: Mal eben die Texturen mit Render to Texture speichern, und den Vertex-Buffer beschreiben, sowie die FM-Instrumente generieren und im RAM als "Wav" ablegen. Das mit den Instrumenten wird wohl zuerst gemacht, denn kurz nach dem der Balken etwas Fortschritt zeigt, spielt die Musik schon los.

[EF]peppa
2003-02-06, 19:36:29
Originally posted by aths
Und imo unsinnig. Ich könnte auch jedes gerenderte Pixel zählen und dann ein "Compression Ratio" berechnen.

Das ist mir schon klar. Ich finde es nur interresant wieviele Daten bei sowas ueber den Bus laufen. Allgemein.

mfg peppa

Demirug
2003-02-06, 20:40:56
Kennung Eins,

Neben einem Exe-Packer setzen diese Demos voll auf prozeduale Geometrie und Texturen. Es wird also aus Formeln erst zur Laufzeit erzeugt. Gerade bei Strukturen die natürlich wirken sollen geht das ganz gut.

Kennung Eins
2003-02-06, 22:31:03
So nennt sich das also :)
Das interessiert mich sehr, kennst du irgendwo eine Seite, die sich eingehend damit beschäftigt? (Ich google natürlich selber schonmal :) )

aths
2003-02-06, 22:38:21
Originally posted by Kennung Eins
So nennt sich das also :)
Das interessiert mich sehr, kennst du irgendwo eine Seite, die sich eingehend damit beschäftigt? (Ich google natürlich selber schonmal :) ) Prozedurale Texturen setzen meistens kräftig auf Dependend Texture Reads. Bei den Farbräuschen :) werden sie vorgerendert, es gibt eine PowerVR-Demo wo Feuer und Marmor "on thy fly" gerendert wird.

Kennung Eins
2003-02-07, 11:01:07
vor allem, was mich sehr stark interessiert, wie machen die das mit den "Text-Texturen"?

Also sowas da:

http://home.arcor.de/iotha/temp/schrift1.jpg
http://home.arcor.de/iotha/temp/schrift2.jpg

Wieso kann man die schrift immernoch so gut lesen?
(Ok, bei dem ersten nicht "gut", aber immerhin erkennt man es noch als Schrift)

Wie kann man sowas in einen Algorithmus pressen?

Demirug
2003-02-07, 11:13:01
Kennung Eins,

Text ist auch einfach.

1. Man erzeugt die Texture.
2. Speicherbreich für die Texture holen
3. GDI auf den Speicherbereich binden
4. Mit dem GDI den Text reinschreiben
5. GDI Freigeben
6. Texturspeicher freigeben
7. Render

Man kann die Rheienfolge auch etwas ändern aber das Prinzip bleibt das gleiche.

Kennung Eins
2003-02-07, 11:39:40
Ach ok, ja ...

hatte mir gedacht, die malen die Textur erstmal vor, mit allem Text drauf, eben ein fertiges Bitmap, und dann scannen sie das Bild per irgendwelchen Algorithmen ein, o.ä.

Aber das wäre wohl zu umständlich...

Mr. Lolman
2003-02-07, 18:11:55
Also aths, ich finde du zollst diesen Demos nicht genügend Respekt.

Xmas
2003-02-07, 18:43:06
Originally posted by Mr. Lolman
Also aths, ich finde du zollst diesen Demos nicht genügend Respekt.
Wieso das denn? Sicher sind die Demos beeindruckend, wie aths ja schon gesagt hat, aber wohl meistens wegen dem Artwork und der Choreografie, nicht wegen der Technik. Viele Demos setzen ja z.B. auf einen unrealistischen Look, der visuell beeindruckend ist (insbesondere Partikelsysteme) aber technisch absolut simpel.

Einen ordentlichen Visibility Culling oder Terrain LOD Algorithmus halte ich für technisch "beeindruckender".

aths
2003-02-07, 23:11:14
Originally posted by Mr. Lolman
Also aths, ich finde du zollst diesen Demos nicht genügend Respekt. Xmas hat's schon angedeutet :)

Bei "Poem to a Horse" gefällt mir z.B. das "glatte" Aussehen und das nette Enviroment Mapping. Technisch bieten die Demos allerdings, hm, nur bekanntes. Wenn man sich ungefähr vorstellen kann, wie das in so kleinen Dateien machbar ist, verliert dieser Aspekt den Reiz. Zumal mich persönlich der "billige" Sound durchweg stört. Einerseits hat Farbrausch imo keine sehr guten Komponisten, andererseits nerven mich die imo zu primitiven FM-Instrumente. (FR hätte imo auch DirectMusic nehmen können, klingt besser und erfordert auch keine Midi-fähige Karte (das FR-System und DirectMusik "emulieren" ja sozusagen eine Art Midi-System.))

Die Texturen in FR08 finde ich teilweise gut (vor allem die mit dem Pseudo-3D-Look), teilweise unpassend.

Klar hat FR mächtig was drauf, damit sind sie in der Demo-Szene allerdings nicht allein :)

Kennung Eins
2003-02-07, 23:17:29
Hmm vielleicht sollte man mal ein "Szene-Demos"-Thread aufmachen...denn: interessiert mich SEHR! (und sicher andere auch)

weiß nur nicht, in welchem forum ich den aufmache ... :)

aths
2003-02-08, 00:57:40
Wenn's technisch genug ist, passt dieses Forum schon.