Bforartists / Bforartists

Bforartists is a fork of the popular 3D software Blender, with the goal to improve the UI.
http://www.bforartists.de
Other
578 stars 73 forks source link

3D View - Make Subdivisions operators update Render Subdivisions, instead of only viewport #3645

Closed Draise14 closed 1 month ago

Draise14 commented 1 year ago

bforartists_uwXED3q6yb

Right now when you use the Subdivide operators on a mesh in object mode, CTRL+1-9, then the viewport subdivisions update, but not the render subdivisions. A user reported this has ruined good renders often. I wonder why when CTRL+1 and CTRL+2 does update render subdivision, but not the others... seems broken. Might be worth taking a look into it.

These are the operators. image

ReinerBforartists commented 1 year ago

I don't see ctrl 1 and ctrl 2 update the render resolution here. I cannot reproduce.

Well, the hotkeys are not for the render resolution, but the viewport resolution. That's the same in Blender.

I think this feature request is best done at Rightclickselect and for Blender. But i doubt that it would have lots of success.

It's two different operators. And this means we would need to use other hotkeys. Since the same hotkeys would simply override each other. It is not possible to use the same hotkey for two operators.

What we could do is to add our own operator that performs both operations simultaneously. But then we would have another fraction moan why we can't have a lower sds setting for the viewport like in Blender.

levels

ReinerBforartists commented 1 year ago

The more i think about it, the more i vote to close this request. Viewport hotkeys are there to make your life easier while modeling. It makes no sense to adjust the render settings all the time. You set them usually once.

Draise14 commented 1 year ago

Hm... yeah might need to be reported upstream.

My counter argument is this though: WYSIWYG is a better UX. If you want less SDS levels from render in viewport to optimize, then you can set that in the Simplify panel per scene in the render settings or optimize the viewport SDS objects when needed - as opt-in.

Use Case Stories: When you model, you want what you set with the hotkey ready for render to post to socials or to share with peers - so that what you have in viewport as the final result for a final render, these days most hardware can handle it so if I really want to optimize. YouI would be using Simplify settings or intentionally optimizing it after setting the fact, or noticing a performance hit and optimizing. De-linking render from viewport should be opt-out, not opt-in.

You have a performant viewport, simplify is off. Everything looks ok. Your scene is filled with hundreds of meshes. But on render, your tri count is going up, ram is hitting a cieling. You're not sure why. You can't cap simplify on everything, you need a few with higher render SDS's than others - but now you have to comb through 100s of objects you applied the SDS to to find the meshes that would optimize the scene with the correct render levels. Or vice versa, you hit render and the quality is not he same as the viewport. There are also cases where you had no idea your render SDS was too high or low since in viewport it was dis-connect , and thus extends render times and/or scene preparation for consistency.

Another example is when speed running block-out or layout, you quickly set different SDS levels on the meshes, but at the end of the day to show your supervisor the work - you have to set the render setting one by one even though you blocked out dozens of objects with SDS modifiers in a matter of minutes. You resort to a screen capture. Not all of them have the same level of SDS so using ALTto apply the same render settings to all selected is no-longer applicable - getting to a render level then becomes tedious as you have to go through dozens of objects you added in a matter of minutes before you can do a final render to review...

Another use case, you created a character, it's looking good in viewport, you animate it, then render overnight. Then you find out you forgot to update the render setting to the right levels in the the SDS modifier, since you thought it was fine. This is yet another render checklist to wrangle to avoid wasted renders, which is not a fun UX and shouldn't be a requirement before hitting the render sequence button. This has happened to me.. often, and to the user who has reported this request - a creative director or Reddit himself!

Alternative solutions:

With 240 pull requests and 5500 open issues in Blender, yeah, this new operator won't come in years.

ReinerBforartists commented 1 year ago

I didn't think about if Blender has the capacity to do so. I thought about the UX design. I am with Blender here.

It can and will also work the other way around. You model, change the resolution while modeling, and whoosh, in the render result you have the wrong sds resolution. And then you have the same complaint, just the other way around. Hey, i just modeled, why does the final setting change? That's why i think we should keep them separated under all circumstances. I am more than fine with the current system. And we have more than just SDS where we have render settings and final settings.

I don't see any useful UX that could speed things really up. Every "solution" just adds yet another layer of complexity and introduces more trouble.

A match sds addon makes imo not much sense therefore, it is such a new layer of complexity. Whoah, this exists? Is it on? Is it off? Hey, i just modeled, why has the final sds setting changed ...

ReinerBforartists commented 1 year ago

What we could do is to add our own operator that performs both operations simultaneously.

As told, i see this as a possible solution. Additionally, at top of the existing solution, not as a replacement. Then let the user decide which operators he wants to use. This one could be done as an addon, and append to the sds sub menu ...

EDIT, this would then add the same trouble with the hotkeys like with the other two addons if we would ship it with the state on. So off by default.

Draise14 commented 1 year ago

Opt-in, I like the sounds of that. No hotkeys is fine, then a user can re-assign if they want it to work that way.

Draise14 commented 11 months ago

For 4.1

Draise14 commented 6 months ago

One for the Power User Tools addon.

Blenux commented 2 months ago

How about this?

All user needs to do is enable this in the Power User Tool addon, same existing keymap is used.

https://github.com/user-attachments/assets/1e7500f0-7b89-4db7-b409-d7cc13e67cd8

ghost commented 1 month ago

It is better in my opinion to modify the existing operator, I'm 100% sure the change is easy @Blenux

Draise14 commented 1 month ago

Good work. The label may need work but the UX is fine.

As Reiner pointed out, an opt in or out has its use cases. So modifying the base operator is a no go.

Blenux commented 1 month ago

Yeah I read all the earlier comments, and yeah what label should we use?

Draise14 commented 1 month ago

"Combine Viewport/Render Subdivision Levels"

5 from 7 words Changed to "active action" to toggle into

Tooltip: "When applying modifier levels using hotkeys in the 3D View to adjust the Subdivision Modifier levels\n this will combine the same operator to when adjusting view levels, it will also adjust render levels."

Blenux commented 1 month ago

Hows this?

image

Draise14 commented 1 month ago

Perfect, let's go!

Edit: probably should document it.. I need a documentation sprint after 4.2.1...

Blenux commented 1 month ago

Small issue, the user will need to restart bforartists on diabling the addon custom operator to re-enable the original subdivision operator in object.py, can't seem to find a work around :(

Draise14 commented 1 month ago

Force reload scripts operator when toggling off? This reloads all GUI scripts.

image

Blenux commented 1 month ago

Was thinking that, but not sure if it was appropriate to use.

Blenux commented 1 month ago

Found another way, much cleaner, though does mean adding in a few lines of code into the SubdivisionSet operator in the object.py if that is ok?

Blenux commented 1 month ago

Finding the power user tools addon code a bit wonky, put it in the user settings addon and works fine, now trying to put put back in power user tool.

(omg brain is just nope today)