What exactly do the Mesh Cache modifier's Time and Factor modes compute for PC2 and MDD files, and is the PC2 expression ((time / fps) - start) / sampling consistent with the units the modifier and the exporter use?
Code reading at main commit f0e5cc32 (observed 2026-10-22, not executed). In Scene play mode the modifier sets time = ctime/fps for both Time and Factor, then time = Frame Scale x time - Frame Start. The PC2 Time branch then divides by fps again: frame = ((time/fps) - start)/sampling, whereas the MDD Time branch compares time (seconds) directly with the file's stored per-frame times and ignores fps. Blender's own PC2 exporter and manual define start and sampling in frames, so for exporter-written PC2 the Time branch mixes units unless fps = 1. Factor mode maps clamp(time, 0, 1) x frame_tot to a float index, so the last sample is reached at (N-1)/N and held to 1. No bug report or test mentions this (candidate 01). Whether this is intended for PC2 files from other tools is unverified.
Structured fields
{
"citations": [
{
"url": "https://github.com/blender/blender/blob/f0e5cc322b7db46af1ebbfea0ffecbaa04959c52/source/blender/modifiers/intern/MOD_meshcache.cc",
"note": "L112"
},
{
"url": "https://github.com/blender/blender/blob/f0e5cc322b7db46af1ebbfea0ffecbaa04959c52/source/blender/modifiers/intern/MOD_meshcache_pc2.cc",
"note": "L112"
},
{
"url": "https://github.com/blender/blender-addons/blob/09dd79eddd8e57951ae9cfb3237e58f40c86138c/io_export_pc2.py",
"note": "L112"
},
{
"url": "https://docs.blender.org/manual/en/3.6/addons/import_export/pc2.html",
"note": "L112"
},
{
"url": "https://github.com/blender/blender/blob/f0e5cc322b7db46af1ebbfea0ffecbaa04959c52/source/blender/modifiers/intern/MOD_meshcache_mdd.cc",
"note": "L112"
},
{
"url": "https://github.com/blender/blender/blob/f0e5cc322b7db46af1ebbfea0ffecbaa04959c52/source/blender/modifiers/intern/MOD_meshcache_util.cc",
"note": "L112"
},
{
"url": "https://github.com/blender/blender/blob/f0e5cc322b7db46af1ebbfea0ffecbaa04959c52/source/blender/makesrna/intern/rna_modifier.cc",
"note": "L112"
},
{
"url": "https://docs.blender.org/manual/en/latest/modeling/modifiers/modify/mesh_cache.html",
"note": "L112"
},
{
"url": "https://github.com/blender/blender/commit/caac27dcbc4fb652fbb417b4b312493b0ef0eea0",
"note": "L112"
}
]
}Evidence claims
- [sourced_fact] Code reading at main commit f0e5cc32 (observed 2026-10-22, not executed). In Scene play mode the modifier sets time = ctime/fps for both Time and Factor, then time = Frame Scale x time - Frame Start. The PC2 Time branch then divides by fps again: frame = ((time/fps) - start)/sampling, whereas the MDD Time branch compares time (seconds) directly with the file's stored per-frame times and ignores fps. Blender's own PC2 exporter and manual define start and sampling in frames, so for exporter-written PC2 the Time branch mixes units unless fps = 1. Factor mode maps clamp(time, 0, 1) x frame_tot to a float index, so the last sample is reached at (N-1)/N and held to 1. No bug report or test mentions this (candidate 01). Whether this is intended for PC2 files from other tools is unverified. · locator: L112 source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → https://docs.blender.org/manual/en/3.6/addons/import_export/pc2.html
- cites → https://docs.blender.org/manual/en/latest/modeling/modifiers/modify/mesh_cache.html
- cites → https://github.com/blender/blender-addons/blob/09dd79eddd8e57951ae9cfb3237e58f40c86138c/io_export_pc2.py
- cites → https://github.com/blender/blender/blob/f0e5cc322b7db46af1ebbfea0ffecbaa04959c52/source/blender/makesrna/intern/rna_modifier.cc
- cites → https://github.com/blender/blender/blob/f0e5cc322b7db46af1ebbfea0ffecbaa04959c52/source/blender/modifiers/intern/MOD_meshcache.cc
- cites → https://github.com/blender/blender/blob/f0e5cc322b7db46af1ebbfea0ffecbaa04959c52/source/blender/modifiers/intern/MOD_meshcache_mdd.cc
- cites → https://github.com/blender/blender/blob/f0e5cc322b7db46af1ebbfea0ffecbaa04959c52/source/blender/modifiers/intern/MOD_meshcache_pc2.cc
- cites → https://github.com/blender/blender/blob/f0e5cc322b7db46af1ebbfea0ffecbaa04959c52/source/blender/modifiers/intern/MOD_meshcache_util.cc
- cites → https://github.com/blender/blender/commit/caac27dcbc4fb652fbb417b4b312493b0ef0eea0