![]() |
Re: Fractal-Visualisierung in Delphi
Bei dem Youtube-Filmchen steht die Renderzeit: 96 Stündchen.
|
Re: Fractal-Visualisierung in Delphi
von mir aus kann das auch gaaaaaaanz langsam gehen. dann kann ich vllt die selben pixeldaten über mehrere frames nutzen...
wie gesagt, bei mir musses ja auch nicht echtzeit sein. hm, habe da aber grade ne ganz andere idee... wie wärs denn, wenn der user von hand reinzoomt, dann kann mit der mittelpunktkoordinate als "fixpunkt" ein video erstellen,... das müsste doch besser funktionieren, als einen "live zoom" zu berechnen,... das video sollte dann später auch ohne probleme flüssig laufen. damit kenne ich mich aber leider garniicht aus -.-' Zitat:
|
Re: Fractal-Visualisierung in Delphi
Also: Wenn ich jezz ne vergleichbare Renderzeit akzeptiere, dann kann ich ja frame für frame berechnen... is ja nur parameterveränderung.
Aber: Wie krieg ich das dann in eine Videodatei? |
Re: Fractal-Visualisierung in Delphi
Okay, ich habe mich jetzt mal ein bischen mit BMP2AVI "eingearbeitet".
Jetzt habe ich noch 2 Aufgaben:
Da man gelegentlich einen "ungünstigen" Pixel erwischt, sticht dieser dann farblich sehr stark hervor. Ich hatte also überlegt, den Pixel nochmal in 4 Teile zu teilen und für jeden Teilpixel die Anzahl der Iterationen zu berechnen. Der Endgültige Pixelwert wäre dann der Mittelwert dieser 4 Zahlen. Das bedeutet natürlich, dass ich 4 mal so viel Rechenleistung für den gleichen Bildausschnitt benötige. Zur konkreten Farbberechnung hatte ich folgenden Ansatz:
Delphi-Quellcode:
So werden alle mehr oder weniger wichtigen Farben durchlaufen, je näher man ranzoomt.
var iterationen: integer; //Anzahl der Iterationen für diesen Bildpunkt
r, g, b: byte; //Farben rot, grün, blau case iterationen of 0..255: begin r:=0; g:=255; b:=iterationen; end; 256..512: begin r:=0; g:=512-iterationen; b:=255; end; {...} end; Zur optimierung komme ich, wenn die Farbgebung stimmt. Das Auge programmiert hier schließlich mit ^.^ |
Re: Fractal-Visualisierung in Delphi
edit: sry, die datenbank wollte nicht, wie ich wollte...
|
Re: Fractal-Visualisierung in Delphi
[OT]
Zitat:
[/OT] |
Re: Fractal-Visualisierung in Delphi
Zitat:
Das hier ist mein aktueller Code für die Iterationen. Habe das ganze schon um eine Variable und eine Zuweisung erleichtert. Kann man da noch was mit Assambler rausholen? Jeder Takt zählt ^.^
Delphi-Quellcode:
procedure TMandelbrotSet.DrawSet(var Image: TImage);
var Pxl_x, Pxl_y: integer; dx, dy: double; RealC, ImagC: double; x0, x1, y1: double; Iterations: integer; begin dx:=Range_X / Image.width; dy:=Range_y / Image.height; for Pxl_x:=0 to Image.width-1 do begin for Pxl_y:=0 to Image.width-1 do begin RealC:=(Center_x - 0.5 * Range_x) + (Pxl_x * dx); ImagC:=(Center_y - 0.5 * Range_y) + (Pxl_y * dy); Iterations:=0; x0:=0; y1:=0; repeat x1:=(x0*x0) - (y1*y1) + RealC; y1:=(2*x0*y1) + ImagC; x0:=x1; Inc(Iterations); until ( (iterations >= MaxIterations) or (((x1*x1) + (y1*y1)) >= MaxValue) ); if (iterations=MaxIterations) then Image.Canvas.Pen.Color:=clBlack else Image.Canvas.Pen.Color:=ChooseColor(Iterations); Image.Canvas.MoveTo(Pxl_x,Pxl_y); Image.Canvas.LineTo(Pxl_x+1,Pxl_y); end; end; end; |
Re: Fractal-Visualisierung in Delphi
(a) statt Image Bitmap nehmen und zum Schluß ins Image kopieren
(b) Scanline verwenden, statt moveto und lineto (pixel[c,y] := color hätte es auch getan)! |
Re: Fractal-Visualisierung in Delphi
Danke für die Tipps!
Die Prozedur ist nur zum Anzeigen auf der Form. Habe nochmal fast die Gleiche, nur, dass die halt das ganze auf na Bitmap macht und die dann speichert, statt sie anzuzeigen. Momentan geht es mir daraum die reine Berechnung der Iterationen zu optimieren. Werde deine Vorschläge einbringen (d.h. Scanline muss ich nochmal gucken, wie genau die funzt). |
Re: Fractal-Visualisierung in Delphi
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
hab vor paar Jahren auch mal so ein Programm "verbrochen". :) Ich hänge es einfach mal an, anstatt einen eigenen Thread aufzumachen. Vielleicht kannst du dir ja noch ein paar Anregungen holen. Ist eigentlich auch recht schnell, vor allem, wenn man die Effekte ausschaltet. Falls ich den Sourcecode noch finden sollte, werde ich ihn auch noch posten, müßte eigentlich aug irgendeiner alten CD rumliegen. Im Archiv sind auch ein paar "Projekte" enthalten, die geladen werden können. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz