Export the GPU-accelerated Metal 3D viewport render animations from Cheetah3D into a video file

Martin has done a fantastic job on the Metal 3D viewport. Honestly, as long as you don't need the highest quality photorealistic renders it's more than good enough. Also, dedicating my Mac to run 24 hours with the CPU-based rendering for animations that the Cheetah or Falcon render engine provides is not something that is easily affordable. Is there any way to just render out the animation with the Metal viewport into a video file (or image sequence)? For me it delivers great results and outputs steady real-time 120 frames per second (!) on my M1 Max MacBook Pro. It would literally speed up my animation renders from taking a whole day to taking just a few minutes (or even seconds). The CPU-based renders could be used for the very few times when the highest quality result is required.

Cheetah3D-GPU-Metal-Viewport.jpg

The Cheetah3D GPU-accelerated Metal viewport that outputs 120+ frames per second. Notice the lights and reflections from the HDRI Environment that interacts with the PBR materials (the robot and the ice on the ground).
 
Maybe try using the Mac's Screenshot App. It appears to have a "Record Selected Area" setting that creates a QuickTime movie ( .mov ). It could be a start.
 
Maybe try using the Mac's Screenshot App. It appears to have a "Record Selected Area" setting that creates a QuickTime movie ( .mov ). It could be a start.
Hello MonkeyT,

Thank you for your suggestion. Yes, that has been my temporary workaround. However, there are several problems with this workaround:

1 - The screen recording causes the animation to stutter a bit in some parts, since both playing back the animation in the Metal viewport and doing a screen recording at the same time is very intensive for the GPU, especially when there's a lot of movement.
2 - My output file needs to be 4K 60 FPS (3840x2160 at 60 FPS), and my screen doesn't have this resolution.
3 - Even if I enter full screen mode on Cheetah3D and removes as much UI elements as possible, there's still a few UI elements that can't be removed to enter a 100% full screen viewport viewing mode (see attached screen shot below).

I appreciate your suggestion though!

Cheetah3D-Metal-Viewport-UI-Elements.jpg
 
Just info. You can get rid off: Timeline, Camera Guidelines/Grid Steps by setting color to 0% opacity , main menu icons, set text to small size:
MinimalisticC3DWindow.jpg
 
Just info. You can get rid off: Timeline, Camera Guidelines/Grid Steps by setting color to 0% opacity , main menu icons, set text to small size:
View attachment 39838
Thank you Frank. Yes I disabled Cameras, Effectors, Folder, Grid, Joints, Lights, Modifier, Particles & Splines on the cog wheel in the 3D View:
Skärmavbild 2024-03-29 kl. 20.53.00.png


Then I changed the top menu to "Text Only":
Skärmavbild 2024-03-29 kl. 20.51.32.png


And found the settings for changing colors if needed for other things in the 3D view that might be distracting:
Skärmavbild 2024-03-29 kl. 20.50.59.png

But how did you get rid of the timeline? @frank beckmann

Also, I can't figure out how to get back panels and restore the original UI. The Objects panel seems impossible to get back (see screen recording GIF below or download the screen recording in MOV format here): https://we.tl/t-VivGgdcI6R Is this a bug that you can't restore the UI or am I missing something? @Martin

 
I saved my window layout to a new „Layout“ - so no restoring is necessary - but a right-click on the title bar will give you the layout-„tools“ in form of splitting the window horizontally or vertically, arrange and change the properties/functions/panels.
Closing Cheetah3D should restore everything to default unless you explicit save to a „Layout“.
 
I assume that you know all that, but for newbies:
* You can define a specific portion of the view port for capture and record to avoid showing bits of the window which are irrelevant. Simply draw a marquise across the panel showing the view port. Dimensions in pixels are shown.
* Location and size of this subwindow can be saved for any later use. If you define one of the layouts primarily for capture and recording frames or animations and define a subwindow with the required dimensions, this is permanently available in any of your projects.

Screenshot 2024-03-30 at 11.58.32.png


* In my case, I use:
1 opt + F = set the fps (in C3D settings)
2 opt + G = hide the grid (in C3D settings)
3 in the cogwheel menu = hide any cameras and other service objects
4 capture or record
5 stop screen recording = cmd + ctr + esc
6 clean up (trim, split) in QuickTime Player if needed
 

Attachments

  • Screenshot 2024-03-30 at 11.58.32.png
    Screenshot 2024-03-30 at 11.58.32.png
    315.7 KB · Views: 22
I assume that you know all that, but for newbies:
* You can define a specific portion of the view port for capture and record to avoid showing bits of the window which are irrelevant. Simply draw a marquise across the panel showing the view port. Dimensions in pixels are shown.
* Location and size of this subwindow can be saved for any later use. If you define one of the layouts primarily for capture and recording frames or animations and define a subwindow with the required dimensions, this is permanently available in any of your projects.

View attachment 39850

* In my case, I use:
1 opt + F = set the fps (in C3D settings)
2 opt + G = hide the grid (in C3D settings)
3 in the cogwheel menu = hide any cameras and other service objects
4 capture or record
5 stop screen recording = cmd + ctr + esc
6 clean up (trim, split) in QuickTime Player if needed
Thank you Helmut. Unfortunately I've realized I won't be able to use the screen recording of the 3D metal viewport at all since animations and screen recordings becomes too choppy, it just too much playing back some scenes in real time (even when not screen recording), even though I have the M1 Max GPU which is pretty powerful. Here's an example of how choppy the animation becomes: https://we.tl/t-kqNT4dTKtg I also considered checking the "Frame by Frame" under the Frames Per Second tab and then speeding up the screen recording in Final Cut Pro, but it is also not a solution since it plays back the frames at variable speeds depending on their complexity. I guess I'll have to stick to the Cheetah and Falcon render engines...
 
:unsure: Well, when observing the processing power of my (mildly human) brain I have observed some occasional lagginess, too. Sometimes it just goes into hibernation on frame 2 or 3 whilst the action in real life continues without leaving any trace in mymemory.
:sick: This probably explains why I think the lunatics are the other ones.
 
Is it possible to stretch your animation over double the timeline and record at 30fps, then speed it back up to 60fps in your video editor? I haven't tried this by the way; just trying to think outside the box. You could also try screen capture apps like dropbox capture or Camtasia if you have them.
 
Is it possible to stretch your animation over double the timeline and record at 30fps, then speed it back up to 60fps in your video editor? I haven't tried this by the way; just trying to think outside the box. You could also try screen capture apps like dropbox capture or Camtasia if you have them.
Thank you for your suggestion. Some of the 3D models have video files as textures, so slowing down everything would make it very complicated since I also would have to account for stuff like that. In the end I've decided to just render out in a low res and FPS and use AI Upscaling and Optical Flow frame interpolation when I'm in a hurry. For large projects I'll just have to wait a couple of days for the renders to finish. Hopefully Cheetah3D gets some kind of GPU based rendering in the future. Cheetah3D makes it so fast and easy to create stuff for the user but the render engines are the only slow part of the app.
 
Back
Top