Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Apr 16, 2024 18:28

Foren-Übersicht » Sonstiges » Meinungen zu den Projekten
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Dieses Thema ist gesperrt. Du kannst keine Beiträge editieren oder weitere Antworten erstellen.  [ 99 Beiträge ]  Gehe zu Seite Vorherige  1 ... 3, 4, 5, 6, 7  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 29, 2006 18:53 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
i0n0s hat geschrieben:
Mit der schnelleren Einstellung:
1 CPU: 7:51
2 CPUs: 4:08 und folgender Text:
Code:
  1. ************** Ausnahmetext **************
  2. System.InvalidOperationException: Das Objekt wird bereits an anderer Stelle verwendet.
  3.    bei System.Drawing.Image.get_Width()
  4.    bei System.Drawing.Image.get_Size()
  5.    bei System.Windows.Forms.PictureBox.ImageRectangleFromSizeMode(PictureBoxSizeMode mode)
  6.    bei System.Windows.Forms.PictureBox.get_ImageRectangle()
  7.    bei System.Windows.Forms.PictureBox.OnPaint(PaintEventArgs pe)
  8.    bei System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs)
  9.    bei System.Windows.Forms.Control.WmPaint(Message& m)
  10.    bei System.Windows.Forms.Control.WndProc(Message& m)
  11.    bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
  12.    bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
  13.    bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
  14.  

Bild wurde dann keins mehr angezeigt, nur ein roter Rahmen sowie rot durchgestrichen.
Ich lasse es jetzt nochmal mit dem "normalen" Bild durchlaufen.


Die WinForms sind nicht Multithreading fähig.
Es gibt Tricks wie man es umgeht( Glaube auch nen compilerswitch ), einfach mal nachforschen.

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 29, 2006 19:32 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Mir ist klar was das ist. Habe das auch schon auf einem Prozessor erzeugen können. Mit Invoke klappt es - wird auch verwendet.. Deswegen hab ich da ein biserl suchen müssen, aber vielleicht habe ich das Problem gefunden. (Ein Dispose für ein Bild wird aufgerufen und das wieder im Thread der das Invoke gestartet hat. Vielleicht sorgt das für Probleme. ) Wenns das war müsste es jetzt gehen. Wenn nicht wirds schwierig das so ohne weiteres zu sehen, weil der angezeigte Stack nicht soviel weiterbringt. Interessant wäre zu wissen, ob Invoke blokierend ist - die Hilfe gibt das leider nicht her. Wenn ja, dann wars es sicher nicht, wenn nein dann ists sehr wahrscheinlich, daß das das Problem war. Hab also eine neue Version hochgeladen (die Zip hat ne 2 im Namen und nen Schreibfehler... ). Ach ja. Wenn der Raytracer noch Statistiken ausgibt, dann hat er immerhin weitergerechnet und es findet sich ein Bild im Ausführungsverzeichnis.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 29, 2006 19:42 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
Zitat:
Hab also eine neue Version hochgeladen (die Zip hat ne 2 im Namen und nen Schreibfehler... ).

Wo denn?
Ansonsten hat er ja richtig gerendert, nur die finale Ausgabe ist fehlgeschlagen.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 29, 2006 19:44 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
was soll man sagen, außer dass es einfach nur genial aussieht ;)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 29, 2006 19:45 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Ah... Also erst ganz am Ende.... Das hilft mir dann momentan nicht weiter, besodners wenn er auch abspeichert... Dann kann es nämlich nur das setzten der Enabled-Eigenschaften des Menüs sein und das wird auch invoked... *verwirrung* ;-)
Die neue ist an selber Stelle wo die alte war (gleicher Post, andere Datei). Aber ich glaube das wird dann nichts ändern. Muss ich mal länger drüber nachdenken. Immerhin hab ich dann in den wesentlichen Teilen das Tracers nicht geschludert.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 29, 2006 20:22 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
Zitat:
Die neue ist an selber Stelle wo die alte war (gleicher Post, andere Datei).

Nö, ist nix da :(

Die Zeiten für das "original" Bild:
1: 54:44min
2: 28:05min
und ich habe doch kein Bild hier mehr liegen, aber das könnte vielleicht daran liegen, dass ich die alte Version während des Renderns gelöscht habe.
Der Crash am Ende bleibt gleich ;)

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 29, 2006 20:36 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
i0n0s hat geschrieben:
Die Zeiten für das "original" Bild:
1: 54:44min
2: 28:05min

Programm starten und Ok drücken ohne was zu ändern??? Auf meinem Athlon64 3200 1MB Cache, 1GB RAM dauert das ähm... weniger als 10 min... Das Bild "für leute mit Zeit" benötigt allerdings auch etwa 58min (ich glaube sogar mit AA. Habs mir leider nicht notiert). Würdest Du da nochmal genauer verraten, was das "original" Bild ist oder verwendest Du ein etwas betagtes System mit 2 CPUs? Die Varianten ohne die Photonmap sollten alle auch zwsichen ein paar Sekunden und höchstens einer Minute brauchen. Das Problem mit dem Ende kann ich aber momentan wirklich nicht lokalisieren. Da müsste ich wohl auf einem entsprechenden System anfangane Zeilen auszukommentieren und sehen was dann passiert - scheint ja immerhin reproduzierbar zu sein. So ne Ding ist halt leider nicht zur Hand :-(


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 29, 2006 20:55 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
Programm starten und ok drücken, korrekt :?
Ansich sollte ein X2 3800+ doch ausreichen oder? Könnte es an der Graka liegen das die da was in Software macht?

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 29, 2006 21:27 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
hmm... nein, an der Grafikkarte kann das nicht liegen - wird alles ganz knallhart in Software gerendert, die Karte wird nur über GDI angesprochen. Weil NVidia auch vor ein paar Tagen noch keine Treiber fürs Release von Vista geliefert hat ist da bei mir nichtmal was passendes drauf. Hmm.. Von dem Ergebnis bin ich aber wirklich sehr überrascht. Daß sich das etwas bremst auf nem 2 CPU System war anzunehmen, aber daß es sich um Faktor 6 bzw. 3 langsamer handelt. Ich hatte da mehr auf Faktor 1.8 schneller getippt als auf meinem........ Seltsam. Sehr seltsam ;-) Thread Priorität ist momentan auf Normal voreingestellt, wenn du also nocht was am laufen hast, was wirklich Prozessorlast frisst und hohe Priorität hat - Wenn du am WC-Grid Client nicht rumgespielt hast und ihn benutzt, müsste der auch einfach weggedrückt werden und eigentlich gar nicht mehr zum rechnen kommen. Sehr seltsam das... Die Photon-Maps arbeiten im großen und ganzen mit 64-Bit ints. Mal sehen, was passiert, wenn ich meinen Rechner auf 32-Bit nötige das zu rechnen - aber eigentlich darf das nicht so viel.... hm... 15 Minuten. War zu erwarten, aber immernoch kein Vergleich zu der Stunde die das bei dir läuft. Na das ist ja mal lustig....


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 29, 2006 21:37 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
Ist nicht lustig :(
WCGA war deaktiv während dem ganzen. Das Schieben deines Programmes auf eine CPU hat auch nicht geholfen und ich bin "natürlich" noch unter 32Bit.
Aber vielleicht könntest du mal ins IRC kommen und dort mit raten?

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 29, 2006 23:40 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Also ein bischen Forschung mit i0n0s hat ergeben: Auf seiner Maschiene werden schrecklich viele Photonen erzeugt. Das bremst die Sache etwas und es war klar, warum sich i0n0's Rechner so abkämpft. Wir haben dann den Random-Seed festgeklemmt und weiter untersucht - da das Photonen-Erzeugen durch nur einen Thread stattfindet, ist der Prozess hier eigentlich auch deterministisch. Jedenfalls haben wir festgestellt, daß der Zufallsgenerator bei ihm immer 0 ausgibt, was zu nur durch die Maximale Rekursionstiefe begrenzten Anzahl von Photonen führt (sie werden dadurch immer diffus gespiegelt). Bei mir erzeugt selbige Funktion bei jedem Programmstart die erwarteten Werte, die auch bei jedem Durchlauf gleich bleiben - wie erwartet. Jedenfalls.. Wer den Tracer sowieso getestet hat, möge dich mal sehen was er im konsolenfenster anzeigt, wenn man das Programm startet und das Einstellungsfenster einfach mit Ok bestätigt. Diese Zeilen sollten auftauchen.
Code:
  1. Diffuse Photonmap has 75k Photons
  2. Caustic Photonmap has 0k Photons
  3. Summed  Photonmap has 75k Photons

Wenn dort um die 75k=75.000 Photonen stehen ist alles prima (bei Caustics muss 0 stehen, aber da kann eigentlich auch nichts hineingekommen sein.). Wenn nicht (wie bei i0n0s. Er geniesst viel mehr), wäre das interessant zu wissen. Wenn zumindest einer sich mittleit, der auch auf 74-76k kommt, wäre das auch nicht verkehrt ;-) Ansonsten habe ich festgestelt, daß debugging über IRC schwierig ist ;-) Und weil ich nicht sicher bin, ob ich i0n0s heut abend nochmal sehe, bvevor ich schlafen gehe, wollte ich mich gleich noch für seine bereitwillige Hilfe bedanken. Da allerdings die Bilder am Ende denen im Projektthread sehr ähnlich sind, scheint der Zufallszahlengenerator nicht immer nur 0 auszuspucken. Sehr mysteriös ist das.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 30, 2006 16:22 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Wir haben noch ein biserl zeit zum nachforschen investiert. es scheint sich hier um einen bug in dotNet bezüglich der Konvertierung von ulong nach double unter 32bit Systemen zu handeln. Genaueres hier: https://connect.microsoft.com/VisualStu ... kID=248938
Ich hab das Problem momentan dadurch "behoben", daß ich eine Zweite Variante des Zufallsgenerators in 32bit Version implementiert habe. Dann klappt die Sache wunderbar.


Dateianhänge:
Dateikommentar: Aktuelle version des Raytracers. Erzeugt standardmäßig auf 32 bit nicht soviele Photonen
raytracer6.zip [71.67 KiB]
288-mal heruntergeladen
Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: So Dez 31, 2006 18:44 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Frage:
Ist bei dir "Ray" als struct oder Klasse definiert?

Da es im Tutorial als struct definiert ist, und du es nicht als "ref" übergibst, könnte ich mir vorstellen das wenn du es als Klasse anlegst einen nicht unerheblichen Geschwindigkeitszuwachs bekommen könntest. :wink:

Allem in allem kann ich nur sagen: TOP!!



mfg

Speedmaster

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Zuletzt geändert von Speedmaster am Mo Jan 01, 2007 11:34, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: So Dez 31, 2006 21:12 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Nein, die Strahlen werden fast von jedem Objekt überschrieben und in hierarchien wird das schnell tödlich, wenn der Strahl von "Geschwistern" umgesetzt worden ist und das lässt sich nur schwerlich verhinden - sprich: ums kopieren käm ich fast nicht rum und viel würde ich dadurch wohl nicht gewinnen - ordentlich geschwindigkeit bekommts du bei sowas nur, wenn du es mit sehr einfachen Objekten zu tun hast, weil deren Schnitte schneller berechnet sind, als das Strahl auswerten - deshalb hab ich beschlossen, daß Strahlen structs sind und gut ist. Wo man viel mehr bekommt, ist z.B. Irradiance Caching bei den Photon-Maps... Da kämpf ich mir aber grade wild einen ab. Ansonst lässt sich durch ildasm schnell klären, ob struct oder class ;-)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 01, 2007 11:33 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Das neue Jahr fängt gut an mit 2 Überflüssigen Posts. :roll:

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Dieses Thema ist gesperrt. Du kannst keine Beiträge editieren oder weitere Antworten erstellen.  [ 99 Beiträge ]  Gehe zu Seite Vorherige  1 ... 3, 4, 5, 6, 7  Nächste
Foren-Übersicht » Sonstiges » Meinungen zu den Projekten


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 16 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.104s | 18 Queries | GZIP : On ]