Cloth stiffness scaling not working #45084

Closed
opened 2015-06-15 15:12:40 +02:00 by Martin Norris · 32 comments

System Information
Windows 7 sp1 64 bit - see system-info.txt pasted at the end
Intel (HD) Graphics 4000 integrated

Blender Version
Broken: 2.74 and 2.75RC
Worked: 2.69

Short description of error

The cloth stiffness scaling is not considered during a cloth sim.
.blend file attached{F192103}

Create a collision plane at 0,0,0 scale 3x {apply scaling} - this is the surface the cloth will fall onto
Create a cylinder radius 0.5 length 2 not end caps and rotated so the long sides are parallel to the plane and above it by 3 units
Edit the cylinder and add 12 loop cuts
Select the first 3 rings of vertices of the cylinder and add to vertex group
Create a cloth sim for the cylinder of cotton material with self collision
Include cloth stiffness scaling for the group created with scaling 300 for structural and bending stiffness
Run simulation for 50 frames

2.69 - the cylinder collapses onto the collision plane, but the end with the stiff rings maintains a more rigid shape while the remainder is pretty much flat

2.74 and 2.75 RC - the cylinder collapses totally without any difference between the stiffened area of the material and the rest of the shape

I hope this is sufficient information!

Best regards

Martin


Blender 2.75 (sub 0) System Information


Blender:


version 2.75 (sub 0), branch b'master', commit date b'2015-06-10' b'15:39', hash b'bff8b5d', b''
build date: b'Thu 06/11/2015', b'11:26 AM'
platform: b'Windows'
binary path: 'C:\Users\mnorris\Documents\blender-2.75-rc1-win64\blender-app.exe'
build cflags: b'/W3 /w34062 /wd4018 /wd4065 /wd4127 /wd4181 /wd4200 /wd4244 /wd4267 /wd4305 /wd4800 /we4013 /we4431 /nologo /J /Gd /MP /openmp '
build cxxflags: b'/W3 /w34062 /wd4018 /wd4065 /wd4127 /wd4181 /wd4200 /wd4244 /wd4267 /wd4305 /wd4800 /we4013 /we4431 /nologo /J /Gd /EHsc /MP /openmp '
build linkflags: b'/MACHINE:X64 /OPT:NOREF /SUBSYSTEM:CONSOLE /STACK:2097152 /INCREMENTAL:NO /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcmrt.lib /NODEFAULTLIB:msvcurt.lib /NODEFAULTLIB:msvcrtd.lib'
build system: b'CMake'

Python:


version: 3.4.2 (default, Dec 7 2014, 18:21:18) [MSC v.1800 64 bit (AMD64)]
paths:
'C:\Users\mnorris\Documents\blender-2.75-rc1-win64\2.75\scripts\addons_contrib'
'C:\Users\mnorris\Documents\blender-2.75-rc1-win64\2.75\scripts\addons'
'C:\Users\mnorris\Documents\blender-2.75-rc1-win64\2.75\scripts\startup'
'C:\Users\mnorris\Documents\blender-2.75-rc1-win64\2.75\scripts\modules'
'C:\Users\mnorris\Documents\blender-2.75-rc1-win64\python34.zip'
'C:\Users\mnorris\Documents\blender-2.75-rc1-win64\2.75\python\DLLs'
'C:\Users\mnorris\Documents\blender-2.75-rc1-win64\2.75\python\lib'
'C:\Users\mnorris\Documents\blender-2.75-rc1-win64'
'C:\Users\mnorris\Documents\blender-2.75-rc1-win64\2.75\python'
'C:\Users\mnorris\Documents\blender-2.75-rc1-win64\2.75\python\lib\site-packages'
'C:\Users\mnorris\Documents\blender-2.75-rc1-win64\2.75\scripts\freestyle\modules'
'C:\Users\mnorris\Documents\blender-2.75-rc1-win64\2.75\scripts\addons\modules'
'C:\Users\mnorris\AppData\Roaming\Blender Foundation\Blender\2.75\scripts\addons\modules'

Directories:


scripts: ['C:\Users\mnorris\Documents\blender-2.75-rc1-win64\2.75\scripts\modules', 'C:\Users\mnorris\Documents\blender-2.75-rc1-win64\2.75\scripts']
user scripts: 'C:\Users\mnorris\AppData\Roaming\Blender Foundation\Blender\2.75\scripts'
pref scripts: None
datafiles: 'C:\Users\mnorris\AppData\Roaming\Blender Foundation\Blender\2.75\datafiles\'
config: 'C:\Users\mnorris\AppData\Roaming\Blender Foundation\Blender\2.75\config\'
scripts : 'C:\Users\mnorris\AppData\Roaming\Blender Foundation\Blender\2.75\scripts\'
autosave: 'C:\Users\mnorris\AppData\Roaming\Blender Foundation\Blender\2.75\autosave\'
tempdir: 'C:\Users\mnorris\AppData\Local\Temp\blender_a06412\'

FFmpeg:


'avcodec':' ''55, 39, 101'
'avdevice':' ''55, 5, 100'
'avformat':' ''55, 19, 104'
'avutil':' ''52, 48, 101'
'swscale':' '' 2, 5, 101'

SDL


Version: 2.0.3
Loading method: linked (WITH_SDL_DYNLOAD=OFF)

Other Libraries:


OpenColorIO: 1, 0, 8
OpenImageIO: 1, 4, 16
OpenShadingLanguage: 1, 5, 11

OpenGL


renderer: 'Intel(R) HD Graphics 4000'
vendor: 'Intel'
version: '4.0.0 - Build 9.17.10.3040'
extensions:
'GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_blend_color'
'GL_EXT_abgr GL_EXT_texture3D GL_EXT_clip_volume_hint'
'GL_EXT_compiled_vertex_array GL_SGIS_texture_edge_clamp'
'GL_SGIS_generate_mipmap GL_EXT_draw_range_elements GL_SGIS_texture_lod'
'GL_EXT_rescale_normal GL_EXT_packed_pixels GL_EXT_texture_edge_clamp'
'GL_EXT_separate_specular_color GL_ARB_multitexture'
'GL_EXT_texture_env_combine GL_EXT_bgra GL_EXT_blend_func_separate'
'GL_EXT_secondary_color GL_EXT_fog_coord GL_EXT_texture_env_add'
'GL_ARB_texture_cube_map GL_ARB_transpose_matrix GL_ARB_texture_env_add'
'GL_IBM_texture_mirrored_repeat GL_EXT_multi_draw_arrays'
'GL_SUN_multi_draw_arrays GL_NV_blend_square GL_ARB_texture_compression'
'GL_3DFX_texture_compression_FXT1 GL_EXT_texture_filter_anisotropic'
'GL_ARB_texture_border_clamp GL_ARB_point_parameters'
'GL_ARB_texture_env_combine GL_ARB_texture_env_dot3'
'GL_ARB_texture_env_crossbar GL_EXT_texture_compression_s3tc'
'GL_ARB_shadow GL_ARB_window_pos GL_EXT_shadow_funcs'
'GL_EXT_stencil_wrap GL_ARB_vertex_program GL_EXT_texture_rectangle'
'GL_ARB_fragment_program GL_EXT_stencil_two_side'
'GL_ATI_separate_stencil GL_ARB_vertex_buffer_object'
'GL_EXT_texture_lod_bias GL_ARB_occlusion_query GL_ARB_fragment_shader'
'GL_ARB_shader_objects GL_ARB_shading_language_100'
'GL_ARB_texture_non_power_of_two GL_ARB_vertex_shader'
'GL_NV_texgen_reflection GL_ARB_point_sprite'
'GL_ARB_fragment_program_shadow GL_EXT_blend_equation_separate'
'GL_ARB_depth_texture GL_ARB_texture_rectangle GL_ARB_draw_buffers'
'GL_ARB_color_buffer_float GL_ARB_half_float_pixel GL_ARB_texture_float'
'GL_ARB_pixel_buffer_object GL_EXT_framebuffer_object'
'GL_ARB_draw_instanced GL_ARB_half_float_vertex GL_ARB_occlusion_query2'
'GL_EXT_draw_buffers2 GL_WIN_swap_hint GL_EXT_texture_sRGB'
'GL_ARB_multisample GL_EXT_packed_float GL_EXT_texture_shared_exponent'
'GL_ARB_texture_rg GL_ARB_texture_compression_rgtc'
'GL_NV_conditional_render GL_EXT_texture_swizzle GL_ARB_texture_gather'
'GL_ARB_sync GL_ARB_framebuffer_sRGB GL_EXT_packed_depth_stencil'
'GL_ARB_depth_buffer_float GL_EXT_transform_feedback'
'GL_ARB_transform_feedback2 GL_ARB_draw_indirect'
'GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample'
'GL_ARB_framebuffer_object GL_EXT_texture_array GL_EXT_texture_integer'
'GL_ARB_map_buffer_range GL_EXT_texture_snorm'
'GL_ARB_blend_func_extended GL_INTEL_performance_queries'
'GL_ARB_copy_buffer GL_ARB_sampler_objects GL_NV_primitive_restart'
'GL_ARB_seamless_cube_map GL_ARB_uniform_buffer_object'
'GL_ARB_depth_clamp GL_ARB_vertex_array_bgra GL_ARB_shader_bit_encoding'
'GL_ARB_draw_buffers_blend GL_ARB_geometry_shader4'
'GL_ARB_texture_query_lod GL_ARB_explicit_attrib_location'
'GL_ARB_draw_elements_base_vertex GL_ARB_instanced_arrays'
'GL_ARB_fragment_coord_conventions GL_EXT_gpu_program_parameters'
'GL_ARB_texture_buffer_object_rgb32 GL_ARB_compatibility'
'GL_ARB_texture_rgb10_a2ui GL_ARB_texture_multisample'
'GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_timer_query'
'GL_INTEL_map_texture GL_ARB_tessellation_shader'
'GL_ARB_vertex_array_object GL_ARB_provoking_vertex'
'GL_ARB_sample_shading GL_ARB_texture_cube_map_array GL_ARB_gpu_shader5'
'GL_ARB_gpu_shader_fp64 GL_ARB_shader_subroutine'
'GL_ARB_transform_feedback3 '

Implementation Dependent OpenGL Limits:


Maximum Fixed Function Texture Units: 8

GLSL:
Maximum Varying Floats: 64
Maximum Vertex Attributes: 16
Maximum Vertex Uniform Components: 1024
Maximum Fragment Uniform Components: 1024
Maximum Vertex Image Units: 16
Maximum Fragment Image Units: 16
Maximum Pipeline Image Units: 80

Cycles


CPU device capabilities: SSE2 SSE3 SSE41 AVX

OpenCL device capabilities:
Number of platforms: 1
Platform #0
Platform Name: Intel(R) OpenCL
Platform Vendor: Intel(R) Corporation
Platform Version: OpenCL 1.1
Platform Profile: FULL_PROFILE
Platform Extensions: cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_gl_sharing cl_khr_d3d10_sharing cl_intel_dx9_media_sharing cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_event
Number of devices: 1
Device: #0
Device Name: Intel(R) HD Graphics 4000
Device Vendor: Intel(R) Corporation
Device OpenCL C Version: OpenCL C 1.1
Device Profile: FULL_PROFILE
Device Version: OpenCL 1.1
Device Extensions: cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_gl_sharing cl_khr_d3d10_sharing cl_intel_dx9_media_sharing cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_event

**System Information** Windows 7 sp1 64 bit - see system-info.txt pasted at the end Intel (HD) Graphics 4000 integrated **Blender Version** Broken: 2.74 and 2.75RC Worked: 2.69 **Short description of error** The cloth stiffness scaling is not considered during a cloth sim. .blend file attached{[F192103](https://archive.blender.org/developer/F192103/SupportClothStiffness.blend)} Create a collision plane at 0,0,0 scale 3x {apply scaling} - this is the surface the cloth will fall onto Create a cylinder radius 0.5 length 2 not end caps and rotated so the long sides are parallel to the plane and above it by 3 units Edit the cylinder and add 12 loop cuts Select the first 3 rings of vertices of the cylinder and add to vertex group Create a cloth sim for the cylinder of cotton material with self collision Include cloth stiffness scaling for the group created with scaling 300 for structural and bending stiffness Run simulation for 50 frames 2.69 - the cylinder collapses onto the collision plane, but the end with the stiff rings maintains a more rigid shape while the remainder is pretty much flat 2.74 and 2.75 RC - the cylinder collapses totally without any difference between the stiffened area of the material and the rest of the shape I hope this is sufficient information! Best regards Martin **** # Blender 2.75 (sub 0) System Information **** Blender: **** version 2.75 (sub 0), branch b'master', commit date b'2015-06-10' b'15:39', hash b'bff8b5d', b'' build date: b'Thu 06/11/2015', b'11:26 AM' platform: b'Windows' binary path: 'C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64\\blender-app.exe' build cflags: b'/W3 /w34062 /wd4018 /wd4065 /wd4127 /wd4181 /wd4200 /wd4244 /wd4267 /wd4305 /wd4800 /we4013 /we4431 /nologo /J /Gd /MP /openmp ' build cxxflags: b'/W3 /w34062 /wd4018 /wd4065 /wd4127 /wd4181 /wd4200 /wd4244 /wd4267 /wd4305 /wd4800 /we4013 /we4431 /nologo /J /Gd /EHsc /MP /openmp ' build linkflags: b'/MACHINE:X64 /OPT:NOREF /SUBSYSTEM:CONSOLE /STACK:2097152 /INCREMENTAL:NO /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcmrt.lib /NODEFAULTLIB:msvcurt.lib /NODEFAULTLIB:msvcrtd.lib' build system: b'CMake' Python: **** version: 3.4.2 (default, Dec 7 2014, 18:21:18) [MSC v.1800 64 bit (AMD64)] paths: 'C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64\\2.75\\scripts\\addons_contrib' 'C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64\\2.75\\scripts\\addons' 'C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64\\2.75\\scripts\\startup' 'C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64\\2.75\\scripts\\modules' 'C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64\\python34.zip' 'C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64\\2.75\\python\\DLLs' 'C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64\\2.75\\python\\lib' 'C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64' 'C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64\\2.75\\python' 'C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64\\2.75\\python\\lib\\site-packages' 'C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64\\2.75\\scripts\\freestyle\\modules' 'C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64\\2.75\\scripts\\addons\\modules' 'C:\\Users\\mnorris\\AppData\\Roaming\\Blender Foundation\\Blender\\2.75\\scripts\\addons\\modules' Directories: **** scripts: ['C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64\\2.75\\scripts\\modules', 'C:\\Users\\mnorris\\Documents\\blender-2.75-rc1-win64\\2.75\\scripts'] user scripts: 'C:\\Users\\mnorris\\AppData\\Roaming\\Blender Foundation\\Blender\\2.75\\scripts' pref scripts: None datafiles: 'C:\\Users\\mnorris\\AppData\\Roaming\\Blender Foundation\\Blender\\2.75\\datafiles\\' config: 'C:\\Users\\mnorris\\AppData\\Roaming\\Blender Foundation\\Blender\\2.75\\config\\' scripts : 'C:\\Users\\mnorris\\AppData\\Roaming\\Blender Foundation\\Blender\\2.75\\scripts\\' autosave: 'C:\\Users\\mnorris\\AppData\\Roaming\\Blender Foundation\\Blender\\2.75\\autosave\\' tempdir: 'C:\\Users\\mnorris\\AppData\\Local\\Temp\\blender_a06412\\' FFmpeg: **** 'avcodec':' ''55, 39, 101' 'avdevice':' ''55, 5, 100' 'avformat':' ''55, 19, 104' 'avutil':' ''52, 48, 101' 'swscale':' '' 2, 5, 101' SDL **** Version: 2.0.3 Loading method: linked (WITH_SDL_DYNLOAD=OFF) Other Libraries: **** OpenColorIO: 1, 0, 8 OpenImageIO: 1, 4, 16 OpenShadingLanguage: 1, 5, 11 OpenGL **** renderer: 'Intel(R) HD Graphics 4000' vendor: 'Intel' version: '4.0.0 - Build 9.17.10.3040' extensions: 'GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_blend_color' 'GL_EXT_abgr GL_EXT_texture3D GL_EXT_clip_volume_hint' 'GL_EXT_compiled_vertex_array GL_SGIS_texture_edge_clamp' 'GL_SGIS_generate_mipmap GL_EXT_draw_range_elements GL_SGIS_texture_lod' 'GL_EXT_rescale_normal GL_EXT_packed_pixels GL_EXT_texture_edge_clamp' 'GL_EXT_separate_specular_color GL_ARB_multitexture' 'GL_EXT_texture_env_combine GL_EXT_bgra GL_EXT_blend_func_separate' 'GL_EXT_secondary_color GL_EXT_fog_coord GL_EXT_texture_env_add' 'GL_ARB_texture_cube_map GL_ARB_transpose_matrix GL_ARB_texture_env_add' 'GL_IBM_texture_mirrored_repeat GL_EXT_multi_draw_arrays' 'GL_SUN_multi_draw_arrays GL_NV_blend_square GL_ARB_texture_compression' 'GL_3DFX_texture_compression_FXT1 GL_EXT_texture_filter_anisotropic' 'GL_ARB_texture_border_clamp GL_ARB_point_parameters' 'GL_ARB_texture_env_combine GL_ARB_texture_env_dot3' 'GL_ARB_texture_env_crossbar GL_EXT_texture_compression_s3tc' 'GL_ARB_shadow GL_ARB_window_pos GL_EXT_shadow_funcs' 'GL_EXT_stencil_wrap GL_ARB_vertex_program GL_EXT_texture_rectangle' 'GL_ARB_fragment_program GL_EXT_stencil_two_side' 'GL_ATI_separate_stencil GL_ARB_vertex_buffer_object' 'GL_EXT_texture_lod_bias GL_ARB_occlusion_query GL_ARB_fragment_shader' 'GL_ARB_shader_objects GL_ARB_shading_language_100' 'GL_ARB_texture_non_power_of_two GL_ARB_vertex_shader' 'GL_NV_texgen_reflection GL_ARB_point_sprite' 'GL_ARB_fragment_program_shadow GL_EXT_blend_equation_separate' 'GL_ARB_depth_texture GL_ARB_texture_rectangle GL_ARB_draw_buffers' 'GL_ARB_color_buffer_float GL_ARB_half_float_pixel GL_ARB_texture_float' 'GL_ARB_pixel_buffer_object GL_EXT_framebuffer_object' 'GL_ARB_draw_instanced GL_ARB_half_float_vertex GL_ARB_occlusion_query2' 'GL_EXT_draw_buffers2 GL_WIN_swap_hint GL_EXT_texture_sRGB' 'GL_ARB_multisample GL_EXT_packed_float GL_EXT_texture_shared_exponent' 'GL_ARB_texture_rg GL_ARB_texture_compression_rgtc' 'GL_NV_conditional_render GL_EXT_texture_swizzle GL_ARB_texture_gather' 'GL_ARB_sync GL_ARB_framebuffer_sRGB GL_EXT_packed_depth_stencil' 'GL_ARB_depth_buffer_float GL_EXT_transform_feedback' 'GL_ARB_transform_feedback2 GL_ARB_draw_indirect' 'GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample' 'GL_ARB_framebuffer_object GL_EXT_texture_array GL_EXT_texture_integer' 'GL_ARB_map_buffer_range GL_EXT_texture_snorm' 'GL_ARB_blend_func_extended GL_INTEL_performance_queries' 'GL_ARB_copy_buffer GL_ARB_sampler_objects GL_NV_primitive_restart' 'GL_ARB_seamless_cube_map GL_ARB_uniform_buffer_object' 'GL_ARB_depth_clamp GL_ARB_vertex_array_bgra GL_ARB_shader_bit_encoding' 'GL_ARB_draw_buffers_blend GL_ARB_geometry_shader4' 'GL_ARB_texture_query_lod GL_ARB_explicit_attrib_location' 'GL_ARB_draw_elements_base_vertex GL_ARB_instanced_arrays' 'GL_ARB_fragment_coord_conventions GL_EXT_gpu_program_parameters' 'GL_ARB_texture_buffer_object_rgb32 GL_ARB_compatibility' 'GL_ARB_texture_rgb10_a2ui GL_ARB_texture_multisample' 'GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_timer_query' 'GL_INTEL_map_texture GL_ARB_tessellation_shader' 'GL_ARB_vertex_array_object GL_ARB_provoking_vertex' 'GL_ARB_sample_shading GL_ARB_texture_cube_map_array GL_ARB_gpu_shader5' 'GL_ARB_gpu_shader_fp64 GL_ARB_shader_subroutine' 'GL_ARB_transform_feedback3 ' Implementation Dependent OpenGL Limits: **** Maximum Fixed Function Texture Units: 8 GLSL: Maximum Varying Floats: 64 Maximum Vertex Attributes: 16 Maximum Vertex Uniform Components: 1024 Maximum Fragment Uniform Components: 1024 Maximum Vertex Image Units: 16 Maximum Fragment Image Units: 16 Maximum Pipeline Image Units: 80 Cycles **** CPU device capabilities: SSE2 SSE3 SSE41 AVX OpenCL device capabilities: Number of platforms: 1 Platform #0 Platform Name: Intel(R) OpenCL Platform Vendor: Intel(R) Corporation Platform Version: OpenCL 1.1 Platform Profile: FULL_PROFILE Platform Extensions: cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_gl_sharing cl_khr_d3d10_sharing cl_intel_dx9_media_sharing cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_event Number of devices: 1 Device: #0 Device Name: Intel(R) HD Graphics 4000 Device Vendor: Intel(R) Corporation Device OpenCL C Version: OpenCL C 1.1 Device Profile: FULL_PROFILE Device Version: OpenCL 1.1 Device Extensions: cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_gl_sharing cl_khr_d3d10_sharing cl_intel_dx9_media_sharing cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_event
Author

Changed status to: 'Open'

Changed status to: 'Open'
Martin Norris self-assigned this 2015-06-15 15:12:40 +02:00
Author

Added subscriber: @MartinNorris

Added subscriber: @MartinNorris
Member

Added subscriber: @Blendify

Added subscriber: @Blendify
Member

is the the same as #44157

is the the same as #44157
Martin Norris was unassigned by Aaron Carlisle 2015-06-15 19:06:46 +02:00
Lukas Tönne was assigned by Aaron Carlisle 2015-06-15 19:06:46 +02:00
Author

I do not think this is the same as #44157 which is concerned with the whole mesh.
This is related specifically to having 'cloth stiffness scaling' for a group of vertices.
But that is not to say that the 2 are not related 'under the hood' since they are both concerned with stiffness.

Best regards

Martin

I do not think this is the same as #44157 which is concerned with the whole mesh. This is related specifically to having 'cloth stiffness scaling' for a group of vertices. But that is not to say that the 2 are not related 'under the hood' since they are both concerned with stiffness. Best regards Martin

Added subscriber: @lfb3d

Added subscriber: @lfb3d

Cloth Scaling Stiffness seems to work well for me in Blender 2.74 on my MacBookPro. A good Blender file (ClothStiffness2.blend) can be found in this ticket: https://developer.blender.org/T39371 . It also provides a great explanation.

For more elaboration on Cloth Stiffness Scaling, you can find it here: http://blender.stackexchange.com/questions/32043/how-does-the-cloth-stiffness-scaling-option-work/32951

You can see a much more noticeable difference with small values such as 0.0001 and 1000.0 for Bending Stiffness (as opposed to 5.0 vs 5000.0).

Cloth Scaling Stiffness seems to work well for me in Blender 2.74 on my MacBookPro. A good Blender file (ClothStiffness2.blend) can be found in this ticket: https://developer.blender.org/T39371 . It also provides a great explanation. For more elaboration on Cloth Stiffness Scaling, you can find it here: http://blender.stackexchange.com/questions/32043/how-does-the-cloth-stiffness-scaling-option-work/32951 You can see a much more noticeable difference with small values such as 0.0001 and 1000.0 for Bending Stiffness (as opposed to 5.0 vs 5000.0).
Author

Hi Luis

Thank you for the reference to the blend file, but it does not work {on my Windows 64 sp 1 laptop!}
Please can you post a screen dump of the simulation at frame 50?
Is it the same in 2.69?

Using that blend on 2.74 have

ClothStiffness2on2-74.png

And the same file on 2.69 have

ClothStiffness2on2-69.png

I am not sure why the cloth on the right did not fall, but otherwise this neatly demonstrates the problem.
The cloth on the left has a cloth stiffness scaling applied
In 2.69 you can see that the cloth is much more stiff
Where in 2.74 both clothes have exactly the same simulation, the cloth on the left has the same basic shape despite the extra stiffness to the fabric

Best regards

Martin

Hi Luis Thank you for the reference to the blend file, but it does not work {on my Windows 64 sp 1 laptop!} Please can you post a screen dump of the simulation at frame 50? Is it the same in 2.69? Using that blend on 2.74 have ![ClothStiffness2on2-74.png](https://archive.blender.org/developer/F197373/ClothStiffness2on2-74.png) And the same file on 2.69 have ![ClothStiffness2on2-69.png](https://archive.blender.org/developer/F197375/ClothStiffness2on2-69.png) I am not sure why the cloth on the right did not fall, but otherwise this neatly demonstrates the problem. The cloth on the left has a cloth stiffness scaling applied In 2.69 you can see that the cloth is much more stiff Where in 2.74 both clothes have exactly the same simulation, the cloth on the left has the same basic shape despite the extra stiffness to the fabric Best regards Martin
Author

Hi Luis,

And as a follow up, I noticed your explanation on stack exchange
It is a great explanation and that is exactly as I understand how the cloth stiffness scaling group should work
And even better you have a screen shot of the stiffened cloth 1/2 over a sphere
For reference here is the equivalent in 2.74 on Windows 64 sp1

ClothStiffness2on2-74-at70.png

This is so different from yours!
The cloth in no way bounced back.
And I want yours :D

Best regards

Martin

Hi Luis, And as a follow up, I noticed your explanation on stack exchange It is a great explanation and that is exactly as I understand how the cloth stiffness scaling group should work And even better you have a screen shot of the stiffened cloth 1/2 over a sphere For reference here is the equivalent in 2.74 on Windows 64 sp1 ![ClothStiffness2on2-74-at70.png](https://archive.blender.org/developer/F197382/ClothStiffness2on2-74-at70.png) This is so different from yours! The cloth in no way bounced back. And I want yours :D Best regards Martin

Hi @MartinNorris,

Thanks for the feedback and the notes.

In #45084#317654, @MartinNorris wrote:
For reference here is the equivalent in 2.74 on Windows 64 sp1

This is basically, what I get as well.

In #45084#317630, @lfb3d wrote:
You can see a much more noticeable difference with small values such as 0.0001 and 1000.0 for Bending Stiffness (as opposed to 5.0 vs 5000.0).

It can be hard to tell the difference of Bending Stiffness values with min&max values such as 0.5&200.0 ; I would try min&max values such as 0.0001 & 1000.0 to easily be able to tell the difference. (Anything higher than 1.0 is basically the same stiffness for my visual perception). Does this help?

Any relevant feedback/questions are welcome. Thanks again!

Hi @MartinNorris, Thanks for the feedback and the notes. > In #45084#317654, @MartinNorris wrote: > For reference here is the equivalent in 2.74 on Windows 64 sp1 This is basically, what I get as well. > In #45084#317630, @lfb3d wrote: > You can see a much more noticeable difference with small values such as 0.0001 and 1000.0 for Bending Stiffness (as opposed to 5.0 vs 5000.0). It can be hard to tell the difference of Bending Stiffness values with min&max values such as 0.5&200.0 ; I would try min&max values such as 0.0001 & 1000.0 to easily be able to tell the difference. (Anything higher than 1.0 is basically the same stiffness for my visual perception). Does this help? Any relevant feedback/questions are welcome. Thanks again!
Author

Hi Luis,

I am sorry, but this does not make sense.
The screen shots above are generated using the ClothStiffness2.blend and they are not the same as you posted in the stack exchange article!
On the stack exchange screen shot yo posted the LHS of the left cloth has clearly sprung back
On the 2.74 screen shot I posted above, there is not the same spring back.

I quite understand what you mean by changing the values to create an extreme difference from the base material of 0.0001 and a maximum value of 1000
But this really misses the point, since you need to be able to set the base material to sensible values {as for example in the presets}
For example changing the left hand cloth to have a base stiffness of 0.0001 and scaled LHS of 1000 results in this:

ClothStiffness2on2-74-extreme.png

You can see how the low stiffness of the cloth on the RHS, with the blue 0 weight, is allowing the cloth to distort and stretch like the cloth is made of pizza dough.
And though I agree that the LHS, with the red 1 weight, is more stiff, it appears more like the unscaled 2.69 simulation

So to summarize the situation there is a big difference between the cloth simulation for 2.69 and 2.7x

Best regards

Martin

PS the stretching of the cloth at low structural stiffness makes it look exactly like pizza dough which is inspiring for creating a scene! Or just going for pizza :P

PPS Maybe maybe maybe the scaling has somehow reversed between 2.69 and 2.7x?
So that the cloth stiffness scaling indicates, with red weight 1 where the base stiffness applies?
Which has then created problems making the unweighted side less stiff?

Hi Luis, I am sorry, but this does not make sense. The screen shots above are generated using the ClothStiffness2.blend and they are not the same as you posted in the stack exchange article! On the stack exchange screen shot yo posted the LHS of the left cloth has clearly sprung back On the 2.74 screen shot I posted above, there is not the same spring back. I quite understand what you mean by changing the values to create an extreme difference from the base material of 0.0001 and a maximum value of 1000 But this really misses the point, since you need to be able to set the base material to sensible values {as for example in the presets} For example changing the left hand cloth to have a base stiffness of 0.0001 and scaled LHS of 1000 results in this: ![ClothStiffness2on2-74-extreme.png](https://archive.blender.org/developer/F197396/ClothStiffness2on2-74-extreme.png) You can see how the low stiffness of the cloth on the RHS, with the blue 0 weight, is allowing the cloth to distort and stretch like the cloth is made of pizza dough. And though I agree that the LHS, with the red 1 weight, is more stiff, it appears more like the _unscaled_ 2.69 simulation So to summarize the situation there is a big difference between the cloth simulation for 2.69 and 2.7x Best regards Martin PS the stretching of the cloth at low structural stiffness makes it look exactly like pizza dough which is _inspiring_ for creating a scene! Or just going for pizza :P PPS Maybe maybe maybe the scaling has somehow reversed between 2.69 and 2.7x? So that the cloth stiffness scaling indicates, with red weight 1 where the base stiffness applies? Which has then created problems making the unweighted side less stiff?

Hi @MartinNorris,

Thanks for the continued feedback and notes. I have three thoughts based on your results/response:

In #45084#317657, @MartinNorris wrote:
For example changing the left hand cloth to have a base stiffness of 0.0001 and scaled LHS of 1000 results in this:
You can see how the low stiffness of the cloth on the RHS, with the blue 0 weight, is allowing the cloth to distort and stretch like the cloth is made of pizza dough.
And though I agree that the LHS, with the red 1 weight, is more stiff, it appears more like the unscaled 2.69 simulation

  1. It definitely looks like Cloth Stiffness Scaling is working. It's stiff on the LHS and not-stiff on the RHS.

In #45084#317657, @MartinNorris wrote:
But this really misses the point, since you need to be able to set the base material to sensible values {as for example in the presets}

  1. In my opinion, you should choose whatever values work for you. I don't really trust those Presets, they were set back in 2008 and have probably never been changed. Furthermore, are they using accurate units? Maybe the metric system, but I'm not sure, and the cloth code has a multiplicative factor on the stiffness values that I don't comprehend. However, if you'd like to look for real bending stiffness values with real units, you might try: http://people.csail.mit.edu/klbouman/pw/projects/materialproperties/dataset.html . However, I would convert the values in the dataset to N*m and kg though before experimenting with them. Furthermore, I've found that values between 0.0001 and 1.0 provide a wider range of stiffness with a precision of 0.0005, as opposed to 1.0 to 1000.0 with a precision of 5.0 (I haven't fully tested this, but I have seen simulations leaning in this direction). In conclusion, just play around with whichever values work for you.

In #45084#317657, @MartinNorris wrote:
So to summarize the situation there is a big difference between the cloth simulation for 2.69 and 2.7x
PPS Maybe maybe maybe the scaling has somehow reversed between 2.69 and 2.7x?
So that the cloth stiffness scaling indicates, with red weight 1 where the base stiffness applies?
Which has then created problems making the unweighted side less stiff?

  1. I can't speak to v2.69, but by looking at your screenshots, it doesn't look like anything is reversed. Even in your one screenshot of 2.69, it looks to me like the LHS is stiffer than the RHS. This means (to me) that the Cloth Stiffness Scaling feature is working (albeit, maybe the difference in stiffness is not as dramatic, but I see it). Again, I cannot speak to the compatibility between 2.69 and 2.74 (they're probably not compatible on many things, if I were to wager).

I hope this helps. Feel free to offer any more questions/comments.

P.S. Pizza does sound good ^_^

Hi @MartinNorris, Thanks for the continued feedback and notes. I have three thoughts based on your results/response: > In #45084#317657, @MartinNorris wrote: > For example changing the left hand cloth to have a base stiffness of 0.0001 and scaled LHS of 1000 results in this: > You can see how the low stiffness of the cloth on the RHS, with the blue 0 weight, is allowing the cloth to distort and stretch like the cloth is made of pizza dough. > And though I agree that the LHS, with the red 1 weight, is more stiff, it appears more like the _unscaled_ 2.69 simulation 1) It definitely looks like Cloth Stiffness Scaling is working. It's stiff on the LHS and not-stiff on the RHS. > In #45084#317657, @MartinNorris wrote: > But this really misses the point, since you need to be able to set the base material to sensible values {as for example in the presets} 2) In my opinion, you should choose whatever values work for you. I don't really trust those Presets, they were set back in 2008 and have probably never been changed. Furthermore, are they using accurate units? Maybe the metric system, but I'm not sure, and the cloth code has a multiplicative factor on the stiffness values that I don't comprehend. However, if you'd like to look for real bending stiffness values with real units, you might try: http://people.csail.mit.edu/klbouman/pw/projects/materialproperties/dataset.html . However, I would convert the values in the dataset to N*m and kg though before experimenting with them. Furthermore, I've found that values between 0.0001 and 1.0 provide a wider range of stiffness with a precision of 0.0005, as opposed to 1.0 to 1000.0 with a precision of 5.0 (I haven't fully tested this, but I have seen simulations leaning in this direction). In conclusion, just play around with whichever values work for you. > In #45084#317657, @MartinNorris wrote: > So to summarize the situation there is a big difference between the cloth simulation for 2.69 and 2.7x > PPS Maybe maybe maybe the scaling has somehow reversed between 2.69 and 2.7x? > So that the cloth stiffness scaling indicates, with red weight 1 where the base stiffness applies? > Which has then created problems making the unweighted side less stiff? 3) I can't speak to v2.69, but by looking at your screenshots, it doesn't look like anything is reversed. Even in your one screenshot of 2.69, it looks to me like the LHS is stiffer than the RHS. This means (to me) that the Cloth Stiffness Scaling feature is working (albeit, maybe the difference in stiffness is not as dramatic, but I see it). Again, I cannot speak to the compatibility between 2.69 and 2.74 (they're probably not compatible on many things, if I were to wager). I hope this helps. Feel free to offer any more questions/comments. P.S. Pizza does sound good ^_^
Author

Hi again Luis,

Sorry to keep responding to your comments, but my thoughts on your thoughts ...

1/ I hesitate to say that it is working
A better description is that it is doing something.
From a user perspective 2.7x is broken compared to 2.69 because the behavior is completely different!
I think that any dramatic change of the behavior in one particular area of the system where the rest behaves the same means that there is a problem.

2A/ I think that the presets are reasonable representations of the materials
The cotton looks like cotton, the silk like silk etc.,. when they are used for the simulation
And adding a stiffness scaling should not invalidate the values chosen for the base material

2B/ Yes, it is possible to change the values, but the problem is that you have to modify the values for the base stiffness:
For example in 2.69 the base material is cotton and the stiff material is much stiffer, say canvas.
This has the value base structure 15 / bending 0.5 and maximum structure 300 / bending 300
Then we have the simulation as shown for 2.69 a mix of cotton and canvas on the sphere
In 2.7x to obtain a stiff mix that is equivalent I have to reduce the base material stiffness
So the base material does not act like it should!!!
Instead of cotton and canvas it ends up as cotton and pizza!

3/ I agree there is a difference in stiffness but there is a huge difference between the screen shot of 2.69 and 2.7x for the simulation with cloth stiffness scaling.
And the problem is that for 2.7x there is no difference in the simulation where there is no stiffness scaling

2.69 without scaling and 2.7x without scaling = same

ClothStiffness2.69-without.png ClothStiffness2.74-without.png

2.69 with scaling and 2.7x with scaling != same

ClothStiffness2.69-with.png ClothStiffness2.74-with.png

So clearly there is a big difference in versions
Since the simulation without cloth stiffness scaling is working exactly the same, I feel that whatever has changed in just this area is broken, because it is not just a question of different values in the cloth stiffness scaling, but also changing values in the part that works

Best regards

Martin

PS Hey, and any time you are in São Paulo then I will gladly buy you pizza and we can chat about Blender :)

Hi again Luis, Sorry to keep responding to your comments, but my thoughts on your thoughts ... 1/ I hesitate to say that it is _working_ A better description is that it is doing something. From a user perspective 2.7x is broken compared to 2.69 because the behavior is completely different! I think that any dramatic change of the behavior in one particular area of the system where the rest behaves the same means that there is a problem. 2A/ I think that the presets are reasonable representations of the materials The cotton looks like cotton, the silk like silk etc.,. when they are used for the simulation And adding a stiffness scaling should not invalidate the values chosen for the base material 2B/ Yes, it is possible to change the values, but the problem is that you have to modify the values for the base stiffness: For example in 2.69 the base material is cotton and the stiff material is much stiffer, say canvas. This has the value base structure 15 / bending 0.5 and maximum structure 300 / bending 300 Then we have the simulation as shown for 2.69 a mix of cotton and canvas on the sphere In 2.7x to obtain a stiff mix that is equivalent I have to reduce the base material stiffness So the base material does not act like it should!!! Instead of cotton and canvas it ends up as cotton and pizza! 3/ I agree there is a difference in stiffness but there is a huge difference between the screen shot of 2.69 and 2.7x for the simulation with cloth stiffness scaling. And the problem is that for 2.7x there is no difference in the simulation where there is no stiffness scaling 2.69 without scaling and 2.7x without scaling = same ![ClothStiffness2.69-without.png](https://archive.blender.org/developer/F197425/ClothStiffness2.69-without.png) ![ClothStiffness2.74-without.png](https://archive.blender.org/developer/F197427/ClothStiffness2.74-without.png) 2.69 with scaling and 2.7x with scaling != same ![ClothStiffness2.69-with.png](https://archive.blender.org/developer/F197429/ClothStiffness2.69-with.png) ![ClothStiffness2.74-with.png](https://archive.blender.org/developer/F197431/ClothStiffness2.74-with.png) So clearly there is a big difference in versions Since the simulation without cloth stiffness scaling is working exactly the same, I feel that whatever has changed in just this area is broken, because it is not just a question of different values in the cloth stiffness scaling, but also changing values in the part that works Best regards Martin PS Hey, and any time you are in São Paulo then I will gladly buy you pizza and we can chat about Blender :)

I see what you're saying. There is definitely a significant difference in the appearance of stiffness in 2.69 and 2.7x (using Cloth Stiffness Scaling). I would want a stiffness of 300 to look like 2.69, and not 2.7x.

2.7x only looks kind of stiff as compared to 2.69. I agree that there is a problem. I'm not sure what it is. My first guess would be the changes to cloth/hair solver that @LukasTonne has been making over the past year. But then why do both versions act similar without using Scaling Stiffness?

(I wonder what it looks like for 2.69 and 2.7x without Scaling Stiffness and a Stiffness value of 300.0)

I see what you're saying. There is definitely a significant difference in the appearance of stiffness in 2.69 and 2.7x (using Cloth Stiffness Scaling). I would want a stiffness of 300 to look like 2.69, and not 2.7x. 2.7x only looks kind of stiff as compared to 2.69. I agree that there is a problem. I'm not sure what it is. My first guess would be the changes to cloth/hair solver that @LukasTonne has been making over the past year. But then why do both versions act similar without using Scaling Stiffness? (I wonder what it looks like for 2.69 and 2.7x without Scaling Stiffness and a Stiffness value of 300.0)
Author

Bom dia Luis,

Both versions of blender with a structural and bending stiffness of 300

2.69 - pretty darn stiff

ClothStiffness2.69-at300.png

2.74 -

ClothStiffness2.74-at300.png

So, interesting right?!

I tried changing the parameters and there is nothing I could do in 2.74 to make the cloth as stiff as 2.69

Best regards

Martin

Bom dia Luis, Both versions of blender with a structural and bending stiffness of 300 2.69 - pretty darn stiff ![ClothStiffness2.69-at300.png](https://archive.blender.org/developer/F197562/ClothStiffness2.69-at300.png) 2.74 - ![ClothStiffness2.74-at300.png](https://archive.blender.org/developer/F197563/ClothStiffness2.74-at300.png) So, interesting right?! I tried changing the parameters and there is nothing I could do in 2.74 to make the cloth as stiff as 2.69 Best regards Martin
Author

Looking through different links for all things related to cloth e.g. https:*developer.blender.org/T44157 and https:*developer.blender.org/T43911 it looks like something has broken for the stiffness generally in the cloth sim.
Perhaps Lukas should merge all these bugs into one, and push up the priority?

Looking through different links for all things related to cloth e.g. https:*developer.blender.org/T44157 and https:*developer.blender.org/T43911 it looks like something has broken for the stiffness generally in the cloth sim. Perhaps Lukas should merge all these bugs into one, and push up the priority?

Thanks for making that test -- that is very revealing. It is very clear that 2.69 and 2.74 are very different in terms of bending forces. I believe this commit might be the culprit: https://developer.blender.org/rB48e67c49a595

I think @LukasTonne would agree. Would anyone care to test this theory? (I'm not sure how to download/compile/run a build of Blender as of yet)

Thanks for making that test -- that is very revealing. It is very clear that 2.69 and 2.74 are very different in terms of bending forces. I believe this commit might be the culprit: https://developer.blender.org/rB48e67c49a595 I think @LukasTonne would agree. Would anyone care to test this theory? (I'm not sure how to download/compile/run a build of Blender as of yet)
Author

Hi Luiz,

It has taken me a little while because of other things, but I have the latest {2.75a now} version of Blender compiling on my computer. {Windows 64}

So I tried a little test.
Making cb = kb = scaling / (20.0f * (parms->avg_spring_len + FLT_EPSILON));" does restore the cloth sim, so that there is differential stiffness between different parts of the cloth mesh
This is following up on your point above in the commit you highlighted.

cb is set to a scaling based on a parameter bending_damping
But this parameter is not set anywhere in the cloth sim so I think it uses the default value 0.5
As you point out the original paper suggests that cb is chosen to be similar to kb, and the original code "cb = kb = scaling / (20.0f * (parms->avg_spring_len + FLT_EPSILON));" makes this very specific.
My feeling is that the bending_damping is supposed to effect the sim by modifying the cb, but because it is fixed it does not bear any relation to the kb
In particular kb brings in the mesh stiffness "s->stiffness" in "scaling = parms->bending + s->stiffness * fabsf(parms->max_bend - parms->bending);"
So perhaps the code should be something like "cb = kb * bending_damping"
Now I have the code compiling I will try something along these lines

Anything else you think of then please let me know

Best regards

Martin

Hi Luiz, It has taken me a little while because of other things, but I have the latest {2.75a now} version of Blender compiling on my computer. {Windows 64} So I tried a little test. Making cb = kb = scaling / (20.0f * (parms->avg_spring_len + FLT_EPSILON));" _does_ restore the cloth sim, so that there is differential stiffness between different parts of the cloth mesh This is following up on your point above in the commit you highlighted. cb is set to a scaling based on a parameter bending_damping But this parameter is not set anywhere in the cloth sim so I think it uses the default value 0.5 As you point out the original paper suggests that cb is chosen to be similar to kb, and the original code "cb = kb = scaling / (20.0f * (parms->avg_spring_len + FLT_EPSILON));" makes this very specific. My feeling is that the bending_damping is supposed to effect the sim by modifying the cb, but because it is fixed it does not bear any relation to the kb In particular kb brings in the mesh stiffness "s->stiffness" in "scaling = parms->bending + s->stiffness * fabsf(parms->max_bend - parms->bending);" So perhaps the code should be something like "cb = kb * bending_damping" Now I have the code compiling I will try something along these lines Anything else you think of then please let me know Best regards Martin

Hi Martin,

Thanks for looking into that. What do you think should be the next steps? Commit this code to revert changes? Offer a plugin with the fix? Offer an executable with the fix?

(Also, what instructions did you use to compile Blender from code? I'm using a MacbookPro.)

Thanks again,
Luis Bermudez

Hi Martin, Thanks for looking into that. What do you think should be the next steps? Commit this code to revert changes? Offer a plugin with the fix? Offer an executable with the fix? (Also, what instructions did you use to compile Blender from code? I'm using a MacbookPro.) Thanks again, Luis Bermudez
Author

Hi Luiz,

I am going to try and add a patch to correct the problem
I did some testing and regression testing because the 'bending_damping' is a value you can set for hair, but not cloth.
Simply reverting the change would then break the hair sim while fixing the cloth sim
So the change that is best is to use scaled version of cb
e.g. cb = kb * parms->bending_damping;
This maintains the bending_damping for hair, but returns the cloth simulation to cb = kb
The screen shots for the tests follow, you can see in 2.69 there is no hair damping {cloth is properly stiff}; in 2.75a there is hair damping but the cloth has no stiffness; and then in the patch the hair has damping and the cloth has stiffness!

I have a Windows 7 64 bit machine.
I followed the instructions for building using Visual Studio 2013 Express and CMake
As in the building Blender page on the wiki
It took me a while because there was an interruption in the subversion checkout of the libraries which messed up the build environment, but by removing and starting again it built first time

When I was doing some tests I thought it would be interesting to see if the bending_damping would do anything useful to the cloth sim
But some tests using cb = 0.01 * kb; to cb = 100 * kb; did not make any difference to the sim

I will update the comments here on the progress of the patch

Best regards

Martin

The tests -

2.69 cloth and hair
TestBendingDamping_cloth_2_69.png TestBendingDamping_hair_2_69.png

2.75a cloth and hair
TestBendingDamping_cloth_2_75a.png TestBendingDamping_hair_2_75a.png

2.75a with patch, cloth and hair
TestBendingDamping_cloth_2_75a_patch.png TestBendingDamping_hair_2_75a_patch.png

Hi Luiz, I am going to try and add a patch to correct the problem I did some testing and regression testing because the 'bending_damping' is a value you can set for hair, but not cloth. Simply reverting the change would then break the hair sim while fixing the cloth sim So the change that is best is to use scaled version of cb e.g. cb = kb * parms->bending_damping; This maintains the bending_damping for hair, but returns the cloth simulation to cb = kb The screen shots for the tests follow, you can see in 2.69 there is no hair damping {cloth is properly stiff}; in 2.75a there is hair damping but the cloth has no stiffness; and then in the patch the hair has damping and the cloth has stiffness! I have a Windows 7 64 bit machine. I followed the instructions for building using Visual Studio 2013 Express and CMake [As in the building Blender page on the wiki ](http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Windows/msvc/CMake) It took me a while because there was an interruption in the subversion checkout of the libraries which messed up the build environment, but by removing and starting again it built first time When I was doing some tests I thought it would be interesting to see if the bending_damping would do anything useful to the cloth sim But some tests using cb = 0.01 * kb; to cb = 100 * kb; did not make any difference to the sim I will update the comments here on the progress of the patch Best regards Martin The tests - 2.69 cloth and hair ![TestBendingDamping_cloth_2_69.png](https://archive.blender.org/developer/F219500/TestBendingDamping_cloth_2_69.png) ![TestBendingDamping_hair_2_69.png](https://archive.blender.org/developer/F219502/TestBendingDamping_hair_2_69.png) 2.75a cloth and hair ![TestBendingDamping_cloth_2_75a.png](https://archive.blender.org/developer/F219504/TestBendingDamping_cloth_2_75a.png) ![TestBendingDamping_hair_2_75a.png](https://archive.blender.org/developer/F219506/TestBendingDamping_hair_2_75a.png) 2.75a with patch, cloth and hair ![TestBendingDamping_cloth_2_75a_patch.png](https://archive.blender.org/developer/F219508/TestBendingDamping_cloth_2_75a_patch.png) ![TestBendingDamping_hair_2_75a_patch.png](https://archive.blender.org/developer/F219510/TestBendingDamping_hair_2_75a_patch.png)
Author

Hi Luis,

I posted the patch today D1454 and sent it to the bf-committers list

I have been checking related bugs and have found the same fix will resolve
#44157 and #43911

Since you are tracking cloth related things, have you noticed any other similar instances?

Best regards

Martin

Hi Luis, I posted the patch today [D1454](https://archive.blender.org/developer/D1454) and sent it to the bf-committers list I have been checking related bugs and have found the same fix will resolve #44157 and #43911 Since you are tracking cloth related things, have you noticed any other similar instances? Best regards Martin
Member

Regarding the email I don't think I thought of a solution if you want to clarify that in your email I don't have an account for that yet

Regarding the email I don't think I thought of a solution if you want to clarify that in your email I don't have an account for that yet

Added subscriber: @RayMairlot

Added subscriber: @RayMairlot

This issue was referenced by 68a9328a58

This issue was referenced by 68a9328a5879eeee8ff3286862ba23f7a7bb07c8
Member

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'
Author

Thank you everyone for helping with this patch!

Thank you everyone for helping with this patch!

Thanks, Martin!

Also, why does kb have an undefined denominator of (20.0f * (parms->avg_spring_len + FLT_EPSILON)) and cb does not?

Thanks again!

Thanks, Martin! Also, why does kb have an undefined denominator of (20.0f * (parms->avg_spring_len + FLT_EPSILON)) and cb does not? Thanks again!
Author

Hi @lfb3d

Both kb and cb do have the same scaling factor because

Given factor_X = 20.0f * (parms->avg_spring_len + FLT_EPSILON)

1/ kb = scaling / factor_X;
2/ cb = kb * parms->bending_damping;

Therefore
cb = scaling / factor_X * parms->bending_damping;

C code in this case reads much like the math!

I am not certain but I think factor_X is there to add a certain 'scale independence' to the simulation so that the kb {and hence cb} is scaled to the average cloth size
That is if your mesh is X blender units in size, the cloth sim looks like the appropriate material because the scaling makes X proportional to the SI units in the preset

Hope this helps

Martin

Hi @lfb3d Both kb and cb _do_ have the same scaling factor because Given _factor_X_ = 20.0f * (parms->avg_spring_len + FLT_EPSILON) 1/ kb = scaling / _factor_X_; 2/ cb = kb * parms->bending_damping; Therefore cb = scaling / _factor_X_ * parms->bending_damping; C code in this case reads much like the math! I am not certain but I think _factor_X_ is there to add a certain 'scale independence' to the simulation so that the kb {and hence cb} is scaled to the average cloth size That is if your mesh is X blender units in size, the cloth sim looks like the appropriate material because the scaling makes X proportional to the SI units in the preset Hope this helps Martin

I understand now, thank you very much.

I understand now, thank you very much.

Two comments about this:

  1. kb is the flexural rigidity (better approximation than spring bending stiffness) in the code. cb is a constant more like the bending stiffness, since it is linearly proportional; however, kb is used before the cloth wrinkles and cb is used after the cloth wrinkles. A bending damping value greater than 1 would make the cb more stiff (less wrinkly). So basically, the bending damping value makes it so the cloth doesn't wrinkle as much (once it starts to wrinkle). Why not just expose cb as a GUI parameter, instead of adding a damping bending parameter?

  2. cb is for a linear spring model, kb is for a rotational spring model.

This code does not line up with the intended model. Any thoughts?

Two comments about this: 1) kb is the flexural rigidity (better approximation than spring bending stiffness) in the code. cb is a constant more like the bending stiffness, since it is linearly proportional; however, kb is used before the cloth wrinkles and cb is used after the cloth wrinkles. A bending damping value greater than 1 would make the cb more stiff (less wrinkly). So basically, the bending damping value makes it so the cloth doesn't wrinkle as much (once it starts to wrinkle). Why not just expose cb as a GUI parameter, instead of adding a damping bending parameter? 2) cb is for a linear spring model, kb is for a rotational spring model. This code does not line up with the intended model. Any thoughts?
Author

Hi @lfb3d,

I hope everything is good with you!

1/

The cb value is cb = scaling / factor_X * parms->bending_damping; {where factor_X is model based}
So essentially cb is the value that is exposed and can be altered by changing the field for bending_damping from the GUI

2/

I am sorry I do not understand the comment
As far as I know Blender uses a vertex connecting spring which can thus rotate and transform in 3D space as the vertices move

The intended model is the original reference for the sim development? {I remember it was referenced in some comment thread at some time but cannot recall as such}
It might be a bit beyond the scope of the bug to replace the cloth sim with something different.
Is there a reference implementation for the paper?

Best regards

Martin

Hi @lfb3d, I hope everything is good with you! 1/ The cb value is cb = scaling / _factor_X_ * parms->bending_damping; {where _factor_X_ is model based} So essentially cb is the value that is exposed and can be altered by changing the field for bending_damping from the GUI 2/ I am sorry I do not understand the comment As far as I know Blender uses a vertex connecting spring which can thus rotate and transform in 3D space as the vertices move The intended model is the original reference for the sim development? {I remember it was referenced in some comment thread at some time but cannot recall as such} It might be a bit beyond the scope of the bug to replace the cloth sim with something different. Is there a reference implementation for the paper? Best regards Martin

Hi Martin, Thanks for the prompt response. I'm well. Hope everything is going well with you.

  1. Right, I am saying that using bending_damping as the exposed field is convoluted/indirect and confusing/incorrect.

  2. (It is somewhat explained in #1) Blender for Cloth uses several research papers for its implementation. I will mention at least two here. The first one it used was Xavier Provot's "Deformation Constraints in a Mass Spring Model to Describe Rigid Cloth Behavior" paper. This is for the original linear spring model (intended/original reference model). Then Daniel Genscher (Blender Cloth Implementor) took it one step further to implement better wrinkling behavior with the paper: "Stable but Responsive Cloth." If you look through this paper, you will find the variables "kb" and "cb" referenced directly in the paper. Both of these constants are for bending; however, (this part might not be obvious in the paper) "kb" is related to a rotational spring, and "cb" is related to a linear spring (after wrinkling has occurred). One way to look at the variables: "kb" is a constant for a smoothing function (better than linear), and "cb" is a constant for a linear function (this function is a computational approximation).

I do not expect the paper to be an easy read; however, I would like to shed some light on the meaning behind some of the code that is being written, in the hopes that we are not just writing code blindly for Blender Cloth.

I appreciate your feedback, questions, and comments.

Kind Regards,
Luis Bermudez

Hi Martin, Thanks for the prompt response. I'm well. Hope everything is going well with you. 1. Right, I am saying that using bending_damping as the exposed field is convoluted/indirect and confusing/incorrect. 2. (It is somewhat explained in #1) Blender for Cloth uses several research papers for its implementation. I will mention at least two here. The first one it used was Xavier Provot's "Deformation Constraints in a Mass Spring Model to Describe Rigid Cloth Behavior" paper. This is for the original linear spring model (intended/original reference model). Then Daniel Genscher (Blender Cloth Implementor) took it one step further to implement better wrinkling behavior with the paper: "Stable but Responsive Cloth." If you look through this paper, you will find the variables "kb" and "cb" referenced directly in the paper. Both of these constants are for bending; however, (this part might not be obvious in the paper) "kb" is related to a rotational spring, and "cb" is related to a linear spring (after wrinkling has occurred). One way to look at the variables: "kb" is a constant for a smoothing function (better than linear), and "cb" is a constant for a linear function (this function is a computational approximation). I do not expect the paper to be an easy read; however, I would like to shed some light on the meaning behind some of the code that is being written, in the hopes that we are not just writing code blindly for Blender Cloth. I appreciate your feedback, questions, and comments. Kind Regards, Luis Bermudez
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
6 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#45084
No description provided.