Page MenuHome

Crash through Offset (Arraymodifier)
Closed, ResolvedPublic

Description

System Information
Windows 7 64, HD 5770

Blender Version
Broken: 2.69 release & 4b206af

Short description of error
If you scale a mesh-object negativ when it uses the Object-Offset (Arraymodifier), the dimensions are going crazy.
Combined with Skin-modifier, it will crash Blender before you type any value.

Exact steps for others to reproduce the error


You see a 3-Vertex-mesh with Object-Array by count of 4,
and Skinmodifier which let Blender suffer from this bug.

Select the mesh and type "scale minus" on your keyboard.

Arraycount 3 or higher cause a crash on my system.
Turn off Skinmodifier and repeat to see the dimensions > huge numbers.


By the way, i have noticed several crashes with the Skinmodifier on different noncomplex projects.
Some after extruding a edge, others with several modifiers - i will try to figure out what happened and post it.
But an obvious example: adding or inadvertently activating Skin after a Subsurfe-mod is always a delicate situation.
It uses lot of computational power, is this normal?



Cool! ;P

Event Timeline

Karja Krähwald (karja) raised the priority of this task from to 90.
Karja Krähwald (karja) updated the task description. (Show Details)
Karja Krähwald (karja) edited a custom field.

http://wiki.blender.org/index.php/Doc:2.6/Manual/Modifiers/Generate/Skin
⇆ Tab into edit mode and start extruding. To see the actual "Z spheres", Z to change to wireframe mode. These spheres are actual meshes with a lot of polygons, so performance issues might occur on older computers.

Not sure about this Z spheres = edgeloops?

Issue happens due to object scale being zero when you press - on your keyboard. Disable Skin modifier and scale object to zero scale and you'll see it's dimensions are really insane. This leads to out-of-memory issues in the skin modifier.

This happens due to Object Offset in the array modifier. Not sure how it was expected to deal with original object scale, it seems a bit crazy.

@Campbell Barton (campbellbarton), is the behavior of object offset is indeed how it was designed to be here (it somehow affects on the size of copied parts)?

Issue happens due to object scale being zero when you press - on your keyboard.

Maybe you could block scaling until a value above 0 (zero) is typed in, if "minus" precedes, or generally.

Especially for objects scale, i cant think of a situation where 0.0 makes sense.
What i have noticed is that zeroscale goes to the smallest possible number 0.0001 and not 0.0000.
Therefore i think 0.0 is more a task for editmode.

Nevertheless, you could use it to align selected objects on same X/Y/Z value.
So if objects wont scale generally until you type other numbers than zero, it would be very handy for that.

Brecht Van Lommel (brecht) lowered the priority of this task from 90 to 50.Jan 17 2014, 4:13 PM

@Karja Krähwald (karja), that's not so simple unfortunately.. Wouldn't work in general -- it's still possible to have some combination of scale/array settings which make you run out of memory.

Will try to work on some workaround tho..

Campbell Barton (campbellbarton) changed the task status from Unknown Status to Resolved.Feb 25 2014, 1:04 PM

Closed by commit rBca2b4323a8b2.

Committed a fix/workaround, some notes...

This situation can be made to work by making customdata.c use size_t instead of int for allocations (currently the size wraps to a negative number),
however this runs so slow in this instance that I don't think its really a good fix.

So for now just clamp subdivisions for the skin modifier.