Documenation | Rendering | Version 20.128
Jeison Yehuda Amihud (Blender Dumbass) редактира тази страница преди 3 години

NOTE: This Documentation Article is written for a specific verion of VCStudio mentioned in the title. If you have a newer version, some things might be changed. There could be a newer version of this article in the wiki. If there is non. Please be aware of possible changes. The Version could be found in the bottom, right corner of VCStudio

COPYLEFT: This article is a part of VCStudio and might be used and reproduced using either GNU General Public License or CC-BY-SA.

Rendering

Rendering was implemented in Version 20.1266

Content:

  • Simple guide
  • Advanced explanation

Simple Guide

When working on the shots you want to render them eventually. And while you can use the blender's built in rendering it's not the most efficient way of rendering. And it does not give you any analytics data.

Problems of Render Animation in Blender.

Back in 2016 I was trying to make a little movie called "I'm Not Even Human". One of things it made me do was the first ever version of Blender-Organizer. But another thing was realization that my 2 laptops back then were not powerfull enough to handle some of the loads that the movie needed them to handle.

I wasn't dumb and wasn't trying to render video files using cycles. This is automatically makes loosing frames so much simpler. If the render crashes, recovering the frames that are already done is not the simplest procedure. So using separae image files is a recommended way to go.

But even then. If blender crashes. Somebody needs to restart it from the last frame it was on. And with the loads I had it was crashing every 2 to 3 frames. There are 24 frames per second in a normal movie.

The simple solution was to make a little script what will launch blender - b for every frame from the start frame to the end frame. But there were problems even with this way of doing it.

See the script couldn't tell if blender crashed, or blender finished the frame. Meaning every 2 to 3 frames I would have a missing frame in the folder. Not good.

So the next script was doing something a bit more clever. It wasn't launching blender for each frame. But rather for any next missing frame. And those frames that were not rendered are by default missing. Yes, every 2 to 3 frames I would loose render time on an attempt that crashed. But it will not make an image file. And so it's still a missing frame. So it will launch this frame again and again untill it's rendered.

Modern VCStudio renderer.

So every blend file in the shot have 2 aditional buttons at the bottom. The right one is for rendering. It will launch the following window.

Let's go over all the settings in this window.

Folder

First you need to select the folder to which you render. It's either:

  • storyboard
  • opengl
  • test_rnd
  • rendered

But the user doesn't nessesarily know about their existance. Untill the editing stange. The names were chosen long time ago in like 2016. To make it backward compatible with older projects I'm keeping the names. But the icons I chose illustrate everything more clearly.

On the side from the folder you have a little clean icon. If it's selected, renderer will delete all files from the folder before rendering. Else it will start from the first missing file in the folder.

Format

I'm not giving too much options here. Well one thing is that algorithm of the renderer is frame based and does not support video. Tho this is extendable.

Start and End frame

It should take those from the blend file automatically. But if you want to set them up manually. You can do that.

Multiple renders

Now if you will click on render on multiple files. They will be all added to a list. And rendered one after the other. In future with multiuser I want to allocate files to different machines. This is going to be it's own headache.

Current Renders

You can always access the render list from the main window. In the panel on the left you have this render icon. Which is just giving you access to all currently setup renders.

During Rendering

If you click the launch button in the bottom. Currently rendering file will not show you the settings, but rather, will show you the graph and some analytics data about the render.

Advanced explanation

The folowing part of the article is for hard core nerdy people who want to know how everything works. And contains redundant information for a simple person that just want to use VCStudio. Anyway here it is.

Files

The best documentation is to read the code of the software directly. For the render I recommend:

I noticed Network in the title. What's up with this?

In the legacy Blender-Organizer I also had a renderer. But it had a constantly updating UI window. The UI would launch a subprocess.Popen() instance of blender -b and pipe all it's outputs to itself. Therefor reading the string that blender outputs and attempting to parse it in some way for analytics. The problem was that if I don't kill the blender instance when closing the window there was no way to catch it and cancel it later. So I was stuck with this UI no matter what.

This time network/during_render.py is working all by himself. Without any UI. And it's using UDP network protocol to talk to VCStudio. I'm using the localhost for it. So it's not using the Internet. It's just using the protocol.

This gives me ability to read the string that blender outputs and intercact with the render script from VCStudio. But it also gives me the ability to close VCStudio complitelly. And still have the render running somewhere on the background. No UI nothing.

I've included 2 scripts in order to talk to the renderer while it's rendering. For developers or just tinkerers.

Both scripts are terminal based.