为什么"照明phong#34;是否必须成功制作动画GIF /电影?

时间:2014-11-14 13:06:10

标签: matlab animation matlab-figure lighting

我有以下Matlab代码,用于创建gif和avi动画; Matlab imwrite用于创建gif的帧;但我发现lighting命令对于成功获取动画gif非常重要。

close all
clear all
clc; %
nFrames = 50;
% Preallocate movie structure.
mov(1:nFrames) = struct('cdata', [],'colormap', []);

% Create movie.
figure('color','white');
Z = peaks(150); surf(Z,Z,'edgecolor','none');
view(3);
axis vis3d tight equal off;
v = axis;
%
for k = 1:nFrames
    clf;
    surf(1.5*sin(2*pi*k/20)*Z,Z,'edgecolor','none');   
    axis(v);
    axis off
    camlight;
    lighting phong
    mov(k) = getframe;
    [Inx,cmap]=rgb2ind(mov(k).cdata,256);
    if k==1
        imwrite(Inx,cmap,'testoutx.gif','gif','DelayTime',0.25,'LoopCount',Inf)    %
    else
        imwrite(Inx,cmap,'testoutx.gif','gif','WriteMode','append','DelayTime',0.25)    %
    end
end
% Create AVI file.
  movie2avi(mov, 'myPeaks.avi', 'compression', 'None');

当我评论"照明phong"时,获得的gif是静态的,而不是动画的。似乎只存储了一个帧。我还尝试在每个drawnow句子之前使用getframe,但这不起作用。为什么?如何在不使用lighting的情况下解决问题?

所需的gif(从上面的代码中获得):

enter image description here

不受欢迎的带有"照明phong"评论:

enter image description here

0 个答案:

没有答案