I have a SpaceCraft doing a flyby of a planet and I have 3 3D-viewports in Blender of this scene, but when I render an animation (Ctrl+F12), blender only renders 1 view. I can use a screen capture video recording software (like OBS) to capture all the views in 1 shot, which is easy, but is there an easy way to do this in blender without having to use an external screen capture video recording software? Thank you.
-
$\begingroup$ Not sure what you want to achieve. "Rendering a scene" normally means "creating a sequence of images and put them together into one file to form a movie sequence". Not sure where obs comes into this. If you plan to save time by rendering all 3 camera views at the same time, you might be out of luck, because rendering takes up time no matter what. If you just want to switch between the camera views, you can do so by using markers as described in this answer $\endgroup$– metaphor_setJul 12, 2019 at 20:20
-
$\begingroup$ I guess then I have to render 3 separate movie files (each file with 1 camera view only) and then use the Blender video editor to combine them into one movie file which has the 3 separate camera views in that one movie file. If there is a more efficient way, please let me know. Thanks. $\endgroup$– L. PhanJul 12, 2019 at 20:35
-
$\begingroup$ Or you could just check out the link in my comment above. $\endgroup$– metaphor_setJul 12, 2019 at 20:52
-
$\begingroup$ But I think that only switches between the camera views, but it never allow to show all camera views at the same time. It only allows one camera at any instant in time, but you can switch between them at different times. $\endgroup$– L. PhanJul 12, 2019 at 20:59
2 Answers
You can use the Multi-View render layer functionality to render from multiple cameras simultaneously. This allows you to add multiple cameras to the scene and render each frame from each camera. Once you have the scene rendered to individual frames you can stitch them together using the compositor - see continuous sequence of frames with multiple cameras with each camera starting at start of animation for an example of rendering the individual frames and making them available to the compositor.
Once you have rendered the images (in my case I rendered a 'Main', 'Side' and 'Top' using Multi-View) you can stitch them together using the Compositor. Here are the nodes I used (a rather rudimentary method of combining and positioning multiple images; the compositor allows for all kinds of possibilities - far more than is appropriate to go into here) :
Each image is scaled and positioned and then combined with a background image (here I've used Lighten for convenience - the starting background should be black; other methods are available to mask out the background if required but that is outside the scope of this answer and depends on your specific requirements).
This produces the following result :
Blend file included - just select scene 'Scene' and Render Animation to create the individual frames, then select 'Scene.001' and Render Animation to perform the compositing to generate the combined frames.
-
$\begingroup$ That example doesn't show all 3 camera views at the same time in 3 sub viewports of the main viewport. $\endgroup$– L. PhanJul 17, 2019 at 0:23
-
$\begingroup$ @L.Phan I'd concentrated on the actual rendering of the multiple views, rather than the combining - since the combining would be dependent on the actual final result you're aiming for. I've updated the answer with compositor nodes to show how the separate images can be combined (similar to the linked answer, just combining them all together in the same frame, rather than "end-to-end"). $\endgroup$ Jul 17, 2019 at 6:49
-
$\begingroup$ Wow, that's great! Can you include the .blend file for this as well? Thank you Rich. $\endgroup$– L. PhanJul 17, 2019 at 16:40
-
$\begingroup$ I downloaded the .blend file from your post and after I rendered the animation, I tried to play the animation; nothing shows up; I looked at the console and it shows that the images are rendered but it can't process EXR multilayer file: Executing command: 'C:\\Program Files\\Blender Foundation\\Blender\\blender.exe -a -f 24 1.0 -s 1 -e 50 -j 1 C:\\Users\\phan\\Downloads\\rendered\\0001.exr' Error: can't process EXR multilayer file IMB_ibImageFromMemory: unknown fileformat (C:\Users\phan\Downloads\rendered\0001.exr) Can you show me how I can get an animation from the exr? Thanks $\endgroup$– L. PhanJul 17, 2019 at 17:18
-
1$\begingroup$ I followed the instructions and it worked, even in Blender 2.8. Thank you so much! $\endgroup$– L. PhanJul 17, 2019 at 23:44
I think Blender assumes that the camera view is the view you want to see when it's rendered. You could try to achieve the three-camera effect by duplicating the spacecraft two more times, creating new paths/keyframes for each, and using one camera to capture all three at once but I think the cleaner way to do it is to render the original animation three times, one for each window.
If you can get your hands on a couple of other computers, you could try copying the file to the other two machines and have each render a different view but, again, the cleaner way to do it is just to render the animation three times.