Not sure what the default step should be. Opinions?
Details
Diff Detail
- Repository
- rB Blender
- Branch
- camera-props-precision (branched from master)
- Build Status
Buildable 3252 Build 3252: arc lint + arc unit
Event Timeline
I think steps should be set so that clicking the > arrow on the button increments by 1.
It's not common to use fractional values here, at least not when following typical Blender values.
It's not common to use fractional values here, at least not when following typical Blender values.
The real world uses fractional values. Integers were OK back in the days of 35 and 75mm film. Try googling the sensor size of your favorite camera---they are commonly cited in mm to two places. (Modern sensors are small! So are focal lengths.)
Usage for camera tracking/match-moving requires precision (if you have subpixel accuracy on a 4K sensor, that's ~ a part in ten thousand and all numbers must maintain that).
I'm still recommending step size of 0.01 or less at least (as the value is dragged, not so much button clicked) on the focal length, which is subject to frequent change. Note that I'm currently revising the SynthEyes to Blender export for 2.80; I'm speaking on behalf of those users.
The purpose of the step size is not to be the smallest possible increment that might be useful, we don't treat it that way in other places in Blender either. If you care about fractions you are likely to type them in anyway.
If it's a zoom shot, and dragging the value only changes it in integer values, it makes it impossible to interactively adjust the value (ie with reference to its effect on the viewports). I'm not sure what the point of having a step size that is guaranteed to be too large to be useful is. If you err, you want to err small, not big. Too small, it takes a little longer. Too big, and it's useless.
Again, notice that earlier Blender versions (tested 2.75a) worked as I described, with a 0.01 step size. I want that restored, rather than 2.80's change to step=1, which appears to have no rationale except "that's how it is at the moment".
@Russ Andersson (ssontech) If the focal length step size was 0.01, it would take *1000* clicks to change from a 50mm lens to a 60mm lens.
Usually, you set the camera focal length in steps of 5 or 10, ie 35mm, 40mm, 50mm, 75mm, 100mm and so on.
If you go shopping for a cine lens, you usually don’t think in terms of ordering a 37.468mm lens. Photographers and filmmakers refer to focal lengths in whole numbers.
The step size should typically be big enough that there is a clear user-visible difference in the render result, that is by design and not just how it happens to be.
@William Reynish (billreynish) You're probably not going to click it 20 or 40 times either --- if you're a photographer using a fixed lens, you type it once and forget it. The usage I'm talking about is visual effects users, who can have to work with this control interactively to achieve specific viewport results that a larger step size does not permit. It's unwise to prevent a necessary use case for one customer base(VFX), on behalf of another customer base (photogs) for which it doesn't really matter. Stepsize was 0.01 in earlier blenders; this is a "step" in the wrong direction. ;-)
And BTW, that "40 mm" lens --- those datasheet numbers are ~+/-5%, so it may well be 37.468 mm .
To find the right step size, we must think primarily about what makes sense for the most typical use-cases, rather than edge cases or specialized scenarios.
In most normal cirsumstances, changing the focal length in whole numbers is right thing. Clicking 1000 times to switch between 40 and 50mm focal length lenses is not a good default behavior.
The step size in Blender is rarely the *smallest* possible increment, but usually the most common/useful.
The ideal solution might be to have a generic, flexible way to change the step size (Like a certain popular node-based DCC app, which uses the name of a magician), but it’s not entirely clear how to add this in Blender’s UI, and is a whole separate, general feature/task.
@William Reynish (billreynish) It's only your experience that the focal length is a whole number. In visual effects combining live shots with animation, the focal length is NEVER a whole number. I think we can agree that most people aren't going to be clicking the button 20 or 30 times to change the value. So the actual relevance of the step size is for interactively dragging the value, which isn't relevant to photographers, and IS relevant to visual effects. With an incorrect step size, the VFX people can't do what they need to at all.
This is silly, shouldn't be a big deal. I'm trying to help you make blender be more professionally usable. You can fix it now, or later after a bunch of people aren't able to do their jobs and complain. I'm not a random user with an itch to scratch, look up my handle.
(and again, I'm just trying to get it restored to its previous behavior!)
The good thing, is that you can set the focal length quite precisely by typing in exactly what you want. If, for some reason, you need to use a lens that is 37.28 mm because of a specific match move, there’s nothing preventing you.
The issue here is, we should use the most common step size. If a user weants to change the focal length from a 30mm to a 35mm lens, they would expect to be able to click the increment stepper 5 times, not 500 times.
@William Reynish (billreynish) It's the interactive dragging I'm concerned about. It looks like the value changes fairly continuously, even though the (current) display value does not. As long as the step size does not affect current interactive drag rate, and the (revised) display includes at least 2 preferably 3 fractional digits, I'm good.
As mentioned, some apps have ways for the user to change the sensitivity in smart ways, so that you can choose at which decimal point you would like to operate.
In Blender, we only have two 'gears' - normal and fine (holding Shift).
It would be nice to have the ability to always to able to change the sensitivity of any number field in Blender. It might be a fun little project for a contributing developer. I have an idea in mind of how this could work from a UI perspective, in a way that integrates with how Blender works already.
FWIW in SynthEyes, as you drag a spinner, holding down shift accelerates the rate of change, holding control reduces it for increased precision. It takes a little futzing to get it so that you can press and release either key while dragging, without causing a glitch. Definitely handy.