PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ultragenauer Mandelbrot-Renderer


Seiten : 1 2 [3]

aths
2003-03-06, 11:34:19
Originally posted by zeckensack
Im Treiberpanel :naughty:

Ich kann natürlich die entsprechende Extension benutzen, sofern verfügbar. Soll ich?Im Treiberpanel kann man nur "default on" einstellen.

edit: Ich sehe gerade, das scheint auszureichen.

Lost Prophet
2003-03-06, 15:38:42
es steht alles ganz normal da, das die places geladen werden und dann unter paletten steht dann, egal was ich als verknüfung nehme, der name mit der verknüfung** mit .lnk

Originally posted by my Mandelbrot-Renderer
loading palettes: D:\..................\brot\[hier die verknüpfung]+[.lnk]


** zwei beispiele
brot2 royal.pal
royal.pal
etc und etliche andere :D



alle diese kombos gehn mit -megs=1024 einwandfrei
ist aber verkraftbar, ich hab doch die P-taste :love:


ich wollt das ergebnis attachen aber die extension wird nicht unterstützt
ich versuchs mal zu beschreiben (von aussen nach innen) alles mit sehr harten übergängen

schwarz -> rot -> schwarz -> blau -> schwarz -> hellblau -> rosa -> gelb, das wird dann alles etwas schwer zu erkennen, die mitte ist braunrot (rostrot)

der rechner funktionert trotzdem einwandfrei, ich kann auch eine andere palette laden, nur eben das mit der startpalette funzt nicht :(


cya axel

Lost Prophet
2003-03-06, 15:43:59
poddelsopt ?-)

zeckensack
2003-03-08, 17:23:44
Rattazong (http://home.t-online.de/~zsack/brot.zip)
Bessere Kompression dank Huffman-Coding
Darüberhinaus wird jetzt auch die Cache-Maske komprimiert
Daraus ergibt sich ein neues History-Format, alte Dateien können aber noch geladen werden
'History speichern' jetzt auf SHIFT+H. 'History laden' auf H. Grund: L war für den Mauslock reserviert und doppelt belegt.
Paletten-Cycling 'stockt' jetzt nicht mehr bei Geschwindigkeitsänderungen

Extra-Spaßfaktoren:
Die toten Dateien 'Bitfield2D.*' aus dem Archiv gekickt
Kleine Tweaks bzgl Speicherlimit
Minimaler Speedup beim Downfiltering
Beim Start wird jetzt die komplette command line ausgespuckt. Schönen Gruß an Purple_Stain :naughty:


Keine API-Änderungen btw ;)

zeckensack
2003-03-08, 17:26:46
Originally posted by Purple_Stain
es steht alles ganz normal da, das die places geladen werden und dann unter paletten steht dann, egal was ich als verknüfung nehme, der name mit der verknüfung** mit .lnk



** zwei beispiele
brot2 royal.pal
royal.pal
etc und etliche andere :D



alle diese kombos gehn mit -megs=1024 einwandfrei
ist aber verkraftbar, ich hab doch die P-taste :love:


ich wollt das ergebnis attachen aber die extension wird nicht unterstützt
ich versuchs mal zu beschreiben (von aussen nach innen) alles mit sehr harten übergängen

schwarz -> rot -> schwarz -> blau -> schwarz -> hellblau -> rosa -> gelb, das wird dann alles etwas schwer zu erkennen, die mitte ist braunrot (rostrot)

der rechner funktionert trotzdem einwandfrei, ich kann auch eine andere palette laden, nur eben das mit der startpalette funzt nicht :(


cya axel Was du da beschreibst, hört sich so an als hättest du die Verknüpfung auf brot2.exe draufgezogen :|
Bitte mit der neuen Version den Fehler reproduzieren, und die 'command line', die beim Start in der Konsole angezeigt wird, hier posten.

ethrandil
2003-03-08, 17:55:02
Also, bei mir crasht es manchmal. Und zwar dann, wenn ich schon klicke, bevor das Prewiev aufgebaut ist (!) .
Das sollte ich zwar eh nicht machen, aber dass es dabei abstürzt ist auch doof.
Fehlermeldung siehe Anhang. (win2k, sp2)
(Reproduzierbar ist es zB so: hohe Rekursionstiefe einstellen, 8xAA und dann mehrfach schnell ins bild klicken).

Unregistered
2003-03-08, 17:58:23
Originally posted by ethrandil
Also, bei mir crashta manchmal. Und zwar dann, wenn ich schon klicke, bevor dasd Prewiev aufgebaut ist (!) .
Das sollte ich zwar eh nicht machen, aber dasses dabei abstürzt ist auch doof.
Fehlermeldung siehe Anhang. (win2k, sp2)
(Reproduzierbar ist es zB so: hohe Rekursionstiefe einstellen, 8xAA und dann schnell ins bild klicken).


tut er bei mir unter winxp auch, wenn ich schnell doppelklicke, allerdings ohne Fehlermeldung. Geht einfach raus.

Lost Prophet
2003-03-08, 18:29:26
Originally posted by zeckensack
Was du da beschreibst, hört sich so an als hättest du die Verknüpfung auf brot2.exe draufgezogen :|
Bitte mit der neuen Version den Fehler reproduzieren, und die 'command line', die beim Start in der Konsole angezeigt wird, hier posten.

jo, ich fürchte du hast recht

das mit dem speicher hab ich damals nicht gecheckt, und aus euren erklärungen (trotzdem danke) bin ich nicht schlau geworden, wollt aber dann nicht mehr stören und nach einiger zeit probieren funktionierte es mit link erstellen, in "brot2 -megs=1024" umbennen und auf die original exe draufziehen, damit war ich zufrieden denn die palette konnte ich ja nachträglich ändern

ich hoffe das hilft

btw, in der command line steht zuerst die exe UND dann der link mit der extension .lnk

:idea: (juhu jetzt weiß ich wo das herkommt)

thx 4 help
sry 4 probs

cya axel

zeckensack
2003-03-08, 19:00:24
In ca fünf Minuten:
Fix (http://home.t-online.de/~zsack/brot.zip)
keine Crashes mehr bei zu frühem Zoomen
Die Nachrichten über die Kompressionseffizienz und die dafür benötigte Zeit waren eigentlich nur für mich gedacht. Ich hab' sie jetzt wieder entfernt.

Lost Prophet
2003-03-11, 17:36:55
hab ein bisschen mit der batch datei gespielt und das überwunden was mich anfangs davon abgehalten hat

%1 %2 %3

keine Ahnung was das bedeutet aber es funktionert auch ohne =)



das heist alles cremig, und die welt wartet gespannt auf die nächste version :D

cya axel

Kennung Eins
2003-03-11, 17:50:43
Originally posted by Purple_Stain
hab ein bisschen mit der batch datei gespielt und das überwunden was mich anfangs davon abgehalten hat

%1 %2 %3

keine Ahnung was das bedeutet aber es funktionert auch ohne =)



das heist alles cremig, und die welt wartet gespannt auf die nächste version :D

cya axel das gibt nur die Parameter weiter.

(zb Start.bat -parameter1 -parameter2)

zeckensack
2003-03-11, 21:04:42
Originally posted by Purple_Stain
hab ein bisschen mit der batch datei gespielt und das überwunden was mich anfangs davon abgehalten hat

%1 %2 %3

keine Ahnung was das bedeutet aber es funktionert auch ohne =)Kennung Eins hat's schon richtig erkannt =)
das heist alles cremig, und die welt wartet gespannt auf die nächste version :D

cya axel Im Moment würde ich mich ganz gerne auch mal anderen Dingen (http://home.t-online.de/home/zsack/archmark/index.html) widmen :naughty:

edit: http://www.forum-3dcenter.org/vbulletin/showthread.php?threadid=59651
Prophylaktisch abgesplittet ;)

Lost Prophet
2003-03-26, 16:59:21
ich möcht mich ja wirklich nicht aufregen aber ich frage jetzt auch mal "rein prophylaktisch" :

wann dürfen wir wieder ein update erwarten / hast du vor IRGENWAS zu dem thema zu tun??

imho ist der rechner sehr gut aber nicht fertig! =)

cya axel

zeckensack
2003-03-26, 17:10:45
Ich glaub' ich bau nächste Woche 'ne SSE-Optimierung für den Nahbereich (ie keine ExtremeFloats) drauf. Und vielleicht mach ich noch eine 'richtige' Windows-Version mit Eingabefeldern und so :)

Aber erst den Artikel fertig kriegen ... und dann ArchMark raushauen ... und dann :D

aths
2003-03-28, 13:54:51
Das fände ich jedenfalls toll von dir :)

aths
2003-03-31, 19:33:33
Zecki, Programmiervorschlag:

Optimierung der Kompressionsrate. Da ist noch so einiges drin! Statt Huffman könntest du Fano nehmen, was zwar nicht ganz so gut, aber viel schneller ist. Gehts um Kompression, versuch doch mal arithmetische Komprimierung. Natürlich nicht über das gesamte Bild, sondern in Tiles komprimieren, um eine schöne adaptive Komprimierung zu haben. Wenn ein Tile komplett einfarbig ist, könntest du zudem auf Komprimierung verzichten und einfach nur den RGB-Wert (btw. Paletten-Index) speichert.

zeckensack
2003-03-31, 19:40:00
1. Arithmetische Kodierung hat sich irgendeine Matschbirne patentieren lassen :|
2. Who the f*** is Fano?
3. Tile-Komprimierung bringt nur in Extremfällen was. Darüberhinaus ist sie quasi sowieso schon drin. Die Kompression schmeißt alle 'geratenen' Samples weg, je nach gewähltem Generator bleiben also nur die Konturen, oder die Rechteckränder. Die Rekonstruktion dieser Samples ist eh trivial (einfach nochmal den Generator drüberschrubben).

edit:
2 hat sich erledigt. Hab's gefunden :)
Begrenzender Faktor ist übrigens die Dekompression :|
Ich denke Fano bringt uns da nicht weiter. Ich kann höchstens die Kompressionsrate weiter steigern (adaptiver Huffman und/oder ein echter Statistiklauf vor der Kompression; ich benutze im Moment eine statische 'hard coded' Wahrscheinlichkeitsverteilung), an der Geschwindigkeit ist leider nicht viel zu machen.

aths
2003-03-31, 19:47:59
Originally posted by zeckensack
1. Arithmetische Kodierung hat sich irgendeine Matschbirne patentieren lassen :|Das ließe sich doch sicher so weit abwandeln, dass es nicht mehr patentiert ist? (Wieso kann man eigentlich Komprimierungsalgos patentieren lassen? Was ist das nur für eine Welt...)
Originally posted by zeckensack
2. Who the f*** is Fano?Das Fano-Kriterium ist erfüllt, wenn es sich um einen Präfix-Code handelt (was ja bedeutet, dass kein Codewort Präfix eines anderen Codewortes ist, man kann also sofort dekodieren.) Huffman liefert immer einen nicht weiter optimierbaren Präfix-Code, wie du sicher weißt. Shannon liefert einen Rendundanz reduzierten Code (Rendundanz < 1 Bit / Quellzeichen), und Fano liefern fast Huffman-Qualität, aber viel schneller. Geht ganz einfach:

- Sortiere Quellzeichen nach absteigenden Wahrscheinlichkeiten
- Teile in 2 Gruppen auf, und zwar so, dass die Summen der Wahrscheinlichkeiten möglichst gleich ist, gibt der oberen Gruppe eine 0, der unteren eine 1. Das ist das führende Bit.
- Führe das fort bis du so weit bist, dass jedes Zeichen sein letztes Bit bekommen hast. Die neuen Bits werden immer angehängt.


Fast so wenig Rendundanz wie Huffman, aber deutlich schneller.
Originally posted by zeckensack
3. Tile-Komprimierung bringt nur in Extremfällen was. Darüberhinaus ist sie quasi sowieso schon drin. Die Kompression schmeißt alle 'geratenen' Samples weg, je nach gewähltem Generator bleiben also nur die Konturen, oder die Rechteckränder. Die Rekonstruktion dieser Samples ist eh trivial (einfach nochmal den Generator drüberschrubben). An Tiles dachte ich deshalb, um die Entropie-Kodierung adaptiv zu gestalten. In den interessanten Bildern ist ja "viel los", da könnte das durchaus lohnen.

zeckensack
2003-03-31, 19:51:57
Habe oben mal editiert :)

zeckensack
2003-03-31, 19:56:32
Originally posted by aths
Das ließe sich doch sicher so weit abwandeln, dass es nicht mehr patentiert ist? (Wieso kann man eigentlich Komprimierungsalgos patentieren lassen? Was ist das nur für eine Welt...)Eine shice Welt voll von corporate nonsense(TM).
Man denke hier auch an das LZW-Patent von Unisys, und die Implikationen für das GIF-Format. Das dürfte doch bekannt sein :|
<...> Fano liefern fast Huffman-Qualität, aber viel schnellerBeides dekodiert sich über das Abverfolgen* eines Binärbaums. Bis jetzt habe ich noch nicht begriffen, warum Fano schneller sein soll???

*gibt's eigentlich einen deutschen Fachterminus für 'traversal'? :|

aths
2003-03-31, 19:57:21
Was Huffman angeht, ich mag ihn nicht. Er liefert einen optimalen Präfix-Code, ist aber ungleich aufwändiger als Fano. Wenn schon Rechenzeit für adaptive Kodierung verballern, warum das nicht mit Fano ausgleichen?

Die Krönung wäre ja noch adaptives Tiling in mindestens 2 Hierarchien (Tiles und Subtiles.) Wenn ein Tile entweder viel Eintönigkeit oder viel Rauschen enthält, wird es so komprimiert. Kommt beides vor, werden Subtiles einzeln komprimiert :naughty:

Ich bin mir leider nicht so recht im Klaren über den Overhead, den man pro Entropie-Kodierung braucht. Aus dem Bauch heraus wage ich aber zu behaupten, dass adaptive Komprimierung noch was an Rendundanzvermeidung bringt.

zeckensack
2003-04-06, 13:07:34
Ich bräuchte mal ganz schnell ein paar P4-Benchmarks =)
Bitte dazu meine Presets benutzen, und die Auflösung so lassen wie sie ist. Zur Lasterhöhung 4x4AA aktivieren.

Also quasi so: Programm starten, 4 drücken
F2 drücken, warten bis das Bild fertig ist
Zeit ablesen
M drücken (=> nach box matching umschalten)
R drücken
nochmal warten bis das Bild fertig ist, ablesen
F4 drücken
warten
ablesen
nochmal M drücken (=> zurück nach contour tracing)
R drücken
warten
ablesen


Meine Werte mit der alten Version
2. 11.6 Sekunden
3. 14.1 Sekunden
4. 21.7 Sekunden
5. 16.5 Sekunden

Nagelbrett
2003-04-06, 14:04:43
p4 2.53ghz, pc2700-ram mit cl2.5 (falls das wichtig ist)

10.4secs
12.5secs
19.6secs
14.8secs

zeckensack
2003-04-06, 14:20:38
Hnkey :)

Und jetzt mal das Kontrastprogramm:
Beta-Version der Core-DLL (http://home.t-online.de/~zsack/brot_core_beta.zip)

Es sind jetzt ein paar Debug-Messages drin. Beim Start wird angezeigt, welche Sachen die CPU so unterstützt (zB bei mir "x86/RDTSC/MMX/3DNow!+/SSE").
Außerdem wird für jede Ansicht ausgespuckt, in welchem Modus das Ding gerade arbeitet. Derer gibt es jetzt fünf, die Auswahl erfolgt automatisch:
single precision 3DNow! (getestet, funzt)
single precision SSE (getestet, funzt)
double precision x87 (Standard-FPU, aus der alten Version übernommen)
double precision SSE2 (nicht getestet, bitte um Rückmeldung)
xfloat (tjajo, wie gehabt)

Die SSE2-Optimierung ist nur aktiv, wenn die aktuelle Ansicht double precision braucht. Das F2-Preset ist ein solcher Kandidat. Bitte testen =)

Nagelbrett
2003-04-06, 14:29:43
ok :)
das selbe mit der neuen dll:

6.5secs
7.9secs
10.7secs
8.6secs

interessant ;)

zeckensack
2003-04-06, 14:30:27
Alt Neu Ersparnis 'Speedup'
4) 21.7 11.8 46% 84%
5) 16.5 9.4 43% 76%

2/3 sind bei mir wie erwartet unverändert, da SSE/3DNow nur für single precision zu gebrauchen sind.

zeckensack
2003-04-06, 14:31:23
Originally posted by Nagelbrett
ok :)
das selbe mit der neuen dll:

6.5secs
7.9secs
10.7secs
8.6secs

interessant ;) Keine Fehler? =)
Oh Mann, bin ich gut :naughty:

aths
2003-04-06, 14:39:57
Originally posted by zeckensack
Oh Mann, bin ich gut :naughty: Verrate doch noch mal die URL zum DL des Programms...

zeckensack
2003-04-06, 15:16:09
Originally posted by aths
Verrate doch noch mal die URL zum DL des Programms... Wie jetzt?

Die neue DLL habe ich ein paar Postings weiter oben verlinkt. Das Hauptprogramm gibt's nach wie vor hier (http://home.t-online.de/home/zsack/brot.zip), ein Klick auf meine Sig hätte aber auch geholfen :)

Da Nagelbrett keine Fehler (und trotzdem den Speedup) vermelden konnte, werde ich die SIMD-Optimierung dann in Kürze hmmm ... einpflegen :)

Nagelbrett
2003-04-06, 15:19:55
ja, fehler hab ich keine bemerkt
laut console hat er auch SSE2 verwendet beim F2-preset und schneller ists ja auch geworden :)

aber mal was anderes: war das schon immer so dass er beim wechseln der palette das bild neuberechnen musste? :|

aths
2003-04-06, 19:22:30
Originally posted by zeckensack
ein Klick auf meine Sig hätte aber auch geholfen :) Sigs hab ich jetzt abgeschaltet, weil zu viele Trottel zu große Sigs haben.

aths
2003-04-06, 19:42:02
Originally posted by Nagelbrett
aber mal was anderes: war das schon immer so dass er beim wechseln der palette das bild neuberechnen musste? :| Nein, und das ist auch nicht so.

aths
2003-04-06, 19:47:55
Originally posted by Nagelbrett
aber mal was anderes: war das schon immer so dass er beim wechseln der palette das bild neuberechnen musste? :| Nein, und das ist auch nicht so.

Nagelbrett
2003-04-06, 20:44:10
Originally posted by aths
Nein, und das ist auch nicht so. hmm, stimmt ja
wenn ich P drück und dort dann eine neue palette wähle und mit Öffnen ganz normal lade, dann ist's auch ok
aber mir is gerade aufgefallen, dass wenn ich in dem Öffnen-Dialog eine datei per doppelklick öffne (und sich der dialog dabei über dem bild befindet), er den 2. klick wohl als klick ins bild wertet und so natürlich wieder was rechnen muss...

zeckensack
2003-04-08, 18:00:25
Originally posted by mh01
Hab jetzt doch mal gezählt (Photoshop rulez;)) - bis 1024 x 1024 macht er mit, sobald das Bild in einer Dimension 1025 Pixel erreicht ist alles schwarz...

MfG


Marc Ack.

Ich habe den Fehler gerade an PowerVR gemeldet, schaumer mal :)

Unregistered
2003-04-14, 16:17:39
Hi,
also mit der neuen brotcore.dll stürzt das Programm bei mir ab. Muß ich einfach nur die dll ersetzen und brot2.exe starten?
Jedenfalls kommt folgender Fehler:

"unknown software exception" (0xc000001d) an der Stelle 0x6df1c117

Das ganze auf einem P3 oder Celeron (weiß nicht, bin nicht zu Hause) 800.

DocEW

DocEW
2003-04-14, 16:19:13
Sorry, nicht eingeloggt... wie gesagt: Bin nicht zu Hause! :-)

StefanV
2003-04-14, 21:19:27
Originally posted by zeckensack
Ack.

Ich habe den Fehler gerade an PowerVR gemeldet, schaumer mal :)

Kommt vor, der 2D Teil der Kyro scheint auch 'etwas' buggy zu sein.
Gab z.B. Probleme mit Photoshop...
Ich hab die Kyro eigentlich nicht wirklich gemocht, ist aber nur meine Persönliche Meinung...

zeckensack
2003-04-14, 23:53:06
Originally posted by DocEW
Sorry, nicht eingeloggt... wie gesagt: Bin nicht zu Hause! :-) Ich habe da möglicherweise einen Anhaltspunkt ...
Wird bei dir fälschlicherweise "3DNow!" erkannt (das Konsolenfenster sollte diese Aktion überleben)?

zeckensack
2003-04-15, 00:35:35
Variante 2:
Originally posted by Unregistered
Das ganze auf einem P3 oder Celeron (weiß nicht, bin nicht zu Hause) 800.

DocEW

Du sitzt vielleicht einem Rechner, der zwar von der CPU her SSE-Support hat, aber das OS kann damit nicht umgehen.
Denkbar wäre eine Kiste, die ursprünglich mit einem P2 oder Celeron < 533MHz bestückt war, und später rein durch Prozessortausch aufgerüstet wurde. In solchen Fällen kann es sein, daß das OS nicht 'merkt', daß es jetzt bei Taskswitches die neuen Register sichern muß.

Bei Win95 oder NT3.51 ist dieser Umstand AFAIK nicht behebbar. Win98SE hat's bei mir vertragen, aber garantieren kann man das nicht.

Als Test dafür ist der SSE-Benchmark von SiSoft Sandra anwendbar, oder auch 3DMark 2000 (Pentium III-Optimierung muß auswählbar sein und funzen).

Btw,

Hi,
also mit der neuen brotcore.dll stürzt das Programm bei mir ab. Muß ich einfach nur die dll ersetzen und brot2.exe starten?Jupp. Das Ersetzen der DLL genügt.

DocEW
2003-04-15, 14:56:15
Das Betriebssystem ist Windows NT 4.0 - insofern stimmt deine Theorie vielleicht. Zumal der Rechner ein Firmenrechner ist und somit mit einem (wahrscheinlich alten) Standard-Image bespielt ist.
Ansonsten kann ich dir morgen noch den Konsolen-Output und den genauen Rechnertyp geben.

DocEW
2003-04-16, 11:31:10
Hi,
hier die "letzten Worte" vom Brot... :-)

x86/RDTSC/MMX/SSE
Deep zoom by zeckensack *hrhr*

This was getting overly long, so have a look at the readme for controls.

Command line:
C:\TEMP\brot\brot2.exe
memory limit is 96 megabytes
Loading places: C:\TEMP\brot\places
loading palette: C:\TEMP\brot\def.pal
single precision SSE ...

mh01
2003-04-16, 15:39:06
Originally posted by zeckensack
Ack.

Ich habe den Fehler gerade an PowerVR gemeldet, schaumer mal :)

Hallo Zecki,

gibt's schon was neues von der PowerVR-Front?

aleX
2003-04-20, 16:39:07
wow
hatte heute nacht beim treiber saugen langeweile und hab ma den thread hier in n paar stunden durchgewälzt, hab zwar kein wort von dem zeug verstanden aber das apfelmännchehn hat mir mein Pa mal vor ka vielleicht 13 jahren mal an einem 386er oder so gezeigt, da werden erinnerungen wach..
absolut faszienierend und dann noch hier verfolgen zu können wie sich so ein programm entwickelt...
was man damit alles machen kann, die absolute optische inspirationsquelle, bzw gedanklich auch..
wenn man das limit des zooms in reale dimensionen übertragen würde, also sagen wir mal die ausgangsfigur, also das 1. apfelmännchen ist so gross wie ein kontinent,z.b. afrika oder so, und dann fangen wir an reinzuzoomen und irgendwann setzt uns das programm wegen der zwangsläufig praktischen ungenauigkeit irgendwann eine grenze.. in welchen grössenordnungen würden wir uns dann bewegen? nanometer? oder noch kleiner? oder wäre das gar schon so klein das es keine grössenordnung, bzw uns keine bekannten kleineren teilchen mehr gäbe um das zu messen? die kleinsten uns bekannten teilchen heissen doch quarks oder so ähnlich oder?
na egal, auf jeden fall finde ich das sehr fesselnd sowas mal mit- verfolgen zu können
ich hoffe doch das ihr für die 3 monatige mühe (oder noch länger) vielleicht wenigstens etwas entschädigung bekommt, auch wenns "nur" die anerkennung und dank der leute sein sollte die dann mit dem programm arbeiten können bzw darin eine inspirationsquelle finden.
ich will jetzt hier auch nicht weiter rumspamen, wollt eigentlich nur sagen, mich hats sehr geflasht.. bin seit stunden nur am rumrendern, hätte nie gedacht das man mathematik auch mal quasi künstlerisch erleben kann...
auf jeden fall: RESPEKT und WEITER SO!! bin gespannt was noch so an features kommt :)

gruß aleX

P.S. was irgendwie noch sehr gut zu dem thema passt ist der film "pi",nur so als evtle anregung...

Unregistered
2003-04-28, 14:04:06
uniprotzie 1,6GHz normal 2
7,6
10,9
10,4
7,9
9,6
6,8
sse2 of und die ergebnisse sind im schnit 25% besser als ein gleichgetaktete xp

zeckensack
2003-04-28, 17:22:46
Originally posted by Unregistered
uniprotzie 1,6GHz normal 2
7,6
10,9
10,4
7,9
9,6
6,8
sse2 of und die ergebnisse sind im schnit 25% besser als ein gleichgetaktete xp Also wird im Konsolenfenster keine SSE2-Fähigkeit angezeigt (erste Zeile direkt beim Start)???

Außerdem hast du sechs Ergebnisse. Die 'Benchmarkanleitung' produziert aber nur vier :|
Welche sind welche?

ZilD
2003-04-28, 20:31:44
ein sehr guter freund von mir ...hat musik aus fraktalen generiert.

fraktale musik:
Mit Hilfe der Mathematik werden aus dem Chaos Tonreihen generiert.
Dies ist die eine Seite der Natur.
Eine andere Seite, das Menschliche, ordnet nun den Tonreihen Klänge, Klangfarben und Mischungsverhältnisse nach Intuition und Gehör zu.
So entsteht die fraktale Komposition.


Es wächst eine eigene Harmonie, eine Blüte aus dem Chaos, eine fremdartige, hypnotisierende Kraft, die es erlaubt, mit ihr zu fließen und zu verschmelzen.

Lost Prophet
2003-04-28, 21:21:35
Originally posted by ZilD
ein sehr guter freund von mir ...hat musik aus fraktalen generiert.

fraktale musik:
Mit Hilfe der Mathematik werden aus dem Chaos Tonreihen generiert.
Dies ist die eine Seite der Natur.
Eine andere Seite, das Menschliche, ordnet nun den Tonreihen Klänge, Klangfarben und Mischungsverhältnisse nach Intuition und Gehör zu.
So entsteht die fraktale Komposition.


Es wächst eine eigene Harmonie, eine Blüte aus dem Chaos, eine fremdartige, hypnotisierende Kraft, die es erlaubt, mit ihr zu fließen und zu verschmelzen.

kann man sich das wo anhörn?

cya axel

zild@work
2003-04-29, 09:22:14
jo kann man

http://www.schimka.de/klang/fraktal/fraktal.htm

http://www.schimka.dusnet.de/audio/frw/weite.mp3
http://www.schimka.dusnet.de/audio/frw/raum.mp3

raum gefällt mir sehr gut.

Unregistered
2003-04-29, 10:24:02
Originally posted by zeckensack
Also wird im Konsolenfenster keine SSE2-Fähigkeit angezeigt (erste Zeile direkt beim Start)???

Außerdem hast du sechs Ergebnisse. Die 'Benchmarkanleitung' produziert aber nur vier :|
Welche sind welche? ja das die Frage dachte doch das ICH was falsch mache :)
probiere es gleich nochmal

zeckensack
2003-04-30, 04:33:09
Originally posted by mh01


Hallo Zecki,

gibt's schon was neues von der PowerVR-Front? So, jetzt gibt's was :)

Hi Rolf

Sorry for the delay in my answer but we have been very busy recently.

The KYRO drivers use textures to handle block copies of pixels (i.e.
glDrawPixels), however the 3D chipset only supports a maximum size of 1024
for textures - hence the limitation you're experiencing.

At this stage I cannot guarentee a new version of the drivers will fix this
problem so I hope you'll be able to find a workaround for this issue in your
code (splitting up the block into smaller ones being the obvious
workaround).

Thanks,

Nick
_______________________________________________________________________
Nicolas Thibieroz Developer Relations
PowerVR Technologies A Division of Imagination Technologies Ltd
Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK ph:+44 1923 260511
<Email zensiert> http://www.pvrdev.com

mh01
2003-04-30, 12:25:09
Originally posted by zeckensack
So, jetzt gibt's was :)

Hi Rolf

Sorry for the delay in my answer but we have been very busy recently.

The KYRO drivers use textures to handle block copies of pixels (i.e.
glDrawPixels), however the 3D chipset only supports a maximum size of 1024
for textures - hence the limitation you're experiencing.

At this stage I cannot guarentee a new version of the drivers will fix this
problem so I hope you'll be able to find a workaround for this issue in your
code (splitting up the block into smaller ones being the obvious
workaround).

Thanks,

Nick
_______________________________________________________________________
Nicolas Thibieroz Developer Relations
PowerVR Technologies A Division of Imagination Technologies Ltd
Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK ph:+44 1923 260511
<Email zensiert> http://www.pvrdev.com

Na das ist doch wenigstens eine klare Aussage, danke für die Info.

Zecki, denkst Du, dass es möglich wäre, diese Problem irgendwie zu umgehen?

Nasenbaer
2003-05-01, 13:10:59
Da ich von der Mandelbrot-Geschichte absolut keine Ahnung habe wollte ich mal anfragen die Sache einen tieferen Sinn hat. :)

Mfg Nasenbaer

ZilD
2003-05-01, 14:26:03
ja klar hat es einen tieferen sinn

so fraktale findet man fast in allen bereichen wieder (ob medizin oder wetterkunde etc.)
da gibts soooooooooo viel was mit fraktalen zu tun hat.

wettervorhersage wird auch *fraktal* berechnet - fraktale wolkenbildung -

Nasenbaer
2003-05-01, 15:08:22
Originally posted by ZilD
ja klar hat es einen tieferen sinn

so fraktale findet man fast in allen bereichen wieder (ob medizin oder wetterkunde etc.)
da gibts soooooooooo viel was mit fraktalen zu tun hat.

wettervorhersage wird auch *fraktal* berechnet - fraktale wolkenbildung -

Aha, man lernt nie aus. :)

Mfg Nasenbaer

Gipsel
2003-05-05, 16:05:13
Originally posted by aths
Ich suche einen ultra genauen Mandelbrot-Renderer für Deep Zooms ins Apfelmännchen. 64 Bit FP reicht für meine Bedürfnisse nicht mehr aus :) Gibts da nicht was, was 128 Bit FP "emuliert"?

Nett wäre auch die Möglichkeit, Julia-Sets zu berechnen. Am besten wäre es, wenn sowohl inverse Mandelbrot- als auch Julia-Mengen möglich sind. (Invertierte Julia-Sets kann man herrlich verkleinern, doch auch hier versagt die 64-Bit-Genauigkeit immer dann, wenn es gerade interessant wird.)

Ich kenne und nutze bislang Fractint für DOS und Xaos für Windows.

Das kommt vielleicht ein wenig spät und ich will Euch ja nicht den Spaß am Projekt verderben, aber wenn Du fractint benutzt, hast Du doch schon alles. Das kann schon seit einigen Jahren "arbitrary precision". Auf der fractint-Homepage stehen ewig alte Bilder (mit 486er oder P1 gerechnet) die bis einige Tausend Bit Genauigkeit nutzen.

Gipsel

aths
2003-05-06, 13:47:42
Originally posted by Gipsel
Das kommt vielleicht ein wenig spät und ich will Euch ja nicht den Spaß am Projekt verderben, aber wenn Du fractint benutzt, hast Du doch schon alles. Das kann schon seit einigen Jahren "arbitrary precision". Auf der fractint-Homepage stehen ewig alte Bilder (mit 486er oder P1 gerechnet) die bis einige Tausend Bit Genauigkeit nutzen.

Gipsel Das wusste ich nicht. Inzwischen tut es zeckis Brotbäcker allerdings besser (Stichwort gammakorrektes FSAA :))

Lost Prophet
2003-06-19, 02:11:16
ich wollt nur mal so den thread wieder nach oben schieben...

hast du noch ideen bzw lust/zeit am Brotbäcker und am Archmark zu basteln oder sind die beide tot/ad acta??

cya axel

zeckensack
2003-06-19, 17:44:05
Original geschrieben von Purple_Stain
ich wollt nur mal so den thread wieder nach oben schieben...

hast du noch ideen bzw lust/zeit am Brotbäcker und am Archmark zu basteln oder sind die beide tot/ad acta??

cya axel Hier mal meine aktuellen Prioritäten:
nicht näher bezeichnete "Auftragsarbeit" (Deadline in ~2 Wochen)

Stiletto helfen, meinen Glide-Wrapper-Code zu verstehen, und Teile so weit als möglich in OpenGLide einzupflegen.
ArchMark: Dokumentation schreiben, final machen.
Eine vernünftige Basis legen für MathMonster ... Auswahl einer Frontend-Syntax (GLslang? Cg? MS PS2.x? Eigenes C-Derivat?), Adaption von Softwire für das x86-Test-Backend. Design der Profil-Eigneschaften. Jede Menge 'research'.

Bäcker: GUI-Client mit 'Todo-List', Mausgesten und schaltbarem Fullscreen-Modus, außerdem ohne OpenGL (=> automatisch Kyro-kompatibel)
Glide wrapper weiterentwicklen: GL_EXT_texture_rectangle für Blits, "TexMultiBase"-Support, weiteres 'research' für den Geometrietransfer (GL_ARB_vertex_buffer_object)

Bäcker/core: Support für Julia-Sets, Optimierung des Zooms, ähnlich der von der Pfeiltasten-Navigation benutzten 'move'-Funktion (Wiederverwerten 'alter' Samples). Redesign des Speichermanagements. Evtl adaptive huffman für die Kompression.

Die Liste ist nach Wichtigkeit sortiert. Sachen die auf einer Stufe stehen, haben für mich lose die gleiche Priorität, weiß nicht was ich zuerst machen will. Wobei der Bock-Faktor (bzw "Vorübergehend genervt"-Faktor) schonmal dazu führen kann, daß ich vorübergehend weiter runter in die Liste gehe, bevor ich oben fertig bin.

Der Bäcker ist nicht tot, er ist aber nahe dran. Archmark ist auch nicht wirklich tot, dabei ist er auch für mich wichtiger als der Bäcker. Schaumer mal ... :)

aths
2003-06-27, 00:22:37
Wunsch: Super-High-FSAA "Ultra" ™ mit 16x16 Subsamples. Jaaa, das geht _derbe_ auf den RAM, ich weiß.

Ergänzung: Per Tastenkombi hätte ich auch gerne die Möglichkeit, das Fenster auf ein paar Standard-Auflösungen zu resizen. (Mein Deutsch suckt.) Ungefähr so: Eine Taste "scrollt" vor, eine andere zurück, im Textfenster wird angezeigt welche Auflösung damit gewählt wurde, diese wird aber erst gesetzt wenn eine bestimmte Taste bestätigt wurde.

Zum FSAA noch einen Verblurrungsvorschlag :naughty: Damit sollen nicht die Kanten glatter, sondern das "Gegrissel" einheitlicher werden. Funktionsweise entweder à la Quincunx (Außen-Subpixel mehrfach verwenden) oder aber (Tschingderassa) echtes Gaussian Blur =)

zeckensack
2003-06-27, 07:23:42
aths,

du sollst doch nicht posten, wenn du Rotwein getrunken hast! :D
Die Ideen sind aber angekommen. Das erste und dickste Problem was dabei gelöst werden muß ist in etwa folgendes:
"Diese Tastatur hat nur 102 Tasten. Wir brauchen dringend Nachschub!"
=> GUI-Client mit Menüs

Dadurch erübrigt sich IMO die Auflösungsvorwahl und -bestätigung. Ein ausblendbares Textoverlay löst dann den Rest.
Das AA selbst ist kein großes Problem. Der Bröter ist sowieso von oben bis unten auf Skalierung geschrieben. Soll heißen: je mehr Samples, je mehr Iterationen, etc, desto effizienter (!=schneller) wird das ganze. Ich halte 65536 Samples pro Pixel zwar für totalen Wahnsinn, aber machbar ist's mit der momentanen Architektur ...
Den Blurfilter* kann man auch rein als Postpro lösen, völlig unabhängig vom AA (sollte IMO sinnvollerweise auch unabhängig steuerbar sein).

*willst du das wirklich? :krank:

aths
2003-06-27, 13:43:06
Original geschrieben von zeckensack
Ich halte 65536 Samples pro Pixel zwar für totalen Wahnsinn, aber machbar ist's mit der momentanen Architektur ...Ich wollte doch erst mal nur 16x16 = 256x AA...
Original geschrieben von zeckensack
Den Blurfilter* kann man auch rein als Postpro lösen, völlig unabhängig vom AA (sollte IMO sinnvollerweise auch unabhängig steuerbar sein).

*willst du das wirklich? :krank: Ja, für den genannten Zweck. Wenn ich das richtig überlegt habe, muss auf Subpixel-Ebene geblurrt werden, um den Matsch nicht überhand nehmen zu lassen.

Arkh
2003-06-28, 12:36:28
Der Thread is aber groß geworden, Respekt! :O

Hier noch einige Bilder von mir:

http://www.arkh.de/fractals/1.jpg

http://www.arkh.de/fractals/2.jpg

http://www.arkh.de/fractals/3.jpg

http://www.arkh.de/fractals/4.jpg

http://www.arkh.de/fractals/5.jpg

http://www.arkh.de/fractals/6.jpg

Endorphine
2003-06-28, 12:56:01
Mal ne blöde Frage, aber wie findet ihr alle diese schönen Stellen? Kann man das Prog irgendwie auf andere mathematische Funktionen konfigurieren, hab ich da was übersehen?

aths
2003-06-28, 13:26:43
Mit zeckis Programm ist das imo nicht gemacht.

Lost Prophet
2003-06-29, 21:20:39
Original geschrieben von aths
Mit zeckis Programm ist das imo nicht gemacht.

liege ich richtig, wenn ich sage dass das alles von der paletten-config abhängt? (weil die form is ja _im groben_ die selbe nur die farbgebung anders)


btw kennst du ein paletten-erstellungs-programm das vielleicht auch noch gratis ist? :naughty:

cya axel

DrEAmEr291
2003-07-28, 05:39:08
Hallo

aths hatte ja gesagt das er Julia Sets auch noch möchte.
Hab gerade was gefunden.

http://www.shatters.net/~claurel/qjulia/

@zeckensack
vieleicht kannste das QJulia mit Deinem Brot kombinieren ist doch auch OpenGL oder?,
sourcen sind auch erhältlich.

mfg DrEAmEr

aths
2003-08-26, 02:01:12
zecki, 2 Funktionen wären jetzt noch geil:

1. Speichern standardmäßig als PNG.

2. Speichern mit angehängter Nummer. Beginnend mit 0000. Bevor er den Save-Dialog aufruft, testet er, ob schon eine Yippi0000.png vorhanden ist, falls ja, testet er auf Yippi0001 usw., so dass er dann immer einen "richtigen" Dateinamenvorschlag macht.

zeckensack
2003-08-26, 11:33:50
Hmmm :grübel:

aths
2003-08-27, 19:52:15
Bitte :massa: bitte!

aths
2003-09-11, 23:08:38
zs?

Gast
2003-09-19, 18:10:47
Original geschrieben von MeLLe
Grundsätzlich - ja. Hmpf, Krümelkacker ;-)
Allerdings sieht es manchmal so aus, als ob bestimmte Anwendungen nur "nicht angezeigt" und nicht wirklich minimiert werden. Hab jetzt kein wirkliches Beispiel, sonst könntest Du das selbst mal nachvollziehen.
Aber egal - back to Mandelbrot. ;)
Alle Dialog-basierten Dinger wie Gerätemanager z.B. ...

aths
2004-03-14, 16:27:26
zs,

ich nutze den Backautomaten bis heute!!

Folgende Fiehtschers wären noch nett:

- Das Programm startet mit "lesser than normal"-Priorität. (Diese Priorität gibts erst ab Windows 2000. Wenn du jetzt zu faul bist, zu suchen, wie man die Windows-Version feststellt, bzw. die Priorität des eigenenen Prozesses ändert, könnte ich die API-Calls fix aus dem aTuner rauskramen.)

- Es gibt die Möglichkeit, die Größe des OpenGL-Fensters (und damit die Bildauflösung) auf verschiedene Standard-Formate zu setzen. Am liebsten wäre mir eine Konfigurierbarkeit, also z. B. 10 "Slots" mit vordefinierten und per Ini änderbaren Auflösungen.

BubbleBoy
2004-03-14, 16:41:39
..

zeckensack
2004-03-17, 16:56:57
Hallo, aths :wink:
Ich wollte nur bescheid geben, dass ich deine Wünsche gerade eben gelesen habe. Ich war ein paar Tage nur zum PM-Checken im Forum (Privatleben ahoi), und hatte den Thread noch nicht entdeckt.

aths
2004-03-17, 17:14:16
G00d.

Wenn ich's könnte, würde ich die gewünschten Features ja selbst reinprogrammieren.

Darkstar
2004-03-17, 18:00:30
Wenn wir gerade bei Programmverbesserungen sind: Beim Verschieben des Ausgabefensters wird sowohl die Berechnung unterbrochen als auch das Neuzeichnen unterlassen.

FeuerHoden
2004-03-20, 00:49:57
@Darkstar:

Das ist generell bei Windows so.

Darkstar
2004-03-21, 10:29:39
Original geschrieben von FeuerHoden
Das ist generell bei Windows so. Nein.

TheGood
2004-03-23, 16:38:01
Hm kann es sein dass WEB.de da einfach mal ein paar Motive von deinem Programm raus genommen hat?? ;)

http://cardsng03.web.de/Kartenauswahl/?si=22S8K.1b5NOZ.3TjMIU.z**&EKat=4&ENr=14&chk=0

zeckensack
2004-03-24, 00:37:23
Original geschrieben von TheGood
Hm kann es sein dass WEB.de da einfach mal ein paar Motive von deinem Programm raus genommen hat?? ;)

http://cardsng03.web.de/Kartenauswahl/?si=22S8K.1b5NOZ.3TjMIU.z**&EKat=4&ENr=14&chk=0 Nö ;)
Erstens ist mein Bröter beileibe nicht der erste und einzige Bröter auf der Welt.
Zweitens ist bei mir der Kern immer schwarz ;)

mrdigital
2004-03-24, 10:29:24
Zeckensack, dein Brotbackofen ist ein schönes Stück Software! Macht spass damit durch die Fraktale zu fliegen! Allerdings fände ich ein paar Optionen schön, toll wäre eine Art skripting Option, mit der man Flüge durch die Mandelbrotmenge rendern könnte, indem man Start und Zielkoordinaten, Zoomfaktoren und Wegpunkte angibt (mit nem grafischen Editor? ;)) Toll wäre auch ein "Rendercache", wenn man manuell sich durch die Mandelbrotmenge bewegt (links rechts und so), dass einmal besuchte Bereiche nicht neu berechnet werden müssen, dadurch könnte man sich flüssiger eine schöne Route durch die Ebene suchen.
Nochmal Daumen hoch, ein tolles Programm, Hut ab!!

Lost Prophet
2004-03-25, 08:51:05
Original geschrieben von mrdigital
Zeckensack, dein Brotbackofen ist ein schönes Stück Software! Macht spass damit durch die Fraktale zu fliegen! Allerdings fände ich ein paar Optionen schön, toll wäre eine Art skripting Option, mit der man Flüge durch die Mandelbrotmenge rendern könnte, indem man Start und Zielkoordinaten, Zoomfaktoren und Wegpunkte angibt (mit nem grafischen Editor? ;)) Toll wäre auch ein "Rendercache", wenn man manuell sich durch die Mandelbrotmenge bewegt (links rechts und so), dass einmal besuchte Bereiche nicht neu berechnet werden müssen, dadurch könnte man sich flüssiger eine schöne Route durch die Ebene suchen.
Nochmal Daumen hoch, ein tolles Programm, Hut ab!!

full ack

zecki, koenntest du ihm nicht nochmal neues leben einhauchen? auch wenn so ein fraktalflug etwas fuer ueber nacht zu berechnen waere....


vor allem jetzt da der archmark fertig ist...
=)

cya, axel

aths
2004-09-15, 00:29:53
http://www.aths.de/files/t00.png


Kein Antialiasing, DOS-Farbpalette.





http://www.aths.de/files/t01.png


64x Antialiasing, Rainbow-Farbpalette.





http://www.aths.de/files/t02.png


64x Antialiasing, GoodEGA-Farbpalette (aus Fractint)

Lost Prophet
2004-09-25, 19:26:06
Posted by Aths

http://www.aths.de/files/t01.png


64x Antialiasing, Rainbow-Farbpalette.



64x AA?
hab ich was verpasst?

und wie findest du solche stellen???
absolut fantastisch.
einmal die palette cyclen lassen müsst da auch extrem nett aussehen...

cya, axel

ps. endlich wieder ein kleines lebenszeichen dieses threads

zeckensack
2004-09-25, 21:44:35
64x AA?
hab ich was verpasst?8x8 Supersampling :)

SKYNET
2005-01-27, 04:10:39
So schön kann das Chaos sein (Ausschnitt aus der Mandelbrot-Menge)




chaos ? ich erkenne da nur komplexe, symetrisch perfekte strukturen.

perfektion !

aths
2005-01-27, 10:15:39
*aths hebt die Hände flehend zum Himmel.zecki, 2 Funktionen wären jetzt noch geil:

1. Speichern standardmäßig als PNG.

2. Speichern mit angehängter Nummer. Beginnend mit 0000. Bevor er den Save-Dialog aufruft, testet er, ob schon eine Yippi0000.png vorhanden ist, falls ja, testet er auf Yippi0001 usw., so dass er dann immer einen "richtigen" Dateinamenvorschlag macht.zs,

ich nutze den Backautomaten bis heute!!

Folgende Fiehtschers wären noch nett:

- Das Programm startet mit "lesser than normal"-Priorität. (Diese Priorität gibts erst ab Windows 2000. Wenn du jetzt zu faul bist, zu suchen, wie man die Windows-Version feststellt, bzw. die Priorität des eigenenen Prozesses ändert, könnte ich die API-Calls fix aus dem aTuner rauskramen.)

- Es gibt die Möglichkeit, die Größe des OpenGL-Fensters (und damit die Bildauflösung) auf verschiedene Standard-Formate zu setzen. Am liebsten wäre mir eine Konfigurierbarkeit, also z. B. 10 "Slots" mit vordefinierten und per Ini änderbaren Auflösungen.

ProZe
2005-09-06, 12:11:37
kurze Frage eines begeisterten Brotback-Fans: Wird an dem Programm noch weitergearbeitet?

Es wär schön wenn dem so wäre, da dieses nette kleine Programm schon einen festen Platz auf meinem
Desktop hat und ich es schade finden würde wenn die Entwicklung eingestellt wird.

mfg ProZe

aths
2005-09-06, 21:21:12
Huhu zeckensack!! Auch ich nutze dein Programm immer noch. Warum? Weil es das beste ist. Aber es könnte noch etwas besser werden :)

Apophis
2005-11-20, 23:26:54
Auch von mir noch ein großes Lob für den Mandelbrot Rechner, tolles Tool :D
Insbesondere da es aus ner "Schauen wir mal was da rauskommt"-Laune entstanden ist; hat Spaß gemacht auch den Thread durchzulesen.

Trotzdem, wenn du noch ein wenig weitermachen würdest wäre es echt schön, insbesondere die von aths vorgeschlagenen Auflösungs-Standards sind ne gute Idee. Natürlich auch der "Video-Flug", aber muss ja nich ;)

@aths: Bring mal bitte noch mehr von den Bildern wie das "t01.png", sind toll anzusehen.

Gast
2005-11-21, 01:22:06
wow das 3dcenter forum begeistert mich immer wieder! Nicht nur schwätzen sondern auch tun. Klasse. Leider kann ich euch überhaupt nicht helfen da ich kein bischen Programmieren kann (oder soll ich das Programm in Java Script schreiben? ).

Als einzigen hilfe kann ich euch anbieten virtuellen kaffe zu kochen und brötchen zu holen ;-).

Ridcully *kaffeundbrötchenholengeht*

:) schmunzel :)

...äh welches Jahr haben wir?...

Gast
2005-11-21, 17:38:08
Servus!

Leider funzt der Link zum Download nicht mehr. Wo kann man das Prog noch runterladen?

Black-Scorpion
2005-11-21, 17:52:03
Servus!

Leider funzt der Link zum Download nicht mehr. Wo kann man das Prog noch runterladen?
Meinst du den Brotbäcker von Zeckensack?

Wenn ja, findest du den Link hier.
http://www.zeckensack.de/mandel/index.html

Coda
2005-11-21, 17:52:14
http://www.zeckensack.de/mandel/index.html

Gast
2005-11-21, 17:54:39
Genau das, danke!

Master of Puppetz
2005-11-21, 20:43:28
Hier mal mein erstes Brötchen :D

http://img410.imageshack.us/img410/2451/17rf1.jpg
Ohne AA, Rainbow Color

Aber wenn man da mal reinzoomt wirds echt hart, von der Geschwindigkeit her :eek:

Master of Puppetz
2005-11-21, 20:58:10
Hat jemand einen Tipp, wie ich ein cycling-Gif erstellen kann?
Ich hab hier eine Stelle, davon kann man ganz bekloppt werden :biggrin:

Apophis
2005-11-21, 23:04:58
Hier mal ein Brot von mir:

http://www.mathematik.hu-berlin.de/~irre/files/brot6.jpg

Master of Puppetz
2005-12-11, 21:53:58
Wieviel Arbeitsspeicher nutzt bei euch denn das Programm in der Regel?
Bei mir sind es gerade 450MB :D bei 64x AA.

Mal 2 Brote:

http://img304.imageshack.us/img304/221/2b5ta.jpg

http://img304.imageshack.us/img304/2899/3b9fl.jpg

Gast
2006-04-22, 18:37:21
wird daran eigentlich noch gearbeitet?
und eine 64bit version würde da ja auch sinnvoll oder ?

penna
2006-08-21, 13:38:54
Wie wärs das ganze einfach Opensource zu machen?

DR.DEATH
2006-08-21, 14:08:20
Wie wärs das ganze einfach Opensource zu machen?

Wie waers wenn man sich vorher einfach erkundigt und mitbekommt, dass es unter der LGPL steht?

Mastermind
2006-08-21, 19:16:14
Was ist mit Zeckensack?

Ist er etwa nicht mehr hier dabei??? :frown: :( :frown: :( :frown: :( :frown:

Ganon
2006-08-21, 19:30:35
Im Forum ist er noch, aber warum sollte er ewig daran weiter programmieren?

Mastermind
2006-08-21, 19:41:30
Im Forum ist er noch, aber warum sollte er ewig daran weiter programmieren?
Muss er natürlich nicht! Aber, dass er einfach nicht mehr geantwortet hat hat mich stutzig gemacht! Ne Zeitlang hat er alles umgesetzt und dann plötzlich abgebrochen. Hätte ja wenigstens sowas schreiben können, wie er habe keine Lust mehr. ;)

ravage
2006-08-21, 19:54:06
Wenn ich es richtig in erinnerung habe, ist er beschäftigt mit Geld verdienen :)

Gast
2007-01-04, 07:41:12
AFIR ist er kein Student mehr.

greg
2007-01-04, 18:02:12
boah echt hammer das teil :eek:
gibts die doku eigentlich auch in Deutsch?

und beim compilieren sagt er mir

Fehler 1 error PRJ0019: Ein Tool hat einen Fehlercode aus folgender Quelle zurückgegeben: "Assembling l:\Temp\brot\src\x86_timer.asm" brot_core
Fehler 2 fatal error C1083: Datei (Include) kann nicht geöffnet werden: "gl/glut.h": No such file or directory l:\temp\brot\src\brot2.cpp 34

Ganon
2007-01-04, 18:29:03
Dir fehlt die GLUT-Library samt Header.

greg
2007-01-04, 20:54:33
jo den hab ich jetzt, nun hab ich nur noch folgenden fehler:

Fehler 1 error PRJ0019: Ein Tool hat einen Fehlercode aus folgender Quelle zurückgegeben: "Assembling l:\Temp\brot\src\x86_timer.asm" brot_core


ausserdem meint er er die huff.dsp sei nicht verfügbar?

übrigens ich compiliere mit VS 2005.

Coda
2007-01-04, 23:27:19
Eigentlich sollte das alles in der Readme stehen, aber du brauchst sicher noch irgend nen Assembler (NASM o.ä.).

aths
2007-01-31, 20:35:10
Julia-Teppiche:

http://www.dudv.de/files/3dcf/mbr/image_7.png (www.dudv.de/files/3dcf/mbr/image_8.png)

http://www.dudv.de/files/3dcf/mbr/image_10.png (www.dudv.de/files/3dcf/mbr/image_9.png)

Mastermind
2007-01-31, 20:42:41
Hehe, sieht wie Zellteilung aus. :smile:

Gast
2007-02-01, 10:09:16
könnte einer nochmal die optimierte (SSE/SSE2) brotcore.dll hochladen
danke

zeckensack
2007-02-12, 17:36:17
jo den hab ich jetzt, nun hab ich nur noch folgenden fehler:


ausserdem meint er er die huff.dsp sei nicht verfügbar?

übrigens ich compiliere mit VS 2005.Ja ääääh sorry. War eine Weile nicht ganz anwesend.
Ich verstehe nicht was mir die Fehlermeldung mitteilen will, ist da etwas abgeschnitten?

Grundsätzlich gehe ich mal davon aus dass die Einbindung von NASM (http://sourceforge.net/projects/nasm) in den Build-Prozess nicht geklappt hat wie es soll, entweder weil du's noch nicht installiert hast (IIRC muss das nach C:\NASM entpackt werden), oder weil VS2005 die Build-Kommandos erst gar nicht richtig importiert hat.

Das ist mal so ins blaue geraten. Ansonsten kann ich für VS2005 keinen Support machen.

huff.dsp ist unkritisch. Ich weiß gar nicht warum das in der dsw-Datei überhaupt noch drinsteht, das war nur so ein Experimentierdingsbums um die Kodierung vor der Integration mal durchzutesten. Brauchst du nicht. Du kannst es aus dem Workspace entfernen.

zeckensack
2007-02-12, 17:37:58
könnte einer nochmal die optimierte (SSE/SSE2) brotcore.dll hochladen
dankeWar die ganze Zeit verfügbar.
http://zeckensack.de/mandel/brot_core_beta.zip

aths
2007-02-13, 07:24:19
Noch ein Julia-Teppich:

http://www.dudv.de/files/3dcf/mbr/image_45.png (www.dudv.de/files/3dcf/mbr/image_46.png)


Und ein besonders schönes Julia-Set, einzeln:

http://www.dudv.de/files/3dcf/mbr/image_28_kl.png (www.dudv.de/files/3dcf/mbr/image_28.png)

(Die in den Bildern eingeblendete URL funktioniert nicht mehr.)

aths
2007-02-13, 15:42:25
War die ganze Zeit verfügbar.
http://zeckensack.de/mandel/brot_core_beta.zip
Ganz ungefähr: Wie viel mal schneller ist die Berechnung im Vergleich zur Standard-DLL?

Mastermind
2007-02-13, 15:46:56
War eine Weile nicht ganz anwesend.
Besteht die Möglichkeit, dass Du wieder das Brot weiterentwickelst???
:smile: :smile: :smile:

zeckensack
2007-02-14, 02:11:02
Besteht die Möglichkeit, dass Du wieder das Brot weiterentwickelst???
:smile: :smile: :smile:Die Möglichkeit besteht.
Ich möchte im März gerne den weltweit voll-konkret-krassesten Mandelbrot-Renderer für die PS3 raushauen, um mal wieder mindestens 90 Sekunden Weltruhm zu erhaschen. Es ist anzunehmen dass da auch eine PC-Version mit Multithreading und einigen bitter notwendigen GUI-Features (Thumbnail-Leiste für die History, "todo"-Liste für Über-Nacht-Rechnen-Lasser) hinten runterfallen wird. Wie üblich sei darauf hingewiesen dass ich ganz groß darin bin Versprechen abzugeben und sie später nicht zu halten. Also erwartet lieber gar nichts und seid dann positiv überrascht für den Fall dass doch etwas kommen sollte.
:)

aths
2007-02-14, 12:29:45
Ganz ungefähr: Wie viel mal schneller ist die Berechnung im Vergleich zur Standard-DLL?


Und dann hätte ich noch eine Wunsch-, äh, Anregungsliste:

• Ultra-phat-AA: 16×16.

• Downfiltering auf Wunsch mit einem Anteil Gaussian Blur. (Nicht einfach das fertige Bild blurren, nur einge Randsubpixel in die Nachbarpixel fließen lassen. Das kann, sinnvoll eingesetzt, die optische Qualität erhöhen.)

• Die Möglichkeit, in ein File zu rendern. Um nicht Trilliarden Gigabyte Hauptspeicher zu verballern, kann das Bild ruhig in Tiles aufgeteilt werden, die separat berechnet werden. (2×2, 4×4, …) Am Ende werden alle Tiles in ein einzelnes Bild gefügt. (Oder zur Not muss man das von Hand machen und er schreibt nur Tile für Tile raus.)

Tilerendering in Files ermöglicht, Bilder in Postergröße bei ultraphatten AA-Einstellungen zu berechnen.

• Die Möglichkeit, das Programm so abzubrechen dass er beim nächsten Start dort fortführt, wo er zuletzt aufgehört hat – ohne dass man händisch die History speichern muss.

• Und jetzt der widerlichste aller Wünsche: Neben xF noch ein Format zu unterstützen, was "nur" FP128 oder so bereitstellt (als Speed-Up.)

greg
2007-02-14, 19:23:55
Danke zeckensack das du doch noch geantwortet hast.
Aber eins ist mir immer noch nicht klar, wieso fällt der Englische Teil der Readme größer aus als der Deutsche?

wulfman
2009-11-20, 15:01:31
und, macht ihr jetzt ein upgrade auf 3d?

http://www.newscientist.com/gallery/mandelbrot-fractals-in-3d

mfg
wulfman

robobimbo
2009-11-20, 21:08:09
sieht echt stark aus

http://www.skytopia.com/project/fractal/mandelbulb.html

Lu-Tze
2009-11-21, 02:40:02
Hey cool! Ich hab gerade den Menger-Sponge und das 2D Mandelbrot auf der GPU implementiert (läuft locker in Realtime, bei schnellen GPUs auch mit AA), und will später auch die Mandelbulb machen.

Davor will ich aber noch das hier machen:
http://www.youtube.com/watch?v=Wg4yAw1ItWo

Weiß jemand von Euch, wie man möglichst effizient eine beliebige Präzision (so mindestens 320 bits) mit mehreren Singles emuliert? Libraries kommen halt nicht in Frage, weil es mit Shader Model 3.0 funktionieren muss, daher bin ich eher an einer Beschreibung des reinen Algorithmusses interessiert, oder eventuell sehr einfachem C-Code.

Gast
2009-11-21, 18:21:01
SM 3 hat doch noch nicht einmal garantierte Single-Precision im Pixel-Shader. Ohne bitweise Operationen, also mindestens SM 4, kannst du das vergessen.

Gast
2009-12-24, 10:36:05
Ich suche einen ultra genauen Mandelbrot-Renderer für Deep Zooms ins Apfelmännchen. 64 Bit FP reicht für meine Bedürfnisse nicht mehr aus :) Gibts da nicht was, was 128 Bit FP "emuliert"?
...
Ich kenne und nutze bislang Fractint für DOS und Xaos für Windows.
Humm, ich hab die 30+ Seiten nur grob ueberflogen, drum moege man mir
verzeihn, falls das schon irgendwo beantwortet wurde.

Fractint/WinFract benutzen fuer Zoomstufen, fuer die die FP-Genauigkeit
nicht mehr ausreicht, 'arbitrary precision', 1500+ Dezimalstellen durch
Langzahlarithmetik.
Was reicht denn an dieser Genauigkeit nicht? Was sollte eine '128bit FP
Emulation' anders machen?

pest
2009-12-24, 10:59:35
Weiß jemand von Euch, wie man möglichst effizient eine beliebige Präzision (so mindestens 320 bits) mit mehreren Singles emuliert?

paar Slides zum Thema (http://www.fh-wedel.de/fileadmin/mitarbeiter/iw/Lehrveranstaltungen/2007WS/SeminarCA/Vortrag2AddMultFitzner.pdf)

aths
2009-12-24, 12:09:20
Humm, ich hab die 30+ Seiten nur grob ueberflogen, drum moege man mir
verzeihn, falls das schon irgendwo beantwortet wurde.

Fractint/WinFract benutzen fuer Zoomstufen, fuer die die FP-Genauigkeit
nicht mehr ausreicht, 'arbitrary precision', 1500+ Dezimalstellen durch
Langzahlarithmetik.
Was reicht denn an dieser Genauigkeit nicht? Was sollte eine '128bit FP
Emulation' anders machen?Fractint arbeitet unter DOS mit obskuren VGA-Modi, Winfract nutzt nur 32-Bit-Genauigkeit.

Selbst Zeckensacks 224-Bit-Genauigkeit übrigens stößt an seine Grenzen. Ich komme locker in Gebiete, wo die Koordinaten pro Pixel nicht mehr aufgelöst werden.

SavageX
2009-12-24, 20:50:08
Ah, nett, dass ich heute diesen Thread gefunden habe... heute mal in gut zwei Stunden das hier runtergerotzt:

http://img196.imageshack.us/img196/6816/bildschirmfotode.th.png (http://img196.imageshack.us/i/bildschirmfotode.png/)

Ist in Java geschrieben, nutzt http://www.apfloat.org/ - und ist natürlich langsam (rechne Pixel für Pixel, habe auch keine Ahnung, wie schnell Apfloat ist), aber zumindest multi-threaded ;)

Die Anzahl der Nachkommastellen lässt sich einstellen. Ist alles noch sehr sehr roh - es fehlt ein Mauszoom und Supersampling etc. etc.

Sourcen: http://omploader.org/iMzJvYQ

Binary: http://omploader.org/iMzJvYg


Und ja, ist wirklich mit der heißen Nadel gestrickt. Und ja, unsauber (ich sollte wirklich SwingWorker benutzen, ich sollte das Bild anders anzeigen, ich sollte Benutzereingaben prüfen...). Und ja, man kann da aufräumen. Und ja, ...

aths
2009-12-25, 12:02:44
Das kann ich mir erst zuhause auf meinem Desktop ansehen, etwa in der zweiten Januarwoche.

SavageX
2009-12-25, 12:37:32
Das kann ich mir erst zuhause auf meinem Desktop ansehen, etwa in der zweiten Januarwoche.

Gar kein Problem, das gibt mir Zeit zu basteln ;)

aths
2009-12-25, 16:14:32
Möglichkeiten, Berechnungen abzukürzen, gibt es viele. Die effizienteste ist Contour Tracing, aber einfacher zu realisieren ist folgende Methode:

- Man malt nur den Rand des Rechtecks.
- Haben alle Pixel am Rand dieselbe Iterationsstufe (vulgo dieselbe Farbe) wird dieser sofort ausgefüllt.
- Ansonsten wird das Rechteck in zwei Unterrechtecke zerlegt, wobei also eine halbierende gezeichnet wird, dass die Form der Unterrechtecke möglichst quadratisch bleibt.

SavageX
2009-12-25, 17:55:40
Möglichkeiten, Berechnungen abzukürzen, gibt es viele. Die effizienteste ist Contour Tracing, aber einfacher zu realisieren ist folgende Methode:

- Man malt nur den Rand des Rechtecks.
- Haben alle Pixel am Rand dieselbe Iterationsstufe (vulgo dieselbe Farbe) wird dieser sofort ausgefüllt.
- Ansonsten wird das Rechteck in zwei Unterrechtecke zerlegt, wobei also eine halbierende gezeichnet wird, dass die Form der Unterrechtecke möglichst quadratisch bleibt.

Ich denke ich sehe, wie das mathematisch funktioniert: Die Mandelbrot-Menge ist verbunden, d.h. von jedem "Apfelmännchen" gibt es eine (und sei sie noch so "dünn") Verbindung zu allen anderen "Apfelmännchen". D.h. wenn sich in dem Rechteck was befindet, dann muss es einen "Faden" geben, der den Rand "durchbricht" und eine andere Iterationstiefe besitzt als die anderen Werte am Rand. Bin ich da ungefähr richtig?


Nun samplen wir aber. Ist es nicht möglich, dass wir an einen eventuellen "dünnen Faden" vorbeisamplen? Angenommen die Iterationsschranke ist (wollen wir mal griffige Zahlen nehmen) 100, und jeder Pixel am Rand sprint bei Iteration 99 aus der Menge. Wer garantiert, dass "zwischen den Pixeln" nicht irgendwo etwas entlangläuft, was nach 100 Iterationen noch nicht rausgehopst ist?


Anderer Fall: Angenommen wir zommen mal gaaaaanz weit raus, so dass das "Urapfelmännchen" gaaaaaaaanz klein ist (nur ein paar Pixel groß) und betrachten mal den Rand: Dort springen alle Punkte schon nach einer Iteration aus, trotzdem befinden sich im Inneren des Rechtecks Elemente der Mandelbrot-Menge. Dann würde die Optimierung trotzdem das ganze Rechteck füllen.


Verstehe ich da was nicht richtig oder picke ich mir da gerade unwichtige Randfälle raus?

aths
2009-12-25, 18:24:24
Ich denke ich sehe, wie das mathematisch funktioniert: Die Mandelbrot-Menge ist verbunden, d.h. von jedem "Apfelmännchen" gibt es eine (und sei sie noch so "dünn") Verbindung zu allen anderen "Apfelmännchen". D.h. wenn sich in dem Rechteck was befindet, dann muss es einen "Faden" geben, der den Rand "durchbricht" und eine andere Iterationstiefe besitzt als die anderen Werte am Rand. Bin ich da ungefähr richtig?


Nun samplen wir aber. Ist es nicht möglich, dass wir an einen eventuellen "dünnen Faden" vorbeisamplen? Angenommen die Iterationsschranke ist (wollen wir mal griffige Zahlen nehmen) 100, und jeder Pixel am Rand sprint bei Iteration 99 aus der Menge. Wer garantiert, dass "zwischen den Pixeln" nicht irgendwo etwas entlangläuft, was nach 100 Iterationen noch nicht rausgehopst ist?Die Menge ist für jeden Iterationsschritt verbunden, geht also ein mal rum. Auch das Innere ist verbunden.

Es kann vorkommen, dass man mit der Block-Methode einen Stachel übersieht, allerdings übersieht man den dann an der Stelle auch ohne Block-Methode. Man hätte dann maximal durch Glück innen drin noch mal was.

Nutzt man Antialiasing (mehrere Samples pro Pixel) reduziert man das Risiko weiter. Antialiasing lässt sich einerseits so gestalten dass immer nur die Ausgabe runtergerechnet wird und man zur Berechnung alles "gesupersampelt" beibehält.

Man kann auch pro Pixel mehrere Samples berechnen, es dann direkt mischen und dann nur die Gesamtfarbe betrachtet. Das birgt dann schon wieder Gefahren, die allerdings mit genügend hohem AA-Level unwesentlich sind. Die Rechen-Effizienz sinkt, dafür verballert man nicht für jeden Bild-Refresh so viel Speicherbandbreite.

Eine dritte AA-Methode ist, erst mal nur pro Pixel 1 Sample zu berechnen und wenn in der 8-er Umgebung irgendeine andere Farbe vorkommt, dann für das Pixel noch mal Subsamples zu nehmen. Das hatte ich mal implementiert, ist aber weder performant noch schön - man übersieht zu viel.

Lange Rede, kurzer Sinn: Pro Pixel mehrere Samples berechnen, aber dann immer die Gesamtfarbe (beim Vergleich des Rechteckrandes) zu betrachten ist sowohl recht einfach in der Implementierung als auch bei hohen AA-Leveln relativ ressourcenschonend (hatte ich auch mal implementiert.) Zweiter Vorteil: Man kann recht einfach Sample-Kernel implementieren die etwas größer als das eigentliche Pixel sind. Dritter Vorteil: Man kann mit einer Art Sparse-Grid-AA-Muster á la Grafikkarten-AA auch die Vorteile von Nicht-Ordered-Grid-Mustern nutzen.
Anderer Fall: Angenommen wir zommen mal gaaaaanz weit raus, so dass das "Urapfelmännchen" gaaaaaaaanz klein ist (nur ein paar Pixel groß) und betrachten mal den Rand: Dort springen alle Punkte schon nach einer Iteration aus, trotzdem befinden sich im Inneren des Rechtecks Elemente der Mandelbrot-Menge. Dann würde die Optimierung trotzdem das ganze Rechteck füllen.

Verstehe ich da was nicht richtig oder picke ich mir da gerade unwichtige Randfälle raus?Entweder erlaubt man kein Rauszoomen aus dem +-2,0-Bereich oder man zeichnet immer eine Rechteck-Halbierende so dass sie zum Beispiel durch (0; 0) geht.

Ein Hinweis noch beim Antialiasing: Die Farben sollten nicht linear gemischt werden. Einigermaßen korrekt ist es, die Farbe 0..255 auf 0,0-1,0 umzuskalieren und dann ^2,2 zu rechnen. Dann wird der arithmetische Mittelwert gebildet, und man rechnet ^(1/2,2) und bildet schlussendlich mittels Multiplikation und Stellenabschneiden ein Integer von 0..255.

Uuuund noch eine Idee: Mittels 2D-Transformation kann man auch rotierte Zoomfenster realisieren. So kann man ein Stückchen schrägen Mandelbrot-Inhalt in ein rechteckiges Fenster bringen. Die Transformation muss auf die Koordinaten ausgeführt werden, so dass bei der Berechnung ganz normal im Pixelraster gerechnet wird. Das wäre aber nicht so wichtig wie Antialiasing und halbwegs sRGB-korrekte Farbmischung. (ALLE Mandelbot-Renderer mit Antialiasing - außer der von Zeckensack - machen die Farbmischung falsch. Folge: "Wuselinhalt" wird zu dunkel dargestellt.)

Gast
2009-12-26, 05:19:53
Lutze:
Tu dir das mit Shadermodell 3 nicht an! besser opencl, direct compute oder zur not cuda.

SavageX
2009-12-26, 13:58:03
hmmm... Multisampling ist doch ganz hübsch...

http://img42.imageshack.us/img42/1053/bildschirmfotomandelbac.th.png (http://img42.imageshack.us/i/bildschirmfotomandelbac.png/)

SavageX
2009-12-26, 16:38:00
Neue Version, mit Multisampling und blockbasiertem Multithreading und der "Wenn Rand uniform, dann fülle"-Optimierung.

Macht Spass, dem Teil bei der Arbeit zuzuschauen ;-)

Sourcen: http://omploader.org/iMzMzeQ
Binary: http://omploader.org/iMzMzeA

aths
2009-12-26, 18:15:10
Ich installiere morgen wohl mal Java auf meinem Laptop, um mir das anzusehen.

Meinen ultrapeinlichen Renderer mit AA der noch funktioniert (eine andere Version, mit viel mehr Features, geht leider nicht mehr) kann ich ja auch mal hochladen, wenn ich wieder an meinem Haupt-PC bin.

SavageX
2009-12-27, 13:06:32
Probier dann besser die folgende Version - da funktioniert der "Stop!"-Button wenigstens "sofort", der Renderer ist noch ein bisschen schneller und die benötigte Zeit wird eingeblendet:

Sourcen: http://omploader.org/iMzNidg
Binary: http://omploader.org/iMzNidQ

aths
2009-12-28, 15:23:26
Wie setzt du die Floats ein? Rechnest du immer mit maximaler Genauigkeit?

SavageX
2009-12-28, 17:23:23
Wie setzt du die Floats ein? Rechnest du immer mit maximaler Genauigkeit?

Das Eingabefeld "Precision" gibt die Anzahl der Dezimalstellen an, mit denen Apfloat rechnet. Die Voreinstellung ist mit fünfzig Stellen schon "ziemlich" genau und schon sehr langsam.

Die folgende Version erlaubt optional die Nutzung von double-Genauigkeit, das ist mal eben den Faktor ~100 schneller:

Sourcen: http://omploader.org/iMzNwOA
Binary: http://omploader.org/iMzNwNw

aths
2009-12-28, 17:38:12
Ich empfehle einen Modus für Auto-Genauigkeit á la Zeckensack:

- Das Programm berechnet für alle Pixel am Bildrand die Koordinaten, bei aktivem AA für alle Subpixel die Koordinaten
- Fallen zwei Koordinaten auf den gleichen Wert, reicht die Genauigkeit nicht so dass eine höhere genutzt werden muss
- Um grenzwertige Genauigkeiten zu umgehen, kann man den Rand für die Koordinatenbestimmung, die rein für die Genauigkeit berechnet wird, noch feiner auflösen, so dass zum Beispiel 1/10 Genauigkeit pro Subpixel garantiert ist.

SavageX
2009-12-28, 17:58:11
Hmm... stimmt, das wäre wohl sehr sehr sinning.

aths
2009-12-30, 13:56:59
Das dürfte relativ einfach zu realiseren sein, erst mal als Trockenübung die Koordinaten für ein Bild aufzulösen (also die Koordinaten der Pixel des Bildrandes zu berechnen) indem man einfach das Bild als höher aufgelöst betrachtet, zum Beispiel Faktor Antialiasing mal Faktor 10 (für eine gewisse Zusatzgenauigkeit.) Es ginge auch analytisch, indem man den nachsieht bei welchem Exponenten die Floatdarstellung ist und vergleicht, ob die Breite der Mantisse ausreicht. Aber schnell so lange pro Neubild die Genauigkeiten durchnudeln bis die kleinste passende Genauigkeit gefunden wurde, dürfte leichter zu programmieren sein und dürfte den Start der Bildberechnung nicht ernsthaft verzögern.

Als Option ist auch nett, andere Genauigkeiten zu erzwingen. Einfach um zu sehen ob es doch Unterschiede gibt, oder als Benchmark.

Avalox
2009-12-30, 14:08:09
Hm. Weiss nicht ob es dieses hier schon als Thema gab.
Spon hatte einen interessanten Link.

Es geht um die 3D Darstellung der Mandelbrot Fraktale. Interessant und sehr, sehr schön anzusehen.


http://www.skytopia.com/project/fractal/mandelbrot.html

Hier auch gleich noch ein Programm für Mac, Linux und Windows.

http://frictionalgames.blogspot.com/2009/11/fractional-fun.html

Indiana
2009-12-30, 21:49:21
Hm. Weiss nicht ob es dieses hier schon als Thema gab.
Spon hatte einen interessanten Link.

Es geht um die 3D Darstellung der Mandelbrot Fraktale. Interessant und sehr, sehr schön anzusehen.


http://www.skytopia.com/project/fractal/mandelbrot.html

Hier auch gleich noch ein Programm für Mac, Linux und Windows.

http://frictionalgames.blogspot.com/2009/11/fractional-fun.html


Wobei die Mac-Version hier sofort crasht. Vielleicht liegt's am Schneeleoparden, vielleicht am i5...

OC_Burner
2010-01-01, 13:24:27
Hier auch gleich noch ein Programm für Mac, Linux und Windows.

http://frictionalgames.blogspot.com/2009/11/fractional-fun.html

Das Thema gab es hier zwar schonmal, aber ohne Link zu einem passenden Programm. Kannte ich bisher noch nicht, richtig toll der MathFuncRenderer.

Wenn man mit dem Programm hohe Auflösungen schiessen möchte muss das LAA-Flag gesetzt werden. So läßt sich z.B. ohne Problem die Auflösung von 5120x2880 für Screenshots nutzen.

Sogar 5500x5500 sind möglich. Leider ist diese Auflösung unendlich langsam, selbst mit ausgeschaltetem SSAO.

Gibt es eigentlich eine Möglichkeit AA oder SSAA zu forcen?

G!ZMo
2010-01-01, 21:50:27
Wobei die Mac-Version hier sofort crasht. Vielleicht liegt's am Schneeleoparden, vielleicht am i5...
Crasht bei mir aufm MacBook mit 10.6.2 auch sofort. :(

OC_Burner
2010-01-02, 01:00:57
Hier gibt es einen weiteren 3D-Renderer: mandelbulb win32.zip (von cbuchner1) (http://forums.nvidia.com/index.php?showtopic=150985&st=20)

Hier zwei Screens vom Programm mandelbulb win32 (Normal und Stereo-Red-Cyan):

http://www.abload.de/thumb/screen_mandelbulb_win32mfg.jpg (http://www.abload.de/image.php?img=screen_mandelbulb_win32mfg.jpg) http://www.abload.de/thumb/screen_mandelbulb_win33vn8.jpg (http://www.abload.de/image.php?img=screen_mandelbulb_win33vn8.jpg)

Und hier noch ein paar Bilder vom Programm MathFuncRenderWin das Avalox verlinkt hat:

http://www.abload.de/thumb/screen_mathfuncrenderewmks.jpg (http://www.abload.de/image.php?img=screen_mathfuncrenderewmks.jpg) http://www.abload.de/thumb/screen_mathfuncrendereqwe6.jpg (http://www.abload.de/image.php?img=screen_mathfuncrendereqwe6.jpg)

http://www.abload.de/thumb/screen_mathfuncrenderegjgj.jpg (http://www.abload.de/image.php?img=screen_mathfuncrenderegjgj.jpg)

http://www.abload.de/thumb/screen_mathfuncrenderesktb.jpg (http://www.abload.de/image.php?img=screen_mathfuncrenderesktb.jpg) http://www.abload.de/thumb/screen_mathfuncrenderemjr7.jpg (http://www.abload.de/image.php?img=screen_mathfuncrenderemjr7.jpg)

ChriRi
2010-11-25, 18:00:45
Habe vor ein paar Tagen auf der Suche nach einer Mandelbrot-Source, die ich für eigene Zwecke weiterverwenden kann, diesen Thread hier gefunden. Binary läuft bei mir schon und quält sich inzwischen bei einem Radius irgendwas-E-39 und über 100 000 Iterationen.
Da fällt schon auf, daß einige Strukturen im Chaos der hohen Iterationen untergehen.

Tut sich hier eigentlich noch was, oder ist das brot tot ?
Ich würde ja gerne selbst ein wenig Hand anlegen, bekomms aber im Visual Studio 2008 nicht zum laufen. Habe noch keine Erfahrung mit C++, kanns aber lesen (programmiere seit 25 Jahren (auch schon Apfelmännchen (erst Pocket-Computer, dann GW-Basic), seit 20 objektorientiert), also prinzipiell kein Problem, aber kann mir wer sagen, in welcher Umgebung ich das am einfachsten zum Laufen bringe ?
(evtl. Eclipse, wenns sein muß, mach ich mir auch eine Linux-VM ?)

Hätte da auch noch ein paar Anregungen:
*) Wegen dem Chaos und der verlorenen Struktur:
Umrechnungsfaktor von Iteration zu Palettenindex, also zb. Palettenindex = (Iteration/4) mod 256.
(Faktor eventuell mit zwei Tasten mal/durch 2?)
oder überhaupt verschiedene Berechnungsmodi (zb. PalettenIndex = Log(Iteration), Wurzel(Iteration).
das führt dann zum nächsten Wunsch:
*) Um mit den verschiedenen Palettenberechnungen spielen zu können, müßten die Iterationen abgespeichert werden und nicht nur die Palettenwerte (oder ist das eh schon so ? Ich habe noch nicht den ganzen Code durchgekaut)
*) Beim Historyabspeichern eine Zusatzoption, alle Bilder auch als Grafik-Serie mit Prefix und laufender Nummer abzuspeichern
(animated gif ist sicher zuviel verlangt, da muß man halt mal einen Konvert-Batch drüber laufen lassen und selbst mit irgendeinem Tool zum animGif zusammenstoppeln - aber History-To-Serie wäre fein (hab grad 120 Bilder aus meiner ersten Zoomfahrt einzeln abgespeichert)
*) History II:
beim History-Speichern Parameter zu jedem Bild in ein lesbares Textfile (bitte die ganzen Extremfloats)
*) Beim Bild-Speichern zusätzlich ein gleichnamiges Textfile mit den Parametern anlegen
*) Batch-Modus: Daten für Bilder aus einem Textfile einlesen
*) Auf dem Batch-Modus aufbauend: Textfile für Batch generieren für einen fein abgestuften Flug durch die History (zb. habe ich jetzt über 100mal einfach mit Mausklick hineingezoomt, und statt einem Schritt für Radius/2 wären für ein Filmchen mehrere Schritte schöner (zb. 10 mal durch zehnte-Wurzel-aus-zwei) und jedes Bild gleich speichern. Da sowas dann schon mal länger zum Berechnen dauern kann, wäre hier wohl eine Funktion zum Abbrechen/Wiederaufnehmen sinnvoll.

Aber wie gesagt, wenn ich die Sourcen selbst zum Laufen bekomme, könnte ich einiges davon machen (und dabei noch was lernen)
Bekomme im Studio 37 Fehlermeldungen ("import of dll-function not allowed" oder so ähnlich, "overloaded function differs only in return-type" oder so ähnlich", ...) und jede Menge Warnungen.
Kann wer helfen ?

ChriRi
2010-11-25, 19:37:05
Ach ja, noch'n Wunsch:
*) Poster-Modus (hab ich zwar hier schon mal gelesen (da war noch was mit Tiles), aber um dem Feature noch mehr Nachfrage zu verschaffen):
zb. im Hintergrund einstellbare Postergrößen (gleiches Bild, höhere Auflösung) mitrechnen (zb. umschalten zwischen 2*2, 3*3, 4*4,..., 2*2,...) mitrendern
oder
beim fertigen Bild (oder beim Blättern in History) auf Tastendruck Poster erzeugen (mit anderer Taste Größe einstellen und in Command-Line zeigen)

aths
2010-11-26, 10:09:22
Zeckensack hat die Entwicklung schon vor langer Zeit eingestellt. Ich nutze die aktuelle Version trotzdem noch.

Einige der von dir angeführten Feature-Wünsche hätte ich auch. Zusätzlich aber noch:

- Setzen des Fensters auf exakte Größen
- Möglichkeit, den Ausschnitt zu drehen (die Koordinaten müssten zur Berechnung per 2D-Transformation rotiert werden)
- Unterstützung größerer Paletten (mehr als 256 Farben)

- Ultra-Antialiasing. Mit Supersampling noch höher zu gehen wird wegen dem Speicherverbrauch mit der Zeit impraktikabel. Lösung: Man berechnet für ein Subpixel mehrere Subsubpixel und filtert die dann gleich zusammen und nutzt sie anschließend als normale Subpixel fürs Supersampling. Damit verliert man zwar die nachträgliche Gammakorrekturmöglichkeit, aber so ließe sich aufbauen auf 8x8 Supersampling noch mal 8x8 Subsubsampling verwirklichen, so dass das Bild am Ende 4096-faches Antialiasing hat :)

ChriRi
2010-11-26, 18:21:05
Ich habe schon befürchtet, daß er da nix mehr weitermacht. Klingt so, als ob du nur das Binary nutzt.
Wenn ich die Sourcen zum Laufen bekäme, tät ich mich ja vertiefen. Aber da brauche ich Hilfe.

shr
2010-11-27, 20:57:41
Hm kompilieren hat bei mir geklappt. Du brauchst dafür Nasm und GLUT.
Nasm gibt es unter http://sourceforge.net/projects/nasm/ du musst es unter c:\nasm installieren und da dann die nasm.exe in nasmw.exe umbenennen
Glut gibts unter http://www.xmission.com/~nate/glut.html
Das ganze dann in Visual Studio einfügen isn bischen nervig. Musst mal versuchen ob du das hinkriegst kann gerade nich genau guggn wie das geht. Musst auf jedenfall in den Projekteigenschaften einmal die .h Dateien als zusätzliches Includeverzeichnis eintragen und dann irgendwo da auch unter "Linker" dann die lib Dateien.


Mal eine andere Frage. Gibt es noch irgendwo den Sourcecode für die brot_core_beta? Die ist dank sse bei double Precision fast doppelt so schnell wie die normale. Bin am überlegen ob ich mal irgendwann Zeit finde das Programm Multicore fähig zu machen und würde das natürlich lieber mit der schnelleren Variante machen

kurtgusenbauer
2010-11-27, 21:38:41
Wo gibt es denn den Source Code?

shr
2010-11-28, 01:54:43
binary und source
http://zeckensack.de/mandel/brot.zip

oder auch verlinkt hier
http://zeckensack.de/mandel/index.html

dll mit sse unterstützung (leider ohne source)
http://zeckensack.de/mandel/brot_core_beta.zip

ChriRi
2010-11-30, 17:06:50
Kann wer von den C++ Programmierern mit folgenden Fehlermeldungen was anfangen und mir helfen ?

Error 1 error LNK2019: unresolved external symbol __imp__bc_refine_history referenced in function "public: bool __thiscall BrotCoreContext::refine_history(void)" (?refine_history@BrotCoreContext@@QAE_NXZ) brot2.obj ZSBrot
Error 2 error LNK2019: unresolved external symbol __imp__bc_refine_image referenced in function "public: bool __thiscall BrotCoreContext::refine_image(void)" (?refine_image@BrotCoreContext@@QAE_NXZ) brot2.obj ZSBrot
Error 3 error LNK2019: unresolved external symbol __imp__bc_get_cleverness referenced in function "public: float __thiscall BrotCoreContext::get_cleverness(void)" (?get_cleverness@BrotCoreContext@@QAEMXZ) brot2.obj ZSBrot
Error 4 error LNK2019: unresolved external symbol __imp__bc_get_progress referenced in function "public: float __thiscall BrotCoreContext::get_progress(void)" (?get_progress@BrotCoreContext@@QAEMXZ) brot2.obj ZSBrot

Habe mit C++ eigentlich noch nichts aktiv zu tun gehabt und stehe daher jetzt ziemlich am Schlauch. NASM ist installiert und übersetzt, lib und dll von Glut in die SDK-Verzeichnisse kopiert,
was kann noch fehlen ?
Alle C++- bzw. Visual Studio-spezifischen möglichen und unmöglichen Anfängerfehler sind möglich, da ich sowohl mit C++ noch nicht viel gemacht habe und im Visual Studio ca. ein viertel Jahr mit C# gearbeitet habe.

shr
2010-12-01, 22:41:35
Hmm das sieht so aus, als würdest du nur das Projekt brot2 kompilieren, es fehlt noch das Projekt brot_core. Mach mal (im Projektmappenexplorer) n rechtklick auf das projekt brot2, dann Projektabhängigkeiten, dann n Haken bei brot_core machen. Dann sollte zumindest der Fehler weg sein ^^

ChriRi
2010-12-02, 12:54:32
Ah, das klingt ja schon konkreter.
Jetzt kommen die Anfängerfragen:
Soll ich beide Projekte mit dem gleichen Source-Verzeichnis machen oder zwei getrennte Sourcen ?
Soll ich die Brot_Core als Dll- oder als Lib-Projekt anlegen ?
Brot2 soll wohl als Konsolenanwendung angelegt werden.
Wie kann ich zb. Brot2 als Haupt-Datei für das Projekt definieren ?
Soll ich die Projekte als leer anlegen oder als neues Projekt "Create from source" anlegen ?

ChriRi
2010-12-02, 14:28:23
Ahja, das klingt schon konkreter.
So, jetzt kommen die Anfängerfragen:
Soll ich die beiden Projekte mit dem gleichen Source-Verzeichnis machen oder zwei getrennte Verzeichnisse ?
Soll ich Brot_Core als Lib- oder als DLL-Projekt anlegen ?
Brot2 ist wohl eine Konsolenapplikation .
Soll ich die Projekte als leer anlegen oder mittels "Create from Source" ?
Wie kann ich das Hauptfile für das Projekt definieren ?

Ich würde echt gerne schon loslegen, habe zb. schon die Stelle für die Umsetzung von Iteration zu Paletteneintrag gefunden, aber diese Anfangsschwierigkeiten nerven :(

shr
2010-12-02, 18:24:20
Hmm ja gute Frage, also ich habe einfach nur die Projektmappe in Visual Studio geöffnet (brot.dsw), da hat der sich dann beide Projekte geholt und konvertiert (und noch n drittes, irgendwas mit dsp, das kannst du dann aber rausschmeissen). Ansonsten sind ja alle Source Dateien im selben Verzeichnis, denke mal das macht so auch Sinn...
Rechte Maustaste auf brot2 und dann als Startprojekt festlegen...
Wobei die Frage ist ob es nicht auch einfacher ist, einfach ein neues Projekt anzulegen und da dann alle Dateien rein... Das hab ich aber noch nich getestet.

ChriRi
2010-12-02, 20:12:49
Das mit brot.dsw klappt schon viel besser (das dritte was du meinst war bei mir huff.dsp).
Aber ich bekomme noch 5-6 Fehlermeldungen vom nasm:
"more than one inputline specified"
und wahrscheinlich daraus folgend:
couldn't open debug/brot_core.lib

Zusätzlich noch diverse Warnungen daß zb. strcpy "not safe" ist

Aber ich bin schon zuversichtlicher, daß das doch noch irgendwann klappt.
Danke schon mal.

ChriRi
2010-12-02, 22:00:38
Der Vollständigkeit halber:

Nasm Version 2.09.04

Das sind die Fehlermeldungen:
Error 1 error: more than one input file specified nasm brot_core
Error 2 error: more than one input file specified nasm brot_core
Error 3 error: more than one input file specified nasm brot_core
Error 4 error: more than one input file specified nasm brot_core
Error 5 error: more than one input file specified nasm brot_core
Error 6 error PRJ0019: A tool returned an error code from "Assembling C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Visual Studio 2008\Projects\Graphics\Fractals\zsbrot\src\x86_timer.asm" brot_core brot_core
Warning 7 warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 92 brot2
Warning 8 warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 97 brot2
Warning 9 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 125 brot2
Warning 10 warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 140 brot2
Warning 11 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 154 brot2
Warning 12 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 216 brot2
Warning 13 warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 243 brot2
Warning 14 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 255 brot2
Warning 15 warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 283 brot2
Warning 16 warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 515 brot2
Warning 17 warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 516 brot2
Warning 18 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 556 brot2
Warning 19 warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 571 brot2
Warning 20 warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 585 brot2
Warning 21 warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 602 brot2
Warning 22 warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 603 brot2
Warning 23 warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 604 brot2
Warning 24 warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 605 brot2
Warning 25 warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 620 brot2
Warning 26 warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 621 brot2
Warning 27 warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 624 brot2
Warning 28 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 635 brot2
Warning 29 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\dokumente und einstellungen\administrator\eigene dateien\visual studio 2008\projects\graphics\fractals\zsbrot\src\brot2.cpp 656 brot2
Error 30 fatal error LNK1104: cannot open file 'Debug\brot_core.lib' brot2 brot2

shr
2010-12-03, 00:31:53
hm könnte daran liegen, dass dein Projektverzeichnis Leerzeichen enthält. Kopier mal das ganze Projekt in ein neuen Ordner irgendwo der Kein Leerzeichen im Pfad hat, also nich aufm Desktop oder in Eigene Dateien oder so liegt. Evtl musst du die brot.dsw neu konvertieren oder neu laden wenn Visual Studio noch die alten Pfade drin hat, zur Not den source Ordner einfach nochmal komplett neu entpacken...

ChriRi
2010-12-03, 08:08:21
Ok, danke, werd ich mal testen.
Verdammt, an sowas denk ich schon gar nicht mehr. ;)

ChriRi
2010-12-03, 11:38:10
Ja das wars.

ES LÄUFT !!!

Danke, Danke, Danke.

Und das mit dem Umrechnen von Iteration zu Palette funkt im Prinzip auch schon. Jetzt muß ich nur noch die Steuerung vom Source-Code ins Interface verlagern ;)

Pinoccio
2010-12-03, 13:09:03
Ja das wars.

ES LÄUFT !!!

Danke, Danke, Danke.

Und das mit dem Umrechnen von Iteration zu Palette funkt im Prinzip auch schon. Jetzt muß ich nur noch die Steuerung vom Source-Code ins Interface verlagern ;)Ich vermute, viele würden sich freuen, wenn du deine Erweiterungen dann auch wieder veröffentlichst. :-) (Natürlich Lizenzkonform!).

mfg

ChriRi
2010-12-03, 14:15:18
Ich vermute, viele würden sich freuen, wenn du deine Erweiterungen dann auch wieder veröffentlichst. :-) (Natürlich Lizenzkonform!).

mfg

Veröffentlichen ??? :eek:
Ihr kommt vielleicht auf Ideen ...

Natürlich. Aber das wird wahrscheinlich noch ein wenig dauern, weil ich da doch einiges vorhabe und ich mir da erst über einiges klar werden muß und ich will eigentlich nicht Versionen veröffentlichen, die dann mit späteren eventuell inkompatibel sind. Es wird hoffentlich einen neuen History-Dateityp geben, in dem zusätzlich die errechneten Iterationswerte gespeichert werden und da sollte ich dann schon auf Kompatibilität achten, sonst kann man ältere Datei-Versionen wegschmeißen. Wäre ja schade um die Rechenzeit.
Werde immer wieder Bilder posten, um die Effekte zu demonstrieren, aber mit Veröffentlichungen werde ich wohl ein wenig warten.

ChriRi
2010-12-03, 17:15:29
Ich habe festgestellt, daß sich die TGA-Files im Photoshop 7.0 nicht öffnen lassen (Meldung: "Konnte das Dokument '....TGA' nicht öffnen, weil ein Problem mit der Dateiformatmodul-Schnittstelle aufgetreten ist).
In PhotoFiltre läßt es sich öffnen, ist aber vertikal geflippt (kein wirkliches Problem, läßt sich beim Batch-Umwandeln in jpg gleich miterledigen).
Hat wer dazu Erfahrungen ?

ChriRi
2010-12-05, 16:44:14
Erste Schritte sind gemacht.
*) Bisserl aufgeräumt im Code in Richtung Wiederverwendbarkeit & Kapselung
*) Speichern aller Bilder beim Speichern der History (erspart hunderte Dialoge "Bild speichern unter ..." )
*) Bildgröße wechseln funktioniert im Prinzip. Momentan sind die unterstützten Auflösungen noch im Source-Code hardcoded, ich möchte sie aber in ein Ini-File auslagern (zusammen mit einigen anderen (noch zu definierenden) Informationen).

Mal abwarten, ob's irgendwelche Nebenwirkungen gibt. Falls nicht, kann ich ja mal was veröffentlichen.

Ganon
2011-06-29, 01:29:57
*Threadauchmalausbuddel*

Hier (xenon.42degreesoffreedom.com/~matti/MandelbrotWindows.zip) kann man sich mal meinen Versuch runterladen. Kann noch nicht viel, aber naja.

Es ist im Prinzip etwas langsam, da ich MPIR (GMP) nutze. Hat halt den Vorteil, dass er >wirklich< Ultragenau ist. D.h. Bitstellen bis zur Unendlichkeit und noch viel weiter... ^^ Nutzt alle CPUs die er finden kann.

Steuerung:
Mit der linken Maustaste einen Kasten ziehen, zum Zoomen.
Mit der rechten Maustaste eine Linie ziehen, zum verschieben.

i -> Iteration erhöhen
o -> Iteration senken
d -> Screenshot
b -> Bitstellen von MPIR erhöhen (Standard: 64bit)
s -> Position speichern (nur eine bisher)
l -> Positon laden

http://xenon.42degreesoffreedom.com/~matti/04_Ergebnis.gif

Wer will, kann sich selbst die http://www.mpir.org/ DLL kompilieren, für seine CPU entsprechend optimiert.

aths
2011-06-29, 10:35:39
Vorschlag: Gamma-Adjusted Anti-Aliasing. Damit das Bild nicht extrem viel Speicher kostet und zur Anzeige ständig downgefiltert werden muss (obwohl das für die eigentliche Berechnung der Mandelbrtomenge effizienter wäre) könnte man praktisch mit Subpixeln arbeiten und dann Optimierungs-Algos auf Grundlage von bereits geantialiasten Pixeln ausführen.

BigKid
2011-06-30, 14:44:20
Mal eine ketzerische Frage: Gibt es mittlerweile einen CUDA Renderer, der es mit Zeckensacks aufnehmen kann - bezüglich der Präzision ?

Ganon
2011-07-03, 13:27:01
Vorschlag: Gamma-Adjusted Anti-Aliasing.

Hast du da vllt. irgendwo einen Link, wo ich mich diesbezüglich einlesen könnte? Hab von den ganzen Verfahren nur stark rudimentär Ahnung.

aths
2011-07-03, 18:22:24
Hast du da vllt. irgendwo einen Link, wo ich mich diesbezüglich einlesen könnte? Hab von den ganzen Verfahren nur stark rudimentär Ahnung.Zeckensack hatte es schon hier im Thread erklärt, ich beschreibe es mal etwas ausführlicher.

In Byte-Darstellung hat man bei Truecolor Werte von 0 bis 255 pro RGB-Kanal. Zunächst normiert man das auf 0-1, also rechnet

"Neuer Wert = Byte-Wert / 255."

Jetzt wird näherungsweise die sRGB-Kennlinie angenähert, indem man ein Gamma von 2,2 voraussetzt. Man rechnet also pro Subpixel und RGB-Kanal

"Noch neuerer Wert = neuer Wert ^ 2,2"

Das macht man für Rot, Grün und Blau jeweils einzeln. Damit wird sRGB näherungsweise in den linearen Raum gebracht. Nun werden alle Subpixelfarben mittels arithmetischem Mittelwert zusammengemischt. Das Endergebnis wird dann wieder pro RGB-Komponente auf sRGB zurückgerechnet:

"Endgültiges Pixel = Mischfarbe ^ (1 / 2,2)"


Pseudocode:


float Pixelfarbe.r, Pixelfarbe.g, Pixelfarbe.b

Pixelfarbe.r=0
Pixelfarbe.g=0
Pixelfarbe.b=0

// Farbe aller Subpixel in den linearen Raum bringen und komponentenweise addieren

For A=1 to Subpixelzahl do begin

Pixelfarbe.r=Pixelfarbe.r + (Subpixelfarbe[A].r*/255)^2.2
Pixelfarbe.g=Pixelfarbe.g + (Subpixelfarbe[A].g*/255)^2.2
Pixelfarbe.b=Pixelfarbe.b + (Subpixelfarbe[A].b*/255)^2.2

end

// Durch Subpixelzahl teilen, damit wir den Mittelwert haben

Pixelfarbe.r=Pixelfarbe.r / Subpixelzahl
Pixelfarbe.g=Pixelfarbe.g / Subpixelzahl
Pixelfarbe.b=Pixelfarbe.b / Subpixelzahl


// Werte auf sRGB-Kennlinie annähern

Pixelfarbe.r=Pixelfarbe.r^(1/2.2)
Pixelfarbe.g=Pixelfarbe.g^(1/2.2)
Pixelfarbe.b=Pixelfarbe.b^(1/2.2)


// Werte wieder in Bytes zurückrechnen

Ausgabewert.r=int(Pixelfarbe.r * 255)
Ausgabewert.g=int(Pixelfarbe.g * 255)
Ausgabewert.b=int(Pixelfarbe.b * 255)

Ganon
2011-07-03, 19:07:35
Und was sind die Subpixel jetzt genau?

Also ich zeichne zur Zeit so:
Die einzelnen Threads schieben mir ermittelten Iterationen pro Pixel in ein Array. Im Rendercode nimmt er nun die Iteration für den Pixel und guckt in der Palette nach der entsprechenden Farbe. Die zeichnet er dann so 1:1 auf den Schirm.

aths
2011-07-03, 23:20:41
Für Antialiasing kannst du zwei Methoden anwenden, oder beide sogar kombinieren.

1. Du renderst das Bild in höherer Auflösung und rechnest es zur Ausgabe herunter. So macht es Zeckensack in seinem Programm.

2. Du berechnest eine Pixelfarbe bereits "geantialiast". Angenommen, das ist das Pixel:


_________
| |
| |
| x |
| |
|_________|




X soll der Mittelpunkt sein, für den du die Farbe bestimmst. Es ginge auch so:


_________
| |
| x x |
| o |
| x x |
|_________|



Du berechnest dann in diesem Beixpiel vier Farben für das Pixel, an der Stelle wo das X steht. Als Farbenrückgabewert nimmst du den Mittelwert der Pixelfarben und tust so, als sei dieser Wert der korrekte (bereits geantialiaste) Farbwert für Pixelmittelpunkt o.

Ganon
2011-07-09, 09:42:19
So, ich hoffe ich hab das jetzt irgendwie richtig gemacht xD

normal ohne alles

http://xenon.42degreesoffreedom.com/~matti/ErgebnisnAA.gif

mit 2x2 Super Sampling (? hoffe ich xD) mit mit normaler Durchschnittsberechnung (also einfach nur addieren und dann teilen).

http://xenon.42degreesoffreedom.com/~matti/ErgebnisAAG1.gif

mit 2x2 Super Sampling (? hoffe ich xD) mit Durchschnittsberechnung von dir (also das mit pow(,2.2).

http://xenon.42degreesoffreedom.com/~matti/ErgebnisAAG22.gif

Sieht das so OK aus?

aths
2011-07-09, 11:24:36
Bitte die Anzahl der Iterationen erhöhen, damit das Schwarz wie eine Mandelbrot-Menge aussieht. Die Wirkung des Downfilterings lässt sich erst dann gut beurteilen, wenn einzelne Strukturen nicht mehr richtig aufgelöst werden können. Die Helligkeit des "Grissel-Matsches" ist dann entscheidend.

Einfaches Downfiltering = zu dunkel

sRGB-Downfiltering = Matsch/Grissel-Helligkeit wie sie sein sollte

Ganon
2011-07-09, 11:42:52
normal ohne alles
http://xenon.42degreesoffreedom.com/~matti/2_ErgebnisnAA.gif

kein Gamma
http://xenon.42degreesoffreedom.com/~matti/2_ErgebnisAAG1.gif

Gamma 2.2
http://xenon.42degreesoffreedom.com/~matti/2_ErgebnisAAG22.gif

CokeMan
2011-07-09, 11:56:08
Mandelbrot 3D auf Youtube :wink:

http://www.youtube.com/user/xlace#p/u

aths
2011-07-09, 13:27:16
Es gibt kein Mandelbrot in 3D*. Einige 3D-Fraktale** sind so konstruiert, dass sie versuchen, optisch bestimmten Mandelbrotset-Eigenschaften abzubilden. Der Youtube-Link ist natürlich trotzdem interessant.

* Die Hausdorff-Dimension des Mandelbrotsets liegt zwischen 2 und 3 :freak:

** Wenn wir schon einen auf Genauigkeit machen, sollte gesagt werden, dass das Mandelbrotset kein Fraktal ist, obwohl es bestimmte Eigenschaften eines Fraktals hat. Aller Selbstähnlichkeiten zum Trotz gibt es keine identischen Bilder an unterschiedlichen Positionen, das macht aber ein Fraktal aus. Die verwandten Juliasets hingegen sind richtige Fraktale. Die Kochsche Schneeflocke ist auch ein gutes Beispiel für ein richtiges Fraktal.

aths
2011-07-09, 13:32:56
Ganon, du siehst bestimmt selbst, dass die 2,2-er Gamma-Version im "Grissel" nahe an der erwarteten Helligkeit ist, während die 1,0-er Version zu dunkel wird. Leider bedenken das viele (selbst kommerzielle!) Render-Programme nicht.

Die Iterationsstufe kann noch höher :) damit das Schwarze richtig scharf ausgeschnitten aussieht. Falls du das schon implementiert hast, kannst du auch mal höhere Supersampling-Stufen mit 1,0 und 2,2 vergleichen.

Ganon
2011-07-09, 14:30:20
Ja du hast Recht... es macht Sinn, die Pixelfarbe so zu bestimmen.

Später kommt dann noch verteiltes rechnen im Netzwerk hinzu ^^ Aber jetzt hab ich erst mal anderes zu tun.

aths
2011-07-10, 13:32:39
Wichtig ist imo Funktionalität zum Zwischenspeichern, falls man bei der Berechnung eine Pause einlegen muss.