Mental Ray - Speicherprobleme

Charriu

Mitglied
Hallo,
Ich bin es schon wieder :-( Es ging die letzten Tage ganz gut voran, aber es erscheint gerade mehr als unwahrscheinlich, also würde unsere Arbeit jetzt auch in einem Endprodukt enden. Problem ist der Mental Ray-Renderer, zunächst stürzte das ganze Programm beim Rednern richtig ab (Speicherfehler), dann kam eine Phase in dem immer ein Testrendering ging, aber bei einem weiteren Rendering nur die Meldung kam es sei nicht genug Speicher frei (laut Anzeige etwa 1100MB belegt). Jetzt meldet das Rendering diesen Fehler immer, ab etwa 0.3% bei der Berechnung der Final Gather Punkte und nur jedes zweite Rendering ohne FG wird beendet. So kann man natürlich keine Animation von 40s rendern.

Habe ein wenig rechechiert, offenbar ist der Mental Ray an sich ja unfähig mit Speicher irgendwie effizient umzugehen und erschwerend kommt hinzu, dass er sich von fehlerhaften und alten Dingen wohl am liebsten gar nicht trennt. So habe ich rausgefunden, dass die alten FG-Maps aufgehoben werden und im Speicher immer mit dazu geladen werden. Leider konnte ich nirgend in "Dokumente" oder "AppData" diese Dateien finden. Weiß jemand wo die Dateien liegen? Und ist MR wirklich mit 3GB überfordert? In der Szene sind jetzt ne handvoll Materialien, 130.000 Polygone, eigentlich nichts wo ich jetzt sagen würde das geht auf einem normalen Desktop-Rechner nicht mehr. Hab die Szene einem Freund gegeben, beim ersten Rendering ging es bis Frame 43, danach nur noch bis Frame 18. :confused:

Schon mal danke für hilfreiche Hinweise.

Felix
 

Zinken

Erfahrenes Mitglied
Fangen wir doch einfach mal vorne an:
- Welche Einstellungen für den Renderer benutzt Du?
- Welche Einstellungen für Final Gather ?
Da das die entscheidenden Punkte sind, solltest Du mal Screenshots hier posten.

Dass MentalRay sehr speicherhungrig ist und bei zuwenig davon einfach abbricht, ist richtig. Das Ding mit den FG-Maps halte ich allerdings für ein Gerücht. Man kann zwar einstellen, dass eine bereits berechnete FG-Map wiederverwendet wird, aber das müllt nicht den Speicher voll, sondern spart Renderzeit. Es kann sogar Speicher sparen, wenn man die FG-Map in einer niedrigeren Auflösung, als das eigentliche Rendering vorberechnet. Den Speicherort kannst Du übrigens selbst einstellen.

Und um noch eine blöde Anmerkung loszuwerden: nicht MentalRay ist überfordert, sondern Dein Rechner... ;)
Aber mit etwas "Einstellungs-Tuning" wird sich Dein Problem vermutlich lösen lassen.
 

Charriu

Mitglied
Hallo Zinken,
Bin gerade auf der Arbeit, kann also keine Bildschirmfotos posten, das hole ich dann nach. Habe "mentalray.daylight" als Rendervorgabe eingestellt und Final Gather mit der Vorgabe "Entwurf" bzw. "Final Gather deaktiviert".

Mit aktiviertem "Final Gather Entwurf" bricht er bei 1.6% der Berechnung der Final Gather Punkte mit dem Speicherfehler ab. Ohne Final Gather bricht er mit gleicher Fehlermeldung bei 0.8% des Rendervorgangs ab. Screenshots folgen dann.

Felix

UPDATE:
Bild 1: Die Einstellungen von mental ray, alles so wie es eingestellt wird wenn man auf Entwurf geht. Hab die Einstellungen unten nochmal zurück auf Standbild gesetzt.
Bild 2: Allgemeine Rendereinstellungen, die Methode "BSP2" beim Raytracing sollte wohl weniger Speicher verbrauchen, so laß ich im Internet
Bild 3: Der Rendervorgang, System gerade frisch gestartet, da kommt er mal ein wenig weiter. Die Einstellungen sind unten ja nochmal zu sehen. 1050MB belegt, es beginnt bei rund 670MB und steigt dann sehr schnell an.
 

Anhänge

  • mentalray.jpg
    mentalray.jpg
    123,5 KB · Aufrufe: 51
  • renderer.jpg
    renderer.jpg
    111,1 KB · Aufrufe: 53
  • rendervorgangundfehler.jpg
    rendervorgangundfehler.jpg
    203,4 KB · Aufrufe: 59
Zuletzt bearbeitet:

Charriu

Mitglied
Anbei nochmal der Taskmanager.164MB frei ist natürlich nicht sehr viel, ich weiß aber nicht wo ich welchen hernehmen sollte, 3ds hat ja den verbrauch von knapp 700MB schon sofort bei Programmstart.
 

Anhänge

  • taskmanager.jpg
    taskmanager.jpg
    67,1 KB · Aufrufe: 34

Zinken

Erfahrenes Mitglied
Die Voreinstellung "Entwurf" ist sehr "sparsam" und sollte eigentlich immer funktionieren. Für ein brauchbares Ergebnis wirst Du da noch etwas höher gehen müssen.
Aaaaaber: ich sehe auf Deinen Bildern, dass Du 150 Lichtquellen in Deiner Szene hast, die auch noch so ziemlich alle Schatten werfen. Und Du wunderst Dich ernsthaft, dass Dir der Speicher ausgeht ?!

Lösungsansätze wären:
- dicken Rechner auftreiben oder an eine Renderfarm schicken, was beides ziemlich teuer ist ;)
- weniger rechenintensive Lichtquellen benutzen (keine Flächenlichter)
- Aufteilen in einzelne Renderpasses und nachträglich zusammenfügen (z.B. in AfterEffects, Combustion oder von mir aus auch Blender)

Der letzte Vorschlag ist meiner Meinung nach die beste Lösung. Vorneweg: stell die Schatten auf "Raytrace" um, wenn Du mit MentalRay renderst. Weiche Ränder bekommst Du automatisch bei Flächenlichtern. Vorgehen solltest Du ungefähr so:

- Alle Lichter abschalten, bis auf das Daylight-System -> Rendern (Pass 1)
- Daylight abschalten, Spots aktivieren
- im Materialeditor ein ganz einfaches Material erstellen, das schnell rendert
- In den Rendereinstellungen im Reiter "Verarbeitung" den Punkt "Material Override" (hab die deutsche Bezeichnung leider vergessen) aktivieren
- eine Instanz des neues Materials dort platzieren
- im Reiter "Elemente Rendern" Dir die passenden für Licht und Schatten raussuchen und aktivieren -> Rendern
- in einem Compositing-Programm die 2 oder mehr Passes (Pass 1 + Licht, Schatten) kombinieren (Addieren / Multiplizieren)

Anstelle der Render-Elemente könntest Du auch mit einem Matte-Shadow-Material, das Dir nur Schatten, Beleuchtung und Alpha liefert, zum Ziel kommen. Einen schnelleren Weg kann ich Dir jetzt leider auch nicht liefern. Eventuell musst Du auch Deine ganzen Spots noch einmal in Gruppen unterteilen und einzeln rendern.
 
Zuletzt bearbeitet:

Charriu

Mitglied
Hallo Zinken,
Vielen Dank, das Positive zuerst: Der Freund von mir kann es mit deaktivierten Schatten wohl Rendern, zumindest sind die ersten 9 Frames durchgelaufen. War allerdings auch nur Entwurf, sonst wartet man da zum Testen ja zu lange. Die schlechte Nachricht am Ende, ich hab die Schatten deaktiviert und es stürzte ab, ich hab die 150 Landebahnlichter gelöscht und es stürzte ab, dann hab ich den Wald gelöscht, dann die Wolken und zum Schluss das Flugzeug und es stützte immer noch ab. Er hat es dann gerendert, als nur noch das Tageslicht, die Landebahn und der Rasen drin war...dann auch sehr schnell. Naja, mal schauen wie lang das bei dem Freund gut geht. Die Bilder mal nur so zum Allgemeinen Amüsement ;-) .

Felix
 

Anhänge

  • nachwievorfehler.jpg
    nachwievorfehler.jpg
    204 KB · Aufrufe: 60
  • nachwievorfehler_allesleer.jpg
    nachwievorfehler_allesleer.jpg
    185,4 KB · Aufrufe: 39

Zinken

Erfahrenes Mitglied
Na wenigstens nimmst Du es mit Humor... ;)
Im Notfall musst Du halt besagte Teile einzeln rendern. Wenn Du den Rest der Szene jeweils mit einem Matte-Material belegst, kannst Du die einzelnen Passes dann leicht kombinieren.
Wenn Du willst, kannst Du mir die Szene (inklusive Texturen) aber auch mal zukommen lassen, dann werf ich heute Abend einen Blick drauf. Vielleicht finden sich ja noch ein paar Optimierungen.
 

Charriu

Mitglied
Hi Zinken,
Danke für dein Angebot, ich glaube es wird nicht nötig sein. Das ganze ist auch relativ groß, das MAX-File an sich hat um die 20MB und dann sicherlich noch einmal 200MB Texturen. Insgesamt haben wir drei Szenen vorbereitet, die letzte Szene mit dem Start des Fliegers rendert nun mein Freund und ich render die Szene 1, mache das als Einzelbildfolge und will das später zusammensetzen.

Jetzt ist mir aufgefallen, dass die Bilder als TIFF alle normal aussehen, aber als TGA alle sehr stark rauschen und manche Polygone schwarz sind. Beides mal die gleichen Einstellungen und TGA rauscht auch sehr stark. Da muss ich nachher dann wohl alles per Batch in ein Format umkonvertieren, dass mir VirtualDub zu einem AVI machen kann. Wenn Lichtquellen ab und an so blinken, dann liegt das sicher am Final Gather "Niedrig", oder?

Felix
 

Zinken

Erfahrenes Mitglied
Das Flackern liegt in der Tat höchstwahrscheinlich am Final Gathering. Google wird Dir verschiedene Lösungen verraten, aber wahrscheinlich kommen die ohnehin nicht in Frage, da Du speichermäßig ja schwer am Limit arbeitest. ;) Den Unterschied zwischen TGA und TIF kann ich jetzt nicht nachvollziehen. Normalerweise sollte es da keinen geben (abgesehen von den Einstellungen der Bittiefe) und schwarze Polygone oder Rauschen schon garnicht. Das hat mit dem Bildformat nicht wirklich was zu tun. Virtual Dub nimmt übrigens nur BMP, aber das sollte ja schnell konvertiert sein.

Einen wertvollen Tip hätte ich noch auf Lager: optimier Deine Texturen!. 200MB sind absurd viel und die müssen alle im Speicher gehalten werden. inzwischen wundert es mich eigentlich nicht mehr, dass Du Deine Szene nicht vernünftig gerendert bekommst. Wo immer es geht, nimmt Jpegs in der niedrigsten akzeptablen Qualität. Jedes KB, das Du an den Texturen sparst, ist freier Speicher und beschleunigt das Rendern. Du wirst verblüfft sein, was das ausmacht...

Ansonsten kann ich Dir nur noch raten, möglichst wenig Polygone und möglichst viele Objektinstanzen zu verwenden (z.B. Bäume). Vielleicht sind auch MR-Proxies eine Option. Mit optimierten Texturen und Objekten wirst Du auch in einer besseren Qualität rendern können. Deine Szene sieht auf den ersten Blick eigentlich nicht wirklich aufwändig aus...
 

Charriu

Mitglied
Hallo zu später Stunde,
Die lieben Texturen waren mal keiner, als ich die TIFFs noch LZW komprimieren konnte. Aber dann kam ein updatewütiger Freund und hat SP1 bei 3ds max 2010 installiert und danach konnte MR keine TIFFs mit LZW mehr lesen. Dachte mit TIFF wäre besser als JPEG, weil unkomprimiert und so. Die Textur des Flieger ist beispielsweise 4096x4096 groß.

Naja, wir haben da Vieles falsch gemacht, ich glaube es ist auch problematisch zig verschiedene Materialien zu machen. Wir haben da die Standard-Mats von 3ds, mr-Materialien und so Architecture-Vorlagen benutzt, jeder was anderes und alles querbett. Deswegen muss er glaube ich am Anfang immer jede Szene konvertieren. Aber so läuft da shalt, wenn vorne im Raum ein Dozent steht, der mit ach und krach den Teapot in die Szene bekommt...

Zur Anschauung mal ein paar Bilder aus der Szene Nr. 1 im Anhang :) Vielen Dank für die ganzen Tipps und Tricks!
 

Anhänge

  • frame0171.png
    frame0171.png
    367,3 KB · Aufrufe: 41
  • frame0524.png
    frame0524.png
    394,3 KB · Aufrufe: 45
  • frame0767.png
    frame0767.png
    382,5 KB · Aufrufe: 45