What is special about overrides in 2020 goals

In the Blender goals for 2020,
https://code.blender.org/2020/01/2020-blender-big-projects/

There is a topic about overrides, i wonder what this is about and how one would use it in daily work. I’m an Engineer using blender and once in a while i do presentations animation marketing stuff, and design work, and therefor i wonder if its a topic that i should keep track of or not.

So where would you use it, if it worked today?

It works, today. Blog’s article is mentioning that was introduced in 2.81.
https://wiki.blender.org/wiki/Reference/Release_Notes/2.81/Library_Overrides
So, you can create library overrides in 2.81 and will be able to do it in 2.82.

So, it is new system for proxies. First, you have to know what a proxy is.
Basically, that is a way to be able to animate an asset linked from another. New file containing animation does not store data about the asset. It just registers a link to .blend of the asset.
That is a way to reduce memory usage.

That is what old proxy system is doing. Issue is that old proxy system becomes buggy when user is trying to use multiple instances of the asset.
Library overrides system is supposed to handle that in a more solid way. It is also supposed to allow to create variations for each instance.
The main part of data of the asset is still linked data ; but the local changes that you desire, will be handled by final .blend file.

If you are fine with animations that you do (just presentation of one product at a time); you may continue to ignore that part of blender.
But if you want to improve your animation skills (presentations of multiple variations of same product), you have to try to use Library Overrides.

1 Like

It is note only interesting for animation but also for optimizing large scenes performance and memory wise.

Furthermore it gives you a very handy way to organize scenes. You can have your assets in separate files and instead of appending them to your “master” scene yo just link them. If you have to change something in one of your models later you can do that in the lightweight model file instead of the heavy master file.
Ore you can stack together several “sub master” scenes by linking assets together and then link the subs into your master.

The overrides let you overrides specific attributes. For example if you build a city and want to reuse the same building you could override the shader and give the buildings some variance. That way you have the performance boost of linking but also stay flexible in areas where you need to.
Or you could override the bend modifier angle on a tree so that all trees look slightly different.
Or the intensity of a lamp if you have a bunch of similar but slightly different product viz shots.

2 Likes

Neither proxies nor linking itself have anything to do with reducing memory usage, that’s not their purpose. Proxies (and the new library overrides) are the way to make local edits on top of data sourced (linked from) another file. They are means of distributed workflow, where commonly multiple people are involved on one project. Or, less commonly, one person separating assets and animation.
While it’s true that files that link to other files may take up less disk space, that is completely orthogonal to both memory usage and the purpose of linking and overrides.

1 Like

Well, a common workflow is to use linked objects multiple times as instances. So while it is the instancing that reduces memory load, linking and overriding is what makes instancing on a large scale a lot easier to handle.
Handling a whole city for example is not really possible without linking and overriding.

Sounds interesting currently Blender is a bit limmited in procedural drawing (ea various stacked boolean, an a certain begin shape), could variation based upon such stacks also be done.

The way i solve large drawings currently is with collections, it works well
(my current project is a 130mb technical drawing working 3 month’s on it)
Variations of objects go into different collections now, and the whole project has a nested parts structure

I actually dont know what the limit is of blender when it would be better to use proxies
As im only dealing with one designer (me :wink: ) there

So its only something for the larger studios then ?.

As usual. Really clear synthetisation .

1 Like

No,no, I use it all the time for freelance work i work on alone. It is really useful.

So linking files doesn’t save up any Vram memory when rendering? I am really curious about this since proxy systems in other software serves just this purpose (well not only that but that aswell). I was trying to dig this up multipletimes here but wasn’t able to find solid answer. If you got any info that will shine more light into this, I would love to read it.

Linking files? No, it does not. You still have to send all the objects into Vram. Instancing might, as @Lumpengnom pointed out. But that’s not what I’m emphasizing. Purpose of linking and proxies is to distribute work, not to reduce memory usage. Again, these are completely orthogonal things. Saying that proxies are a way to reduce memory usage in support section irks me almost into another dimension.

Fair enought thanks for clarification. So i got it right (wasn’t sure after reading your post) so good. What @Lumpengnom pointed out was what I was thinking aswell. But I got your point and good…no need to be irked about :). Workflow is to link, proxy to keep your file low on MB aswell as easy in viewport + easy to share in inhouse ecosystem and then instance it to lighten your Vram usage.

It’s not to “keep your file low on MB” either. It’s to keep your files focused on different parts of the pipeline. However that may affect disk usage, memory usage or any other resource usage is completely incidental.

1 Like

I see, well that is an interesting info I always thought that intent of proxy was also to keep your file clean, well goodies to side effects I guess.

Ah, I see now. Blimey, terminology clash. Library overrides, i.e. subject of this thread, a replacement for the old Proxies. Which are different from the typical “proxies” that are simplified versions of objects. Those proxies are indeed used for memory and performance considerations. But (waves hand) those are not the proxies you are looking for that are relevant to this topic.

Thx for further clarification but no I did mean Proxies (make proxy) —> to be library overrides. So good and your explanation was valid (and valuable) info to me.

And as it is to my knowledge. Blender Cycles/Eevee does not support “typical proxies” and so we are stuck only to instances (if we want to achieve similar benefits).

Yup, there are no provisions in Blender for those, at least at this time. The most we have for scene simplification are global limits for max. subsurf levels and (for Cycles) - camera and distance culling. But no geometry proxies.

You can create different .blend files for an asset.
And you can relocate linked library to another .blend file.

And by using a library override, you can override mesh.

Hello zeauro,
thank you for tip but I know that and I am using this method, but as @Stan_Pancakes pointed out this is not related to “classic proxy” type of workflow. Such a workflow does not exist in Blender atm. V-ray or Corona for example does have this kind of feature:
https://docs.chaosgroup.com/display/VRAY3MAX/Proxy+Objects+|+VRayProxy

I am still good with linking/overriding/proxiing in Blender and together with instancing it does suit my needs (+ workflow is actually similar to “classic proxy” style). But it is not the same and for huge scenes (like Archviz environments) V-ray or other render engines with “classic proxy system” do have the upper hand.

BTW: It took me a quite a long time to fully understand that it is not related in anyway (I was still a bit dazzled till this topc actually … :D)