FILTER="^\[[ 0123456789][ 0123456789][ 0123456789]\%] \|Linking \(C\|CXX\) static library\|Building \(C\|CXX\) object \|Built target "

Bugfix #25280

Image: sequence option was hardcoded to assume "first frame" was always
picture "001". Made it impossible to have a sequence of images starting
with picture like "000"

Note that by allowing to render a first frame as 000 in Blender, things
mess up a bit here. Things work now as follows:

- Start Frame = 1 : Image 001 on frame 1
- Start Frame = 0 : Image 001 on frame 0
- Start Frame =-1 : Image 000 on frame 0 ;)

This is of course the lack of proper control for image sequences.
Definite something to work on; best idea I have now is a new setting
that defines the Image Number to be "first frame". That way you can
map that number on any Blender frame. Or it makes it more confusing? :)

For the doc department: the proper meaning of "Start Frame" now is:

"The blender frame a sequence starts playing, assuming the sequence
starts with image #1"

Tooltop was fixed accordingly

(Also fixed 'remove doubles' to show more precision in toolbar)
This commit is contained in:
2010-12-18 18:56:21 +00:00
parent a73e06775f
commit e93a7aa849
3 changed files with 6 additions and 3 deletions

View File

@@ -2221,7 +2221,7 @@ void BKE_image_user_calc_frame(ImageUser *iuser, int cfra, int fieldnr)
if(cfra==0) cfra= len; if(cfra==0) cfra= len;
} }
if(cfra<1) cfra= 1; if(cfra<0) cfra= 0;
else if(cfra>len) cfra= len; else if(cfra>len) cfra= len;
/* convert current frame to current field */ /* convert current frame to current field */

View File

@@ -495,6 +495,8 @@ static int removedoublesflag_exec(bContext *C, wmOperator *op)
void MESH_OT_remove_doubles(wmOperatorType *ot) void MESH_OT_remove_doubles(wmOperatorType *ot)
{ {
PropertyRNA *prop;
/* identifiers */ /* identifiers */
ot->name= "Remove Doubles"; ot->name= "Remove Doubles";
ot->description= "Remove duplicate vertices"; ot->description= "Remove duplicate vertices";
@@ -507,7 +509,8 @@ void MESH_OT_remove_doubles(wmOperatorType *ot)
/* flags */ /* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
RNA_def_float(ot->srna, "limit", 0.0001f, 0.000001f, 50.0f, "Merge Threshold", "Minimum distance between merged verts", 0.00001f, 2.0f); prop= RNA_def_float(ot->srna, "limit", 0.0001f, 0.000001f, 50.0f, "Merge Threshold", "Minimum distance between merged verts", 0.00001f, 2.0f);
RNA_def_property_ui_range(prop, 0.000001f, 50.0f, 0.001, 5);
} }
// XXX is this needed? // XXX is this needed?

View File

@@ -275,7 +275,7 @@ static void rna_def_imageuser(BlenderRNA *brna)
prop= RNA_def_property(srna, "frame_start", PROP_INT, PROP_TIME); prop= RNA_def_property(srna, "frame_start", PROP_INT, PROP_TIME);
RNA_def_property_int_sdna(prop, NULL, "sfra"); RNA_def_property_int_sdna(prop, NULL, "sfra");
RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF); RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF);
RNA_def_property_ui_text(prop, "Start Frame", "Sets the global starting frame of the movie"); RNA_def_property_ui_text(prop, "Start Frame", "Sets the global starting frame of the movie/sequence, assuming first picture has a #1");
RNA_def_property_update(prop, 0, "rna_ImageUser_update"); RNA_def_property_update(prop, 0, "rna_ImageUser_update");
prop= RNA_def_property(srna, "fields_per_frame", PROP_INT, PROP_NONE); prop= RNA_def_property(srna, "fields_per_frame", PROP_INT, PROP_NONE);