Changing 3D grid scale changes object dimensions of new primitive objects #42263

Closed
opened 2014-10-16 22:45:46 +02:00 by Paul R · 9 comments

System Information
Linux, x86_64, Nvidia GTX560ti, official drivers
same behaviour for Windows users

Blender Version
as far back as 2.60a, possibly before

Short description of error
There are two parts to this. (1.) might not be a bug:

  1. when changing 3d viewport Properties panel->Display->Grid Scale, the dimensions of newly added primitives are affected. Since this is a display setting, it seems strange that objects are affected this way.

  2. Blender seems to reuse the dimensions of primitives from the first time a primitive type is added to the scene. Example: if the grid scale is set to 5.0 and a torus is added. All new toruses added to the scene will be 5x larger than default - even if grid scale is set back to default 1.0. Even creating a new scene with File->New doesn't reset the torus dimensions

This second part might have added to the confusion in this report: https://developer.blender.org/T42141

  • newly added primitive sizes can seem inconsistent to the scene/display settings. In that report it was the Scene Scale being changed, but the behaviour looks connected.

Exact steps for others to reproduce the error

  • add a uvsphere to a new scene
  • change 3d viewport Properties->Display->Grid Scale to 5.0
  • add a torus. Torus dimensions will be 5x bigger than default
  • change grid scale back to 1.0
  • add another Torus. it will still be 5x bigger than default.
  • create a new scene with File->New
  • add a Torus. it will still be 5x larger
  • quit/restart is needed to fully reset
**System Information** Linux, x86_64, Nvidia GTX560ti, official drivers same behaviour for Windows users **Blender Version** as far back as 2.60a, possibly before **Short description of error** There are two parts to this. (1.) might not be a bug: 1. when changing *3d viewport Properties panel->Display->Grid Scale*, the dimensions of newly added primitives are affected. Since this is a display setting, it seems strange that objects are affected this way. 2. Blender seems to reuse the dimensions of primitives from the first time a primitive type is added to the scene. Example: if the grid scale is set to 5.0 and a torus is added. All new toruses added to the scene will be 5x larger than default - even if grid scale is set back to default 1.0. Even creating a new scene with *File->New* doesn't reset the torus dimensions This second part might have added to the confusion in this report: https://developer.blender.org/T42141 - newly added primitive sizes can seem inconsistent to the scene/display settings. In that report it was the *Scene Scale* being changed, but the behaviour looks connected. **Exact steps for others to reproduce the error** - add a uvsphere to a new scene - change *3d viewport Properties->Display->Grid Scale* to 5.0 - add a torus. Torus dimensions will be 5x bigger than default - change grid scale back to 1.0 - add another Torus. it will still be 5x bigger than default. - create a new scene with *File->New* - add a Torus. it will still be 5x larger - quit/restart is needed to fully reset
Author

Changed status to: 'Open'

Changed status to: 'Open'
Author

Added subscriber: @intracube

Added subscriber: @intracube
Campbell Barton was assigned by Bastien Montagne 2014-10-18 14:30:02 +02:00

Added subscriber: @mont29

Added subscriber: @mont29

Well, that’s not strictly speaking a bug… the size (so-called 'radius') property of 'add object' operators is only set once from grid scale, the first time they are called. Previously used radius is then reused in all subsequent calls to the same op.

We could make it so radius value is never stored, but I don’t think it would be better. Thing is, you are not supposed to change over and over grid scale…

Campbell, assigning to you to get your feeling on this one.

Well, that’s not strictly speaking a bug… the size (so-called 'radius') property of 'add object' operators is only set once from grid scale, the first time they are called. Previously used radius is then reused in all subsequent calls to the same op. We could make it so `radius` value is never stored, but I don’t think it would be better. Thing is, you are not supposed to change over and over grid scale… Campbell, assigning to you to get your feeling on this one.

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'

This works as intended, but 2 features are conflicting.
If you change scale on an existing scene when you already started making objects in you will notice that the scale is remembered from the initial action. (also working as intended).

Admittedly the work flow for this could be improved (for example, when you change the scene scale we could loop over all operators with saved settings of a radius property and scale them based on the new scene scale), but this is quite a lot of code to support and can even backfire since scene scale isnt used in mask editor... for eg.

For now, just dont change the scale half-way through adding objects to a scene, or - manually change the radius for the few object types you added already.

This works as intended, but 2 features are conflicting. If you change scale on an existing scene when you already started making objects in you will notice that the scale is remembered from the initial action. (also working as intended). Admittedly the work flow for this could be improved (for example, when you change the scene scale we _could_ loop over all operators with saved settings of a radius property and scale them based on the new scene scale), but this is quite a lot of code to support and can even backfire since scene scale isnt used in mask editor... for eg. For now, just dont change the scale half-way through adding objects to a scene, or - manually change the radius for the few object types you added already.
Author

aah... and part of the problem is between my chair and keyboard :)

I didn't realise the grid 'Lines' value is the one to use if the intention is to increase grid size without affecting the scale of new objects. In my defense, I've hardly used these settings before, but someone raised it on IRC :)

RE; reloading the startup file with file->new vs quit/restart giving different results.

I vaguely remember an explanation from someone that was roughly;
The default .blend has empty values for some properties. If the values have been set in the current session, file->new doesn't end up overwriting (resetting) all the data.

But doing a full quit/restart makes Blender populate the empty data from hard coded values from the source code.

Is that basically what's happening?

aah... and part of the problem is between my chair and keyboard :) I didn't realise the grid 'Lines' value is the one to use if the intention is to increase grid size without affecting the scale of new objects. In my defense, I've hardly used these settings before, but someone raised it on IRC :) RE; reloading the startup file with *file->new* vs *quit/restart* giving different results. I vaguely remember an explanation from someone that was roughly; The default .blend has empty values for some properties. If the values have been set in the current session, file->new doesn't end up overwriting (resetting) all the data. But doing a full quit/restart makes Blender populate the empty data from hard coded values from the source code. Is that basically what's happening?

Added subscriber: @PawelLyczkowski-1

Added subscriber: @PawelLyczkowski-1

Just stumbled upon this, here is my take:

Anything that is labeled as 'Display' shouldn't affect how the modeling tools work IMO, it should only change how things are displayed - so the current setup where Add Primitive operators use the grid display scale is wrong. Grid is already labeled as Display - if it wasn't, this behavior could be logical.

Current behavior could be preserved in the form of a toggle, off by default, labeled 'Match Primitive Scale to Grid Display Scale' or similar.

Just stumbled upon this, here is my take: Anything that is labeled as 'Display' shouldn't affect how the modeling tools work IMO, it should only change how things are displayed - so the current setup where Add Primitive operators use the grid display scale is wrong. Grid is already labeled as Display - if it wasn't, this behavior could be logical. Current behavior could be preserved in the form of a toggle, off by default, labeled 'Match Primitive Scale to Grid Display Scale' or similar.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#42263
No description provided.