想成功必须强大 发表于 2019-7-12 16:49:42

matlab练习程序(渲染三原色)


这里我用的空间是x向右为正,y向下为正,z向屏幕里面为正。相当于标准右手系绕x轴旋转了180度。

将三个点光源放在

r = ;
g = ;
b = ;

这三个位置上,向四周发射光线,取光线到y-z平面的模的倒数作为光的强度。

图像如下:

程序如下:
clear all;

close all;
clc;

r = ;
g =
;
b =
;
imgr1=[];
imgr2=[];
imgg1=[];
imgg2=[];
imgb1=[];
imgb2=[];

for y=-1:0.004:1
imgr1=[];
imgg1=[];
imgb1=[];
for z=-1:0.004:1      
       pm=;         
       lightr=pm-r;
       lightg=pm-g;
       lightb=pm-b;
       imgr=1/norm(lightr);
       imgg=1/norm(lightg);
       imgb=1/norm(lightb);
      
       imgr1=;
       imgg1=;      
       imgb1=;         
end
   imgr2=;
   imgg2=;
   imgb2=;
end=size(imgr2);

img=zeros(h,w,3);
img(:,:,1) = mat2gray(imgr2);
img(:,:,2) = mat2gray(imgg2);
img(:,:,3) = mat2gray(imgb2);
imshow(img)
imwrite(img,'img.png')
页: [1]
查看完整版本: matlab练习程序(渲染三原色)