Would be nice list for Blender + Stuff

Hey there!

Here in this thread, I will write down my thoughts on blender and what features I would like to see implemented or fixed in the future. I will also post some workarounds for problems I face and maybe share some basic script’s here and there. In the lists below, you will also find “already implemented”
features. I will not list everything I find, they contain only stuff that I think is important for my work, there are much more tasks and projects devs are working on.

Why? I collect this information anyway, so why not share it. I hope these lists help to find some specific topics on developer.blender.org and keep track of blenders development without searching too much.

Most of the time I use the daily alpha builds, even in production :troll:, so some features listed as implemented are not in 2.80.

Useful links
Some scripts

drop_to_floor.py (855 Bytes)
material_picker.py (2.1 KB)
mega_decimate.py (945 Bytes)
random_diffuse_shader.py (1.7 KB) random_material_color.py (881 Bytes) random_object_color.py (861 Bytes) clear_splitnormals.py (1.0 KB)


WOULD BE NICE LIST

General Blender System / UI

Already implemented

Viewport

Already implemented

Outliner

  • Object order by user (withuout alphabetical)
  • Give collection Icons custom color
  • Give collections the ability to transform
Already implemented

Curves

Already implemented

Sculpting

Already implemented

Texturing

Already implemented
  • :white_check_mark: Texture paint performance on windows

Modeling / Modifiers


Everything Nodes :star_struck:


Simulation / Physics


Animation

Already implemented
  • :white_check_mark: Switch Graph editor and Timeline
  • :white_check_mark: Edit keyframes in Timeline

Rendering

Already implemented

Compositing

  • Faster rendering
6 Likes

Multi GPU rendering with EEVEE (WIN / Nvidia only)

We did a small bat script that enables us to render multiple instances of blender automatically on individual GPUs. Some initial steps are required so read carefully.

1. Fist of all, go to your blender directory

Duplicate your blender.exe multiple times, so that you have one blender.exe for every GPU you want to use.

In our case, we use 2x 1080 TI and one Titan X.
So we duplicated 3 blender.exe and named them accordingly:

-blender1.exe
-blender2.exe
-blender3.exe

image

2. Now we go to our Nvidia settings

(Maybe this steps are also possible with AMD but I’m not sure.)

Then we go to our application settings and add (red marker) the blender1.exe and set one unique GPU to it (blue marker).

This we will repeat, until every blender.exe has it’s unique GPU assigned.

3. Let’s use the BAT

_Render.bat (1.2 KB)

We will go through the code here, so you know how to configure and adapt it if you have more or fewer gpus.

Part A

Here you will define your path to your blender.exe
The SET parameters will be asked in the console when the bat is started

echo off
:::::::::::::::::::::::
:: path to blender path
:::::::::::::::::::::::
SET "blenderPath=C:\Program Files\Blender Foundation\20191101_2.81_E-cycles\"

::::::::::::::::::::
::  input parameter 
::::::::::::::::::::
SET /P startFrame= start frame:
SET /P endFrame= end frame:
SET /P sceneFile= scene file:

Part B

This parameters will offset the rendered frames by every instance

SET /A startFrame2=%startFrame%+1
SET /A startFrame3=%startFrame%+2
SET /A startFrame4=%startFrame%+3
SET /A startFrame5=%startFrame%+4
SET /A startFrame6=%startFrame%+5

Part C

So here you define every execution path for every instance of blender.
As you can see, every instance has it’s belonging blender.exe 1, 2 or 3.
%startFrame% is defined so it can find it’s value at “Part B”.
“-j 6” is important, you have to change it accordingly to your instance count.

You can use as many instances as you wish, but don’t forget that you have to increase the SET Parameters for the start frames at “Part B” also.
The reason I start multiple instances per GPU is that the load reaches 100%. Sometimes 3 or even more instances could be needed.

echo on
start /d "%blenderPath%" blender1.exe -b "%cd%\%sceneFile%" -s %startFrame% -e %endFrame% -j 6 -a -y 
timeout 1
start /d "%blenderPath%" blender1.exe -b "%cd%\%sceneFile%" -s %startFrame2% -e %endFrame% -j 6 -a -y 
timeout 1
start /d "%blenderPath%" blender2.exe -b "%cd%\%sceneFile%" -s %startFrame3% -e %endFrame% -j 6 -a -y 
timeout 1
start /d "%blenderPath%" blender2.exe -b "%cd%\%sceneFile%" -s %startFrame4% -e %endFrame% -j 6 -a -y 
timeout 1
start /d "%blenderPath%" blender3.exe -b "%cd%\%sceneFile%" -s %startFrame5% -e %endFrame% -j 6 -a -y 
timeout 1
start /d "%blenderPath%" blender3.exe -b "%cd%\%sceneFile%" -s %startFrame6% -e %endFrame% -j 6 -a -y 
timeout 120

Now just start the Render.bat and put in the Blender file name and the frames you want to render.
IMPORTANT! The Render.bat has to be the same folder directory as your blend file.

Have FUN!!

4 Likes

Holderplace blabla

SUPER COOL! Thanks Daniel!

1 Like

I notice you’re launching two instances of Blender per GPU.

What’s the performance difference like, between 2 instances per GPU vs 1 instance per GPU?

Aside from a pure performance standpoint, I suspect it might be better (more stable) to use only 1 instance per GPU – especially to avoid crashing Blender when rendering very texture heavy scenes.

1 Like

Depending on the scene, between frames the gpu load is nearly 0 % because the image is saved and other stuff is reloaded in the gpu, so sometimes I use more than one instance to get the gpu load higher. In some cases, where the images are rendering very fast I use up to 4 instances per gpu.

Works pretty well and stable for me so far, only thing to have in mind is, that every instance needs it’s own gpu memory, so 4 instances need 4 times the gpu memory for example.

Any solutions for Eevee and AMD cards?
As far as I know, one cannot specify what GPU to use for AMD cards. So, all instances of Blender use the same GPU - the first unit.
I have Radeon Pro Duo. You can enable MGPU mode on it, so the apps see it as one GPU unit. It works for Cycles, which is great. But Eevee still only uses GPU1, not both. That is strange because after you turn on the MGPU mode all apps are supposed to see it as one GPU unit.

Would this also work with Cycles?