Anzeige

Render-Wächter

Render-Wächter | PSD-Tutorials.de

Erstellt von MrIous, 13.08.2009.

  1. MrIous

    MrIous Aktives Mitglied

    11
    Dabei seit:
    20.03.2008
    Beiträge:
    1.500
    Geschlecht:
    männlich
    Software:
    c4d, gimp, inkscape, cs3, ps cs4
    Kameratyp:
    Pentax Optio S55
    Render-Wächter
    Moinmoin!

    Da ich wärend dem Rendern oftmals Dinge nebenbei erledige, habe ich fast genauso oft viel Zeit vergeudet, weil der PC schon lange fertig war und ich es nicht gemerkt hatte.
    Dehalb habe ich mit ein kleines Tool geschrieben, das im Hintergrund läuft und den Arbeitsspeicher überwacht.
    Sobald innerhalb einer halben Sekunde ein gewisser Prozentsatzt des Arbeitsspeichers frei wird, schlägt das Program akustischen Alarm und fährt auf Wunsch den PC nach einer bestimmten Wartezeit herunter.

    Das Programm ist nich speziell auf Cinema geschrieben, es funktioniert auch mit 3ds oder Blender etc (aber nicht getestet)

    [​IMG]

    File-Upload.net - Render-W-chter.exe.

    Hier der Quelltext für diejenigen, die es interessiert, einen Teil habe ich von hier:
    Delphi-PRAXiS :: RAM Auslastung ermitteln

    Code (Text):
    1. unit Unit1;
    2.  
    3. interface
    4.  
    5. uses
    6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    7.   Dialogs, ComCtrls, ExtCtrls, StdCtrls;
    8.  
    9. type
    10.  
    11. [...]
    12.  
    13. var
    14.   Form1: TForm1;
    15.   alt, Auslastung, difpro: integer;
    16.   fertig: bool;
    17.   sdtime: real;
    18.  
    19. implementation
    20.  
    21. {$R *.dfm}
    22.  
    23. procedure TForm1.Timer1Timer(Sender: TObject);
    24. var
    25.   x, y: real;
    26.   memory: TMemoryStatus;
    27. begin
    28.   alt:=auslastung;
    29.   memory.dwLength := SizeOf(memory);
    30.   GlobalMemoryStatus(memory);
    31.   x := memory.dwTotalPhys - memory.dwAvailPhys;
    32.   y := memory.dwTotalPhys;
    33.   Auslastung := round(((x/y)*100));
    34.   ProgressBar1.Position := Auslastung;
    35.   edtot.text:=floattostr(round(y/1000000)) + ' MB';
    36.   edavail.text:=floattostr(round(memory.dwAvailPhys/1000000)) + ' MB';
    37.   edused.Text:=floattostr(round(x/1000000)) + ' MB';
    38.   lbp.Caption:=inttostr(Auslastung) + ' %';
    39.  
    40.   if alt-auslastung > difpro then
    41.     begin
    42.     fertig:=true;
    43.     edsd.enabled:=false;
    44.     labelstat.Caption:='Fertig!';
    45.     end;
    46.  
    47.   if fertig then
    48.     begin
    49.     if cbbeep.checked then beep;
    50.     sdtime:=sdtime-1;
    51.     progressbar2.Position:=round(2*strtofloat(edsd.text)-sdtime);
    52.     lbretime.caption:=floattostr(sdtime/2) + ' sek';
    53.     end;
    54.  
    55.  if sdtime = 0 then
    56.     begin
    57.       fertig:=false;
    58.       edsd.enabled:=true;
    59.       labelstat.caption:='';
    60.       progressbar2.Position:=0;
    61.       sdtime:=2*strtoint(edsd.text);
    62.       lbretime.caption:=edsd.text + ' sek';
    63.       if cbshutdown.checked then
    64.        showmessage('Shutdown')
    65.     end;
    66. end;
    67.  
    68. procedure TForm1.FormCreate(Sender: TObject);
    69. begin
    70. SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE + SWP_NOMOVE + SWP_NOSIZE);
    71. fertig:=false;
    72. sdtime:=20;
    73. difpro:=10;
    74. end;
    75.  
    76. procedure TForm1.btstopClick(Sender: TObject);
    77. begin
    78. fertig:=false;
    79. edsd.enabled:=true;
    80. labelstat.caption:='';
    81. progressbar2.Position:=0;
    82. sdtime:=2*strtoint(edsd.text);
    83. lbretime.caption:=edsd.text + ' sek';
    84. end;
    85.  
    86. procedure TForm1.edsdExit(Sender: TObject);
    87. begin
    88. sdtime:=2*strtoint(edsd.text);
    89. progressbar2.Max:=round(2*strtofloat(edsd.text));
    90. end;
    91.  
    92. procedure TForm1.edproExit(Sender: TObject);
    93. begin
    94. difpro:=strtoint(edpro.text);
    95. end;
    96.  
    97. end.
    Vielen Dank auch an Beta-Tester Barri ;)

    Ich freue mich auf Rückmeldungen und Verbesserungsvorschläge.
     
    #1      
  2. hanco

    hanco ex

    Dabei seit:
    20.08.2005
    Beiträge:
    6.318
    Geschlecht:
    männlich
    Software:
    Cinema 4d, Zbrush, PS Elements, Gimp
    Kameratyp:
    Nikon D60
    Render-Wächter
    AW: Render-Wächter

    Hehe - nette Idee. Nur - das lässt sich auch mit dem Posteffekt extern erledigen ;)
    Entweder nen Player starten lassen mit entsprechendem Sound oder den PC runterfahren lassen.
     
    #2      
  3. barri

    barri Guest

    Render-Wächter
    AW: Render-Wächter

    Aber das ist ein kleines bischen aufwendiger, als einfach das Programm zu starten :D

    Ich durfte das Programm ja schon ausgiebig testen. :)
    Von mir gibts nichts zu meckern. Ich benutze das Programm jetzt schon.

    Viele Grüße
    Barri
     
    #3      
  4. NT2005

    NT2005 Von dannen.

    Dabei seit:
    05.03.2006
    Beiträge:
    3.676
    Geschlecht:
    männlich
    Render-Wächter
    AW: Render-Wächter

    Mich würde nur interessieren wie das aus sieht bei Animationen? Da könnte für jedes neue Bild der Arbeitsspeicher anders verwendet werden. ;)
     
    #4      
  5. MrIous

    MrIous Aktives Mitglied

    11
    Dabei seit:
    20.03.2008
    Beiträge:
    1.500
    Geschlecht:
    männlich
    Software:
    c4d, gimp, inkscape, cs3, ps cs4
    Kameratyp:
    Pentax Optio S55
    Render-Wächter
    AW: Render-Wächter

    @hanco/barri: Bitte genauer erklären! Davon hab ich noch nix gehört, ist das ne Neuerung der R11?

    @NT2005: Da ich hauptsächlich Einzelbilder rendere weis ich das garnicht...
    Aber das wär noch ne Idee für die nächste Version, dass Animationen und kurzfristige Entlastung berücksichtigt werden :)
     
    #5      
  6. barri

    barri Guest

    Render-Wächter
    AW: Render-Wächter

    @MrIous
    Ne, Batch Rendering gibt es auch in früheren Versionen. Bei Batch-Rendering kann man mehrere Projekte z.B. über nacht nacheinander Rendern lassen. Als letztes Projekt kann man dann aber eine Datei angeben, die den PC herunterfährt oder einen Peep-Ton abgibt :)
    Einfach unter Rendern/Batch-Rendering

    Viele Grüße
    Barri
     
    Zuletzt von einem Moderator bearbeitet: 13.08.2009
    #6      
  7. MrIous

    MrIous Aktives Mitglied

    11
    Dabei seit:
    20.03.2008
    Beiträge:
    1.500
    Geschlecht:
    männlich
    Software:
    c4d, gimp, inkscape, cs3, ps cs4
    Kameratyp:
    Pentax Optio S55
    Render-Wächter
    AW: Render-Wächter

    @Toni: Ich habe gerade eine kleine Test-Animation gerendert, beim Anfangen eines neuen Bildes leert sich der Arbetisspeicher z.B. von 63% auf 57%, nach Abschluss der Animation auf 51%.
    @barri/hanco:
    Wusste garnicht dass das mit Batch möglich ist...
    Habe die Funktion aber auch noch nie benutzt.
     
    #7      
  8. keul3

    keul3 3dsMax | 3D-Contest

    12113
    Dabei seit:
    25.10.2006
    Beiträge:
    10.068
    Render-Wächter
    AW: Render-Wächter

    bei max kann ich einfach ne sounddatei wählen die abgespielt wird wenn der rendervorgang abgeschlossen wurde, trotzdem nett
     
    #8      
  9. hanco

    hanco ex

    Dabei seit:
    20.08.2005
    Beiträge:
    6.318
    Geschlecht:
    männlich
    Software:
    Cinema 4d, Zbrush, PS Elements, Gimp
    Kameratyp:
    Nikon D60
    Render-Wächter
    AW: Render-Wächter

    Alles was man braucht, ist eine leere Szene, mit Rendervoreinstellungen - und da eben extern. Da kann man so ziemlich alles aufrufen lassen, was man möchte.
     
    #9      
Seobility SEO Tool
x
×
×