Bug fix #2104
When using Sequencer for Alpha-Over images, it was assuming "Key" alpha by default, and converting images to "Premul" (= multiplying RGB with alpha). This isn't very nice, also because alpha generated by MBlur in Blender always is of type Premul already. Solution; make this an option. In the Nkey panel for strips you can set or disable Premul now. As extra also added the "Filter" and "Mul" options, as already there for Movie strips. Can easily be extended to more options for various postprocess effects.
This commit is contained in:
@@ -1899,9 +1899,14 @@ void do_build_seqar_cfra(ListBase *seqbase, Sequence ***seqar, int cfra)
|
||||
|
||||
if(se->ibuf==0) se->ok= 0;
|
||||
else {
|
||||
if(se->ibuf->depth==32 && se->ibuf->zbuf==0) converttopremul(se->ibuf);
|
||||
if(seq->flag & SEQ_MAKE_PREMUL) {
|
||||
if(se->ibuf->depth==32 && se->ibuf->zbuf==0) converttopremul(se->ibuf);
|
||||
}
|
||||
seq->strip->orx= se->ibuf->x;
|
||||
seq->strip->ory= se->ibuf->y;
|
||||
if(seq->flag & SEQ_FILTERY) IMB_filtery(se->ibuf);
|
||||
if(seq->mul==0.0) seq->mul= 1.0;
|
||||
if(seq->mul != 1.0) multibuf(se->ibuf, seq->mul);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1924,7 +1929,9 @@ void do_build_seqar_cfra(ListBase *seqbase, Sequence ***seqar, int cfra)
|
||||
|
||||
if(se->ibuf==0) se->ok= 0;
|
||||
else {
|
||||
if(se->ibuf->depth==32) converttopremul(se->ibuf);
|
||||
if(seq->flag & SEQ_MAKE_PREMUL) {
|
||||
if(se->ibuf->depth==32) converttopremul(se->ibuf);
|
||||
}
|
||||
seq->strip->orx= se->ibuf->x;
|
||||
seq->strip->ory= se->ibuf->y;
|
||||
if(seq->flag & SEQ_FILTERY) IMB_filtery(se->ibuf);
|
||||
|
||||
Reference in New Issue
Block a user